Implemented buffed removal. Only works with audio searches at the moment

This commit is contained in:
2016-03-27 00:11:52 -06:00
parent 6914756719
commit 6a3ddaa489
4 changed files with 39 additions and 13 deletions

View File

@@ -5,10 +5,12 @@ import messages
import utils
import posts
import player
import output
from wxUI.tabs import home
from pubsub import pub
from sessionmanager import session
from mysc.thread_utils import call_threaded
from wxUI import commonMessages
class baseBuffer(object):
""" a basic representation of a buffer. Other buffers should be derived from this class"""
@@ -117,6 +119,8 @@ class baseBuffer(object):
def pause_audio(self, *args, **kwargs):
player.player.pause()
def remove_buffer(self): return False
class feedBuffer(baseBuffer):
def get_items(self, show_nextpage=False):
@@ -161,6 +165,19 @@ class audioBuffer(feedBuffer):
audios = [i for i in self.session.db[self.name]["items"][selected:]]
pub.sendMessage("play-audios", audios=audios)
def remove_buffer(self):
if "me_audio" == self.name or "popular_audio" == self.name or "recommended_audio" == self.name:
output.speak(_(u"This buffer can't be deleted"))
return False
else:
dlg = commonMessages.remove_buffer()
if dlg == widgetUtils.YES:
self.session.db.pop(self.name)
return True
else:
return False
class empty(object):
def __init__(self, name=None, parent=None, *args, **kwargs):
@@ -171,4 +188,6 @@ class empty(object):
pass
def update(self, *args, **kwargs):
pass
pass
def remove_buffer(self): return False

View File

@@ -78,6 +78,7 @@ class Controller(object):
widgetUtils.connect_event(self.window, widgetUtils.MENU, self.check_for_updates, menuitem=self.window.check_for_updates)
widgetUtils.connect_event(self.window, widgetUtils.MENU, self.window.about_dialog, menuitem=self.window.about)
widgetUtils.connect_event(self.window, widgetUtils.MENU, self.search_audios, menuitem=self.window.search_audios)
widgetUtils.connect_event(self.window, widgetUtils.MENU,self.remove_buffer, menuitem=self.window.remove_buffer_)
def disconnect_events(self):
pub.unsubscribe(self.in_post, "posted")
@@ -152,4 +153,14 @@ class Controller(object):
self.window.insert_buffer(newbuff.tab, _(u"Search for {0}").format(q.decode("utf-8"),), self.window.search("audios"))
def update_status_bar(self, status):
self.window.change_status(status)
self.window.change_status(status)
def remove_buffer(self, *args, **kwargs):
buffer = self.get_current_buffer()
buff = self.window.search(buffer.name)
answer = buffer.remove_buffer()
if answer == False:
return
self.window.remove_buffer(buff)
self.buffers.remove(buffer)
del buffer