From 7e7fc2280149358a5b565d8e7ebf4f4d53a4fd08 Mon Sep 17 00:00:00 2001 From: falkTX Date: Tue, 29 Oct 2019 14:59:42 +0100 Subject: [PATCH] More things regarding parameter grouping --- source/frontend/carla_widgets.py | 38 ++++++++++++++++++++++++++------ source/utils/CarlaLv2Utils.hpp | 2 +- 2 files changed, 32 insertions(+), 8 deletions(-) diff --git a/source/frontend/carla_widgets.py b/source/frontend/carla_widgets.py index dfdbcdd19..f7297e310 100755 --- a/source/frontend/carla_widgets.py +++ b/source/frontend/carla_widgets.py @@ -21,7 +21,7 @@ from PyQt5.QtCore import pyqtSignal, pyqtSlot, Qt, QByteArray, QSettings, QTimer from PyQt5.QtGui import QColor, QCursor, QFontMetrics, QPainter, QPainterPath, QPalette, QPixmap -from PyQt5.QtWidgets import QDialog, QInputDialog, QLineEdit, QMenu, QScrollArea, QVBoxLayout, QWidget +from PyQt5.QtWidgets import QDialog, QGroupBox, QInputDialog, QLineEdit, QMenu, QScrollArea, QVBoxLayout, QWidget # ------------------------------------------------------------------------------------------------------------ # Imports (Custom) @@ -854,6 +854,9 @@ class PluginEdit(QDialog): 'midiCC': paramData['midiCC'], 'midiChannel': paramData['midiChannel']+1, + 'comment': paramInfo['comment'], + 'groupName': paramInfo['groupName'], + 'current': paramValue } @@ -1459,27 +1462,49 @@ class PluginEdit(QDialog): #------------------------------------------------------------------ def _createParameterWidgets(self, paramType, paramListFull, tabPageName): + groupWidgets = {} + for paramList, width in paramListFull: if len(paramList) == 0: break tabIndex = self.ui.tabWidget.count() - tabPageLayout = QVBoxLayout(self.ui.tabWidget) - tabPageLayout.setSpacing(0) - scrollArea = QScrollArea(self.ui.tabWidget) scrollArea.setWidgetResizable(True) scrollArea.setFrameStyle(0) + # FIXME + color1 = self.ui.tabWidget.palette().color(QPalette.Button).lighter(124) + color2 = self.ui.tabWidget.palette().color(QPalette.Button) + palette1 = scrollArea.palette() + palette1.setColor(QPalette.Background, color1) + palette2 = scrollArea.palette() + palette2.setColor(QPalette.Background, color1) + scrollArea.setPalette(palette1) + scrollAreaWidget = QWidget(scrollArea) scrollAreaLayout = QVBoxLayout(scrollAreaWidget) scrollAreaLayout.setSpacing(1) for paramInfo in paramList: - paramWidget = PluginParameter(scrollAreaWidget, self.host, paramInfo, self.fPluginId, tabIndex) + groupName = paramInfo['groupName'] + + if groupName: + groupLayout, groupWidget = groupWidgets.get(groupName, (None, None)) + if groupLayout is None: + groupWidget = QGroupBox(groupName, scrollAreaWidget) + groupLayout = QVBoxLayout(groupWidget) + groupWidget.setPalette(palette2) + scrollAreaLayout.addWidget(groupWidget) + groupWidgets[groupName] = (groupLayout, groupWidget) + else: + groupLayout = scrollAreaLayout + groupWidget = scrollAreaWidget + + paramWidget = PluginParameter(groupWidget, self.host, paramInfo, self.fPluginId, tabIndex) paramWidget.setLabelWidth(width) - scrollAreaLayout.addWidget(paramWidget) + groupLayout.addWidget(paramWidget) self.fParameterList.append((paramType, paramInfo['index'], paramWidget)) @@ -1492,7 +1517,6 @@ class PluginEdit(QDialog): scrollAreaLayout.addStretch() scrollArea.setWidget(scrollAreaWidget) - tabPageLayout.addWidget(scrollArea) self.ui.tabWidget.addTab(scrollArea, tabPageName) diff --git a/source/utils/CarlaLv2Utils.hpp b/source/utils/CarlaLv2Utils.hpp index 8f03c9678..38a42a6ba 100644 --- a/source/utils/CarlaLv2Utils.hpp +++ b/source/utils/CarlaLv2Utils.hpp @@ -2539,7 +2539,7 @@ const LV2_RDF_Descriptor* lv2_rdf_new(const LV2_URI uri, const bool loadPresets) portGroup.URI = portGroups.getAt(i); // TODO - portGroup.Label = carla_strdup_safe("test 1"); + portGroup.Label = carla_strdup_safe(CarlaString(1001+i)); } }