feat: per-strip CC/CH translation, layout groups, show/hide improvements
This commit is contained in:
+11
-9
@@ -4,7 +4,7 @@ from PyQt6.QtWidgets import (
|
||||
QWidget, QVBoxLayout, QHBoxLayout, QPushButton,
|
||||
QLabel, QSpinBox, QLineEdit, QFrame, QSizePolicy
|
||||
)
|
||||
from PyQt6.QtCore import Qt, QEvent
|
||||
from PyQt6.QtCore import Qt, QEvent, QTimer
|
||||
|
||||
from palette import PALETTE_HEX, PALETTE_VIVID
|
||||
from styles import TITLE_STYLE
|
||||
@@ -24,13 +24,13 @@ class TransportWidget(QWidget):
|
||||
self.toggle_state = False
|
||||
self.hw_cc = None
|
||||
self.is_learning = False
|
||||
self.current_color = "transparent"
|
||||
self.current_color = PALETTE_HEX.get("Gray", "#263238")
|
||||
self.color_name = "Gray"
|
||||
self.on_select_callback = None
|
||||
self.on_zone_change_callback = None
|
||||
self._label = label
|
||||
|
||||
self.setSizePolicy(QSizePolicy.Policy.Fixed, QSizePolicy.Policy.Preferred)
|
||||
self.setSizePolicy(QSizePolicy.Policy.Fixed, QSizePolicy.Policy.Maximum)
|
||||
self.setFixedWidth(100)
|
||||
|
||||
outer = QVBoxLayout(self)
|
||||
@@ -57,6 +57,7 @@ class TransportWidget(QWidget):
|
||||
self.cc_input_lbl = QLabel("")
|
||||
self.cc_input_lbl.setAlignment(Qt.AlignmentFlag.AlignHCenter)
|
||||
self.cc_input_lbl.setStyleSheet("background-color: #000000; color: #888888; font-size: 10px; padding: 1px;")
|
||||
self.cc_input_lbl.setFixedHeight(16)
|
||||
inner.addWidget(self.cc_input_lbl)
|
||||
|
||||
# CC spin
|
||||
@@ -71,6 +72,7 @@ class TransportWidget(QWidget):
|
||||
self.cc_output_lbl = QLabel(f"Out CC{default_cc} [--]")
|
||||
self.cc_output_lbl.setAlignment(Qt.AlignmentFlag.AlignHCenter)
|
||||
self.cc_output_lbl.setStyleSheet("background-color: #000000; color: #00e676; font-size: 10px; padding: 1px;")
|
||||
self.cc_output_lbl.setFixedHeight(16)
|
||||
inner.addWidget(self.cc_output_lbl)
|
||||
|
||||
# MIDI / OSC mode selector
|
||||
@@ -114,10 +116,9 @@ class TransportWidget(QWidget):
|
||||
# OSC address field (hidden by default)
|
||||
self.osc_addr_edit = QLineEdit("/play")
|
||||
self.osc_addr_edit.setAlignment(Qt.AlignmentFlag.AlignHCenter)
|
||||
self.osc_addr_edit.setFixedWidth(75)
|
||||
self.osc_addr_edit.setPlaceholderText("/address")
|
||||
self.osc_addr_edit.setVisible(False)
|
||||
inner.addWidget(self.osc_addr_edit, alignment=Qt.AlignmentFlag.AlignHCenter)
|
||||
inner.addWidget(self.osc_addr_edit)
|
||||
|
||||
self.output_mode = "midi" # "midi" or "osc"
|
||||
|
||||
@@ -140,6 +141,7 @@ class TransportWidget(QWidget):
|
||||
self.title_edit = QLineEdit(label)
|
||||
self.title_edit.setAlignment(Qt.AlignmentFlag.AlignHCenter)
|
||||
self.title_edit.setStyleSheet(TITLE_STYLE)
|
||||
self.title_edit.textChanged.connect(self.btn.setText)
|
||||
inner.addWidget(self.title_edit)
|
||||
|
||||
# Color swatch
|
||||
@@ -170,10 +172,10 @@ class TransportWidget(QWidget):
|
||||
inner.addWidget(self.zone_btn)
|
||||
|
||||
# Separator + ID label
|
||||
id_sep = QWidget()
|
||||
id_sep.setFixedHeight(1)
|
||||
id_sep.setStyleSheet("background-color: #3a3a3a;")
|
||||
inner.addWidget(id_sep)
|
||||
self.id_sep = QWidget()
|
||||
self.id_sep.setFixedHeight(1)
|
||||
self.id_sep.setStyleSheet("background-color: #3a3a3a;")
|
||||
inner.addWidget(self.id_sep)
|
||||
|
||||
self.id_label = QLabel("")
|
||||
self.id_label.setAlignment(Qt.AlignmentFlag.AlignHCenter)
|
||||
|
||||
Reference in New Issue
Block a user