diff --git a/app/musicmuster.py b/app/musicmuster.py index fcc96e4..501b236 100755 --- a/app/musicmuster.py +++ b/app/musicmuster.py @@ -2,6 +2,7 @@ from log import log import argparse +import subprocess import sys import threading @@ -188,6 +189,7 @@ class Window(QMainWindow, Ui_MainWindow): self.tabPlaylist.removeTab(tab_index) def connect_signals_slots(self) -> None: + self.action_About.triggered.connect(self.about) self.action_Clear_selection.triggered.connect(self.clear_selection) self.actionClosePlaylist.triggered.connect(self.close_playlist_tab) self.actionDownload_CSV_of_played_tracks.triggered.connect( @@ -395,6 +397,28 @@ class Window(QMainWindow, Ui_MainWindow): self.stop_playing(fade=True) + def about(self) -> None: + """Get git tag and database name""" + + try: + git_tag = str( + subprocess.check_output( + ['git', 'describe'], stderr=subprocess.STDOUT + ) + ).strip('\'b\\n') + except subprocess.CalledProcessError as exc_info: + git_tag = str(exc_info.output) + + with Session() as session: + dbname = session.bind.engine.url.database + + QMessageBox.information( + self, + "About", + f"MusicMuster {git_tag}\n\nDatabase: {dbname}", + QMessageBox.Ok + ) + def get_one_track(self, session: Session) -> Optional[Tracks]: """Show dialog box to select one track and return it to caller""" diff --git a/app/ui/main_window.ui b/app/ui/main_window.ui index 8c7cc6a..17f5352 100644 --- a/app/ui/main_window.ui +++ b/app/ui/main_window.ui @@ -741,7 +741,7 @@ text-align: left; - P&laylists + &Playlists @@ -780,7 +780,7 @@ text-align: left; - Searc&h + &Search @@ -789,9 +789,16 @@ text-align: left; + + + &Help + + + + @@ -1056,6 +1063,11 @@ text-align: left; P + + + &About + + diff --git a/app/ui/main_window_ui.py b/app/ui/main_window_ui.py index 8c53f3b..4ff2762 100644 --- a/app/ui/main_window_ui.py +++ b/app/ui/main_window_ui.py @@ -350,6 +350,8 @@ class Ui_MainWindow(object): self.menuPlaylist.setObjectName("menuPlaylist") self.menuSearc_h = QtWidgets.QMenu(self.menubar) self.menuSearc_h.setObjectName("menuSearc_h") + self.menuHelp = QtWidgets.QMenu(self.menubar) + self.menuHelp.setObjectName("menuHelp") MainWindow.setMenuBar(self.menubar) self.statusbar = QtWidgets.QStatusBar(MainWindow) self.statusbar.setEnabled(True) @@ -448,6 +450,8 @@ class Ui_MainWindow(object): self.actionFind_next.setObjectName("actionFind_next") self.actionFind_previous = QtWidgets.QAction(MainWindow) self.actionFind_previous.setObjectName("actionFind_previous") + self.action_About = QtWidgets.QAction(MainWindow) + self.action_About.setObjectName("action_About") self.menuFile.addAction(self.actionNewPlaylist) self.menuFile.addAction(self.actionOpenPlaylist) self.menuFile.addAction(self.actionClosePlaylist) @@ -483,9 +487,11 @@ class Ui_MainWindow(object): self.menuSearc_h.addSeparator() self.menuSearc_h.addAction(self.actionSelect_next_track) self.menuSearc_h.addAction(self.actionSelect_previous_track) + self.menuHelp.addAction(self.action_About) self.menubar.addAction(self.menuFile.menuAction()) self.menubar.addAction(self.menuPlaylist.menuAction()) self.menubar.addAction(self.menuSearc_h.menuAction()) + self.menubar.addAction(self.menuHelp.menuAction()) self.retranslateUi(MainWindow) self.tabPlaylist.setCurrentIndex(-1) @@ -520,9 +526,10 @@ class Ui_MainWindow(object): self.label_end_timer.setText(_translate("MainWindow", "00:00")) self.btnDrop3db.setText(_translate("MainWindow", "-3dB to talk")) self.btnHidePlayed.setText(_translate("MainWindow", "Hide played")) - self.menuFile.setTitle(_translate("MainWindow", "P&laylists")) + self.menuFile.setTitle(_translate("MainWindow", "&Playlists")) self.menuPlaylist.setTitle(_translate("MainWindow", "Sho&wtime")) - self.menuSearc_h.setTitle(_translate("MainWindow", "Searc&h")) + self.menuSearc_h.setTitle(_translate("MainWindow", "&Search")) + self.menuHelp.setTitle(_translate("MainWindow", "&Help")) self.actionPlay_next.setText(_translate("MainWindow", "&Play next")) self.actionPlay_next.setShortcut(_translate("MainWindow", "Return")) self.actionSkipToNext.setText(_translate("MainWindow", "Skip to &next")) @@ -573,5 +580,6 @@ class Ui_MainWindow(object): self.actionFind_next.setShortcut(_translate("MainWindow", "N")) self.actionFind_previous.setText(_translate("MainWindow", "Find previous")) self.actionFind_previous.setShortcut(_translate("MainWindow", "P")) + self.action_About.setText(_translate("MainWindow", "&About")) from infotabs import InfoTabs import icons_rc