From 194ca2d3801ac8f763f584725731f46e788a1c68 Mon Sep 17 00:00:00 2001 From: Manuel Cortez Date: Tue, 30 Apr 2019 17:36:53 -0500 Subject: [PATCH] Implemented a selection control in audio buffers (not working yet) --- src/controller/buffers.py | 18 +++++++++------- src/sessionmanager/session.py | 5 +++++ src/sounds/default/checked.ogg | Bin 0 -> 5579 bytes src/sounds/default/selected.ogg | Bin 0 -> 8692 bytes src/sounds/default/unchecked.ogg | Bin 0 -> 6475 bytes src/widgetUtils/wxUtils.py | 35 ++++++++++++++++++++++++------- src/wxUI/tabs/home.py | 2 +- 7 files changed, 43 insertions(+), 17 deletions(-) create mode 100644 src/sounds/default/checked.ogg create mode 100644 src/sounds/default/selected.ogg create mode 100644 src/sounds/default/unchecked.ogg diff --git a/src/controller/buffers.py b/src/controller/buffers.py index a21dc00..547591d 100644 --- a/src/controller/buffers.py +++ b/src/controller/buffers.py @@ -373,7 +373,7 @@ class baseBuffer(object): else: return [post["source_id"]] - def onFocus(self, *args,**kwargs): + def onFocus(self, event, *args,**kwargs): """ Function executed when the item in a list is selected. For this buffer it updates the date of posts in the list.""" post = self.get_post() @@ -382,6 +382,7 @@ class baseBuffer(object): original_date = arrow.get(post["date"]) created_at = original_date.humanize(locale=languageHandler.curLang[:2]) self.tab.list.list.SetItem(self.tab.list.get_selected(), 2, created_at) + event.Skip() def open_in_browser(self, *args, **kwargs): post = self.get_post() @@ -508,8 +509,8 @@ class topicBuffer(feedBuffer): if hasattr(self, "can_post") and self.can_post == False and hasattr(self.tab, "post"): self.tab.post.Enable(False) - def onFocus(self, *args, **kwargs): - pass + def onFocus(self, event, *args, **kwargs): + event.Skip() def open_post(self, *args, **kwargs): """ Opens the currently focused post.""" @@ -539,13 +540,14 @@ class documentBuffer(feedBuffer): if hasattr(self, "can_post") and self.can_post == False and hasattr(self.tab, "post"): self.tab.post.Enable(False) - def onFocus(self, *args,**kwargs): + def onFocus(self, event, *args,**kwargs): post = self.get_post() if post == None: return original_date = arrow.get(post["date"]) created_at = original_date.humanize(locale=languageHandler.curLang[:2]) self.tab.list.list.SetItem(self.tab.list.get_selected(), 4, created_at) + event.Skip() def connect_events(self): super(documentBuffer, self).connect_events() @@ -713,8 +715,8 @@ class audioBuffer(feedBuffer): # Translators: Some buffers can't use the get previous item feature due to API limitations. output.speak(_("This buffer doesn't support getting more items.")) - def onFocus(self, *args, **kwargs): - pass + def onFocus(self, event, *args, **kwargs): + event.Skip() def add_to_library(self, *args, **kwargs): post = self.get_post() @@ -879,8 +881,8 @@ class videoBuffer(feedBuffer): # Translators: Some buffers can't use the get previous item feature due to API limitations. output.speak(_("This buffer doesn't support getting more items.")) - def onFocus(self, *args, **kwargs): - pass + def onFocus(self, event, *args, **kwargs): + event.Skip() def add_to_library(self, *args, **kwargs): post = self.get_post() diff --git a/src/sessionmanager/session.py b/src/sessionmanager/session.py index 63f0b28..f8dc1f1 100644 --- a/src/sessionmanager/session.py +++ b/src/sessionmanager/session.py @@ -115,9 +115,14 @@ class vkSession(object): log.debug("Creating config file %s" % (file_,)) self.settings = Configuration(os.path.join(paths.config_path(), file_), os.path.join(paths.app_path(), "session.defaults")) self.soundplayer = sound.soundSystem(config.app["sound"]) + pub.subscribe(self.play_sound, "play-sound") # except: # log.exception("The session configuration has failed.") + def play_sound(self, sound): + print(sound) + self.soundplayer.play(sound) + def login(self): """ Logging in VK.com. This is basically the first method interacting with VK. """ # If user is already logged in, we should skip this method. diff --git a/src/sounds/default/checked.ogg b/src/sounds/default/checked.ogg new file mode 100644 index 0000000000000000000000000000000000000000..82ebc6733ea04329045087f4acb4c56b73ae807c GIT binary patch literal 5579 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%0AK)#dz8QSRO~4QfJttE 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 x+b5#e?~QsNti9#i`f{VHo~OK4-d3tl(A@