Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFlorent Pigout <florent.pigout@gmail.com>2011-10-17 22:38:06 (GMT)
committer Florent Pigout <florent.pigout@gmail.com>2011-10-17 22:38:06 (GMT)
commit2fef57a57cb1c7962a922d5ac63ef22602bb5784 (patch)
tree109751bf0781420c5c03482c2832e60c00d27a17
parent853fad71dd7f0cdc7d5c221b9fdb9eee39efb0b1 (diff)
permits to reload recent stories from the activity screen
-rw-r--r--activity.py12
-rw-r--r--atoidejouer/tools/storage.py2
-rw-r--r--atoidejouer/ui/panel/sound.py1
-rw-r--r--atoidejouer/ui/screens/activity.py61
-rw-r--r--atoidejouer/ui/screens/story.py2
-rw-r--r--static/data/config/config.ini1
6 files changed, 57 insertions, 22 deletions
diff --git a/activity.py b/activity.py
index 42e28c1..2f43550 100644
--- a/activity.py
+++ b/activity.py
@@ -1,9 +1,7 @@
# python import
-import json, logging, os, threading, time
-# ...
+import logging, os, threading, time
from functools import partial
-# ..
from gettext import gettext as _
# gtk import
@@ -252,6 +250,8 @@ class AToiDeJouerActivity(activity.Activity):
self._update_slider(toolbar)
def read_file(self, file_path):
+ if not file_path or not os.path.exists(file_path):
+ return
# close db
story.DB().close()
# save content
@@ -266,8 +266,14 @@ class AToiDeJouerActivity(activity.Activity):
story.DB(force=True)
# update max time
self.update_max_time()
+ # clear screens
+ if 'story' in self._screens:
+ self._screens['story'].set_clear(True)
+ if 'edit' in self._screens:
+ self._screens['edit'].scene.set_clear(True)
def write_file(self, file_path):
+ self.metadata['mime_type'] = 'atoidejouer/db'
# close db
story.DB().close()
# save content
diff --git a/atoidejouer/tools/storage.py b/atoidejouer/tools/storage.py
index 88eb294..9552130 100644
--- a/atoidejouer/tools/storage.py
+++ b/atoidejouer/tools/storage.py
@@ -315,7 +315,7 @@ def get_path_from_journal(timestamp, mime_type):
# find in ds
_results, _count = datastore.find(_query)
if _count == 1:
- return _results[0].get_file_path()
+ return _results[0].file_path
else:
return None
diff --git a/atoidejouer/ui/panel/sound.py b/atoidejouer/ui/panel/sound.py
index 406cc32..cb94d9d 100644
--- a/atoidejouer/ui/panel/sound.py
+++ b/atoidejouer/ui/panel/sound.py
@@ -181,7 +181,6 @@ class PanelSound(gtk.Frame):
_set_bg(_item)
_item.set_size_request(96, 78)
_item.set_relief(gtk.RELIEF_NONE)
- _item.add_events(gtk.gdk.BUTTON_PRESS_MASK)
_item.connect('clicked', _cb_on_click, self, key)
_item.show()
# add a picture here
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
diff --git a/atoidejouer/ui/screens/story.py b/atoidejouer/ui/screens/story.py
index 54181d5..ef53f60 100644
--- a/atoidejouer/ui/screens/story.py
+++ b/atoidejouer/ui/screens/story.py
@@ -105,6 +105,8 @@ class ScreenStory(graphics.Scene):
return False
def refresh(self, **kargs):
+ # clear?
+ self._check_clear()
# ensure valid screen size
self._refresh_screen_size()
# get the current frame
diff --git a/static/data/config/config.ini b/static/data/config/config.ini
index ef5aad1..28e4d96 100644
--- a/static/data/config/config.ini
+++ b/static/data/config/config.ini
@@ -2,6 +2,7 @@
mode = advanced
rate = normal
dnd = yes
+recent = 4
[mode]
easy = image position sound