diff options
author | James Simmons <jim@olpc2.simmons> | 2010-04-13 00:42:53 (GMT) |
---|---|---|
committer | James Simmons <jim@olpc2.simmons> | 2010-04-13 00:42:53 (GMT) |
commit | dc90274b0bb01bdb3471d6c98c4e6a8ade5c20d5 (patch) | |
tree | 60f310a2a0a29ef12620fd57af10c531ffd50862 /sugarcommander.py | |
parent | 630b5dc8dcaf90dbbc7bf2eaaf2f80606eff16e5 (diff) |
Fix problems with tree view
Diffstat (limited to 'sugarcommander.py')
-rwxr-xr-x | sugarcommander.py | 45 |
1 files changed, 26 insertions, 19 deletions
diff --git a/sugarcommander.py b/sugarcommander.py index fa91534..e4e316b 100755 --- a/sugarcommander.py +++ b/sugarcommander.py @@ -54,11 +54,11 @@ class SugarCommander(activity.Activity): self.ls_journal = gtk.ListStore(gobject.TYPE_STRING, gobject.TYPE_STRING, gobject.TYPE_PYOBJECT) - tv_journal = gtk.TreeView(self.ls_journal) - tv_journal.set_rules_hint(True) - tv_journal.set_search_column(COLUMN_TITLE) - self.selection_journal = tv_journal.get_selection() - self.selection_journal.set_mode(gtk.SELECTION_BROWSE) + self.tv_journal = gtk.TreeView(self.ls_journal) + self.tv_journal.set_rules_hint(True) + self.tv_journal.set_search_column(COLUMN_TITLE) + self.selection_journal = self.tv_journal.get_selection() + self.selection_journal.set_mode(gtk.SELECTION_SINGLE) self.selection_journal.connect("changed", self.selection_journal_cb) renderer = gtk.CellRendererText() renderer.set_property('wrap-mode', gtk.WRAP_WORD) @@ -67,18 +67,20 @@ class SugarCommander(activity.Activity): self.col_journal = gtk.TreeViewColumn(_('Title'), renderer, text=COLUMN_TITLE) self.col_journal.set_sort_column_id(COLUMN_TITLE) - tv_journal.append_column(self.col_journal) + self.tv_journal.append_column(self.col_journal) - self.col_mime = gtk.TreeViewColumn(_('MIME'), renderer, + mime_renderer = gtk.CellRendererText() + mime_renderer.set_property('width', 500) + self.col_mime = gtk.TreeViewColumn(_('MIME'), mime_renderer, text=COLUMN_MIME) self.col_mime.set_sort_column_id(COLUMN_MIME) - tv_journal.append_column(self.col_mime) + self.tv_journal.append_column(self.col_mime) self.list_scroller_journal = gtk.ScrolledWindow( hadjustment=None, vadjustment=None) self.list_scroller_journal.set_policy( gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC) - self.list_scroller_journal.add(tv_journal) + self.list_scroller_journal.add(self.tv_journal) label_attributes = pango.AttrList() label_attributes.insert(pango.AttrSize(14000, 0, -1)) @@ -87,7 +89,7 @@ class SugarCommander(activity.Activity): tab1_label = gtk.Label(_("Journal")) tab1_label.set_attributes(label_attributes) tab1_label.show() - tv_journal.show() + self.tv_journal.show() self.list_scroller_journal.show() column_table = gtk.Table(rows=1, columns=2, homogeneous = False) @@ -259,23 +261,27 @@ class SugarCommander(activity.Activity): datastore.delete(self.selected_journal_entry.object_id) def datastore_created_cb(self, uid): - self.load_journal_table() + new_jobject = datastore.get(uid) + iter = self.ls_journal.append() + title = new_jobject.metadata['title'] + self.ls_journal.set(iter, COLUMN_TITLE, title) + mime = new_jobject.metadata['mime_type'] + self.ls_journal.set(iter, COLUMN_MIME, mime) + self.ls_journal.set(iter, COLUMN_JOBJECT, new_jobject) def datastore_updated_cb(self, uid): + new_jobject = datastore.get(uid) iter = self.ls_journal.get_iter_first() for row in self.ls_journal: jobject = row[COLUMN_JOBJECT] if jobject.object_id == uid: - title = jobject.metadata['title'] - self.ls_journal.set(iter, COLUMN_TITLE, title) - mime = jobject.metadata['mime_type'] - self.ls_journal.set(iter, COLUMN_MIME, mime) + title = new_jobject.metadata['title'] + self.ls_journal.set_value(iter, COLUMN_TITLE, title) break iter = self.ls_journal.iter_next(iter) object_id = self.selected_journal_entry.object_id if object_id == uid: - jobject = datastore.get(object_id) - self.set_form_fields(jobject) + self.set_form_fields(new_jobject) def datastore_deleted_cb(self, uid): save_path = self.selected_path @@ -287,9 +293,10 @@ class SugarCommander(activity.Activity): break iter = self.ls_journal.iter_next(iter) - if not save_path is None: + try: self.selection_journal.select_path(save_path) - else: + self.tv_journal.grab_focus() + except: self.title_entry.set_text('') description_textbuffer = self.description_textview.get_buffer() description_textbuffer.set_text('') |