From 8be04a98d89fa794d0a7e061a04b42682bc8ba15 Mon Sep 17 00:00:00 2001 From: tsufeki Date: Sun, 8 Mar 2015 18:57:45 +0100 Subject: [PATCH] Add status bar in the browser window. --- qygmy/browser.py | 10 +++ qygmy/formatter.py | 13 +++- qygmy/translations/qygmy_pl.ts | 137 +++++++++++++++++---------------- qygmy/ui/browser.ui | 14 ++++ 4 files changed, 107 insertions(+), 67 deletions(-) diff --git a/qygmy/browser.py b/qygmy/browser.py index 7191806..d72f053 100644 --- a/qygmy/browser.py +++ b/qygmy/browser.py @@ -17,17 +17,23 @@ def setup_ui(self): self.ui = Ui_browser() self.ui.setupUi(self) self.setup_icons() + self.ui.statusbar.addWidget(self.ui.status, 1) self.ui.database.setup(self.srv.database) self.srv.database.current.changed.connect(self.ui.dbpath.set_path) + self.srv.database.current.changed.connect(self.update_status) self.ui.dbpath.clicked.connect(self.srv.database.cd) self.ui.playlists.setup(self.srv.playlists) self.srv.playlists.current.changed.connect(self.ui.plpath.set_path) + self.srv.playlists.current.changed.connect(self.update_status) self.ui.plpath.clicked.connect(self.srv.playlists.cd) self.ui.search_results.setup(self.srv.search) + self.srv.search.current.changed.connect(self.update_status) self.ui.search_button.setDefaultAction(self.ui.search) self.ui.what.setModel(self.srv.search.search_tags) self.ui.what.model().modelReset.connect(lambda: self.ui.what.setCurrentIndex(0)) self.srv.state.changed.connect(self.on_state_changed) + self.srv.state.changed.connect(self.update_status) + self.ui.tabs.currentChanged.connect(self.update_status) self.ui.updatedb.triggered.connect(self.srv.updatedb) self.ui.close.triggered.connect(self.close) @@ -63,6 +69,10 @@ def current_view(self): elif i == 1: return self.ui.playlists elif i == 2: return self.ui.search_results + def update_status(self, *_): + self.ui.status.setText(self.main.fmt.browser_status(self.srv.state.value, + self.current_view.model().total_length, len(self.current_view.model()))) + def closeEvent(self, e): self.main.settings['guistate']['browser_geometry'] = str(self.saveGeometry().toBase64()) self.main.settings['guistate']['browser_tab'] = str(self.ui.tabs.currentIndex()) diff --git a/qygmy/formatter.py b/qygmy/formatter.py index a55a966..4512443 100644 --- a/qygmy/formatter.py +++ b/qygmy/formatter.py @@ -39,6 +39,12 @@ def retranslate(self): '$if($gt(%totallength%,0),' '\\, $time(%totallength%) total,))' ), + 'browser_status': self.tr( + '$if(%disconnected%,,' + '%totalcount% items' + '$if($gt(%totallength%,0),' + '\\, $time(%totallength%) total,))' + ), 'statistics': ( (self.tr('MPD version:'), self.tr('%mpdversion%')), (self.tr('Songs:'), self.tr('%songs%')), @@ -62,7 +68,7 @@ def retranslate(self): (self.tr('Last modified:'), self.tr('%lastmodified%')), (self.tr('Composer:'), self.tr('%composer%')), (self.tr('Performer:'), self.tr('%performer%')), - ) + ), } standard_tags = {'file', 'directory', 'playlist', 'filename', 'name', 'title', @@ -221,6 +227,11 @@ def status(self, state, totallength, totalcount): context.update(self._prepare_state(state)) return self.render('status', context) + def browser_status(self, state, totallength, totalcount): + context = {'totallength': str(totallength), 'totalcount': str(totalcount)} + context.update(self._prepare_state(state)) + return self.render('browser_status', context) + def info_dialog(self, name, info): unrecognized = [] if name == 'details': diff --git a/qygmy/translations/qygmy_pl.ts b/qygmy/translations/qygmy_pl.ts index ab02fab..3873845 100644 --- a/qygmy/translations/qygmy_pl.ts +++ b/qygmy/translations/qygmy_pl.ts @@ -4,7 +4,7 @@ Browser - + Details Szczegóły @@ -32,200 +32,205 @@ $if(%disconnected%,,%totalcount% utworów$if($gt(%totallength%,0),\, razem $time(%totallength%),)) - + Songs: Plików: - + %songs% - + Albums: Albumów: - + %albums% - + Artists: Artystów: - + %artists% - + Uptime: - + $time(%uptime%) - + DB playtime: - + $time(%db_playtime%) - + This instance: - + $time(%playtime%) - + %file% - + Title: Tytuł: - + %title% - + Artist: Artysta: - + %artist% - + Album: Album: - + %album% - + Date: Data: - + %date% - + Track: Ścieżka: - + %track%$if(%totaltracks%, / %totaltracks%,) - + Disc: Dysk: - + %disc%$if(%totaldiscs%, / %totaldiscs%,) - + Comment: Komentarz: - + %comment% - + Length: Czas: - + $if(%length%,$time(%length%),) - + Last modified: Ostatnio zmodyfikowany: - + %lastmodified% - + Composer: Kompozytor: - + %composer% - + Performer: Wykonawca: - + %performer% - + MPD version: Wersja MPD: - + %mpdversion% - + Name: Nazwa: - + %name% + + + $if(%disconnected%,,%totalcount% items$if($gt(%totallength%,0),\, $time(%totallength%) total,)) + $if(%disconnected%,,%totalcount% elementów$if($gt(%totallength%,0),\, $time(%totallength%) razem,)) + Playlists @@ -378,132 +383,132 @@ browser - + Music database Baza muzyki - + &Database &Baza - + &Playlists &Listy - + Tag to search Szukany tag - + &Search &Szukaj - + &Add selected &Dodaj zaznaczone - + Add selected songs to the current playlist Dodaj zaznaczone utwory do głównej listy - + &Close &Zamknij - + Close this window Zamknij to okno - + Ctrl+W - + Search Szukaj - + &Remove selected &Usuń zaznaczone - + Del - + Add selected and &play Dodaj zaznaczone i &odtwarzaj - + Shift+Return - + Song &details... &Szczegóły... - + Ctrl+I - + Re&name Zmień &nazwę - + F2 - + R&eplace the current playlist Za&stąp główną listę - + Rep&lace and play Zas&tąp i odtwarzaj - + C&opy selected &Kopiuj zaznaczone - + Add with &high priority Dodaj z &wysokim priorytetem - + Update the data&base Odśwież &bazę - + Add &URL... Dodaj U&RL... - + Ctrl+U diff --git a/qygmy/ui/browser.ui b/qygmy/ui/browser.ui index dda2ed2..4ca293f 100644 --- a/qygmy/ui/browser.ui +++ b/qygmy/ui/browser.ui @@ -334,6 +334,19 @@ + + + + + 0 + 0 + + + + + + + @@ -390,6 +403,7 @@ + &Add selected