From f3289d2e59bff57c1908c306a78ac8fec7c7db4f Mon Sep 17 00:00:00 2001 From: Tomeu Date: Sun, 13 May 2007 16:21:35 +0000 Subject: Implement setting the journal entry title from the toolbar. --- (limited to 'sugar/activity') diff --git a/sugar/activity/activity.py b/sugar/activity/activity.py index 4e65f65..7ff73f2 100644 --- a/sugar/activity/activity.py +++ b/sugar/activity/activity.py @@ -59,7 +59,7 @@ class ActivityToolbar(gtk.Toolbar): if activity.jobject: self.title = gtk.Entry() self.title.set_text(activity.jobject['title']) - self.title.connect('activate', self._title_activate_cb) + self.title.connect('focus-out-event', self._title_focus_out_event_cb) self._add_widget(self.title, expand=True) activity.jobject.connect('updated', self._jobject_updated_cb) @@ -67,9 +67,10 @@ class ActivityToolbar(gtk.Toolbar): def _jobject_updated_cb(self, jobject): self.title.set_text(jobject['title']) - def _title_activate_cb(self, entry): - self._activity.jobject['title'] = self.title.get_text() - self._activity.save() + def _title_focus_out_event_cb(self, entry, event): + if self._activity.jobject['title'] != self.title.get_text(): + self._activity.jobject['title'] = self.title.get_text() + self._activity.save() def _add_widget(self, widget, expand=False): tool_item = gtk.ToolItem() @@ -181,34 +182,27 @@ class Activity(Window, gtk.Container): elif create_jobject: logging.debug('Creating a jobject.') self.jobject = datastore.create() - self.jobject['title'] = 'New entry' + self.jobject['title'] = '' self.jobject['activity'] = self.get_service_name() self.jobject['date'] = str(time.time()) - self.jobject['icon'] = 'theme:object-text' + self.jobject['icon'] = '' self.jobject['keep'] = '0' self.jobject['buddies'] = '' self.jobject['preview'] = '' self.jobject['icon-color'] = profile.get_color().to_string() - from sugar import env - self.jobject.file_path = os.path.join(env.get_profile_path(), 'test.txt') - f = open(self.jobject.file_path, 'w') - f.write('mec') - f.close() + self.jobject.file_path = '' try: datastore.write(self.jobject) except Exception, e: logging.error(e) else: self.jobject = None - - self.connect('realize', self._realize_cb) - def _realize_cb(self, activity): - try: - self.read_file() - except NotImplementedError: - logging.debug('read_file() not implemented.') - pass + self.connect('focus-out-event', self._focus_out_event_cb) + + def _focus_out_event_cb(self, widget, event): + if self.jobject: + self.save() def read_file(self): """ @@ -221,20 +215,18 @@ class Activity(Window, gtk.Container): """ Subclasses implement this method if they support saving data to objects in the journal. Can access the object through the jobject attribute. - Must return the file path the data was saved to. """ raise NotImplementedError def save(self): """Request that the activity is saved to the Journal.""" try: - file_path = self.write_file() - self.jobject.file_path = file_path + self.jobject.file_path = os.path.join('/tmp', '%i.txt' % time.time()) + self.write_file() except NotImplementedError: - pass + self.jobject.file_path = '' datastore.write(self.jobject) - def _internal_joined_cb(self, activity, success, err): """Callback when join has finished""" self._shared_activity.disconnect(self._join_id) -- cgit v0.9.1