Browse Source

Improved modern light theme

First attempt to use HSV model - no need to dance with RGB equalizing.
Two utility functions are added to complement missing QColor functionality.

Strange border with audio jack ports in very begining seems to be accedental,
so trying to improve original color scheme. Background is light grey (some least
color contrast would be great, even with border). Unselected port text is colored.
pull/170/head
Nikita Zlobin 8 years ago
parent
commit
bd80e4b7a2
1 changed files with 57 additions and 30 deletions
  1. +57
    -30
      src/patchcanvas_theme.py

+ 57
- 30
src/patchcanvas_theme.py View File

@@ -25,6 +25,23 @@ from PyQt4.QtGui import QColor, QFont, QFontMetrics, QPen, QPixmap
# ------------------------------------------------------------------------------------------------------------ # ------------------------------------------------------------------------------------------------------------
# patchcanvas-theme.cpp # 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): class Theme(object):
# enum PortType # enum PortType
THEME_PORT_SQUARE = 0 THEME_PORT_SQUARE = 0
@@ -243,8 +260,8 @@ class Theme(object):
# Boxes # Boxes
self.box_pen = QPen(QColor(176, 177, 178), 1, Qt.SolidLine) 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_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_shadow = QColor(1, 1, 1, 100)
self.box_header_pixmap = None self.box_header_pixmap = None
self.box_header_height = 24 self.box_header_height = 24
@@ -254,51 +271,61 @@ class Theme(object):
self.box_text = QPen(QColor(1, 1, 1), 0) self.box_text = QPen(QColor(1, 1, 1), 0)
self.box_text_sel = self.box_text self.box_text_sel = self.box_text
self.box_font_name = "Ubuntu" self.box_font_name = "Ubuntu"
self.box_font_size = 11
self.box_font_size = 10
self.box_font_state = QFont.Bold self.box_font_state = QFont.Bold


self.box_bg_type = self.THEME_BG_GRADIENT self.box_bg_type = self.THEME_BG_GRADIENT
self.box_use_icon = True self.box_use_icon = True


# Ports # 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_bg_pixmap = None
self.port_font_name = "Ubuntu" self.port_font_name = "Ubuntu"
self.port_font_size = 10
self.port_font_size = 9
self.port_font_state = QFont.Bold self.port_font_state = QFont.Bold
self.port_mode = self.THEME_PORT_POLYGON 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_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_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_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_midi_alsa_text_sel = self.port_text


self.port_text_padding = 0
self.port_text_padding = 0.5
self.port_offset = 0 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 self.port_rounding = 0.0


# To not scale some line widths # To not scale some line widths


Loading…
Cancel
Save