| @@ -2,7 +2,7 @@ | |||||
| # -*- coding: utf-8 -*- | # -*- coding: utf-8 -*- | ||||
| # Carla rack widget code | # Carla rack widget code | ||||
| # Copyright (C) 2011-2013 Filipe Coelho <falktx@falktx.com> | |||||
| # Copyright (C) 2011-2014 Filipe Coelho <falktx@falktx.com> | |||||
| # | # | ||||
| # This program is free software; you can redistribute it and/or | # This program is free software; you can redistribute it and/or | ||||
| # modify it under the terms of the GNU General Public License as | # modify it under the terms of the GNU General Public License as | ||||
| @@ -20,7 +20,7 @@ | |||||
| # Imports (Global) | # Imports (Global) | ||||
| from PyQt4.QtCore import Qt, QSize, QTimer | from PyQt4.QtCore import Qt, QSize, QTimer | ||||
| from PyQt4.QtGui import QApplication, QListWidget, QListWidgetItem | |||||
| from PyQt4.QtGui import QApplication, QHBoxLayout, QLabel, QListWidget, QListWidgetItem, QScrollBar | |||||
| # ------------------------------------------------------------------------------------------------------------ | # ------------------------------------------------------------------------------------------------------------ | ||||
| # Imports (Custom Stuff) | # Imports (Custom Stuff) | ||||
| @@ -70,12 +70,65 @@ class CarlaRackItem(QListWidgetItem): | |||||
| #painter.restore() | #painter.restore() | ||||
| #QListWidgetItem.paintEvent(self, event) | #QListWidgetItem.paintEvent(self, event) | ||||
| # ------------------------------------------------------------------------------------------------------------ | |||||
| # Rack widget list | |||||
| class CarlaRackList(QListWidget): | |||||
| def __init__(self, parent): | |||||
| QListWidget.__init__(self, parent) | |||||
| def paintEvent(self, event): | |||||
| #painter = QPainter(self) | |||||
| QListWidget.paintEvent(self, event) | |||||
| # ------------------------------------------------------------------------------------------------------------ | # ------------------------------------------------------------------------------------------------------------ | ||||
| # Rack widget | # Rack widget | ||||
| class CarlaRackW(QListWidget): | |||||
| class CarlaRackW(QFrame): | |||||
| def __init__(self, parent, doSetup = True): | def __init__(self, parent, doSetup = True): | ||||
| QListWidget.__init__(self, parent) | |||||
| QFrame.__init__(self, parent) | |||||
| self.fLayout = QHBoxLayout(self) | |||||
| self.fLayout.setContentsMargins(0, 0, 0, 0) | |||||
| self.fLayout.setSpacing(1) | |||||
| self.setLayout(self.fLayout) | |||||
| self.fPadLeft = QLabel(self) | |||||
| self.fPadLeft.setFixedWidth(25) | |||||
| self.fPadLeft.setObjectName("PadLeft") | |||||
| self.fPadLeft.setText("") | |||||
| self.fPadRight = QLabel(self) | |||||
| self.fPadRight.setFixedWidth(25) | |||||
| self.fPadRight.setObjectName("PadRight") | |||||
| self.fPadRight.setText("") | |||||
| self.fRack = CarlaRackList(self) | |||||
| self.fRack.setMinimumWidth(640+20) # required by zita, 591 was old value | |||||
| self.fRack.setSortingEnabled(False) | |||||
| self.fRack.setHorizontalScrollBarPolicy(Qt.ScrollBarAlwaysOff) | |||||
| self.fRack.setVerticalScrollBarPolicy(Qt.ScrollBarAlwaysOff) | |||||
| self.fRack.currentRowChanged.connect(self.slot_currentRowChanged) | |||||
| sb = self.fRack.verticalScrollBar() | |||||
| self.fScrollBar = QScrollBar(Qt.Vertical, self) | |||||
| self.fScrollBar.setMinimum(sb.minimum()) | |||||
| self.fScrollBar.setMaximum(sb.maximum()) | |||||
| self.fScrollBar.setValue(sb.value()) | |||||
| #sb.actionTriggered.connect(self.fScrollBar.triggerAction) | |||||
| #sb.sliderMoved.connect(self.fScrollBar.) | |||||
| #sb.sliderPressed.connect(self.fScrollBar.) | |||||
| #sb.sliderReleased.connect(self.fScrollBar.) | |||||
| sb.rangeChanged.connect(self.fScrollBar.setRange) | |||||
| sb.valueChanged.connect(self.fScrollBar.setValue) | |||||
| self.fScrollBar.rangeChanged.connect(sb.setRange) | |||||
| self.fScrollBar.valueChanged.connect(sb.setValue) | |||||
| self.fLayout.addWidget(self.fPadLeft) | |||||
| self.fLayout.addWidget(self.fRack) | |||||
| self.fLayout.addWidget(self.fPadRight) | |||||
| self.fLayout.addWidget(self.fScrollBar) | |||||
| # ------------------------------------------------------------- | # ------------------------------------------------------------- | ||||
| # Internal stuff | # Internal stuff | ||||
| @@ -90,27 +143,25 @@ class CarlaRackW(QListWidget): | |||||
| # ------------------------------------------------------------- | # ------------------------------------------------------------- | ||||
| # Set-up GUI stuff | # Set-up GUI stuff | ||||
| self.setMinimumWidth(644) # required by zita, 591 was old value | |||||
| self.setSortingEnabled(False) | |||||
| self.currentRowChanged.connect(self.slot_currentRowChanged) | |||||
| #app = QApplication.instance() | #app = QApplication.instance() | ||||
| #pal1 = app.palette().base().color() | #pal1 = app.palette().base().color() | ||||
| #pal2 = app.palette().button().color() | #pal2 = app.palette().button().color() | ||||
| #col1 = "stop:0 rgb(%i, %i, %i)" % (pal1.red(), pal1.green(), pal1.blue()) | #col1 = "stop:0 rgb(%i, %i, %i)" % (pal1.red(), pal1.green(), pal1.blue()) | ||||
| #col2 = "stop:1 rgb(%i, %i, %i)" % (pal2.red(), pal2.green(), pal2.blue()) | #col2 = "stop:1 rgb(%i, %i, %i)" % (pal2.red(), pal2.green(), pal2.blue()) | ||||
| #self.setStyleSheet(""" | |||||
| #QListWidget { | |||||
| #background-color: qlineargradient(spread:pad, | |||||
| #x1:0.0, y1:0.0, | |||||
| #x2:0.2, y2:1.0, | |||||
| #%s, | |||||
| #%s | |||||
| #); | |||||
| #} | |||||
| #""" % (col1, col2)) | |||||
| self.setStyleSheet(""" | |||||
| QLabel#PadLeft { | |||||
| background-image: url(:/bitmaps/padding_left.png); | |||||
| background-repeat: repeat-y; | |||||
| } | |||||
| QLabel#PadRight { | |||||
| background-image: url(:/bitmaps/padding_right.png); | |||||
| background-repeat: repeat-y; | |||||
| } | |||||
| QListWidget { | |||||
| background-color: black; | |||||
| } | |||||
| """) | |||||
| # ------------------------------------------------------------- | # ------------------------------------------------------------- | ||||
| # Connect actions to functions | # Connect actions to functions | ||||
| @@ -153,7 +204,7 @@ class CarlaRackW(QListWidget): | |||||
| # ----------------------------------------------------------------- | # ----------------------------------------------------------------- | ||||
| def addPlugin(self, pluginId, isProjectLoading): | def addPlugin(self, pluginId, isProjectLoading): | ||||
| pitem = CarlaRackItem(self, pluginId) | |||||
| pitem = CarlaRackItem(self.fRack, pluginId) | |||||
| self.fPluginList.append(pitem) | self.fPluginList.append(pitem) | ||||
| self.fPluginCount += 1 | self.fPluginCount += 1 | ||||
| @@ -172,7 +223,7 @@ class CarlaRackW(QListWidget): | |||||
| self.fPluginCount -= 1 | self.fPluginCount -= 1 | ||||
| self.fPluginList.pop(pluginId) | self.fPluginList.pop(pluginId) | ||||
| self.takeItem(pluginId) | |||||
| self.fRack.takeItem(pluginId) | |||||
| pitem.close() | pitem.close() | ||||
| del pitem | del pitem | ||||
| @@ -201,7 +252,7 @@ class CarlaRackW(QListWidget): | |||||
| return | return | ||||
| def removeAllPlugins(self): | def removeAllPlugins(self): | ||||
| while (self.takeItem(0)): | |||||
| while self.fRack.takeItem(0): | |||||
| pass | pass | ||||
| for i in range(self.fPluginCount): | for i in range(self.fPluginCount): | ||||