From 00ebcb09ea035023b6486541148364d4c1d9a391 Mon Sep 17 00:00:00 2001 From: Keith Edmunds Date: Sat, 10 Apr 2021 13:54:04 +0100 Subject: [PATCH] Implement test menu and functions --- app/music.py | 5 +++++ app/musicmuster.py | 34 +++++++++++++++++++++++++++++++++- app/playlists.py | 4 ++-- app/ui/main_window.ui | 25 +++++++++++++++++++++++++ 4 files changed, 65 insertions(+), 3 deletions(-) diff --git a/app/music.py b/app/music.py index e2a1108..e580315 100644 --- a/app/music.py +++ b/app/music.py @@ -92,3 +92,8 @@ class Music: return self.player.is_playing() else: return False + + def set_position(self, ms): + "Set current play time in milliseconds from start" + + return self.player.set_time(ms) diff --git a/app/musicmuster.py b/app/musicmuster.py index 46d375a..664331d 100755 --- a/app/musicmuster.py +++ b/app/musicmuster.py @@ -4,7 +4,7 @@ import sys from datetime import datetime, timedelta -from log import EXCEPTION +from log import DEBUG, EXCEPTION from PyQt5.QtCore import QTimer from PyQt5.QtWidgets import ( @@ -33,6 +33,8 @@ class Window(QMainWindow, Ui_MainWindow): self.connect_signals_slots() self.disable_play_next_controls() + self.menuTest.menuAction().setVisible(Config.TESTMODE) + record = Settings.get_int("mainwindow_x") x = record.f_int or 1 record = Settings.get_int("mainwindow_y") @@ -89,9 +91,11 @@ class Window(QMainWindow, Ui_MainWindow): "Don't allow window to close when a track is playing" if self.playlist.music.playing(): + DEBUG("closeEvent() ignored as music is playing") event.ignore() # TODO notify user else: + DEBUG("closeEvent() accepted") event.accept() def connect_signals_slots(self): @@ -104,6 +108,9 @@ class Window(QMainWindow, Ui_MainWindow): self.actionSearch_database.triggered.connect(self.search_database) self.actionSelectPlaylist.triggered.connect(self.select_playlist) self.actionSkip_next.triggered.connect(self.play_next) + self.actionSkipToEnd.triggered.connect(self.test_skip_to_end) + self.actionSkipToFade.triggered.connect(self.test_skip_to_fade) + self.actionTestFunction.triggered.connect(self.test_function) self.btnAddFile.clicked.connect(self.add_file) self.btnInsertNote.clicked.connect(self.insert_note) self.btnPrevious.clicked.connect(self.play_previous) @@ -175,6 +182,31 @@ class Window(QMainWindow, Ui_MainWindow): self.playlist.set_selected_as_next() self.update_headers() + def test_function(self): + "Placeholder for test function" + + pass + + def test_skip_to_end(self): + "Skip current track to 1 second before silence" + + if not self.playlist.music.playing(): + return + + self.playlist.music.set_position( + self.playlist.get_current_silence_at() - 1000 + ) + + def test_skip_to_fade(self): + "Skip current track to 1 second before fade" + + if not self.playlist.music.playing(): + return + + self.playlist.music.set_position( + self.playlist.get_current_fade_at() - 1000 + ) + def tick(self): """ Update screen diff --git a/app/playlists.py b/app/playlists.py index 9bcfe8a..806a628 100644 --- a/app/playlists.py +++ b/app/playlists.py @@ -600,10 +600,10 @@ class Playlist(QTableWidget): ) try: running_end_time = datetime.strptime(self.item( - row, self.COL_ENDTIME).text(), "%H:%M:%S") + current, self.COL_ENDTIME).text(), "%H:%M:%S") except AttributeError: pass - self.set_row_bold(row) + self.set_row_bold(current) for row in range(self.rowCount()): if row == next: diff --git a/app/ui/main_window.ui b/app/ui/main_window.ui index d613872..5118bf1 100644 --- a/app/ui/main_window.ui +++ b/app/ui/main_window.ui @@ -741,9 +741,19 @@ border: 1px solid rgb(85, 87, 83); + + + TestMode + + + + + + + @@ -853,6 +863,21 @@ border: 1px solid rgb(85, 87, 83); &New playlist + + + Test function + + + + + Skip to start of fade + + + + + Skip to end of track + +