diff options
author | Sebastian <icarito@sugarlabs.org> | 2011-03-31 04:07:32 (GMT) |
---|---|---|
committer | Sebastian <icarito@sugarlabs.org> | 2011-03-31 04:07:32 (GMT) |
commit | 7694765522e9aa3d3f493fa6179674c726b305f7 (patch) | |
tree | 87610ba06f309842c7639005f012790779d0a398 | |
parent | 9c7c2349ea443045a03855219bbb18e35c3a04e3 (diff) |
-rw-r--r-- | FileShare.activity/FileShareActivity.py | 4 | ||||
-rw-r--r-- | FileShare.activity/GuiView.py | 46 | ||||
-rw-r--r-- | FileShare.activity/ShareFavorites.py | 33 |
3 files changed, 80 insertions, 3 deletions
diff --git a/FileShare.activity/FileShareActivity.py b/FileShare.activity/FileShareActivity.py index dd4b244..7f544cf 100644 --- a/FileShare.activity/FileShareActivity.py +++ b/FileShare.activity/FileShareActivity.py @@ -117,10 +117,10 @@ class FileShareActivity(Activity): if jabber_serv: self.server_ip = jabber_serv + self.server_port= 14623 self.s_version = 0 - # INITIALIZE GUI ################ self.set_title('File Share') @@ -611,6 +611,6 @@ class FileShareActivity(Activity): open(bundle_path, "wb").write(zip_file.read(fileName)) fi = FileInfo.share_load(filelist[key], True) - self._addFileToUIList(fi.id, fi) + self.disp.guiHandler._addFileToUIList ( fi.id , fi) zip_file.close() diff --git a/FileShare.activity/GuiView.py b/FileShare.activity/GuiView.py index cbf782b..c9dcb57 100644 --- a/FileShare.activity/GuiView.py +++ b/FileShare.activity/GuiView.py @@ -36,6 +36,44 @@ class GuiHandler(): self.treeview = tree self.tb_alert = None self.guiView = handle + + def requestAddFavorites(self, widget, data=None): + _logger.info('Requesting to add all favorites') + + from ShareFavorites import load_journal_table + + favorites = load_journal_table() + + for jobject in favorites: + self.show_throbber(True, _("Packaging Object") ) + try: + file_obj = self.activity.build_file( jobject ) + except InShareException: + self._alert(_("Object Not Added"), _("Object already shared")) + self.show_throbber( False ) + next + + # No problems continue + self.show_throbber( False ) + + # Add To UI + self._addFileToUIList( file_obj.id, file_obj ) + + # Register File with activity share list + self.activity._registerShareFile( file_obj.id, file_obj ) + + # Upload to server? + if data and data.has_key('upload'): + self.show_throbber(True, _("Uploading Object to server")) + def send(): + try: + self.activity.send_file_to_server( file_obj.id, file_obj ) + except FileUploadFailure: + self._alert( _("Failed to upload object") ) + self._remFileFromUIList( file_obj.id ) + self.activity.delete_file( file_obj.id ) + self.show_throbber( False ) + threading.Thread(target=send).start() def requestAddFile(self, widget, data=None): _logger.info('Requesting to add file') @@ -302,13 +340,15 @@ class GuiView(gtk.ScrolledWindow): self.action_buttons['add'] = ToolButton('fs_gtk-add') self.action_buttons['add'].set_tooltip(_("Add Object")) + self.action_buttons['add_fav'] = ToolButton('emblem-favorite') + self.action_buttons['add_fav'].set_tooltip(_("Add Favorites")) + self.action_buttons['rem'] = ToolButton('fs_gtk-remove') self.action_buttons['rem'].set_tooltip(_("Remove Object(s)")) self.action_buttons['save'] = ToolButton('filesave') self.action_buttons['save'].set_tooltip( _("Copy Object(s) to Journal") ) - self.action_buttons['down'] = ToolButton('epiphany-download') self.action_buttons['down'].set_tooltip( _('Download Object(s)') ) @@ -321,11 +361,13 @@ class GuiView(gtk.ScrolledWindow): if self.activity.isServer: self.action_buttons['add'].connect("clicked", self.guiHandler.requestAddFile, None) + self.action_buttons['add_fav'].connect("clicked", self.guiHandler.requestAddFavorites, None) self.action_buttons['save'].connect("clicked", self.guiHandler.requestInsFile, None) self.action_buttons['rem'].connect("clicked", self.guiHandler.requestRemFile, None) self.action_buttons['server'].connect("clicked", self.guiHandler.switch_to_server, None) self.action_bar.insert(self.action_buttons['add'], -1) + #self.action_bar.insert(self.action_buttons['add_fav'], -1) self.action_bar.insert(self.action_buttons['save'], -1) self.action_bar.insert(self.action_buttons['rem'], -1) self.action_bar.insert(self.action_buttons['server'], -1) @@ -345,9 +387,11 @@ class GuiView(gtk.ScrolledWindow): if self.activity._mode == 'SERVER' and self.activity._user_permissions != 0: self.action_buttons['add'].connect("clicked", self.guiHandler.requestAddFile, {'upload':True}) + self.action_buttons['add_fav'].connect("clicked", self.guiHandler.requestAddFavorites, {'upload':True}) self.action_buttons['rem'].connect("clicked", self.guiHandler.requestRemFile, {'remove':True}) self.action_bar.insert(self.action_buttons['add'], -1) + self.action_bar.insert(self.action_buttons['add_fav'], -1) self.action_bar.insert(self.action_buttons['rem'], -1) if self.activity._user_permissions == 2: diff --git a/FileShare.activity/ShareFavorites.py b/FileShare.activity/ShareFavorites.py new file mode 100644 index 0000000..f5db68a --- /dev/null +++ b/FileShare.activity/ShareFavorites.py @@ -0,0 +1,33 @@ +from sugar.datastore import datastore + +def load_journal_table(): + """ + Carga la metadata del Diario de Sugar + Retorna una lista de objetos de datastore + """ + ds_mounts = datastore.mounts() + mountpoint_id = None + if len(ds_mounts) == 1 and ds_mounts[0]['id'] == 1: + query = { 'sorting':'timestamp', 'keep':'1' } + else: + # we're in sugar 0.82 + query = { 'order_by':'-timestamp' } + for mountpoint in ds_mounts: + id = mountpoint['id'] + uri = mountpoint['uri'] + if uri.startswith('/home'): + mountpoint_id = id + + if mountpoint_id is not None: + query['mountpoints'] = [ mountpoint_id ] + + ds_objects, num_objects = datastore.find( + query, properties=['title_set_by_user','activity', + 'title', 'mime_type', 'mtime', 'share-scope','uid', + 'keep', 'tags', 'description']) + + return ds_objects + +if __name__ == '__main__': + for obj in load_journal_table(): + print obj.metadata.get_dictionary()['title'] |