The version of Sugar Commander I released this weekend works. However, I woke up Sunday morning realizing that it was not necessary to reload the whole ListStore I was using to show Journal objects every time I changed anything. I could update the ListStore in place and the TreeView would redraw itself to show the latest contents automatically, or so I thought. Well, deleting rows that way works, but not updating a row.
This is the code is use for the callbacks: def datastore_updated_cb(self, 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) 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) def datastore_deleted_cb(self, uid): save_path = self.selected_path iter = self.ls_journal.get_iter_first() for row in self.ls_journal: jobject = row[COLUMN_JOBJECT] if jobject.object_id == uid: self.ls_journal.remove(iter) break iter = self.ls_journal.iter_next(iter) if not save_path is None: self.selection_journal.select_path(save_path) else: self.title_entry.set_text('') description_textbuffer = self.description_textview.get_buffer() description_textbuffer.set_text('') tags_textbuffer = self.tags_textview.get_buffer() tags_textbuffer.set_text('') self.btn_save.props.sensitive = False self.btn_delete.props.sensitive = False self.image.clear() self.image.show() The whole thing is here: http://git.sugarlabs.org/projects/sugar-commander/repos/mainline/blobs/raw/630b5dc8dcaf90dbbc7bf2eaaf2f80606eff16e5/sugarcommander.py For reasons I won't go into I was convinced that this code actually worked so I updated the "Fun With The Journal" chapter of "Make Your Own Sugar Activities!" with the new code, plus I mode other changes to explain things like how to add your own preview to a Journal entry. The revised chapter is here: http://en.flossmanuals.net/bin/view/ActivitiesGuideSugar/FunWithTheJournal I was hoping to just ask for a review of the revised chapter this morning but I'm really stuck on the TreeView issue. I can't understand why updating the ListStore doesn't cause the cells in the TreeView to be redrawn with the new content. James Simmons _______________________________________________ Sugar-devel mailing list Sugar-devel@lists.sugarlabs.org http://lists.sugarlabs.org/listinfo/sugar-devel