Browse Source

Add a pixmap padding to the rack list

tags/1.9.4
falkTX 11 years ago
parent
commit
ad500a4fd7
1 changed files with 73 additions and 22 deletions
  1. +73
    -22
      source/carla_rack.py

+ 73
- 22
source/carla_rack.py View File

@@ -2,7 +2,7 @@
# -*- coding: utf-8 -*-

# 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
# modify it under the terms of the GNU General Public License as
@@ -20,7 +20,7 @@
# Imports (Global)

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)
@@ -70,12 +70,65 @@ class CarlaRackItem(QListWidgetItem):
#painter.restore()
#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

class CarlaRackW(QListWidget):
class CarlaRackW(QFrame):
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
@@ -90,27 +143,25 @@ class CarlaRackW(QListWidget):
# -------------------------------------------------------------
# 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()
#pal1 = app.palette().base().color()
#pal2 = app.palette().button().color()
#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())

#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
@@ -153,7 +204,7 @@ class CarlaRackW(QListWidget):
# -----------------------------------------------------------------

def addPlugin(self, pluginId, isProjectLoading):
pitem = CarlaRackItem(self, pluginId)
pitem = CarlaRackItem(self.fRack, pluginId)

self.fPluginList.append(pitem)
self.fPluginCount += 1
@@ -172,7 +223,7 @@ class CarlaRackW(QListWidget):
self.fPluginCount -= 1
self.fPluginList.pop(pluginId)

self.takeItem(pluginId)
self.fRack.takeItem(pluginId)

pitem.close()
del pitem
@@ -201,7 +252,7 @@ class CarlaRackW(QListWidget):
return

def removeAllPlugins(self):
while (self.takeItem(0)):
while self.fRack.takeItem(0):
pass

for i in range(self.fPluginCount):


Loading…
Cancel
Save