diff --git a/src/patchcanvas_theme.py b/src/patchcanvas_theme.py index fe76862..c989ac0 100644 --- a/src/patchcanvas_theme.py +++ b/src/patchcanvas_theme.py @@ -25,6 +25,23 @@ from PyQt4.QtGui import QColor, QFont, QFontMetrics, QPen, QPixmap # ------------------------------------------------------------------------------------------------------------ # patchcanvas-theme.cpp +# Utilities +## hsvAdjusted() - returns color with selectively rewrote HSV parameters +def hsvAdjusted(color, hue = -1, saturation = -1, value = -1, alpha = -1): + if hue == -1: hue = color.hue() + if saturation == -1: saturation = color.saturation() + if value == -1: value = color.value() + if alpha == -1: alpha = color.alpha() + return QColor.fromHsv(hue, saturation, value, alpha) + +## hsvAdjusted() variant for relative changes +def hsvAdjustedRel(color, hue = 0, saturation = 0, value = 0, alpha = 0): + return QColor.fromHsv( + color.hue()+hue, + color.saturation()+saturation, + color.value()+value, + color.alpha()+alpha) + class Theme(object): # enum PortType THEME_PORT_SQUARE = 0 @@ -243,8 +260,8 @@ class Theme(object): # Boxes self.box_pen = QPen(QColor(176, 177, 178), 1, Qt.SolidLine) self.box_pen_sel = QPen(QColor(1, 2, 3), 2, Qt.DashLine) - self.box_bg_1 = QColor(250, 250, 250) - self.box_bg_2 = QColor(200, 200, 200) + self.box_bg_1 = QColor(220, 220, 220) + self.box_bg_2 = self.box_bg_1.darker(120) self.box_shadow = QColor(1, 1, 1, 100) self.box_header_pixmap = None self.box_header_height = 24 @@ -254,51 +271,61 @@ class Theme(object): self.box_text = QPen(QColor(1, 1, 1), 0) self.box_text_sel = self.box_text self.box_font_name = "Ubuntu" - self.box_font_size = 11 + self.box_font_size = 10 self.box_font_state = QFont.Bold self.box_bg_type = self.THEME_BG_GRADIENT self.box_use_icon = True # Ports - self.port_text = QPen(QColor(30, 30, 30, 180), 1) + self.port_text = QPen(QColor(255, 255, 255, 220), 1) self.port_bg_pixmap = None self.port_font_name = "Ubuntu" - self.port_font_size = 10 + self.port_font_size = 9 self.port_font_state = QFont.Bold self.port_mode = self.THEME_PORT_POLYGON - self.port_audio_jack_pen = QPen(QColor(50, 50, 150), 1) - self.port_audio_jack_pen_sel = QPen(QColor(103 + 136, 190 + 130, 226 + 130), 1) - self.port_midi_jack_pen = QPen(QColor(150, 50, 50), 1) - self.port_midi_jack_pen_sel = QPen(QColor(90 + 30, 44 + 30, 42 + 30), 1) - self.port_midi_a2j_pen = QPen(QColor(100, 50, 30), 1) - self.port_midi_a2j_pen_sel = QPen(QColor(137 + 30, 76 + 30, 43 + 30), 1) - self.port_midi_alsa_pen = QPen(QColor(45, 150, 50), 1) - self.port_midi_alsa_pen_sel = QPen(QColor(93 + 30, 141 + 30, 46 + 30), 1) - - self.port_audio_jack_bg = QColor(150, 150, 255) - self.port_audio_jack_bg_sel = QColor(135 + 150, 161 + 150, 199 + 150) - self.port_midi_jack_bg = QColor(255, 150, 160) - self.port_midi_jack_bg_sel = QColor(90 + 30, 15 + 50, 16 + 50) - self.port_midi_a2j_bg = QColor(200, 135, 100) - self.port_midi_a2j_bg_sel = QColor(101 + 50, 47 + 50, 16 + 50) - self.port_midi_alsa_bg = QColor(160, 255, 150) - self.port_midi_alsa_bg_sel = QColor(64 + 50, 112 + 50, 18 + 50) - - self.port_audio_jack_text = self.port_text + # Port colors + port_audio_jack_color = QColor.fromHsv(240, 214, 181) + port_midi_jack_color = QColor.fromHsv(0, 214, 130) + port_midi_a2j_color = QColor.fromHsv(22, 214, 102) + port_midi_alsa_color = QColor.fromHsv(91, 214, 112) + + port_lineW = 1 + port_pen_shade = 130 + self.port_audio_jack_pen = QPen(port_audio_jack_color.darker(port_pen_shade), port_lineW) + self.port_midi_jack_pen = QPen(port_midi_jack_color.darker(port_pen_shade), port_lineW) + self.port_midi_a2j_pen = QPen(port_midi_a2j_color.darker(port_pen_shade), port_lineW) + self.port_midi_alsa_pen = QPen(port_midi_alsa_color.darker(port_pen_shade), port_lineW) + port_selW = 1.5 + self.port_audio_jack_pen_sel = QPen(port_audio_jack_color.lighter(port_pen_shade), port_selW) + self.port_midi_jack_pen_sel = QPen(port_midi_jack_color.lighter(port_pen_shade), port_selW) + self.port_midi_a2j_pen_sel = QPen(port_midi_a2j_color.lighter(port_pen_shade), port_selW) + self.port_midi_alsa_pen_sel = QPen(port_midi_alsa_color.lighter(port_pen_shade), port_selW) + + port_bg_shade = 170 + self.port_audio_jack_bg = port_audio_jack_color + self.port_midi_jack_bg = port_midi_jack_color + self.port_midi_a2j_bg = port_midi_a2j_color + self.port_midi_alsa_bg = port_midi_alsa_color + self.port_audio_jack_bg_sel = hsvAdjustedRel(self.port_audio_jack_bg, saturation = -80).lighter(130) + self.port_midi_jack_bg_sel = hsvAdjustedRel(self.port_midi_jack_bg, saturation = -80).lighter(130) + self.port_midi_a2j_bg_sel = hsvAdjustedRel(self.port_midi_a2j_bg, saturation = -80).lighter(130) + self.port_midi_alsa_bg_sel = hsvAdjustedRel(self.port_midi_alsa_bg, saturation = -80).lighter(130) + + self.port_audio_jack_text = QPen(hsvAdjustedRel(port_audio_jack_color, hue = -30, saturation = -70, value = 70), 1) + self.port_midi_jack_text = QPen(hsvAdjustedRel(port_midi_jack_color, hue = 10, saturation = -70, value = 70), 1) + self.port_midi_a2j_text = QPen(hsvAdjustedRel(port_midi_a2j_color, hue = 8, saturation = -70, value = 70), 1) + self.port_midi_alsa_text = QPen(hsvAdjustedRel(port_midi_alsa_color, hue = -8, saturation = -70, value = 70), 1) self.port_audio_jack_text_sel = self.port_text - self.port_midi_jack_text = self.port_text self.port_midi_jack_text_sel = self.port_text - self.port_midi_a2j_text = self.port_text self.port_midi_a2j_text_sel = self.port_text - self.port_midi_alsa_text = self.port_text self.port_midi_alsa_text_sel = self.port_text - self.port_text_padding = 0 + self.port_text_padding = 0.5 self.port_offset = 0 - self.port_spacing = 3 - self.port_spacingT = 2 + self.port_spacing = 2 + self.port_spacingT = 1 self.port_rounding = 0.0 # To not scale some line widths