def _show_picker_cb(self, button): if not self._want_document: return try: chooser = ObjectChooser(self, what_filter='Image', filter_type=FILTER_TYPE_GENERIC_MIME, show_preview=True) except: # for compatibility with older versions chooser = ObjectChooser(self._activity, what_filter='Image') try: result = chooser.run() if result == Gtk.ResponseType.ACCEPT: jobject = chooser.get_selected_object() if jobject and jobject.file_path: self._object_id = jobject.object_id self.read_file(jobject.file_path) self.set_canvas(self.scrolled_window) self.scrolled_window.show() finally: self.get_current_image_index() self.make_button_sensitive() chooser.destroy() del chooser
def _load_project(self, button): chooser = ObjectChooser(parent=self) result = chooser.run() if result == Gtk.ResponseType.ACCEPT: dsobject = chooser.get_selected_object() file_path = dsobject.get_file_path() try: f = open(file_path, 'r') # Test if the file is valid project. json.loads(f.read()) f.close() self.read_file(file_path) self.game.run(True) except: title = _('Load project from journal') msg = _( 'Error: Cannot open Physics project from this file.') alert = NotifyAlert(5) alert.props.title = title alert.props.msg = msg alert.connect( 'response', lambda alert, response: self.remove_alert(alert)) self.add_alert(alert) chooser.destroy()
def add_image(self): try: chooser = ObjectChooser(self._activity, what_filter='Image', filter_type=FILTER_TYPE_GENERIC_MIME, show_preview=True) except: # for compatibility with older versions chooser = ObjectChooser(self._activity, what_filter='Image') try: result = chooser.run() if result == Gtk.ResponseType.ACCEPT: jobject = chooser.get_selected_object() if jobject and jobject.file_path: logging.debug("imagen seleccionada: %s", jobject.file_path) tempfile_name = \ os.path.join(activity.get_activity_root(), 'instance', 'tmp%i' % time.time()) os.link(jobject.file_path, tempfile_name) logging.debug("tempfile_name: %s", tempfile_name) self._page.add_box_from_journal_image(tempfile_name) jobject.destroy() finally: chooser.destroy() del chooser
def _load_image_cb(self, button): chooser = None name = None self._custom_food_jobject = None if hasattr(mime, 'GENERIC_TYPE_IMAGE'): # See SL bug #2398 if 'image/svg+xml' not in \ mime.get_generic_type(mime.GENERIC_TYPE_IMAGE).mime_types: mime.get_generic_type( mime.GENERIC_TYPE_IMAGE).mime_types.append('image/svg+xml') chooser = ObjectChooser(parent=self, what_filter=mime.GENERIC_TYPE_IMAGE) else: try: chooser = ObjectChooser(parent=self, what_filter=None) except TypeError: chooser = ObjectChooser( None, self, Gtk.DialogFlags.MODAL | Gtk.DialogFlags.DESTROY_WITH_PARENT) if chooser is not None: try: result = chooser.run() if result == Gtk.ResponseType.ACCEPT: jobject = chooser.get_selected_object() if jobject and jobject.file_path: name = jobject.metadata['title'] mime_type = jobject.metadata['mime_type'] _logger.debug('result of choose: %s (%s)' % \ (name, str(mime_type))) finally: chooser.destroy() del chooser if name is not None: self._custom_food_jobject = jobject return
def add_image (self, *args):#widget=None, response=None, *args): """ Use to trigger and process the My Own Image selector. """ if hasattr(mime, 'GENERIC_TYPE_IMAGE'): filter = { 'what_filter': mime.GENERIC_TYPE_IMAGE } else: filter = { } chooser = ObjectChooser(self.parentp, **filter) try: result = chooser.run() if result == Gtk.ResponseType.ACCEPT: jobject = chooser.get_selected_object() if jobject and jobject.file_path: if self.load_image(str(jobject.file_path), True): pass else: err = Gtk.MessageDialog(self._parent, Gtk.DialogFlags.MODAL, Gtk.MESSAGE_ERROR, Gtk.BUTTONS_OK, _("Not a valid image file")) err.run() err.destroy() return finally: chooser.destroy() del chooser
def add_image(self, *args): #widget=None, response=None, *args): """ Use to trigger and process the My Own Image selector. """ if hasattr(mime, 'GENERIC_TYPE_IMAGE'): chooser = ObjectChooser(_('Choose image'), self._parent, Gtk.DialogFlag.MODAL | Gtk.DialogFlag.DESTROY_WITH_PARENT, what_filter=mime.GENERIC_TYPE_IMAGE) else: chooser = ObjectChooser( _('Choose image'), self._parent, Gtk.DialogFlag.MODAL | Gtk.DialogFlag.DESTROY_WITH_PARENT) try: result = chooser.run() if result == Gtk.RESPONSE_ACCEPT: jobject = chooser.get_selected_object() if jobject and jobject.file_path: if self.load_image(str(jobject.file_path), True): pass else: err = Gtk.MessageDialog(self._parent, Gtk.DIALOG_MODAL, Gtk.MESSAGE_ERROR, Gtk.BUTTONS_OK, _("Not a valid image file")) err.run() err.destroy() return finally: chooser.destroy() del chooser
def _choose_image(self): from sugar3.graphics.objectchooser import ObjectChooser try: from sugar3.graphics.objectchooser import FILTER_TYPE_GENERIC_MIME except: FILTER_TYPE_GENERIC_MIME = 'generic_mime' from sugar3 import mime chooser = None name = None if hasattr(mime, 'GENERIC_TYPE_IMAGE'): # See #2398 if 'image/svg+xml' not in \ mime.get_generic_type(mime.GENERIC_TYPE_IMAGE).mime_types: mime.get_generic_type( mime.GENERIC_TYPE_IMAGE).mime_types.append('image/svg+xml') try: chooser = ObjectChooser(parent=self._reflection.activity, what_filter=mime.GENERIC_TYPE_IMAGE, filter_type=FILTER_TYPE_GENERIC_MIME, show_preview=True) except: chooser = ObjectChooser(parent=self._reflection.activity, what_filter=mime.GENERIC_TYPE_IMAGE) else: try: chooser = ObjectChooser(parent=self, what_filter=None) except TypeError: chooser = ObjectChooser( None, self._reflection.activity, Gtk.DialogFlags.MODAL | Gtk.DialogFlags.DESTROY_WITH_PARENT) if chooser is not None: try: result = chooser.run() if result == Gtk.ResponseType.ACCEPT: jobject = chooser.get_selected_object() if jobject and jobject.file_path: name = jobject.metadata['title'] mime_type = jobject.metadata['mime_type'] _logger.debug('result of choose: %s (%s)' % (name, str(mime_type))) finally: chooser.destroy() del chooser if name is not None: pixbuf = self.add_new_picture(jobject.file_path) self._reflection.set_modification_time() if self._reflection.activity.sharing and pixbuf is not None: self._reflection.activity.send_event(PICTURE_CMD, {"basename": os.path.basename(jobject.file_path), "data": utils.pixbuf_to_base64(pixbuf)}) self._reflection.activity.send_event(IMAGE_REFLECTION_CMD, {"obj_id": self._reflection.data["obj_id"], "basename": os.path.basename(jobject.file_path)}) self._reflection.activity.reset_cursor()
def _load_image_cb(self, button): chooser = None name = None self._custom_food_jobject = None if hasattr(mime, 'GENERIC_TYPE_IMAGE'): # See SL bug #2398 if 'image/svg+xml' not in \ mime.get_generic_type(mime.GENERIC_TYPE_IMAGE).mime_types: mime.get_generic_type( mime.GENERIC_TYPE_IMAGE).mime_types.append('image/svg+xml') chooser = ObjectChooser(parent=self, what_filter=mime.GENERIC_TYPE_IMAGE) else: try: chooser = ObjectChooser(parent=self, what_filter=None) except TypeError: chooser = ObjectChooser( None, self, Gtk.DialogFlags.MODAL | Gtk.DialogFlags.DESTROY_WITH_PARENT) if chooser is not None: try: result = chooser.run() if result == Gtk.ResponseType.ACCEPT: jobject = chooser.get_selected_object() if jobject and jobject.file_path: name = jobject.metadata['title'] mime_type = jobject.metadata['mime_type'] _logger.debug('result of choose: %s (%s)' % \ (name, str(mime_type))) finally: chooser.destroy() del chooser if name is not None: self._custom_food_jobject = jobject return
def __add_cover_response_cb(self, alert, response_id, operation_function): if response_id == Gtk.ResponseType.YES: try: chooser = ObjectChooser(self, what_filter='Image', filter_type=FILTER_TYPE_GENERIC_MIME, show_preview=True) except: # for compatibility with older versions chooser = ObjectChooser(self, what_filter='Image') try: result = chooser.run() if result == Gtk.ResponseType.ACCEPT: logging.error('ObjectChooser: %r' % chooser.get_selected_object()) jobject = chooser.get_selected_object() if jobject and jobject.file_path: logging.error("imagen seleccionada: %s", jobject.file_path) mime_type = mime.get_for_file(jobject.file_path) extension = mime.get_primary_extension(mime_type) tempfile_name = \ os.path.join( self.get_activity_root(), 'instance', 'tmp%i.%s' % (time.time(), extension)) os.link(jobject.file_path, tempfile_name) operation_function(tempfile_name) finally: chooser.destroy() del chooser elif response_id == Gtk.ResponseType.NO: self._save_epub() self.remove_alert(alert)
def __add_cover_response_cb(self, alert, response_id, operation_function): if response_id == Gtk.ResponseType.YES: try: chooser = ObjectChooser(self, what_filter='Image', filter_type=FILTER_TYPE_GENERIC_MIME, show_preview=True) except: # for compatibility with older versions chooser = ObjectChooser(self, what_filter='Image') try: result = chooser.run() if result == Gtk.ResponseType.ACCEPT: logging.error('ObjectChooser: %r' % chooser.get_selected_object()) jobject = chooser.get_selected_object() if jobject and jobject.file_path: logging.error("imagen seleccionada: %s", jobject.file_path) mime_type = mime.get_for_file(jobject.file_path) extension = mime.get_primary_extension(mime_type) tempfile_name = \ os.path.join( self.get_activity_root(), 'instance', 'tmp%i.%s' % (time.time(), extension)) os.link(jobject.file_path, tempfile_name) operation_function(tempfile_name) finally: chooser.destroy() del chooser elif response_id == Gtk.ResponseType.NO: self._save_epub() self.remove_alert(alert)
def add_image(self, *args): #widget=None, response=None, *args): """ Use to trigger and process the My Own Image selector. """ if hasattr(mime, 'GENERIC_TYPE_IMAGE'): filter = {'what_filter': mime.GENERIC_TYPE_IMAGE} else: filter = {} chooser = ObjectChooser(self._parent, **filter) try: result = chooser.run() if result == Gtk.ResponseType.ACCEPT: jobject = chooser.get_selected_object() if jobject and jobject.file_path: #if self.load_image(str(jobject.file_path), True): self.set_nr_pieces(nr_pieces=9, path_from_journal=str( jobject.file_path)) pass # else: # err = Gtk.MessageDialog(self._parent, Gtk.DialogFlags.MODAL, Gtk.MESSAGE_ERROR, Gtk.BUTTONS_OK, # _("Not a valid image file")) # err.run() # err.destroy() # return finally: chooser.destroy() del chooser
def _choose_skin(self): ''' Select a skin from the Journal ''' chooser = None name = None if hasattr(mime, 'GENERIC_TYPE_IMAGE'): if 'image/svg+xml' not in \ mime.get_generic_type(mime.GENERIC_TYPE_IMAGE).mime_types: mime.get_generic_type( mime.GENERIC_TYPE_IMAGE).mime_types.append('image/svg+xml') chooser = ObjectChooser(parent=self, what_filter=mime.GENERIC_TYPE_IMAGE) else: try: chooser = ObjectChooser(parent=self, what_filter=None) except TypeError: chooser = ObjectChooser( None, activity, Gtk.DialogType.MODAL | Gtk.DialogType.DESTROY_WITH_PARENT) if chooser is not None: try: result = chooser.run() if result == Gtk.ResponseType.ACCEPT: jobject = chooser.get_selected_object() if jobject and jobject.file_path: name = jobject.metadata['title'] finally: jobject.destroy() chooser.destroy() del chooser if name is not None: return jobject.object_id, jobject.file_path else: return None, None
def _show_journal_object_picker_cb(self, button): """Show the journal object picker to load a document. This is for if Read is launched without a document. """ if not self._want_document: return try: chooser = ObjectChooser(parent=self, what_filter=self.get_bundle_id(), filter_type=FILTER_TYPE_MIME_BY_ACTIVITY) except: chooser = ObjectChooser(parent=self, what_filter=mime.GENERIC_TYPE_TEXT) try: result = chooser.run() if result == Gtk.ResponseType.ACCEPT: logging.debug('ObjectChooser: %r' % chooser.get_selected_object()) jobject = chooser.get_selected_object() if jobject and jobject.file_path: for key in list(jobject.metadata.keys()): self.metadata[key] = jobject.metadata[key] self.read_file(jobject.file_path) jobject.object_id = self._object_id finally: chooser.destroy() del chooser
def _show_picker_cb(self, button): if not self._want_document: return try: chooser = ObjectChooser(self, what_filter='Image', filter_type=FILTER_TYPE_GENERIC_MIME, show_preview=True) except: # for compatibility with older versions chooser = ObjectChooser(self._activity, what_filter='Image') try: result = chooser.run() if result == Gtk.ResponseType.ACCEPT: jobject = chooser.get_selected_object() if jobject and jobject.file_path: self._object_id = jobject.object_id self.read_file(jobject.file_path) self.set_canvas(self.scrolled_window) self.scrolled_window.show() finally: self.get_current_image_index() self.make_button_sensitive() chooser.destroy() del chooser
def __show_journal_object(self): """ Open a view of the journal to select a file. """ #FIXME: Add Filter to import from the journal. chooser = ObjectChooser(parent=self.get_toplevel()) #what_filter=mime.GENERIC_TYPE_TEXT) try: result = chooser.run() if result == Gtk.ResponseType.ACCEPT: jobject = chooser.get_selected_object() if jobject and jobject.file_path: if os.path.islink(jobject.file_path): self.read_file(os.readlink(jobject.file_path), jobject.metadata['title']) else: self.read_file(jobject.file_path, jobject.metadata['title']) finally: chooser.destroy() del chooser
def add_image(self): try: chooser = ObjectChooser(self._activity, what_filter='Image', filter_type=FILTER_TYPE_GENERIC_MIME, show_preview=True) except: # for compatibility with older versions chooser = ObjectChooser(self._activity, what_filter='Image') try: result = chooser.run() if result == Gtk.ResponseType.ACCEPT: logging.error('ObjectChooser: %r' % chooser.get_selected_object()) jobject = chooser.get_selected_object() if jobject and jobject.file_path: logging.error("imagen seleccionada: %s", jobject.file_path) tempfile_name = \ os.path.join(self._activity.get_activity_root(), 'instance', 'tmp%i' % time.time()) os.link(jobject.file_path, tempfile_name) logging.error("tempfile_name: %s", tempfile_name) self._page.add_box_from_journal_image(tempfile_name) finally: chooser.destroy() del chooser
def _load_project(self, button): chooser = ObjectChooser(parent=self) result = chooser.run() if result == Gtk.ResponseType.ACCEPT: dsobject = chooser.get_selected_object() file_path = dsobject.get_file_path() self.__load_game(file_path, True) chooser.destroy()
def _load_project(self, button): chooser = ObjectChooser(parent=self) result = chooser.run() if result == Gtk.ResponseType.ACCEPT: dsobject = chooser.get_selected_object() file_path = dsobject.get_file_path() self.__load_game(file_path, True) chooser.destroy()
def load(self, file_path=None): """ If the filePath is None this function opens the Object Chooser Dialog for choosing a .zip type file If the file contains a *.ufo folder than that UFO Font file will be loaded using defcon and the current page will be set to Font Summary Page if the filepath is specified than the ufo from that filepath is opened """ if file_path is None: # FIXME: Add compatibility for earlier versions # noqa try: chooser = ObjectChooser( parent=self, what_filter=self.get_bundle_id(), filter_type=FILTER_TYPE_MIME_BY_ACTIVITY) except: self._show_alert("Error", "This feature is not Implemented") logging.error("This feature is not Implemented") return try: result = chooser.run() if result == Gtk.ResponseType.ACCEPT: jobject = chooser.get_selected_object() if jobject and jobject.file_path: # Now we know the file exists # Check if the file is of the valid format if not self._load_from_file(jobject.file_path): self._show_alert("Error", "Invalid File type chosen") logging.error("File type is invalid") return else: self.set_page("SUMMARY") finally: chooser.destroy() del chooser else: if not self._load_from_file(file_path): self._show_alert("Error", "Invalid File type chosen") logging.error("File type is invalid") return else: self.set_page("SUMMARY") # print success message self._show_alert("Success", "Imported Font: " + str(globals.FONT.info.familyName))
def load(self, file_path=None): """ If the filePath is None this function opens the Object Chooser Dialog for choosing a .zip type file If the file contains a *.ufo folder than that UFO Font file will be loaded using defcon and the current page will be set to Font Summary Page if the filepath is specified than the ufo from that filepath is opened """ if file_path is None: # FIXME: Add compatibility for earlier versions # noqa try: chooser = ObjectChooser( parent=self, what_filter=self.get_bundle_id(), filter_type=FILTER_TYPE_MIME_BY_ACTIVITY) except Exception: self._show_alert("Error", "This feature is not Implemented") logging.error("This feature is not Implemented") return try: result = chooser.run() if result == Gtk.ResponseType.ACCEPT: jobject = chooser.get_selected_object() if jobject and jobject.file_path: # Now we know the file exists # Check if the file is of the valid format if not self._load_from_file(jobject.file_path): self._show_alert("Error", "Invalid File type chosen") logging.error("File type is invalid") return else: self.set_page("SUMMARY") finally: chooser.destroy() del chooser else: if not self._load_from_file(file_path): self._show_alert("Error", "Invalid File type chosen") logging.error("File type is invalid") return else: self.set_page("SUMMARY") # print success message self._show_alert("Success", "Imported Font: " + str(globals.FONT.info.familyName))
def __import_from_browse_cb(self, button): chooser = ObjectChooser(parent=self, what_filter='org.laptop.WebActivity', filter_type=FILTER_TYPE_ACTIVITY) result = chooser.run() if result == Gtk.ResponseType.ACCEPT: logging.debug('ObjectChooser: %r' % chooser.get_selected_object()) jobject = chooser.get_selected_object() self._load_browse(jobject) chooser.destroy() del chooser
def __button_choose_image_cb(self, button): try: chooser = ObjectChooser(self.get_toplevel(), what_filter='Image', filter_type=FILTER_TYPE_GENERIC_MIME, show_preview=True) except: # for compatibility with older versions chooser = ObjectChooser(self.get_toplevel(), what_filter='Image') try: result = chooser.run() if result == Gtk.ResponseType.ACCEPT: jobject = chooser.get_selected_object() images_mime_types = mime.get_generic_type( mime.GENERIC_TYPE_IMAGE).mime_types if jobject and jobject.file_path and \ jobject.metadata.get('mime_type') in images_mime_types: pixbuf = GdkPixbuf.Pixbuf.new_from_file_at_size( jobject.file_path, self._poll.activity._image_size['height'], self._poll.activity._image_size['width']) self._poll.images[self.field] = pixbuf self._poll.images_ds_objects[self.field]['id'] = \ jobject.object_id self._poll.images_ds_objects[self.field]['file_path'] = \ jobject.file_path self.__show_image_thumbnail() else: self._poll.activity.get_alert( _('Poll Activity'), _('Your selection is not an image')) finally: chooser.destroy() del chooser
def import_font(self, file_path=None): """Import the font from a .otf or .ttf file.""" if file_path is None: # FIXME: Add compatibility for earlier versions # FIXME: Fix the filter type to include either # all the objects or only the .otf and .ttf font files try: chooser = ObjectChooser( parent=self, what_filter=self.get_bundle_id(), filter_type=None) except: self._show_alert("Error", "This feature is not Implemented") logging.error("This feature is not Implemented") return else: try: result = chooser.run() if result == Gtk.ResponseType.ACCEPT: jobject = chooser.get_selected_object() if jobject and jobject.file_path: file_path = jobject.file_path finally: chooser.destroy() del chooser font = BaseFont.import_from_binary(file_path) if font is None: self._show_alert("Error", "Invalid file chosen") return else: # save the ufo in the instance folder # so that we have a font path which can be # needed to perform other actions on the font path = self._create_font_instance() globals.FONT = font if path is not None: self.set_page("SUMMARY") # print success message self._show_alert("Success", "Imported Font: %s" % globals.FONT.info.familyName)
def import_font(self, file_path=None): """Import the font from a .otf or .ttf file.""" if file_path is None: # FIXME: Add compatibility for earlier versions # FIXME: Fix the filter type to include either # all the objects or only the .otf and .ttf font files try: chooser = ObjectChooser( parent=self, what_filter=self.get_bundle_id(), filter_type=None) except Exception: self._show_alert("Error", "This feature is not Implemented") logging.error("This feature is not Implemented") return else: try: result = chooser.run() if result == Gtk.ResponseType.ACCEPT: jobject = chooser.get_selected_object() if jobject and jobject.file_path: file_path = jobject.file_path finally: chooser.destroy() del chooser font = BaseFont.import_from_binary(file_path) if font is None: self._show_alert("Error", "Invalid file chosen") return else: # save the ufo in the instance folder # so that we have a font path which can be # needed to perform other actions on the font path = self._create_font_instance() globals.FONT = font if path is not None: self.set_page("SUMMARY") # print success message self._show_alert("Success", "Imported Font: %s" % globals.FONT.info.familyName)
def __add_clicked_cb(self, button): chooser = ObjectChooser(self) try: result = chooser.run() if result == Gtk.ResponseType.ACCEPT: logging.debug('ObjectChooser: %r', chooser.get_selected_object()) jobject = chooser.get_selected_object() # add the information about the sharer user_data = utils.get_user_data() jobject.metadata['shared_by'] = json.dumps(user_data) # And add a comment to the Journal entry if 'comments' in jobject.metadata: comments = json.loads(jobject.metadata['comments']) else: comments = [] comments.append({ 'from': user_data['from'], 'message': _('I shared this.'), 'icon-color': '[%s,%s]' % (user_data['icon'][0], user_data['icon'][1]) }) jobject.metadata['comments'] = json.dumps(comments) if jobject and jobject.file_path: if self._master: datastore.write(jobject) self._jm.append_to_shared_items(jobject.object_id) else: tmp_path = os.path.join(self._activity_root, 'instance') logging.error('temp_path %s', tmp_path) packaged_file_path = utils.package_ds_object( jobject, tmp_path) url = 'ws://%s:%d/websocket/upload' % (self.ip, self.port) uploader = utils.Uploader(packaged_file_path, url) uploader.connect('uploaded', self.__uploaded_cb) cursor = Gdk.Cursor.new(Gdk.CursorType.WATCH) self.get_window().set_cursor(cursor) uploader.start() finally: chooser.destroy() del chooser
def show(self): job = None chooser = ObjectChooser() try: result = chooser.run() if result == Gtk.ResponseType.ACCEPT: jobject = chooser.get_selected_object() if jobject and jobject.file_path: job = jobject finally: chooser.destroy() del chooser return job
def __button_choose_image_cb(self, button): try: chooser = ObjectChooser(self.get_toplevel(), what_filter='Image', filter_type=FILTER_TYPE_GENERIC_MIME, show_preview=True) except: # for compatibility with older versions chooser = ObjectChooser(self.get_toplevel(), what_filter='Image') try: result = chooser.run() if result == Gtk.ResponseType.ACCEPT: jobject = chooser.get_selected_object() images_mime_types = mime.get_generic_type( mime.GENERIC_TYPE_IMAGE).mime_types if jobject and jobject.file_path and \ jobject.metadata.get('mime_type') in images_mime_types: pixbuf = GdkPixbuf.Pixbuf.new_from_file_at_size( jobject.file_path, self._poll.activity._image_size['height'], self._poll.activity._image_size['width']) self._poll.images[self.field] = pixbuf self._poll.images_ds_objects[self.field]['id'] = \ jobject.object_id self._poll.images_ds_objects[self.field]['file_path'] = \ jobject.file_path self.__show_image_thumbnail() else: self._poll.activity.get_alert( _('Poll Activity'), _('Your selection is not an image')) finally: chooser.destroy() del chooser
def __button_choose_image_cb(self, button, data=None, data2=None): if hasattr(mime, 'GENERIC_TYPE_IMAGE'): chooser = ObjectChooser(parent=self, what_filter=mime.GENERIC_TYPE_IMAGE) else: chooser = ObjectChooser(parent=self) try: result = chooser.run() if result == Gtk.ResponseType.ACCEPT: jobject = chooser.get_selected_object() images_mime_types = mime.get_generic_type( mime.GENERIC_TYPE_IMAGE).mime_types if jobject and jobject.file_path and \ jobject.metadata.get('mime_type') in images_mime_types: pixbuf = GdkPixbuf.Pixbuf.new_from_file_at_size( jobject.file_path, self._poll.activity._image_size['height'], self._poll.activity._image_size['width']) self._poll.images[int(data)] = pixbuf self._poll.images_ds_objects[int(data)]['id'] = \ jobject.object_id self._poll.images_ds_objects[int(data)]['file_path'] = \ jobject.file_path self.__show_image_thumbnail(data2, data) button.set_label(_('Change Image')) else: self._poll.activity.get_alert( _('Poll Activity'), _('Your selection is not an image')) finally: chooser.destroy() del chooser
def _upload_cb(self, widget, i): chooser = None dsobject = None name = None chooser = ObjectChooser(parent=self._task_master.activity) if chooser is not None: result = chooser.run() if result == Gtk.ResponseType.ACCEPT: dsobject = chooser.get_selected_object() if dsobject and dsobject.file_path: name = dsobject.metadata['title'] chooser.destroy() del chooser if name is not None: span = 'size="large"' self._labels[i].set_markup('<span %s>%s</span>' % (span, name)) self._files[i] = dsobject.file_path self._mimetypes[i] = dsobject.metadata['mime_type']
def __add_item_cb(self, button): try: chooser = ObjectChooser(parent=self, what_filter=None) except TypeError: chooser = ObjectChooser( None, self._reflection.activity, Gtk.DialogFlags.MODAL | Gtk.DialogFlags.DESTROY_WITH_PARENT) try: result = chooser.run() if result == Gtk.ResponseType.ACCEPT: jobject = chooser.get_selected_object() if jobject: self._add_new_from_journal(jobject) self.reload_data(self.reflection_data) finally: chooser.destroy() del chooser
def __add_item_cb(self, button): try: chooser = ObjectChooser(parent=self, what_filter=None) except TypeError: chooser = ObjectChooser( None, self._reflection.activity, Gtk.DialogFlags.MODAL | Gtk.DialogFlags.DESTROY_WITH_PARENT) try: result = chooser.run() if result == Gtk.ResponseType.ACCEPT: jobject = chooser.get_selected_object() if jobject: self._add_new_from_journal(jobject) self.reload_data(self.reflection_data) finally: chooser.destroy() del chooser
def _stamp_changed(self, widget): items = widget.get_selected_items() if not items: return iter_ = STORE.get_iter(items[0]) filepath = STORE.get(iter_, 1)[0] if filepath == 'loadfromjournal': self.hide() try: chooser = ObjectChooser(self._activity, what_filter='Image', filter_type=FILTER_TYPE_GENERIC_MIME, show_preview=True) except: # for compatibility with older versions chooser = ObjectChooser(self._activity, what_filter='Image') try: result = chooser.run() newfilepath = None if result == Gtk.ResponseType.ACCEPT: jobject = chooser.get_selected_object() if jobject and jobject.file_path: newfilepath = jobject.file_path object_id = str(jobject.object_id) if object_id not in JOURNAL_IMAGES: JOURNAL_IMAGES.append(object_id) pixbuf = GdkPixbuf.Pixbuf.new_from_file_at_size( newfilepath, 50, 50) STORE.append([pixbuf, newfilepath]) finally: if not newfilepath: self.show_all() else: self.emit('stamp-selected', newfilepath) self.destroy() chooser.destroy() del chooser else: self.emit('stamp-selected', filepath) self.destroy()
def chooser(parent_window, filter, action): """ Choose an object from the datastore and take some action """ chooser = None try: chooser = ObjectChooser(parent=parent_window, what_filter=filter, filter_type=FILTER_TYPE_GENERIC_MIME, show_preview=True) except: chooser = ObjectChooser(parent=parent_window, what_filter=filter) if chooser is not None: try: result = chooser.run() if result == Gtk.ResponseType.ACCEPT: dsobject = chooser.get_selected_object() action(dsobject) dsobject.destroy() finally: chooser.destroy() del chooser
def _chooser(self, filter, action): ''' Choose an object from the datastore and take some action ''' chooser = None try: chooser = ObjectChooser(parent=self, what_filter=filter) except TypeError: chooser = ObjectChooser( None, self, Gtk.DialogFlags.MODAL | Gtk.DialogFlags.DESTROY_WITH_PARENT) if chooser is not None: try: result = chooser.run() if result == Gtk.ResponseType.ACCEPT: dsobject = chooser.get_selected_object() action(dsobject) dsobject.destroy() finally: chooser.destroy() del chooser
def _stamp_changed(self, widget): items = widget.get_selected_items() if not items: return iter_ = STORE.get_iter(items[0]) filepath = STORE.get(iter_, 1)[0] if filepath == 'loadfromjournal': self.hide() try: chooser = ObjectChooser(self._activity, what_filter='Image', filter_type=FILTER_TYPE_GENERIC_MIME, show_preview=True) except: # for compatibility with older versions chooser = ObjectChooser(self._activity, what_filter='Image') try: result = chooser.run() newfilepath = None if result == Gtk.ResponseType.ACCEPT: jobject = chooser.get_selected_object() if jobject and jobject.file_path: newfilepath = jobject.file_path object_id = str(jobject.object_id) if object_id not in JOURNAL_IMAGES: JOURNAL_IMAGES.append(object_id) pixbuf = GdkPixbuf.Pixbuf.new_from_file_at_size( newfilepath, 50, 50) STORE.append([pixbuf, newfilepath]) finally: if not newfilepath: self.show_all() else: self.emit('stamp-selected', newfilepath) self.destroy() chooser.destroy() del chooser else: self.emit('stamp-selected', filepath) self.destroy()
def chooser(parent_window, filter, action): """ Choose an object from the datastore and take some action """ chooser = None try: chooser = ObjectChooser(parent=parent_window, what_filter=filter, filter_type=FILTER_TYPE_GENERIC_MIME, show_preview=True) except: chooser = ObjectChooser(parent=parent_window, what_filter=filter) if chooser is not None: try: result = chooser.run() if result == Gtk.ResponseType.ACCEPT: dsobject = chooser.get_selected_object() action(dsobject) dsobject.destroy() finally: chooser.destroy() del chooser
def show(self): title = None parent = None file = None job = None chooser = ObjectChooser() try: result = chooser.run() if result == Gtk.ResponseType.ACCEPT: jobject = chooser.get_selected_object() if jobject and jobject.file_path: job = jobject finally: chooser.destroy() del chooser return job
def _image_cb(self, button): try: chooser = ObjectChooser(self, what_filter='Image', filter_type=FILTER_TYPE_GENERIC_MIME, show_preview=True) except: # for compatibility with older versions chooser = ObjectChooser(self, what_filter='Image') try: result = chooser.run() if result == Gtk.ResponseType.ACCEPT: logging.debug('ObjectChooser: %r', chooser.get_selected_object()) jobject = chooser.get_selected_object() if jobject and jobject.file_path: self.abiword_canvas.insert_image(jobject.file_path, self.floating_image) finally: chooser.destroy() del chooser
def insertImage(self, widget, activity): try: chooser = ObjectChooser(self._activity, what_filter='Image', filter_type=FILTER_TYPE_GENERIC_MIME, show_preview=True) except: # for compatibility with older versions chooser = ObjectChooser(self._activity, what_filter='Image') try: result = chooser.run() if result == Gtk.ResponseType.ACCEPT: logging.debug('ObjectChooser: %r', chooser.get_selected_object()) jobject = chooser.get_selected_object() if jobject and jobject.file_path: self._activity.area.load_image(jobject.file_path) finally: chooser.destroy() del chooser
def insertImage(self, widget, activity): try: chooser = ObjectChooser(self._activity, what_filter='Image', filter_type=FILTER_TYPE_GENERIC_MIME, show_preview=True) except: # for compatibility with older versions chooser = ObjectChooser(self._activity, what_filter='Image') try: result = chooser.run() if result == Gtk.ResponseType.ACCEPT: logging.debug('ObjectChooser: %r', chooser.get_selected_object()) jobject = chooser.get_selected_object() if jobject and jobject.file_path: self._activity.area.load_image(jobject.file_path) finally: chooser.destroy() del chooser
def pick(cb=None, default=None, parent=None, what=None): """ Opens object chooser. Method returns: * cb(jobject), if object was choosen and cb is not None * jobject, if object was choosen and cb is None * default, otherwise NOTE: 'what' makes sense only for sugar >= 0.84 """ what = what and {'what_filter': what} or {} chooser = ObjectChooser(parent=parent, **what) logging.error(chooser) jobject = None out = None try: if chooser.run() == Gtk.ResponseType.ACCEPT: jobject = chooser.get_selected_object() logging.debug('ObjectChooser: %r' % jobject) if jobject and jobject.file_path: if cb: out = cb(jobject) else: out = jobject finally: if jobject and id(jobject) != id(out): jobject.destroy() chooser.destroy() del chooser if out: return out else: return default
def __image_cb(self, button, floating=False): try: chooser = ObjectChooser(self, what_filter='Image', filter_type=FILTER_TYPE_GENERIC_MIME, show_preview=True) except: # for compatibility with older versions chooser = ObjectChooser(self, what_filter='Image') try: result = chooser.run() if result == Gtk.ResponseType.ACCEPT: logging.debug('ObjectChooser: %r', chooser.get_selected_object()) jobject = chooser.get_selected_object() if jobject and jobject.file_path: self.abiword_canvas.insert_image(jobject.file_path, floating) finally: chooser.destroy() del chooser
def add_image(self, *args): # widget=None, response=None, *args): """ Use to trigger and process the My Own Image selector. """ if hasattr(mime, 'GENERIC_TYPE_IMAGE'): filter = {'what_filter': mime.GENERIC_TYPE_IMAGE} else: filter = {} chooser = ObjectChooser(self._parent, **filter) try: result = chooser.run() if result == Gtk.ResponseType.ACCEPT: jobject = chooser.get_selected_object() if jobject and jobject.file_path: self.pth_frm_jrnl = str(jobject.file_path) self.set_nr_pieces(nr_pieces=9, path_from_journal=str( jobject.file_path)) pass finally: chooser.destroy() del chooser
def load_image_from_journal(self): chooser = None name = None jobject = None try: chooser = ObjectChooser(parent=self, what_filter=None) except TypeError: chooser = ObjectChooser(None, self, Gtk.DialogFlags.MODAL | 0) if chooser is not None: try: result = chooser.run() if result == Gtk.ResponseType.ACCEPT: jobject = chooser.get_selected_object() if jobject and jobject.file_path: name = jobject.metadata['title'] #mime_type = jobject.metadata['mime_type'] #_logger.debug('result of choose: %s (%s)' % \(name, str(mime_type))) finally: chooser.destroy() del chooser return jobject
def __chooser_response_cb(self, chooser, response_id, operation_function): self.set_sensitive(True) if response_id == Gtk.ResponseType.ACCEPT: logging.error('selected %s', chooser.get_selected_object_id()) file_path = chooser.get_selected_object_id() tempfile_name = \ os.path.join(self.get_activity_root(), 'instance', 'tmp%i' % time.time()) os.link(file_path, tempfile_name) operation_function(tempfile_name) chooser.destroy() del chooser if response_id == Gtk.ResponseType.REJECT: try: chooser = ObjectChooser(self, what_filter='Image', filter_type=FILTER_TYPE_GENERIC_MIME, show_preview=True) except: # for compatibility with older versions chooser = ObjectChooser(self, what_filter='Image') try: result = chooser.run() if result == Gtk.ResponseType.ACCEPT: logging.error('ObjectChooser: %r' % chooser.get_selected_object()) jobject = chooser.get_selected_object() if jobject and jobject.file_path: logging.error("imagen seleccionada: %s", jobject.file_path) tempfile_name = \ os.path.join(self.get_activity_root(), 'instance', 'tmp%i' % time.time()) os.link(jobject.file_path, tempfile_name) operation_function(tempfile_name) finally: chooser.destroy() del chooser
def journal_open_image(self): self.object_chooser_active = True if hasattr(mime, 'GENERIC_TYPE_IMAGE'): chooser = ObjectChooser(_('Choose image'), what_filter=mime.GENERIC_TYPE_IMAGE) else: chooser = ObjectChooser(_('Choose image')) try: result = chooser.run() if result == Gtk.ResponseType.ACCEPT and chooser.get_selected_object( ): jobject = chooser.get_selected_object() else: return False if jobject and jobject.file_path: logging.debug("journal_open_image: fname=%s" % jobject.file_path) try: self.orig_pic = GdkPixbuf.Pixbuf.new_from_file( jobject.file_path) self.filename = os.path.join( 'images', os.path.basename(jobject.file_path)) except Exception as e: logging.error("journal_open_image: %s" % e) return False else: return False finally: chooser.destroy() del chooser self.object_chooser_active = False self.text = self.filename[0:self.filename.rfind('.')] self.recalc_edges(True) return True
def __chooser_response_cb(self, chooser, response_id, operation_function): self.set_sensitive(True) if response_id == Gtk.ResponseType.ACCEPT: logging.error('selected %s', chooser.get_selected_object_id()) file_path = chooser.get_selected_object_id() tempfile_name = \ os.path.join(self.get_activity_root(), 'instance', 'tmp%i' % time.time()) os.link(file_path, tempfile_name) operation_function(tempfile_name) chooser.destroy() del chooser if response_id == Gtk.ResponseType.REJECT: try: chooser = ObjectChooser(self, what_filter='Image', filter_type=FILTER_TYPE_GENERIC_MIME, show_preview=True) except: # for compatibility with older versions chooser = ObjectChooser(self, what_filter='Image') try: result = chooser.run() if result == Gtk.ResponseType.ACCEPT: logging.error('ObjectChooser: %r' % chooser.get_selected_object()) jobject = chooser.get_selected_object() if jobject and jobject.file_path: logging.error("imagen seleccionada: %s", jobject.file_path) tempfile_name = \ os.path.join(self.get_activity_root(), 'instance', 'tmp%i' % time.time()) os.link(jobject.file_path, tempfile_name) operation_function(tempfile_name) finally: chooser.destroy() del chooser
def chooser_dialog(parent_window, filter, action): ''' Choose an object from the datastore and take some action ''' from sugar3.graphics.objectchooser import ObjectChooser chooser = None dsobject = None cleanup_needed = False try: chooser = ObjectChooser(parent=parent_window, what_filter=filter) except TypeError: # Old-syle Sugar chooser chooser = ObjectChooser( None, parent_window, Gtk.DialogFlags.MODAL | Gtk.DialogFlags.DESTROY_WITH_PARENT) cleanup_needed = True if chooser is not None: result = chooser.run() if result == Gtk.ResponseType.ACCEPT: dsobject = chooser.get_selected_object() if cleanup_needed: chooser.destroy() del chooser GLib.idle_add(action, dsobject)
def _choose_custom_card(self): ''' Select a custom card from the Journal ''' chooser = None name = None if hasattr(mime, 'GENERIC_TYPE_IMAGE'): # See #2398 if 'image/svg+xml' not in \ mime.get_generic_type(mime.GENERIC_TYPE_IMAGE).mime_types: mime.get_generic_type( mime.GENERIC_TYPE_IMAGE).mime_types.append('image/svg+xml') chooser = ObjectChooser(parent=self.activity, what_filter=mime.GENERIC_TYPE_IMAGE) else: try: chooser = ObjectChooser(parent=self, what_filter=None) except TypeError: chooser = ObjectChooser( None, self.activity, Gtk.DialogFlags.MODAL | Gtk.DialogFlags.DESTROY_WITH_PARENT) if chooser is not None: try: result = chooser.run() if result == Gtk.ResponseType.ACCEPT: jobject = chooser.get_selected_object() if jobject and jobject.file_path: name = jobject.metadata['title'] mime_type = jobject.metadata['mime_type'] _logger.debug('result of choose: %s (%s)' % (name, str(mime_type))) finally: chooser.destroy() del chooser if name is not None: self._find_custom_paths(jobject)
def chooser_dialog(parent_window, filter, action): ''' Choose an object from the datastore and take some action ''' from sugar3.graphics.objectchooser import ObjectChooser chooser = None dsobject = None cleanup_needed = False try: chooser = ObjectChooser(parent=parent_window, what_filter=filter) except TypeError: # Old-syle Sugar chooser chooser = ObjectChooser( None, parent_window, Gtk.DialogFlags.MODAL | Gtk.DialogFlags.DESTROY_WITH_PARENT) cleanup_needed = True if chooser is not None: result = chooser.run() if result == Gtk.ResponseType.ACCEPT: dsobject = chooser.get_selected_object() if cleanup_needed: chooser.destroy() del chooser GObject.idle_add(action, dsobject)