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 _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 _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 _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 _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 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 _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 __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 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 _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 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 __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 __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 _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 _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 _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 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 run(self): jobject = None _file = None try: result = ObjectChooser.run(self) if result == Gtk.ResponseType.ACCEPT: jobject = self.get_selected_object() logging.debug('FilePicker.show: %r', jobject) if jobject and jobject.file_path: tmp_dir = tempfile.mkdtemp(prefix='', dir=os.path.join( get_activity_root(), 'tmp')) _file = os.path.join(tmp_dir, _basename_strip(jobject)) os.rename(jobject.file_path, _file) global _temp_dirs_to_clean _temp_dirs_to_clean.append(tmp_dir) logging.debug('FilePicker.show: file=%r', _file) finally: if jobject is not None: jobject.destroy() return _file
def run(self): jobject = None _file = None try: result = ObjectChooser.run(self) if result == Gtk.ResponseType.ACCEPT: jobject = self.get_selected_object() logging.debug('FilePicker.show: %r', jobject) if jobject and jobject.file_path: tmp_dir = tempfile.mkdtemp(prefix='', \ dir=os.path.join(get_activity_root(), 'tmp')) _file = os.path.join(tmp_dir, _basename_strip(jobject)) os.rename(jobject.file_path, _file) global _temp_dirs_to_clean _temp_dirs_to_clean.append(tmp_dir) logging.debug('FilePicker.show: file=%r', _file) finally: if jobject is not None: jobject.destroy() return _file
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 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 _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 open_diario(self,widget): # Abrir un zip desde el diario. chooser = ObjectChooser() resultado = chooser.run() if resultado == Gtk.ResponseType.ACCEPT: Archivo_s = chooser.get_selected_object() Archivo = Archivo_s.get_file_path() try: print Archivo utils.Archivo_d = Archivo utils.decompress(Archivo,Hboxx,'/tmp/Compress/Work','Abrir',True) except IOError: Mensaje = _("""Oh..Parece que no selecciono un archivo zip""") info = Gtk.MessageDialog(type=Gtk.MessageType.WARNING, buttons=Gtk.ButtonsType.OK,message_format=Mensaje) a = info.run() if a == Gtk.ResponseType.OK: info.destroy() self.set_model(self.construir_lista()) Uri.set_text(os.getcwd())
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 _choose_audio_from_journal_cb(self, event): ''' Create a chooser for audio 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.audio_id = None chooser = ObjectChooser(what_filter=mime.GENERIC_TYPE_AUDIO) result = chooser.run() if result == Gtk.ResponseType.ACCEPT: jobject = chooser.get_selected_object() self.audio_id = str(jobject._object_id) 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 open_from_journal(self): chooser = ObjectChooser() result = chooser.run() alert = NotifyAlert(5) if result == Gtk.ResponseType.ACCEPT: jobject = chooser.get_selected_object() if jobject and jobject.file_path: os.chdir(env.get_profile_path()) output = commands.getoutput('tar -xf %s' % jobject.file_path) if 'end' in output or 'error' in output: alert.props.title = _('Error') alert.props.msg = _('Error extracting the extension.') else: alert.props.title = _('Sucess') alert.props.msg = _('The extension has been installed.') else: alert.props.title = _('Error') alert.props.msg = _('Error extracting the extension.') self.add_alert(alert) alert.connect('response', lambda x, y: self.remove_alert(x))
def show_picker_cb(self, button=None): # optional parameter button is used when called from activity.py # emptypanel big button jobject = None chooser = ObjectChooser(self.activity, what_filter=mime.GENERIC_TYPE_AUDIO) try: result = chooser.run() if result == Gtk.ResponseType.ACCEPT: jobject = chooser.get_selected_object() if jobject and jobject.file_path: logging.info('Adding %s', jobject.file_path) self.activity.playlist_widget.load_file(jobject) self.check_if_next_prev() self.activity._switch_canvas(False) self.activity._view_toolbar._show_playlist.set_active(True) finally: if jobject is not None: jobject.destroy()
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 __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 show_picker_cb(self, button=None): # optional parameter button is used when called from activity.py # emptypanel big button jobject = None chooser = ObjectChooser(self.activity, what_filter=mime.GENERIC_TYPE_AUDIO) try: result = chooser.run() if result == Gtk.ResponseType.ACCEPT: jobject = chooser.get_selected_object() if jobject and jobject.file_path: logging.info('Adding %s', jobject.file_path) self.activity.playlist_widget.load_file(jobject) self.check_if_next_prev() self.activity._switch_canvas(False) self.activity._view_toolbar._show_playlist.set_active( True) finally: if jobject is not None: jobject.destroy()
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 import_clicked_cb(self, btn): chooser = ObjectChooser(parent=self, what_filter='text/x-typing-turtle-lessons') jobject = None if chooser.run() == Gtk.ResponseType.ACCEPT: jobject = chooser.get_selected_object() if jobject and jobject.file_path: fd = open(jobject.file_path, 'r') try: data = json.loads(fd.read()) # Replace lessons without destroying the object. while len(self.lessons): self.lessons.pop() for l in data['lessons']: self.lessons.append(l) self.build() finally: fd.close()
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 __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_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 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 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 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 __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 run(self): jobject = None _file = None try: result = ObjectChooser.run(self) if result == Gtk.ResponseType.ACCEPT: jobject = self.get_selected_object() logging.debug('FilePicker.run: %r', jobject) if jobject and jobject.file_path: _file = jobject.file_path logging.debug('FilePicker.run: file=%r', _file) finally: if jobject is not None: jobject.destroy() return _file
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 __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 _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 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)