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;
+
+
@@ -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