diff options
-rwxr-xr-x | sugarcommander.py | 60 |
1 files changed, 41 insertions, 19 deletions
diff --git a/sugarcommander.py b/sugarcommander.py index 58b2b52..41b897e 100755 --- a/sugarcommander.py +++ b/sugarcommander.py @@ -64,9 +64,12 @@ DS_DBUS_PATH = '/org/laptop/sugar/DataStore' _logger = logging.getLogger('sugar-commander') class SugarCommander(activity.Activity): + def __init__(self, handle): - "The entry point to the Activity" + """ The entry point to the Activity """ + activity.Activity.__init__(self, handle) + self.selected_journal_entry = None self.selected_path = None self.update_log_entries = '' @@ -81,12 +84,15 @@ class SugarCommander(activity.Activity): GObject.TYPE_UINT64, GObject.TYPE_STRING, GObject.TYPE_PYOBJECT) + 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.SelectionMode.SINGLE) self.selection_journal.connect("changed", self.selection_journal_cb) + renderer = Gtk.CellRendererText() renderer.set_property('wrap-mode', Gtk.WrapMode.WORD) renderer.set_property('wrap-width', 500) @@ -100,9 +106,11 @@ class SugarCommander(activity.Activity): size_renderer.set_property('width', 100) size_renderer.set_property('alignment', Pango.Alignment.RIGHT) size_renderer.set_property('xalign', 0.8) + self.col_size = Gtk.TreeViewColumn(_('Size (KB)'), size_renderer, text=COLUMN_SIZE) self.col_size.set_sort_column_id(COLUMN_SIZE) + self.tv_journal.append_column(self.col_size) mime_renderer = Gtk.CellRendererText() @@ -119,7 +127,7 @@ class SugarCommander(activity.Activity): self.list_scroller_journal.add(self.tv_journal) label_attributes = Pango.AttrList() - # FIXME: Reescribir + # FIXME: must re written #label_attributes.insert(Pango.AttrSize(14000, 0, -1)) #label_attributes.insert(Pango.AttrForeground(65535, 65535, 65535, 0, -1)) @@ -156,10 +164,12 @@ class SugarCommander(activity.Activity): self.resize_width_entry = Gtk.Entry() self.resize_width_entry.set_max_length(4) + image_table.attach(self.resize_width_entry, 1, 2, 2, 3, xoptions=Gtk.AttachOptions.SHRINK, yoptions=Gtk.AttachOptions.SHRINK, xpadding=10, ypadding=10) + self.resize_width_entry.set_text('600') self.resize_width_entry.connect('key_press_event', self.resize_key_press_event_cb) @@ -167,20 +177,24 @@ class SugarCommander(activity.Activity): self.btn_save = Gtk.Button(_("Save")) self.btn_save.connect('button_press_event', self.save_button_press_event_cb) + image_table.attach(self.btn_save, 0, 1, 3, 4, xoptions=Gtk.AttachOptions.SHRINK, yoptions=Gtk.AttachOptions.SHRINK, xpadding=10, ypadding=10) + self.btn_save.props.sensitive = False self.btn_save.show() self.btn_delete = Gtk.Button(_("Delete")) self.btn_delete.connect('button_press_event', self.delete_button_press_event_cb) + image_table.attach(self.btn_delete, 1, 2, 3, 4, xoptions=Gtk.AttachOptions.SHRINK, yoptions=Gtk.AttachOptions.SHRINK, xpadding=10, ypadding=10) + self.btn_delete.props.sensitive = False self.btn_delete.show() @@ -196,6 +210,7 @@ class SugarCommander(activity.Activity): self.title_entry = Gtk.Entry() self.resize_width_entry.set_max_length(4) + entry_table.attach(self.title_entry, 1, 2, 0, 1, xoptions=Gtk.AttachOptions.FILL | Gtk.AttachOptions.SHRINK, @@ -214,6 +229,7 @@ class SugarCommander(activity.Activity): self.description_textview = Gtk.TextView() self.description_textview.set_wrap_mode(Gtk.WrapMode.WORD) + entry_table.attach(self.description_textview, 1, 2, 1, 2, xoptions=Gtk.AttachOptions.EXPAND | Gtk.AttachOptions.FILL | @@ -222,6 +238,7 @@ class SugarCommander(activity.Activity): Gtk.AttachOptions.FILL | Gtk.AttachOptions.SHRINK, xpadding=10, ypadding=10) + self.description_textview.props.accepts_tab = False self.description_textview.connect('key_press_event', self.key_press_event_cb) @@ -241,6 +258,7 @@ class SugarCommander(activity.Activity): yoptions=Gtk.AttachOptions.EXPAND | Gtk.AttachOptions.FILL, xpadding=10, ypadding=10) + self.tags_textview.props.accepts_tab = False self.tags_textview.connect('key_press_event', self.key_press_event_cb) @@ -286,10 +304,10 @@ class SugarCommander(activity.Activity): self.resize_width_entry.hide() vbox = Gtk.VBox(homogeneous=True, spacing=5) - vbox.pack_start(column_table, False, False, 0) - vbox.pack_end(self.list_scroller_journal, False, False, 0) + vbox.pack_start(column_table, True, True, 0) + vbox.pack_end(self.list_scroller_journal, True, True, 0) - canvas.append_page(vbox, tab1_label) + canvas.append_page(vbox, tab1_label) self._filechooser = Gtk.FileChooserWidget( action=Gtk.FileChooserAction.OPEN, parent=None) @@ -302,6 +320,7 @@ class SugarCommander(activity.Activity): self._filechooser.set_preview_widget(preview) self._filechooser.connect("update-preview", self.update_preview_cb, preview) + tab2_label = Gtk.Label(_("Files")) tab2_label.set_attributes(label_attributes) tab2_label.show() @@ -360,18 +379,16 @@ class SugarCommander(activity.Activity): self.btn_save.props.sensitive = True def resize_key_press_event_cb(self, entry, event): - # FIXME: Reescribir - pass - #keyname = Gtk.gdk.keyval_name(event.keyval) - #if ((keyname < '0' or keyname > '9') and keyname != 'BackSpace' - # and keyname != 'Left' and keyname != 'Right' - # and keyname != 'KP_Left' and keyname != 'KP_Right' - # and keyname != 'Delete' and keyname != 'End' - # and keyname != 'KP_End' and keyname != 'Home' - # and keyname != 'KP_Home' and keyname != 'KP_Delete'): - # return True - #else: - # return False + keyname = Gdk.keyval_name(event.keyval) + if ((keyname < '0' or keyname > '9') and keyname != 'BackSpace' + and keyname != 'Left' and keyname != 'Right' + and keyname != 'KP_Left' and keyname != 'KP_Right' + and keyname != 'Delete' and keyname != 'End' + and keyname != 'KP_End' and keyname != 'Home' + and keyname != 'KP_Home' and keyname != 'KP_Delete'): + return True + else: + return False def resize_button_press_event_cb(self, entry, event): jobject = self.selected_journal_entry @@ -421,6 +438,10 @@ class SugarCommander(activity.Activity): self.ls_journal.set(iter, COLUMN_SIZE, size) def datastore_updated_cb(self, uid): + + if self.selected_journal_entry is None: + return + new_jobject = datastore.get(uid) iter = self.ls_journal.get_iter_first() for row in self.ls_journal: @@ -755,8 +776,9 @@ class SugarCommander(activity.Activity): def save_func(buf, data): data.append(buf) - scaled_pixbuf.save_to_callbackv(save_func, 'png', - user_data=preview_data) + # FIXME: TypeError: save_to_callbackv() takes exactly 6 arguments (4 given) + # but apparently not needed + #scaled_pixbuf.save_to_callbackv(save_func, preview_data, 'png') preview_data = ''.join(preview_data) return preview_data |