From 53fa9a6191c2991c763fbbc9ed5fb1cd6cb65f62 Mon Sep 17 00:00:00 2001 From: Jan Grewe Date: Wed, 29 Jan 2025 16:00:46 +0100 Subject: [PATCH] more fwd and back control buttons --- fixtracks/widgets/tracks.py | 78 +++++++++++++++++++++++++------------ 1 file changed, 54 insertions(+), 24 deletions(-) diff --git a/fixtracks/widgets/tracks.py b/fixtracks/widgets/tracks.py index 8472357..ff6e52c 100644 --- a/fixtracks/widgets/tracks.py +++ b/fixtracks/widgets/tracks.py @@ -85,8 +85,8 @@ class FilterProxyModel(QSortFilterProxyModel): class SelectionControls(QWidget): - next = Signal() - previous = Signal() + fwd = Signal(float) + back = Signal(float) assignOne = Signal() assignTwo = Signal() assignOther = Signal() @@ -96,21 +96,45 @@ class SelectionControls(QWidget): font = QFont() font.setBold(True) font.setPointSize(10) - - previousBtn = QPushButton("previous") - previousBtn.setSizePolicy(QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Expanding) - previousBtn.setToolTip("Go back to previous window (right-arrow)") - previousBtn.setEnabled(False) - previousBtn.setShortcut(Qt.Key.Key_Right) - previousBtn.clicked.connect(self.on_Previous) - previousBtn.setFont(font) - nextBtn = QPushButton("next") - nextBtn.setSizePolicy(QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Expanding) - nextBtn.setToolTip("Proceed to next window (left-arrow)") - nextBtn.setEnabled(False) - nextBtn.clicked.connect(self.on_Next) - nextBtn.setShortcut(Qt.Key.Key_Left) - nextBtn.setFont(font) + fullstep = 1.0 + halfstep = 0.5 + quarterstep = 0.25 + + backBtn = QPushButton("|<<") + backBtn.setFont(font) + backBtn.setShortcut(Qt.Key.Key_Left) + backBtn.setSizePolicy(QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Expanding) + backBtn.setToolTip(f"Go back to previous window ({backBtn.shortcut().toString()})") + backBtn.clicked.connect(lambda: self.on_Back(fullstep)) + halfstepBackBtn = QPushButton("<<") + halfstepBackBtn.setFont(font) + halfstepBackBtn.setSizePolicy(QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Expanding) + halfstepBackBtn.setShortcut(Qt.KeyboardModifier.AltModifier + Qt.Key.Key_Left) + halfstepBackBtn.setToolTip(f"Go back by half a window ({halfstepBackBtn.shortcut().toString()})") + halfstepBackBtn.clicked.connect(lambda: self.on_Back(halfstep)) + quarterstepBackBtn = QPushButton("<") + quarterstepBackBtn.setFont(font) + quarterstepBackBtn.setShortcut(Qt.KeyboardModifier.ShiftModifier + Qt.Key.Key_Left) + quarterstepBackBtn.setToolTip(f"Go back by a quarter window ({quarterstepBackBtn.shortcut().toString()})") + quarterstepBackBtn.clicked.connect(lambda: self.on_Fwd(quarterstep)) + + fwdBtn = QPushButton(">>|") + fwdBtn.setSizePolicy(QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Expanding) + fwdBtn.setShortcut(Qt.Key.Key_Right) + fwdBtn.setFont(font) + fwdBtn.setToolTip(f"Proceed to next window ({fwdBtn.shortcut().toString()})") + fwdBtn.clicked.connect(lambda: self.on_Fwd(fullstep)) + halfstepFwdBtn = QPushButton(">>") + halfstepFwdBtn.setToolTip(f"Proceed by half a window ({halfstepFwdBtn.shortcut().toString()})") + halfstepFwdBtn.setFont(font) + halfstepFwdBtn.setSizePolicy(QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Expanding) + halfstepFwdBtn.setShortcut(Qt.KeyboardModifier.AltModifier + Qt.Key.Key_Right) + halfstepFwdBtn.clicked.connect(lambda: self.on_Fwd(halfstep)) + quarterstepFwdBtn = QPushButton(">") + quarterstepFwdBtn.setToolTip(f"Proceed by a quarter window ({quarterstepFwdBtn.shortcut().toString()})") + quarterstepFwdBtn.setShortcut(Qt.KeyboardModifier.ShiftModifier + Qt.Key.Key_Right) + quarterstepFwdBtn.setFont(font) + quarterstepFwdBtn.clicked.connect(lambda: self.on_Fwd(quarterstep)) assignOneBtn = QPushButton("Track One") assignOneBtn.setSizePolicy(QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Expanding) @@ -142,8 +166,12 @@ class SelectionControls(QWidget): self._total = 0 grid = QGridLayout() - grid.addWidget(previousBtn, 0, 0, 4, 2) - grid.addWidget(nextBtn, 0, 6, 4, 2) + grid.addWidget(backBtn, 0, 0, 2, 2) + grid.addWidget(halfstepBackBtn, 0, 6, 1, 2) + grid.addWidget(quarterstepBackBtn, 0, 6, 1, 2) + grid.addWidget(fwdBtn, 0, 6, 2, 2) + grid.addWidget(halfstepFwdBtn, 2, 6, 1, 2) + grid.addWidget(quarterstepFwdBtn, 3, 6, 1, 2) grid.addWidget(QLabel("Current selection:"), 0, 2, 1, 4) grid.addWidget(QLabel("Track One:"), 1, 2, 1, 3) grid.addWidget(self.tone_selection, 1, 5, 1, 1) @@ -168,11 +196,13 @@ class SelectionControls(QWidget): else: labels[k].setText("0") - def on_Next(self): - self.next.emit() + def on_Fwd(self, stepsize): + logging.debug("SelectionControls: forward step by %.2f", stepsize) + self.fwd.emit(stepsize) - def on_Previous(self): - self.previous.emit() + def on_Back(self, stepsize): + logging.debug("SelectionControls: backward step by %.2f", stepsize) + self.back.emit(stepsize) def on_TrackOne(self): self.assignOne.emit() @@ -557,4 +587,4 @@ def main(): app.exec() if __name__ == "__main__": - main() \ No newline at end of file + main()