| @@ -82,6 +82,7 @@ | |||||
| <file>bitmaps/button_gui_hover2.png</file> | <file>bitmaps/button_gui_hover2.png</file> | ||||
| <file>bitmaps/button_off.png</file> | <file>bitmaps/button_off.png</file> | ||||
| <file>bitmaps/button_on.png</file> | <file>bitmaps/button_on.png</file> | ||||
| <file>bitmaps/dial_01.png</file> | <file>bitmaps/dial_01.png</file> | ||||
| <file>bitmaps/dial_01d.png</file> | <file>bitmaps/dial_01d.png</file> | ||||
| <file>bitmaps/dial_02.png</file> | <file>bitmaps/dial_02.png</file> | ||||
| @@ -92,15 +93,21 @@ | |||||
| <file>bitmaps/dial_04d.png</file> | <file>bitmaps/dial_04d.png</file> | ||||
| <file>bitmaps/dial_05.png</file> | <file>bitmaps/dial_05.png</file> | ||||
| <file>bitmaps/dial_05d.png</file> | <file>bitmaps/dial_05d.png</file> | ||||
| <file>bitmaps/kbd_h_classic.png</file> | <file>bitmaps/kbd_h_classic.png</file> | ||||
| <file>bitmaps/kbd_h_orange.png</file> | <file>bitmaps/kbd_h_orange.png</file> | ||||
| <file>bitmaps/kbd_v_classic.png</file> | <file>bitmaps/kbd_v_classic.png</file> | ||||
| <file>bitmaps/kbd_v_orange.png</file> | <file>bitmaps/kbd_v_orange.png</file> | ||||
| <file>bitmaps/led_off.png</file> | <file>bitmaps/led_off.png</file> | ||||
| <file>bitmaps/led_blue.png</file> | <file>bitmaps/led_blue.png</file> | ||||
| <file>bitmaps/led_green.png</file> | <file>bitmaps/led_green.png</file> | ||||
| <file>bitmaps/led_red.png</file> | <file>bitmaps/led_red.png</file> | ||||
| <file>bitmaps/led_yellow.png</file> | <file>bitmaps/led_yellow.png</file> | ||||
| <file>bitmaps/led_calf_off.png</file> | |||||
| <file>bitmaps/led_calf_on.png</file> | |||||
| <file>bitmaps/logo_calf.png</file> | <file>bitmaps/logo_calf.png</file> | ||||
| <file>bitmaps/canvas/frame_node_header.png</file> | <file>bitmaps/canvas/frame_node_header.png</file> | ||||
| @@ -6,7 +6,7 @@ | |||||
| <rect> | <rect> | ||||
| <x>0</x> | <x>0</x> | ||||
| <y>0</y> | <y>0</y> | ||||
| <width>665</width> | |||||
| <width>644</width> | |||||
| <height>80</height> | <height>80</height> | ||||
| </rect> | </rect> | ||||
| </property> | </property> | ||||
| @@ -103,8 +103,29 @@ | |||||
| </item> | </item> | ||||
| <item> | <item> | ||||
| <widget class="LEDButton" name="led_midi"> | <widget class="LEDButton" name="led_midi"> | ||||
| <property name="minimumSize"> | |||||
| <size> | |||||
| <width>25</width> | |||||
| <height>25</height> | |||||
| </size> | |||||
| </property> | |||||
| <property name="maximumSize"> | |||||
| <size> | |||||
| <width>25</width> | |||||
| <height>25</height> | |||||
| </size> | |||||
| </property> | |||||
| <property name="text"> | <property name="text"> | ||||
| <string>M</string> | |||||
| <string/> | |||||
| </property> | |||||
| <property name="iconSize"> | |||||
| <size> | |||||
| <width>25</width> | |||||
| <height>25</height> | |||||
| </size> | |||||
| </property> | |||||
| <property name="checkable"> | |||||
| <bool>true</bool> | |||||
| </property> | </property> | ||||
| </widget> | </widget> | ||||
| </item> | </item> | ||||
| @@ -139,7 +160,14 @@ | |||||
| </widget> | </widget> | ||||
| </item> | </item> | ||||
| <item> | <item> | ||||
| <widget class="DigitalPeakMeter" name="peak_out" native="true"/> | |||||
| <widget class="DigitalPeakMeter" name="peak_out" native="true"> | |||||
| <property name="minimumSize"> | |||||
| <size> | |||||
| <width>150</width> | |||||
| <height>0</height> | |||||
| </size> | |||||
| </property> | |||||
| </widget> | |||||
| </item> | </item> | ||||
| </layout> | </layout> | ||||
| </item> | </item> | ||||
| @@ -159,7 +187,14 @@ | |||||
| </widget> | </widget> | ||||
| </item> | </item> | ||||
| <item> | <item> | ||||
| <widget class="DigitalPeakMeter" name="peak_in" native="true"/> | |||||
| <widget class="DigitalPeakMeter" name="peak_in" native="true"> | |||||
| <property name="minimumSize"> | |||||
| <size> | |||||
| <width>150</width> | |||||
| <height>0</height> | |||||
| </size> | |||||
| </property> | |||||
| </widget> | |||||
| </item> | </item> | ||||
| </layout> | </layout> | ||||
| </item> | </item> | ||||
| @@ -19,7 +19,7 @@ | |||||
| # ------------------------------------------------------------------------------------------------------------ | # ------------------------------------------------------------------------------------------------------------ | ||||
| # Imports (Global) | # Imports (Global) | ||||
| from PyQt4.QtGui import QFrame | |||||
| from PyQt4.QtGui import QFont, QFrame | |||||
| # ------------------------------------------------------------------------------------------------------------ | # ------------------------------------------------------------------------------------------------------------ | ||||
| # Imports (Custom) | # Imports (Custom) | ||||
| @@ -559,6 +559,13 @@ class PluginSlot_Calf(PluginSlot): | |||||
| self.fIsActive = False | self.fIsActive = False | ||||
| self.fButtonFont = QFont() | |||||
| self.fButtonFont.setBold(False) | |||||
| self.fButtonFont.setPointSize(9) | |||||
| self.fButtonColorOn = QColor( 18, 41, 87) | |||||
| self.fButtonColorOff = QColor(150, 150, 150) | |||||
| # ------------------------------------------------------------- | # ------------------------------------------------------------- | ||||
| # Set-up GUI | # Set-up GUI | ||||
| @@ -575,10 +582,18 @@ class PluginSlot_Calf(PluginSlot): | |||||
| self.ui.b_edit.setPixmaps(":/bitmaps/button_calf2.png", ":/bitmaps/button_calf2_down.png", ":/bitmaps/button_calf2_hover.png") | self.ui.b_edit.setPixmaps(":/bitmaps/button_calf2.png", ":/bitmaps/button_calf2_down.png", ":/bitmaps/button_calf2_hover.png") | ||||
| self.ui.b_remove.setPixmaps(":/bitmaps/button_calf1.png", ":/bitmaps/button_calf1_down.png", ":/bitmaps/button_calf1_hover.png") | self.ui.b_remove.setPixmaps(":/bitmaps/button_calf1.png", ":/bitmaps/button_calf1_down.png", ":/bitmaps/button_calf1_hover.png") | ||||
| self.ui.b_gui.setEnabled((self.fPluginInfo['hints'] & PLUGIN_HAS_CUSTOM_UI) != 0) | |||||
| self.ui.b_edit.setTopText(self.tr("Edit"), self.fButtonColorOn, self.fButtonFont) | |||||
| self.ui.b_remove.setTopText(self.tr("Remove"), self.fButtonColorOn, self.fButtonFont) | |||||
| self.ui.led_midi.setColor(self.ui.led_midi.RED) | |||||
| self.ui.led_midi.setEnabled(False) | |||||
| if self.fPluginInfo['hints'] & PLUGIN_HAS_CUSTOM_UI: | |||||
| self.ui.b_gui.setEnabled(True) | |||||
| self.ui.b_gui.setTopText(self.tr("GUI"), self.fButtonColorOn, self.fButtonFont) | |||||
| else: | |||||
| self.ui.b_gui.setEnabled(False) | |||||
| self.ui.b_gui.setTopText(self.tr("GUI"), self.fButtonColorOff, self.fButtonFont) | |||||
| self.ui.led_midi.setColor(self.ui.led_midi.CALF) | |||||
| #self.ui.led_midi.setEnabled(False) | |||||
| self.ui.peak_in.setColor(self.ui.peak_in.GREEN) | self.ui.peak_in.setColor(self.ui.peak_in.GREEN) | ||||
| self.ui.peak_in.setChannels(self.fPeaksInputCount) | self.ui.peak_in.setChannels(self.fPeaksInputCount) | ||||
| @@ -606,12 +621,18 @@ class PluginSlot_Calf(PluginSlot): | |||||
| #------------------------------------------------------------------ | #------------------------------------------------------------------ | ||||
| def getFixedHeight(self): | def getFixedHeight(self): | ||||
| return 80 | |||||
| return 75 | |||||
| #------------------------------------------------------------------ | #------------------------------------------------------------------ | ||||
| def recheckPluginHints(self, hints): | def recheckPluginHints(self, hints): | ||||
| self.ui.b_gui.setEnabled(hints & PLUGIN_HAS_CUSTOM_UI) | |||||
| if hints & PLUGIN_HAS_CUSTOM_UI: | |||||
| self.ui.b_gui.setEnabled(True) | |||||
| self.ui.b_gui.setTopText(self.tr("GUI"), self.fButtonColorOn, self.fButtonFont) | |||||
| else: | |||||
| self.ui.b_gui.setEnabled(False) | |||||
| self.ui.b_gui.setTopText(self.tr("GUI"), self.fButtonColorOff, self.fButtonFont) | |||||
| PluginSlot.recheckPluginHints(self, hints) | PluginSlot.recheckPluginHints(self, hints) | ||||
| def setName(self, name): | def setName(self, name): | ||||
| @@ -26,11 +26,14 @@ from PyQt4.QtGui import QPainter, QPixmap, QPushButton | |||||
| # Widget Class | # Widget Class | ||||
| class LEDButton(QPushButton): | class LEDButton(QPushButton): | ||||
| # normal | |||||
| OFF = 0 | OFF = 0 | ||||
| BLUE = 1 | BLUE = 1 | ||||
| GREEN = 2 | GREEN = 2 | ||||
| RED = 3 | RED = 3 | ||||
| YELLOW = 4 | YELLOW = 4 | ||||
| # extra | |||||
| CALF = 5 | |||||
| def __init__(self, parent): | def __init__(self, parent): | ||||
| QPushButton.__init__(self, parent) | QPushButton.__init__(self, parent) | ||||
| @@ -41,15 +44,20 @@ class LEDButton(QPushButton): | |||||
| self.setCheckable(True) | self.setCheckable(True) | ||||
| self.setText("") | self.setText("") | ||||
| self.setColor(self.BLUE) | |||||
| self.fLastColor = self.OFF | self.fLastColor = self.OFF | ||||
| self.fPixmap.load(":/bitmaps/led_off.png") | self.fPixmap.load(":/bitmaps/led_off.png") | ||||
| self.setColor(self.BLUE) | |||||
| def setColor(self, color): | def setColor(self, color): | ||||
| self.fColor = color | self.fColor = color | ||||
| size = 14 | |||||
| self._loadPixmapNow() | |||||
| # Fix calf off | |||||
| if color == self.CALF: | |||||
| self.fPixmap.load(":/bitmaps/led_calf_off.png") | |||||
| size = self.fPixmap.width() | |||||
| self.fPixmapRect = QRectF(0, 0, size, size) | self.fPixmapRect = QRectF(0, 0, size, size) | ||||
| self.setMinimumSize(size, size) | self.setMinimumSize(size, size) | ||||
| @@ -59,6 +67,12 @@ class LEDButton(QPushButton): | |||||
| painter = QPainter(self) | painter = QPainter(self) | ||||
| event.accept() | event.accept() | ||||
| self._loadPixmapNow() | |||||
| painter.drawPixmap(self.fPixmapRect, self.fPixmap, self.fPixmapRect) | |||||
| def _loadPixmapNow(self): | |||||
| if self.isChecked(): | if self.isChecked(): | ||||
| if self.fLastColor != self.fColor: | if self.fLastColor != self.fColor: | ||||
| if self.fColor == self.OFF: | if self.fColor == self.OFF: | ||||
| @@ -71,13 +85,13 @@ class LEDButton(QPushButton): | |||||
| self.fPixmap.load(":/bitmaps/led_red.png") | self.fPixmap.load(":/bitmaps/led_red.png") | ||||
| elif self.fColor == self.YELLOW: | elif self.fColor == self.YELLOW: | ||||
| self.fPixmap.load(":/bitmaps/led_yellow.png") | self.fPixmap.load(":/bitmaps/led_yellow.png") | ||||
| elif self.fColor == self.CALF: | |||||
| self.fPixmap.load(":/bitmaps/calf_on.png") | |||||
| else: | else: | ||||
| return | return | ||||
| self.fLastColor = self.fColor | self.fLastColor = self.fColor | ||||
| elif self.fLastColor != self.OFF: | elif self.fLastColor != self.OFF: | ||||
| self.fPixmap.load(":/bitmaps/led_off.png") | |||||
| self.fPixmap.load(":/bitmaps/led_calf_off.png" if self.fColor == self.CALF else ":/bitmaps/led_off.png") | |||||
| self.fLastColor = self.OFF | self.fLastColor = self.OFF | ||||
| painter.drawPixmap(self.fPixmapRect, self.fPixmap, self.fPixmapRect) | |||||
| @@ -19,8 +19,8 @@ | |||||
| # ------------------------------------------------------------------------------------------------------------ | # ------------------------------------------------------------------------------------------------------------ | ||||
| # Imports (Global) | # Imports (Global) | ||||
| from PyQt4.QtCore import QRectF | |||||
| from PyQt4.QtGui import QPainter, QPixmap, QPushButton | |||||
| from PyQt4.QtCore import QPointF, QRectF | |||||
| from PyQt4.QtGui import QColor, QFont, QPainter, QPixmap, QPushButton | |||||
| # ------------------------------------------------------------------------------------------------------------ | # ------------------------------------------------------------------------------------------------------------ | ||||
| # Widget Class | # Widget Class | ||||
| @@ -36,6 +36,10 @@ class PixmapButton(QPushButton): | |||||
| self.fIsHovered = False | self.fIsHovered = False | ||||
| self.fTopText = "" | |||||
| self.fTopTextColor = QColor() | |||||
| self.fTopTextFont = QFont() | |||||
| self.setText("") | self.setText("") | ||||
| def setPixmaps(self, normal, down, hover): | def setPixmaps(self, normal, down, hover): | ||||
| @@ -51,6 +55,11 @@ class PixmapButton(QPushButton): | |||||
| self.setMinimumSize(width, height) | self.setMinimumSize(width, height) | ||||
| self.setMaximumSize(width, height) | self.setMaximumSize(width, height) | ||||
| def setTopText(self, text, color, font): | |||||
| self.fTopText = text | |||||
| self.fTopTextColor = color | |||||
| self.fTopTextFont = font | |||||
| def enterEvent(self, event): | def enterEvent(self, event): | ||||
| self.fIsHovered = True | self.fIsHovered = True | ||||
| QPushButton.enterEvent(self, event) | QPushButton.enterEvent(self, event) | ||||
| @@ -77,3 +86,13 @@ class PixmapButton(QPushButton): | |||||
| else: | else: | ||||
| painter.drawPixmap(self.fPixmapRect, self.fPixmapNormal, self.fPixmapRect) | painter.drawPixmap(self.fPixmapRect, self.fPixmapNormal, self.fPixmapRect) | ||||
| if not self.fTopText: | |||||
| return | |||||
| painter.save() | |||||
| painter.setPen(self.fTopTextColor) | |||||
| painter.setBrush(self.fTopTextColor) | |||||
| painter.setFont(self.fTopTextFont) | |||||
| painter.drawText(QPointF(10, 16), self.fTopText) | |||||
| painter.restore() | |||||