Browse Source

rack list: Colorized padding

pull/770/head
Nikita Zlobin 7 years ago
parent
commit
13fa4f2c34
3 changed files with 54 additions and 12 deletions
  1. BIN
      resources/bitmaps/rack_padding_left.png
  2. BIN
      resources/bitmaps/rack_padding_right.png
  3. +54
    -12
      source/frontend/carla_host.py

BIN
resources/bitmaps/rack_padding_left.png View File

Before After
Width: 25  |  Height: 372  |  Size: 36KB Width: 25  |  Height: 372  |  Size: 53KB

BIN
resources/bitmaps/rack_padding_right.png View File

Before After
Width: 25  |  Height: 372  |  Size: 4.2KB Width: 25  |  Height: 372  |  Size: 54KB

+ 54
- 12
source/frontend/carla_host.py View File

@@ -27,12 +27,12 @@ from carla_config import *
import json

if config_UseQt5:
from PyQt5.QtCore import qCritical, QEventLoop, QFileInfo, QModelIndex, QPointF, QTimer
from PyQt5.QtGui import QImage, QPalette
from PyQt5.QtCore import qCritical, QEventLoop, QFileInfo, QModelIndex, QPointF, QTimer, QEvent
from PyQt5.QtGui import QImage, QPalette, QBrush
from PyQt5.QtWidgets import QAction, QApplication, QInputDialog, QFileSystemModel, QListWidgetItem, QMainWindow
else:
from PyQt4.QtCore import qCritical, QEventLoop, QFileInfo, QModelIndex, QPointF, QTimer
from PyQt4.QtGui import QImage, QPalette
from PyQt4.QtCore import qCritical, QEventLoop, QFileInfo, QModelIndex, QPointF, QTimer, QEvent
from PyQt4.QtGui import QImage, QPalette, QBrush
from PyQt4.QtGui import QAction, QApplication, QInputDialog, QFileSystemModel, QListWidgetItem, QMainWindow

# ------------------------------------------------------------------------------------------------------------
@@ -358,15 +358,9 @@ class HostWindow(QMainWindow):
self.ui.rackScrollBar.rangeChanged.connect(sb.setRange)
self.ui.rackScrollBar.valueChanged.connect(sb.setValue)

self.updateStyle()

self.ui.rack.setStyleSheet("""
QLabel#pad_left {
background-image: url(:/bitmaps/rack_padding_left.png);
background-repeat: repeat-y;
}
QLabel#pad_right {
background-image: url(:/bitmaps/rack_padding_right.png);
background-repeat: repeat-y;
}
CarlaRackList#CarlaRackList {
background-color: black;
}
@@ -2320,6 +2314,54 @@ class HostWindow(QMainWindow):

QMainWindow.timerEvent(self, event)

# --------------------------------------------------------------------------------------------------------
# color/style change event

def changeEvent(self, event):
if event.type() in (QEvent.PaletteChange, QEvent.StyleChange):
self.updateStyle()
QWidget.changeEvent(self, event)

def updateStyle(self):
# Rack padding images setup
rack_imgL = QImage(":/bitmaps/rack_padding_left.png")
rack_imgR = QImage(":/bitmaps/rack_padding_right.png")

min_value = 0.07

value_fix = 1.0/(1.0-rack_imgL.scaled(1, 1, Qt.IgnoreAspectRatio, Qt.SmoothTransformation).pixelColor(0,0).blackF())
bg_color = self.ui.rack.palette().window().color()
bg_value = 1.0 - bg_color.blackF()
if bg_value == 0:
bg_color = QColor.fromHsvF(0.0, 0.0, min_value*value_fix)
elif bg_value < min_value:
pad_color = bg_color.lighter(100*min_value/bg_value*value_fix)

painter = QPainter()
fillRect = rack_imgL.rect().adjusted(-1,-1,1,1)

painter.begin(rack_imgL)
painter.setCompositionMode(QPainter.CompositionMode_Multiply)
painter.setBrush(pad_color)
painter.drawRect(fillRect)
painter.end()
rack_pixmapL = QPixmap(rack_imgL)
self.imgL_palette = QPalette()
self.imgL_palette.setBrush(QPalette.Window, QBrush(rack_pixmapL))
self.ui.pad_left.setPalette(self.imgL_palette)
self.ui.pad_left.setAutoFillBackground(True)

painter.begin(rack_imgR)
painter.setCompositionMode(QPainter.CompositionMode_Multiply)
painter.setBrush(pad_color)
painter.drawRect(fillRect)
painter.end()
rack_pixmapR = QPixmap(rack_imgR)
self.imgR_palette = QPalette()
self.imgR_palette.setBrush(QPalette.Window, QBrush(rack_pixmapR))
self.ui.pad_right.setPalette(self.imgR_palette)
self.ui.pad_right.setAutoFillBackground(True)

# --------------------------------------------------------------------------------------------------------
# paint event



Loading…
Cancel
Save