diff options
author | Tomeu Vizoso <tomeu@tomeuvizoso.net> | 2007-06-18 18:38:20 (GMT) |
---|---|---|
committer | Tomeu Vizoso <tomeu@tomeuvizoso.net> | 2007-06-18 18:38:20 (GMT) |
commit | 99369114cb71e58220016bd609bd74630969ebd1 (patch) | |
tree | 16e30f64603285dbc5b58281d389e52152f79ee3 /sugar | |
parent | e021bb271ccbda54f5d24e26b8f017f4c7bc4b5f (diff) |
Set title on change. Fixes #1715.
Diffstat (limited to 'sugar')
-rw-r--r-- | sugar/activity/activity.py | 19 | ||||
-rw-r--r-- | sugar/datastore/datastore.py | 2 |
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] = '' |