diff --git a/data/ui/gtk.menu.ui b/data/ui/gtk.menu.ui new file mode 100644 index 0000000..b944502 --- /dev/null +++ b/data/ui/gtk.menu.ui @@ -0,0 +1,75 @@ + + + +
+ + win.connect + Connect + <Primary>c + + + win.play + Play + <Primary>p + + + win.clear-playlist + Clear Playlist + <Primary>r + + + win.toggle-fullscreen + Toggle Fullscreen + F11 + + + win.search-library + Search Library + <Primary>f + +
+
+ + win.panel + Connection + 0 + <Primary>KP_1 + + + win.panel + Cover + 1 + <Primary>KP_2 + + + win.panel + Playlist + 2 + <Primary>KP_3 + + + win.panel + Library + 3 + <Primary>KP_4 + +
+
+ + win.show-help-overlay + Keyboard Shortcuts + <Primary>k + + + app.info + Info + <Primary>i + + + app.quit + Quit + <Primary>q + +
+
+
diff --git a/src/application.py b/src/application.py index 946ef9a..a33612a 100644 --- a/src/application.py +++ b/src/application.py @@ -29,15 +29,8 @@ class Application(Gtk.Application): self.set_accels_for_action('window.close', ['q']) self.set_accels_for_action('win.show-help-overlay', ['k']) self.set_accels_for_action('app.info', ['i']) - self.set_accels_for_action('win.connect', ['c']) - self.set_accels_for_action('win.play', ['p']) - self.set_accels_for_action('win.clear-playlist', ['r']) - self.set_accels_for_action('win.toggle-fullscreen', ['F11']) - self.set_accels_for_action('win.search-library', ['f']) - self.set_accels_for_action('win.panel("0")', ['KP_1']) - self.set_accels_for_action('win.panel("1")', ['KP_2']) - self.set_accels_for_action('win.panel("2")', ['KP_3']) - self.set_accels_for_action('win.panel("3")', ['KP_4']) + #self.create_action('about', self.on_about_action) + #self.create_action('preferences', self.on_preferences_action) def do_startup(self): @@ -47,6 +40,7 @@ class Application(Gtk.Application): self._set_default_settings() self._load_css() self._setup_actions() + self._load_appmenu() self._setup_adw() @@ -108,6 +102,14 @@ class Application(Gtk.Application): self.add_action(action) + def _load_appmenu(self): + builder = Gtk.Builder() + # FIXME Handle menu + #builder.set_translation_domain(Application.DOMAIN) + #builder.add_from_resource(self._get_resource_path('ui/gtk.menu.ui')) + #self.set_app_menu(builder.get_object('app-menu')) + + def _get_resource_path(self, path): return "/{}/{}".format(Application.ID.replace('.', '/'), path) diff --git a/src/client.py b/src/client.py index ac5efa2..0009b54 100644 --- a/src/client.py +++ b/src/client.py @@ -616,17 +616,16 @@ class Client(Base): def _queue_album(self, album): track_ids = [] - if album in self._albums: - self._logger.info("add album %s", album) - for track in self._albums[album].get_tracks(): - self._logger.info("addid: %r", track.get_file()) - track_id = None - track_id_response = self._parse_dict(self._call('addid', track.get_file())) - if 'id' in track_id_response: - track_id = track_id_response['id'] - self._logger.debug("track id: %r", track_id) - if track_id is not None: - track_ids.append(track_id) + self._logger.info("add album %s", album) + for track in album.get_tracks(): + self._logger.info("addid: %r", track.get_file()) + track_id = None + track_id_response = self._parse_dict(self._call('addid', track.get_file())) + if 'id' in track_id_response: + track_id = track_id_response['id'] + self._logger.debug("track id: %r", track_id) + if track_id is not None: + track_ids.append(track_id) return track_ids