From f1eb640564057957102e542db3beab742d963014 Mon Sep 17 00:00:00 2001 From: Manuel Cortez Date: Thu, 2 May 2019 05:57:49 -0500 Subject: [PATCH] Select songs with spacebar and play audio from selected tracks has been implemented --- src/controller/buffers.py | 28 +++++++++++----------------- src/sessionmanager/session.py | 1 - src/widgetUtils/wxUtils.py | 8 +++----- 3 files changed, 14 insertions(+), 23 deletions(-) diff --git a/src/controller/buffers.py b/src/controller/buffers.py index 547591d..a0b2af8 100644 --- a/src/controller/buffers.py +++ b/src/controller/buffers.py @@ -617,9 +617,6 @@ class documentCommunityBuffer(documentBuffer): self.tab.post.Enable(False) class audioBuffer(feedBuffer): - """ this buffer was supposed to be used with audio elements - but is deprecated as VK removed its audio support for third party apps.""" - def create_tab(self, parent): self.tab = home.audioTab(parent) self.tab.name = self.name @@ -628,7 +625,7 @@ class audioBuffer(feedBuffer): self.tab.post.Enable(True) def get_event(self, ev): - if ev.GetKeyCode() == wx.WXK_RETURN: event = "play_audio_from_keystroke" + if ev.GetKeyCode() == wx.WXK_RETURN: event = "play_audio" else: event = None ev.Skip() @@ -645,19 +642,16 @@ class audioBuffer(feedBuffer): super(audioBuffer, self).connect_events() def play_audio(self, *args, **kwargs): - if player.player.stream != None: - return player.player.pause() - selected = self.tab.list.get_selected() - if selected == -1: - selected = 0 - pub.sendMessage("play", object=self.session.db[self.name]["items"][selected]) - return True - - def play_audio_from_keystroke(self, *args, **kwargs): - selected = self.tab.list.get_selected() - if selected == -1: - selected = 0 - pub.sendMessage("play", object=self.session.db[self.name]["items"][selected]) + if player.player.check_is_playing(): + return pub.sendMessage("pause") + selected = self.tab.list.get_multiple_selection() + if len(selected) == 0: + return + elif len(selected) == 1: + pub.sendMessage("play", object=self.session.db[self.name]["items"][selected[0]]) + else: + selected_audios = [self.session.db[self.name]["items"][item] for item in selected] + pub.sendMessage("play-all", list_of_songs=selected_audios) return True def play_next(self, *args, **kwargs): diff --git a/src/sessionmanager/session.py b/src/sessionmanager/session.py index f8dc1f1..eef52aa 100644 --- a/src/sessionmanager/session.py +++ b/src/sessionmanager/session.py @@ -120,7 +120,6 @@ class vkSession(object): # log.exception("The session configuration has failed.") def play_sound(self, sound): - print(sound) self.soundplayer.play(sound) def login(self): diff --git a/src/widgetUtils/wxUtils.py b/src/widgetUtils/wxUtils.py index 67abdb3..4d2314c 100644 --- a/src/widgetUtils/wxUtils.py +++ b/src/widgetUtils/wxUtils.py @@ -215,13 +215,11 @@ class multiselectionList(list): for i in range(0, len(self.columns)): self.list.InsertColumn(i, "%s" % (self.columns[i])) - def get_selected(self): + def get_multiple_selection(self): selected = [] for item in range(0, self.list.GetItemCount()): if self.list.IsChecked(item): selected.append(item) - if len(selected) == 1: - return selected - elif len(selected) == 0: - return self.list.GetFocusedItem() + if len(selected) == 0 and self.list.GetFocusedItem() != -1: + selected.append(self.list.GetFocusedItem()) return selected \ No newline at end of file