Added basics for timelines support

This commit is contained in:
Manuel Cortez 2016-04-12 15:36:30 -05:00
parent a4d4148a82
commit 69f4964158
4 changed files with 70 additions and 1 deletions

View File

@ -142,6 +142,13 @@ class baseBuffer(object):
def remove_buffer(self): return False def remove_buffer(self): return False
def get_users(self):
post = self.session.db[self.name]["items"][self.tab.list.get_selected()]
if post.has_key("type") == False:
return post["from_id"]
else:
return [post["source_id"]]
class feedBuffer(baseBuffer): class feedBuffer(baseBuffer):
def get_items(self, show_nextpage=False): def get_items(self, show_nextpage=False):

View File

@ -15,6 +15,7 @@ from mysc.thread_utils import call_threaded
from sessionmanager import session from sessionmanager import session
from wxUI import (mainWindow, commonMessages) from wxUI import (mainWindow, commonMessages)
from wxUI.dialogs import search as searchDialogs from wxUI.dialogs import search as searchDialogs
from wxUI.dialogs import timeline
from update import updater from update import updater
class Controller(object): class Controller(object):
@ -85,6 +86,7 @@ class Controller(object):
widgetUtils.connect_event(self.window, widgetUtils.MENU, self.get_more_items, menuitem=self.window.load_previous_items) widgetUtils.connect_event(self.window, widgetUtils.MENU, self.get_more_items, menuitem=self.window.load_previous_items)
widgetUtils.connect_event(self.window, widgetUtils.MENU, self.changelog, menuitem=self.window.changelog) widgetUtils.connect_event(self.window, widgetUtils.MENU, self.changelog, menuitem=self.window.changelog)
widgetUtils.connect_event(self.window, widgetUtils.MENU, self.configuration, menuitem=self.window.settings_dialog) widgetUtils.connect_event(self.window, widgetUtils.MENU, self.configuration, menuitem=self.window.settings_dialog)
widgetUtils.connect_event(self.window, widgetUtils.MENU, self.new_timeline, menuitem=self.window.timeline)
def disconnect_events(self): def disconnect_events(self):
pub.unsubscribe(self.in_post, "posted") pub.unsubscribe(self.in_post, "posted")
@ -186,3 +188,25 @@ class Controller(object):
d = configuration.configuration(self.session) d = configuration.configuration(self.session)
if d.response == widgetUtils.OK: if d.response == widgetUtils.OK:
d.save_configuration() d.save_configuration()
def new_timeline(self, *args, **kwargs):
b = self.get_current_buffer()
if not hasattr(b, "get_users"): return
ids = b.get_users()
d = []
for i in ids:
d.append((i, self.session.get_user_name(i)))
for i in self.session.db["users"]:
d.append((i, self.session.get_user_name(i)))
for i in self.session.db["groups"]:
d.append((i, self.session.get_user_name(i)))
a = timeline.timelineDialog([i[1] for i in d])
if a.get_response() == widgetUtils.OK:
user = a.get_user()
buffertype = a.get_buffer_type()
user_id = ""
print user
for i in d:
if i[1] == user:
user_id = i[0]
print user_id

View File

@ -0,0 +1,37 @@
# -*- coding: utf-8 -*-
import wx
import widgetUtils
class timelineDialog(widgetUtils.BaseDialog):
def __init__(self, users=[]):
super(timelineDialog, self).__init__(parent=None, title=_(u"New timeline for {0}").format(users[0],))
panel = wx.Panel(self)
sizer = wx.BoxSizer(wx.HORIZONTAL)
userLabel = wx.StaticText(panel, -1, _(u"User"))
self.cb = wx.ComboBox(panel, -1, choices=users, value=users[0])
self.cb.SetFocus()
userSizer = wx.BoxSizer()
userSizer.Add(userLabel, 0, wx.ALL, 5)
userSizer.Add(self.cb, 0, wx.ALL, 5)
actionsstatic = wx.StaticBox(panel, label=_(u"Buffer type"))
self.audio = wx.RadioButton(panel, wx.NewId(), _(u"&Audios"), style=wx.RB_GROUP)
radioSizer = wx.StaticBoxSizer(actionsstatic, wx.HORIZONTAL)
radioSizer.Add(self.audio, 0, wx.ALL, 5)
sizer.Add(radioSizer, 0, wx.ALL, 5)
ok = wx.Button(panel, wx.ID_OK, _(u"&OK"))
ok.SetDefault()
cancel = wx.Button(panel, wx.ID_CANCEL, _(u"&Close"))
btnsizer = wx.BoxSizer()
btnsizer.Add(ok, 0, wx.ALL, 5)
btnsizer.Add(cancel, 0, wx.ALL, 5)
sizer.Add(btnsizer, 0, wx.ALL, 5)
panel.SetSizer(sizer)
self.SetClientSize(sizer.CalcMin())
def get_user(self):
return self.cb.GetValue()
def get_buffer_type(self):
if self.audio.GetValue() == True:
return "audio"

View File

@ -10,7 +10,8 @@ class mainWindow(wx.Frame):
buffer = wx.Menu() buffer = wx.Menu()
self.new_buffer = wx.Menu() self.new_buffer = wx.Menu()
self.search_audios = self.new_buffer.Append(wx.NewId(), _(u"Audio")) self.search_audios = self.new_buffer.Append(wx.NewId(), _(u"Audio"))
buffer.AppendMenu(wx.NewId(), _(u"New buffer"), self.new_buffer) buffer.AppendMenu(wx.NewId(), _(u"Search"), self.new_buffer)
self.timeline = buffer.Append(wx.NewId(), _(u"&New timeline"))
self.update_buffer = buffer.Append(wx.NewId(), _(u"Update current buffer")) self.update_buffer = buffer.Append(wx.NewId(), _(u"Update current buffer"))
self.load_previous_items = buffer.Append(wx.NewId(), _(u"Load previous items")) self.load_previous_items = buffer.Append(wx.NewId(), _(u"Load previous items"))
self.remove_buffer_ = buffer.Append(wx.NewId(), _(u"&Remove buffer")) self.remove_buffer_ = buffer.Append(wx.NewId(), _(u"&Remove buffer"))