Started the documents menu. For now it just allows to add and remove a document to your documents list

This commit is contained in:
Manuel Cortez 2019-02-26 08:38:49 -06:00
parent f1f86e04e6
commit a6291b3ee2
2 changed files with 52 additions and 19 deletions

View File

@ -503,24 +503,6 @@ class topicBuffer(feedBuffer):
return return
a = presenters.displayTopicPresenter(session=self.session, postObject=post, group_id=self.kwargs["group_id"], interactor=interactors.displayPostInteractor(), view=views.displayTopic()) a = presenters.displayTopicPresenter(session=self.session, postObject=post, group_id=self.kwargs["group_id"], interactor=interactors.displayPostInteractor(), view=views.displayTopic())
class documentCommunityBuffer(feedBuffer):
def create_tab(self, parent):
self.tab = home.documentCommunityTab(parent)
self.connect_events()
self.tab.name = self.name
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 open_post(self, *args, **kwargs):
""" Opens the currently focused post."""
post = self.get_post()
if post == None:
return
class documentBuffer(feedBuffer): class documentBuffer(feedBuffer):
can_get_items = False can_get_items = False
@ -533,6 +515,8 @@ class documentBuffer(feedBuffer):
def connect_events(self): def connect_events(self):
super(documentBuffer, self).connect_events() super(documentBuffer, self).connect_events()
# Check if we have a load button in the tab, because documents community buffers don't include it.
if hasattr(self.tab, "load"):
widgetUtils.connect_event(self.tab.load, widgetUtils.BUTTON_PRESSED, self.load_documents) widgetUtils.connect_event(self.tab.load, widgetUtils.BUTTON_PRESSED, self.load_documents)
def load_documents(self, *args, **kwargs): def load_documents(self, *args, **kwargs):
@ -541,6 +525,42 @@ class documentBuffer(feedBuffer):
self.tab.load.Enable(False) self.tab.load.Enable(False)
wx.CallAfter(self.get_items) wx.CallAfter(self.get_items)
def get_menu(self):
p = self.get_post()
if p == None:
return
if p["owner_id"] == self.session.user_id:
added = True
else:
added = False
m = menus.documentMenu(added)
widgetUtils.connect_event(m, widgetUtils.MENU, self.add_remove_document, menuitem=m.action)
return m
def add_remove_document(self, *args, **kwargs):
p = self.get_post()
if p == None:
return
if p["owner_id"] == self.session.user_id:
result = self.session.vk.client.docs.delete(owner_id=p["owner_id"], doc_id=p["id"])
if result == 1:
output.speak(_("The document has been successfully deleted."))
self.session.db[self.name]["items"].pop(self.tab.list.get_selected())
self.tab.list.remove_item(self.tab.list.get_selected())
else:
result = self.session.vk.client.docs.add(owner_id=p["owner_id"], doc_id=p["id"])
output.speak(_("The document has been successfully added."))
class documentCommunityBuffer(documentBuffer):
can_get_items = True
def create_tab(self, parent):
self.tab = home.documentCommunityTab(parent)
self.connect_events()
self.tab.name = self.name
if hasattr(self, "can_post") and self.can_post == False and hasattr(self.tab, "post"):
self.tab.post.Enable(False)
class audioBuffer(feedBuffer): class audioBuffer(feedBuffer):
""" this buffer was supposed to be used with audio elements """ this buffer was supposed to be used with audio elements
but is deprecated as VK removed its audio support for third party apps.""" but is deprecated as VK removed its audio support for third party apps."""

View File

@ -1,8 +1,11 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
""" This module contains all context menus needed to be displayed in different sections. Basically any menu that is bigger than 2 menu items should be here."""
from __future__ import unicode_literals from __future__ import unicode_literals
import wx import wx
class postMenu(wx.Menu): class postMenu(wx.Menu):
""" Display a menu with actions related to posts in the news feed or walls. """
def __init__(self, can_delete=False, *args, **kwargs): def __init__(self, can_delete=False, *args, **kwargs):
super(postMenu, self).__init__(*args, **kwargs) super(postMenu, self).__init__(*args, **kwargs)
self.open = wx.MenuItem(self, wx.NewId(), _("Open")) self.open = wx.MenuItem(self, wx.NewId(), _("Open"))
@ -74,6 +77,16 @@ class peopleMenu(wx.Menu):
self.add = wx.MenuItem(self, wx.NewId(), _("Add to friends")) self.add = wx.MenuItem(self, wx.NewId(), _("Add to friends"))
self.Append(self.add) self.Append(self.add)
class documentMenu(wx.Menu):
def __init__(self, added=False, *args, **kwargs):
super(documentMenu, self).__init__(*args, **kwargs)
self.view_info = self.Append(wx.NewId(), _("View information"))
self.download = self.Append(wx.NewId(), _("Download document"))
if added == True:
self.action = self.Append(wx.NewId(), _("Remove from my documents"))
else:
self.action = self.Append(wx.NewId(), _("Add to my documents"))
class commentMenu(wx.Menu): class commentMenu(wx.Menu):
def __init__(self, *args, **kwargs): def __init__(self, *args, **kwargs):
super(commentMenu, self).__init__(*args, **kwargs) super(commentMenu, self).__init__(*args, **kwargs)