diff --git a/changelog.md b/changelog.md index 7b285e0..7ed9f23 100644 --- a/changelog.md +++ b/changelog.md @@ -7,8 +7,9 @@ * It's possible to open a friends timeline for others. * Fixed some strange bugs in the built version. * Deactivated accounts will not cause problems in friends lists. They will be displayed as deactivated, wich means that it'll be impossible to interact with those accounts. -* When opened, the client will set online for the user account, it'll inform VK that this user is currently online. This parameter will be updated every 15 minutes, as stated in the API documentation. When exiting, Socializer will try to set the account as offline. +* When opened, the client will set online for the user account, it'll inform VK that this user is currently online. This parameter will be updated every 15 minutes, as stated in the API documentation. When exiting, Socializer will try to set the account as offline. Friends and other people could use this parameter to see if you are using VK in the moment. * When opened, socializer will try to create chat buffers for all unread messages. +* Update some information on certain posts when an item is selected. For example, update the date of a post. ## Changes on build 2016.05.25 diff --git a/src/controller/buffers.py b/src/controller/buffers.py index 255df3c..d0deb75 100644 --- a/src/controller/buffers.py +++ b/src/controller/buffers.py @@ -1,4 +1,6 @@ # -*- coding: utf-8 -*- +import languageHandler +import arrow import wx import widgetUtils import messages @@ -111,6 +113,7 @@ class baseBuffer(object): def connect_events(self): widgetUtils.connect_event(self.tab.post, widgetUtils.BUTTON_PRESSED, self.post) widgetUtils.connect_event(self.tab.list.list, widgetUtils.KEYPRESS, self.get_event) + self.tab.set_focus_function(self.onFocus) def get_event(self, ev): if ev.GetKeyCode() == wx.WXK_RETURN and ev.ControlDown() and ev.ShiftDown(): event = "pause_audio" @@ -161,6 +164,15 @@ class baseBuffer(object): else: return [post["source_id"]] + def onFocus(self, *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.session.db[self.name]["items"][self.tab.list.get_selected()] + original_date = arrow.get(post["date"]) + created_at = original_date.humanize(locale=languageHandler.getLanguage()) + self.tab.list.list.SetStringItem(self.tab.list.get_selected(), 2, created_at) + + class feedBuffer(baseBuffer): def get_items(self, show_nextpage=False): @@ -242,6 +254,9 @@ class audioBuffer(feedBuffer): def get_more_items(self, *args, **kwargs): output.speak(_(u"This buffer doesn't support getting more items.")) + def onFocus(self, *args, **kwargs): + pass + class empty(object): def __init__(self, name=None, parent=None, *args, **kwargs): @@ -258,6 +273,9 @@ class empty(object): class chatBuffer(baseBuffer): + def onFocus(self, *args, **kwargs): + pass + def create_tab(self, parent): self.tab = home.chatTab(parent) @@ -301,4 +319,11 @@ class peopleBuffer(feedBuffer): def new_chat(self, *args, **kwargs): user_id = self.session.db[self.name]["items"][self.tab.list.get_selected()]["id"] - pub.sendMessage("new-chat", user_id=user_id) \ No newline at end of file + pub.sendMessage("new-chat", user_id=user_id) + + def onFocus(self, *args, **kwargs): + post = self.session.db[self.name]["items"][self.tab.list.get_selected()] + if post.has_key("last_seen") == False: return + original_date = arrow.get(post["last_seen"]["time"]) + created_at = original_date.humanize(locale=languageHandler.getLanguage()) + self.tab.list.list.SetStringItem(self.tab.list.get_selected(), 1, created_at) diff --git a/src/wxUI/tabs/home.py b/src/wxUI/tabs/home.py index a4b09dc..2ff7e4a 100644 --- a/src/wxUI/tabs/home.py +++ b/src/wxUI/tabs/home.py @@ -43,6 +43,9 @@ class homeTab(wx.Panel): if ev.GetKeyCode() == wx.WXK_WINDOWS_MENU: pub.sendMessage("show-menu", position=self.results.list.GetPosition()) + def set_focus_function(self, focus_function): + self.list.list.Bind(wx.EVT_LIST_ITEM_FOCUSED, focus_function) + class feedTab(homeTab): def __init__(self, parent): super(feedTab, self).__init__(parent=parent)