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 __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 _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 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, e: logging.error("journal_open_image: %s" % e) return False else:
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_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 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 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_from_journal_cb(self, event): ''' Create a chooser for image objects ''' self.add_button.set_sensitive(False) self.letter_entry.set_sensitive(False) self.image_button.set_sensitive(False) self.sound_button.set_sensitive(False) self.image_id = None chooser = ObjectChooser(what_filter=mime.GENERIC_TYPE_IMAGE) result = chooser.run() if result == Gtk.ResponseType.ACCEPT: jobject = chooser.get_selected_object() self.image_id = str(jobject._object_id) x = self._page._grid_x_offset + self._page._card_width + 12 y = self._page._grid_y_offset + 40 w = self._page._card_width h = self._page._card_height pixbuf = GdkPixbuf.Pixbuf.new_from_file_at_size( jobject.get_file_path(), w, h) self.preview_image.set_image(pixbuf) self.preview_image.move((x, y)) self.preview_image.set_layer(100) self.image_button.set_sensitive(True) self.sound_button.set_sensitive(True) if self.image_id and self.audio_id: self.letter_entry.set_sensitive(True) self._page._canvas.disconnect(self._page.button_press_event_id) self._page.button_press_event_id = \ self._page._canvas.connect('button-press-event', self._play_audio_cb)
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, *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 _object_chooser(self, mime_type, type_name): chooser = ObjectChooser() matches_mime_type = False response = chooser.run() if response == Gtk.ResponseType.ACCEPT: jobject = chooser.get_selected_object() metadata = jobject.metadata file_path = jobject.file_path if metadata['mime_type'] == mime_type: matches_mime_type = True else: alert = Alert() alert.props.title = _('Invalid object') alert.props.msg = \ _('The selected object must be a %s file' % (type_name)) ok_icon = Icon(icon_name='dialog-ok') alert.add_button(Gtk.ResponseType.OK, _('Ok'), ok_icon) ok_icon.show() alert.connect('response', lambda a, r: self.remove_alert(a)) self.add_alert(alert) alert.show() return matches_mime_type, file_path, metadata['title']
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 _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 __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 __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 __image_chooser(self): chooser = ObjectChooser(what_filter=mime.GENERIC_TYPE_IMAGE) result = chooser.run() if result == Gtk.ResponseType.ACCEPT: jobject = chooser.get_selected_object() if jobject and jobject.file_path: title = str(jobject.metadata['title']) path = str(jobject.file_path) TABS[2].gallery.add_image(path, title)
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 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 _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 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 __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 __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 __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 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 __text_chooser(self): chooser = ObjectChooser(what_filter=mime.GENERIC_TYPE_TEXT) result = chooser.run() if result == Gtk.ResponseType.ACCEPT: jobject = chooser.get_selected_object() if jobject and jobject.file_path: title = str(jobject.metadata['title']) path = str(jobject.file_path) fp = open(path, 'r') text = fp.read() fp.close() article_data = dehtml(text, title) TABS[0].set_source_article(Article(article_data))
def choose_image_from_journal_cb(self): ''' Create a chooser for image objects ''' self.image_id = None ## self.chooser = None try: self.chooser = ObjectChooser( parent=self, what_filter=mime.GENERIC_TYPE_IMAGE) except TypeError: self.chooser = ObjectChooser( None, self, Gtk.DialogFlags.MODAL | Gtk.DialogFlags.DESTROY_WITH_PARENT) if self.chooser is not None: try: result = self.chooser.run() if result == Gtk.ResponseType.ACCEPT: dsobject = self.chooser.get_selected_object() self.file_path_temp = str(dsobject.get_file_path())[:] finally: self.chooser.destroy() del self.chooser return self.file_path_temp
def _new_picture(self, widget): try: chooser = ObjectChooser(parent=self) except: chooser = None f = None if chooser is not None: result = chooser.run() if result == Gtk.ResponseType.ACCEPT: dsobject = chooser.get_selected_object() f = dsobject.file_path if f is not None: self._image = pygame.image.load(f) self.actividad.set_background(self._image)
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)