Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/sugar
diff options
context:
space:
mode:
authorTomeu Vizoso <tomeu@tomeuvizoso.net>2007-06-18 18:38:20 (GMT)
committer Tomeu Vizoso <tomeu@tomeuvizoso.net>2007-06-18 18:38:20 (GMT)
commit99369114cb71e58220016bd609bd74630969ebd1 (patch)
tree16e30f64603285dbc5b58281d389e52152f79ee3 /sugar
parente021bb271ccbda54f5d24e26b8f017f4c7bc4b5f (diff)
Set title on change. Fixes #1715.
Diffstat (limited to 'sugar')
-rw-r--r--sugar/activity/activity.py19
-rw-r--r--sugar/datastore/datastore.py2
2 files changed, 15 insertions, 6 deletions
diff --git a/sugar/activity/activity.py b/sugar/activity/activity.py
index 1d3e33e..8891711 100644
--- a/sugar/activity/activity.py
+++ b/sugar/activity/activity.py
@@ -51,7 +51,7 @@ class ActivityToolbar(gtk.Toolbar):
self.title = gtk.Entry()
self.title.set_size_request(int(gtk.gdk.screen_width() / 6), -1)
self.title.set_text(activity.metadata['title'])
- self.title.connect('focus-out-event', self._title_focus_out_event_cb)
+ self.title.connect('changed', self._title_changed_cb)
self._add_widget(self.title)
activity.metadata.connect('updated', self._jobject_updated_cb)
@@ -79,6 +79,8 @@ class ActivityToolbar(gtk.Toolbar):
self.insert(self.close, -1)
self.close.show()
+ self._update_title_sid = None
+
def _share_clicked_cb(self, button):
self._activity.share()
@@ -88,10 +90,16 @@ class ActivityToolbar(gtk.Toolbar):
def _jobject_updated_cb(self, jobject):
self.title.set_text(jobject['title'])
- def _title_focus_out_event_cb(self, entry, event):
- if self._activity.metadata['title'] != self.title.get_text():
- self._activity.metadata['title'] = self.title.get_text()
- self._activity.save()
+ def _title_changed_cb(self, entry):
+ if not self._update_title_sid:
+ self._update_title_sid = gobject.timeout_add(1000, self._update_title_cb)
+
+ def _update_title_cb(self):
+ self._activity.metadata['title'] = self.title.get_text()
+ self._activity.metadata['title_set_by_user'] = '1'
+ self._activity.save()
+ self._update_title_sid = None
+ return False
def _add_widget(self, widget, expand=False):
tool_item = gtk.ToolItem()
@@ -213,6 +221,7 @@ class Activity(Window, gtk.Container):
logging.debug('Creating a jobject.')
self._jobject = datastore.create()
self._jobject.metadata['title'] = _('%s Activity') % get_bundle_name()
+ self._jobject.metadata['title_set_by_user'] = '0'
self._jobject.metadata['activity'] = self.get_service_name()
self._jobject.metadata['keep'] = '0'
self._jobject.metadata['buddies'] = ''
diff --git a/sugar/datastore/datastore.py b/sugar/datastore/datastore.py
index 4b8b903..c8dea91 100644
--- a/sugar/datastore/datastore.py
+++ b/sugar/datastore/datastore.py
@@ -32,7 +32,7 @@ class DSMetadata(gobject.GObject):
else:
self._props = props
- default_keys = ['activity', 'mime_type']
+ default_keys = ['activity', 'mime_type', 'title_set_by_user']
for key in default_keys:
if not self._props.has_key(key):
self._props[key] = ''