| @@ -33,6 +33,7 @@ ui_*.py | |||
| source/digitalpeakmeter.py | |||
| source/ledbutton.py | |||
| source/paramspinbox.py | |||
| source/pixmapbutton.py | |||
| source/pixmapdial.py | |||
| source/pixmapkeyboard.py | |||
| source/resources_rc.py | |||
| @@ -81,7 +81,7 @@ source/ui_%.py: resources/ui/%.ui | |||
| # ----------------------------------------------------------------------------------------------------------------------------------------- | |||
| # Widgets | |||
| WIDGETS = source/digitalpeakmeter.py source/ledbutton.py source/paramspinbox.py source/pixmapdial.py source/pixmapkeyboard.py | |||
| WIDGETS = source/digitalpeakmeter.py source/ledbutton.py source/paramspinbox.py source/pixmapbutton.py source/pixmapdial.py source/pixmapkeyboard.py | |||
| WIDGETS: $(WIDGETS) | |||
| @@ -38,8 +38,8 @@ | |||
| <file>bitmaps/carla_about.png</file> | |||
| <file>bitmaps/button_close.png</file> | |||
| <file>bitmaps/button_close_down.png</file> | |||
| <file>bitmaps/button_close_hover.png</file> | |||
| <file>bitmaps/button_close_pressed.png</file> | |||
| <file>bitmaps/button_down.png</file> | |||
| <file>bitmaps/button_down_hover.png</file> | |||
| <file>bitmaps/button_edit.png</file> | |||
| @@ -6,8 +6,8 @@ | |||
| <rect> | |||
| <x>0</x> | |||
| <y>0</y> | |||
| <width>557</width> | |||
| <height>28</height> | |||
| <width>538</width> | |||
| <height>30</height> | |||
| </rect> | |||
| </property> | |||
| <property name="windowTitle"> | |||
| @@ -15,7 +15,7 @@ | |||
| </property> | |||
| <layout class="QHBoxLayout" name="horizontalLayout"> | |||
| <property name="spacing"> | |||
| <number>1</number> | |||
| <number>2</number> | |||
| </property> | |||
| <property name="leftMargin"> | |||
| <number>0</number> | |||
| @@ -30,7 +30,7 @@ | |||
| <number>2</number> | |||
| </property> | |||
| <item> | |||
| <widget class="QPushButton" name="b_enable"> | |||
| <widget class="PixmapButton" name="b_enable"> | |||
| <property name="minimumSize"> | |||
| <size> | |||
| <width>24</width> | |||
| @@ -46,10 +46,6 @@ | |||
| <property name="text"> | |||
| <string/> | |||
| </property> | |||
| <property name="icon"> | |||
| <iconset resource="../resources.qrc"> | |||
| <normaloff>:/bitmaps/led-big_on.png</normaloff>:/bitmaps/led-big_on.png</iconset> | |||
| </property> | |||
| <property name="iconSize"> | |||
| <size> | |||
| <width>24</width> | |||
| @@ -65,7 +61,7 @@ | |||
| </widget> | |||
| </item> | |||
| <item> | |||
| <widget class="QPushButton" name="b_gui"> | |||
| <widget class="PixmapButton" name="b_gui"> | |||
| <property name="minimumSize"> | |||
| <size> | |||
| <width>24</width> | |||
| @@ -83,7 +79,7 @@ | |||
| </property> | |||
| <property name="icon"> | |||
| <iconset resource="../resources.qrc"> | |||
| <normaloff>:/bitmaps/button_gui_down.png</normaloff>:/bitmaps/button_gui_down.png</iconset> | |||
| <normaloff>:/bitmaps/button_gui.png</normaloff>:/bitmaps/button_gui.png</iconset> | |||
| </property> | |||
| <property name="iconSize"> | |||
| <size> | |||
| @@ -100,7 +96,7 @@ | |||
| </widget> | |||
| </item> | |||
| <item> | |||
| <widget class="QPushButton" name="b_edit"> | |||
| <widget class="PixmapButton" name="b_edit"> | |||
| <property name="minimumSize"> | |||
| <size> | |||
| <width>24</width> | |||
| @@ -118,7 +114,7 @@ | |||
| </property> | |||
| <property name="icon"> | |||
| <iconset resource="../resources.qrc"> | |||
| <normaloff>:/bitmaps/button_edit_down.png</normaloff>:/bitmaps/button_edit_down.png</iconset> | |||
| <normaloff>:/bitmaps/button_edit.png</normaloff>:/bitmaps/button_edit.png</iconset> | |||
| </property> | |||
| <property name="iconSize"> | |||
| <size> | |||
| @@ -287,7 +283,7 @@ | |||
| <number>0</number> | |||
| </property> | |||
| <item row="0" column="0"> | |||
| <widget class="QPushButton" name="b_up"> | |||
| <widget class="PixmapButton" name="b_up"> | |||
| <property name="minimumSize"> | |||
| <size> | |||
| <width>12</width> | |||
| @@ -310,7 +306,7 @@ | |||
| </widget> | |||
| </item> | |||
| <item row="0" column="1"> | |||
| <widget class="QPushButton" name="b_close"> | |||
| <widget class="PixmapButton" name="b_close"> | |||
| <property name="minimumSize"> | |||
| <size> | |||
| <width>12</width> | |||
| @@ -328,7 +324,7 @@ | |||
| </property> | |||
| <property name="icon"> | |||
| <iconset resource="../resources.qrc"> | |||
| <normaloff>:/bitmaps/button_close_pressed.png</normaloff>:/bitmaps/button_close_pressed.png</iconset> | |||
| <normaloff>:/bitmaps/button_close.png</normaloff>:/bitmaps/button_close.png</iconset> | |||
| </property> | |||
| <property name="iconSize"> | |||
| <size> | |||
| @@ -342,7 +338,7 @@ | |||
| </widget> | |||
| </item> | |||
| <item row="1" column="0"> | |||
| <widget class="QPushButton" name="b_down"> | |||
| <widget class="PixmapButton" name="b_down"> | |||
| <property name="minimumSize"> | |||
| <size> | |||
| <width>12</width> | |||
| @@ -365,7 +361,7 @@ | |||
| </widget> | |||
| </item> | |||
| <item row="1" column="1"> | |||
| <widget class="QPushButton" name="b_restore"> | |||
| <widget class="PixmapButton" name="b_restore"> | |||
| <property name="minimumSize"> | |||
| <size> | |||
| <width>12</width> | |||
| @@ -403,6 +399,11 @@ | |||
| <extends>QPushButton</extends> | |||
| <header>ledbutton.h</header> | |||
| </customwidget> | |||
| <customwidget> | |||
| <class>PixmapButton</class> | |||
| <extends>QPushButton</extends> | |||
| <header>pixmapbutton.h</header> | |||
| </customwidget> | |||
| </customwidgets> | |||
| <resources> | |||
| <include location="../resources.qrc"/> | |||
| @@ -2154,8 +2154,19 @@ class PluginWidget(QFrame): | |||
| #else: | |||
| #self.setWidgetColor(PALETTE_COLOR_NONE) | |||
| #self.ui.led_enable.setColor(self.ui.led_enable.BIG_RED) | |||
| #self.ui.led_enable.setChecked(False) | |||
| self.ui.b_enable.setPixmaps(":/bitmaps/button_gui.png", ":/bitmaps/button_gui_down.png", ":/bitmaps/button_gui_hover.png") | |||
| self.ui.b_gui.setPixmaps(":/bitmaps/button_gui.png", ":/bitmaps/button_gui_down.png", ":/bitmaps/button_gui_hover.png") | |||
| self.ui.b_edit.setPixmaps(":/bitmaps/button_edit.png", ":/bitmaps/button_edit_down.png", ":/bitmaps/button_edit_hover.png") | |||
| self.ui.b_up.setPixmaps(":/bitmaps/button_up.png", ":/bitmaps/button_up.png", ":/bitmaps/button_up_hover.png") | |||
| self.ui.b_down.setPixmaps(":/bitmaps/button_down.png", ":/bitmaps/button_down.png", ":/bitmaps/button_down_hover.png") | |||
| self.ui.b_restore.setPixmaps(":/bitmaps/button_restore.png", ":/bitmaps/button_restore.png", ":/bitmaps/button_restore_hover.png") | |||
| self.ui.b_close.setPixmaps(":/bitmaps/button_close.png", ":/bitmaps/button_close_down.png", ":/bitmaps/button_close_hover.png") | |||
| # TODO | |||
| self.ui.b_up.setEnabled(False) | |||
| self.ui.b_down.setEnabled(False) | |||
| self.ui.b_restore.setEnabled(False) | |||
| self.ui.led_control.setColor(self.ui.led_control.YELLOW) | |||
| self.ui.led_control.setEnabled(False) | |||
| @@ -1,7 +1,7 @@ | |||
| #!/usr/bin/env python3 | |||
| # -*- coding: utf-8 -*- | |||
| # Pixmap Button, a custom Qt4 widget | |||
| # LED Button, a custom Qt4 widget | |||
| # Copyright (C) 2011-2013 Filipe Coelho <falktx@falktx.com> | |||
| # | |||
| # This program is free software; you can redistribute it and/or | |||
| @@ -0,0 +1,82 @@ | |||
| #!/usr/bin/env python3 | |||
| # -*- coding: utf-8 -*- | |||
| # Pixmap Button, a custom Qt4 widget | |||
| # Copyright (C) 2013 Filipe Coelho <falktx@falktx.com> | |||
| # | |||
| # This program is free software; you can redistribute it and/or | |||
| # modify it under the terms of the GNU General Public License as | |||
| # published by the Free Software Foundation; either version 2 of | |||
| # the License, or any later version. | |||
| # | |||
| # This program is distributed in the hope that it will be useful, | |||
| # but WITHOUT ANY WARRANTY; without even the implied warranty of | |||
| # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |||
| # GNU General Public License for more details. | |||
| # | |||
| # For a full copy of the GNU General Public License see the GPL.txt file | |||
| # ------------------------------------------------------------------------------------------------------------ | |||
| # Imports (Global) | |||
| from PyQt4.QtCore import QRectF | |||
| from PyQt4.QtGui import QPainter, QPixmap, QPushButton | |||
| # ------------------------------------------------------------------------------------------------------------ | |||
| # Widget Class | |||
| class PixmapButton(QPushButton): | |||
| STATE_NULL = 0 | |||
| STATE_NORMAL = 1 | |||
| STATE_DOWN = 2 | |||
| STATE_HOVER = 3 | |||
| def __init__(self, parent): | |||
| QPushButton.__init__(self, parent) | |||
| self.fPixmapNormal = QPixmap() | |||
| self.fPixmapDown = QPixmap() | |||
| self.fPixmapHover = QPixmap() | |||
| self.fPixmapRect = QRectF(0, 0, 0, 0) | |||
| self.fIsHovered = False | |||
| self.setText("") | |||
| def setPixmaps(self, normal, down, hover): | |||
| self.fPixmapNormal.load(normal) | |||
| self.fPixmapDown.load(down) | |||
| self.fPixmapHover.load(hover) | |||
| self.setPixmapSize(self.fPixmapNormal.width()) | |||
| def setPixmapSize(self, size): | |||
| self.fPixmapRect = QRectF(0, 0, size, size) | |||
| self.setMinimumWidth(size) | |||
| self.setMaximumWidth(size) | |||
| self.setMinimumHeight(size) | |||
| self.setMaximumHeight(size) | |||
| def enterEvent(self, event): | |||
| self.fIsHovered = True | |||
| QPushButton.enterEvent(self, event) | |||
| def leaveEvent(self, event): | |||
| self.fIsHovered = False | |||
| QPushButton.leaveEvent(self, event) | |||
| def paintEvent(self, event): | |||
| painter = QPainter(self) | |||
| if not self.isEnabled(): | |||
| painter.setOpacity(0.2) | |||
| painter.drawPixmap(self.fPixmapRect, self.fPixmapNormal, self.fPixmapRect) | |||
| elif self.isChecked() or self.isDown(): | |||
| painter.drawPixmap(self.fPixmapRect, self.fPixmapDown, self.fPixmapRect) | |||
| elif self.fIsHovered: | |||
| painter.drawPixmap(self.fPixmapRect, self.fPixmapHover, self.fPixmapRect) | |||
| else: | |||
| painter.drawPixmap(self.fPixmapRect, self.fPixmapNormal, self.fPixmapRect) | |||
| event.accept() | |||