Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/atoidejouer/ui/screens/activity.py
diff options
context:
space:
mode:
Diffstat (limited to 'atoidejouer/ui/screens/activity.py')
-rw-r--r--atoidejouer/ui/screens/activity.py61
1 files changed, 44 insertions, 17 deletions
diff --git a/atoidejouer/ui/screens/activity.py b/atoidejouer/ui/screens/activity.py
index 24f72e4..54cd04f 100644
--- a/atoidejouer/ui/screens/activity.py
+++ b/atoidejouer/ui/screens/activity.py
@@ -1,13 +1,12 @@
# python import
import logging, os
-# ..
from gettext import gettext as _
# gtk import
import gtk
# atoidejouer import
-from atoidejouer.tools import config, ui
+from atoidejouer.tools import config, ui, storage
# get application logger
logger = logging.getLogger('atoidejouer')
@@ -57,6 +56,10 @@ def _on_button_click(button, screen, name, msg_label, value):
else:
pass
+def _on_recent_click(button, screen, timestamp):
+ _path = storage.get_path_from_journal(timestamp, 'atoidejouer/db')
+ screen._activity.read_file(_path)
+
[
ADVANCED,
@@ -130,11 +133,11 @@ class ScreenActivity(gtk.ScrolledWindow):
def _get_button(self, name, text, stock_id, msg_label=None, value=None):
# init button
_button = ui.get_button(label=text, stock_id=stock_id, width=48,
- padding=(10, 0))
+ padding=(10, 0))
_button.show()
# set cb
_button.connect('clicked', _on_button_click, self, name, msg_label,
- value)
+ value)
# return it
return _button
@@ -149,14 +152,13 @@ class ScreenActivity(gtk.ScrolledWindow):
# return it
return _label
- def _get_mode_part(self):
- # ..
+ def _get_included_part(self):
_vbox = gtk.VBox(homogeneous=False, spacing=5)
- # border
_vbox.set_border_width(5)
- # show
_vbox.show()
- # ..
+ # add first part title
+ _vbox.pack_start(self._get_title(_('INCLUDED STORIES')),
+ expand=False, fill=True)
return _vbox
def _add_left_part(self):
@@ -169,15 +171,11 @@ class ScreenActivity(gtk.ScrolledWindow):
# add
self.__main_box.pack_start(_vbox, expand=False, fill=True)
# add part choices
- _vbox.pack_start(self._get_mode_part(),
- expand=False, fill=True)
+ _vbox.pack_start(self._get_included_part(), expand=False, fill=True)
def _get_export_part(self):
- # ..
_vbox = gtk.VBox(homogeneous=False, spacing=5)
- # border
_vbox.set_border_width(5)
- # show
_vbox.show()
# add first part title
_vbox.pack_start(self._get_title(_('IMPORT')),
@@ -210,6 +208,34 @@ class ScreenActivity(gtk.ScrolledWindow):
# ..
return _vbox
+ def _get_story_button(self, ds_object):
+ _button = ui.get_button(label=ds_object.metadata['title'],
+ stock_id="play", width=48, padding=(10, 0))
+ _button.connect('clicked', _on_recent_click, self,
+ ds_object.metadata['timestamp'])
+ _button.show()
+ return _button
+
+ def _get_recent_part(self):
+ _vbox = gtk.VBox(homogeneous=False, spacing=5)
+ _vbox.set_border_width(5)
+ _vbox.show()
+ # add first part title
+ _vbox.pack_start(self._get_title(_('RECENT STORIES')),
+ expand=False, fill=True)
+ # list stories
+ _nb_of_recent = config.Config().get('activity>recent', type_=int)
+ _cur = 0
+ for ds_obj in storage.journal_query({
+ 'activity': 'org.laptop.AToiDeJouerActivity'}):
+ if _cur == _nb_of_recent:
+ break
+ elif os.path.exists(ds_obj.file_path):
+ _cur += 1
+ _vbox.pack_start(self._get_story_button(ds_obj), expand=False,
+ fill=True)
+ return _vbox
+
def _add_right_part(self):
# ..
_vbox = gtk.VBox(homogeneous=False, spacing=5)
@@ -219,9 +245,10 @@ class ScreenActivity(gtk.ScrolledWindow):
_vbox.show()
# add
self.__main_box.pack_start(_vbox, expand=False, fill=True)
- # add first part title
- _vbox.pack_start(self._get_export_part(),
- expand=False, fill=True)
+ # add export
+ _vbox.pack_start(self._get_export_part(), expand=False, fill=True)
+ # add recent part
+ _vbox.pack_start(self._get_recent_part(), expand=False, fill=True)
def _show(self):
self._initialized = True