Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/sugarcommander.py
diff options
context:
space:
mode:
authorJames Simmons <jim@olpc2.simmons>2010-04-13 00:42:53 (GMT)
committer James Simmons <jim@olpc2.simmons>2010-04-13 00:42:53 (GMT)
commitdc90274b0bb01bdb3471d6c98c4e6a8ade5c20d5 (patch)
tree60f310a2a0a29ef12620fd57af10c531ffd50862 /sugarcommander.py
parent630b5dc8dcaf90dbbc7bf2eaaf2f80606eff16e5 (diff)
Fix problems with tree view
Diffstat (limited to 'sugarcommander.py')
-rwxr-xr-xsugarcommander.py45
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('')