我们从Python开源项目中,提取了以下47个代码示例,用于说明如何使用gtk.STOCK_CANCEL。
def on_open_clicked(widget, window, box): dialog=gtk.FileChooserDialog(title="?? Flash ??", action=gtk.FILE_CHOOSER_ACTION_OPEN, buttons=(gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL, gtk.STOCK_OPEN, gtk.RESPONSE_OK)) swf_filter=gtk.FileFilter() swf_filter.set_name("Flash ??(*.swf)") swf_filter.add_pattern("*.[Ss][Ww][Ff]") dialog.add_filter(swf_filter) response = dialog.run() if response == gtk.RESPONSE_OK: filename = dialog.get_filename() dialog.destroy() window.remove(box) play_args = pre_play(filename) display_html(window, play_args) dialog.destroy()
def importFile(self, *args): fn = gtk.FileChooserDialog(title="Import File", action=gtk.FILE_CHOOSER_ACTION_OPEN, buttons=(gtk.STOCK_CANCEL,gtk.RESPONSE_CANCEL,gtk.STOCK_OPEN,gtk.RESPONSE_OK)) _filter = gtk.FileFilter() _filter.set_name("C++ Files") _filter.add_pattern("*.cpp") _filter.add_pattern("*.h") fn.add_filter(_filter) _filter = gtk.FileFilter() _filter.set_name("All Files") _filter.add_pattern("*") fn.add_filter(_filter) fn.show() resp = fn.run() if resp == gtk.RESPONSE_OK: text = open(fn.get_filename()).read() self.addNotebookPage(os.path.basename(fn.get_filename()), text) fn.destroy()
def __init__(self, title, parent, ok_button=True, cancel_button=True, width=600, height=260, extra_buttons=None): buttons = [] if extra_buttons: buttons.extend(extra_buttons) if ok_button: buttons.extend([gtk.STOCK_OK, gtk.RESPONSE_ACCEPT]) if cancel_button: buttons.extend([gtk.STOCK_CANCEL, gtk.RESPONSE_REJECT]) buttons = tuple(buttons) gtk.Dialog.__init__(self, title, parent, DEF_DIALOG_FLAGS, buttons) self.set_size_request(width, height) self.set_has_separator(False) # __init__() # Dialog
def on_open(self, action): chooser = gtk.FileChooserDialog(title="Open dot File", action=gtk.FILE_CHOOSER_ACTION_OPEN, buttons=(gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL, gtk.STOCK_OPEN, gtk.RESPONSE_OK)) chooser.set_default_response(gtk.RESPONSE_OK) chooser.set_current_folder(self.last_open_dir) filter = gtk.FileFilter() filter.set_name("Graphviz dot files") filter.add_pattern("*.dot") chooser.add_filter(filter) filter = gtk.FileFilter() filter.set_name("All files") filter.add_pattern("*") chooser.add_filter(filter) if chooser.run() == gtk.RESPONSE_OK: filename = chooser.get_filename() self.last_open_dir = chooser.get_current_folder() chooser.destroy() self.open_file(filename) else: chooser.destroy()
def keep_list_dialog(self, w): chooser = gtk.FileChooserDialog('Open..', None, gtk.FILE_CHOOSER_ACTION_OPEN, (gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL, gtk.STOCK_OPEN, gtk.RESPONSE_OK)) chooser.set_select_multiple(True) chooser.set_default_response(gtk.RESPONSE_OK) chooser.set_size_request(640,480) filter = gtk.FileFilter() filter.set_name("All Files") filter.add_pattern("*") chooser.add_filter(filter) response = chooser.run() if response == gtk.RESPONSE_OK: self.keep_list = chooser.get_filenames() chooser.destroy() if self.keep_list is not None: Thread(target=self._announce_keep_list).start()
def quit(self, widget, event=None): """Asks if user would like to save file before quitting, then quits the program.""" if self.toSave: if self.oneConfigFile: response = gtk.RESPONSE_YES else: dialog = gtk.Dialog("Save config?", self, gtk.DIALOG_MODAL, (gtk.STOCK_YES, gtk.RESPONSE_YES, gtk.STOCK_NO, gtk.RESPONSE_NO, gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL)) dialog.get_content_area().add(gtk.Label("Save config before quitting?")) dialog.get_content_area().set_size_request(300, 100) dialog.show_all() response = dialog.run() dialog.destroy() if response == gtk.RESPONSE_CANCEL: return True # Return True to stop it quitting when we hit "Cancel" elif response == gtk.RESPONSE_NO: gtk.main_quit() elif response == gtk.RESPONSE_YES: self.save() gtk.main_quit() else: gtk.main_quit()
def connectionLost(self, reason): if len(self.buffer) == 0: dialog = gtk.MessageDialog(self, gtk.DIALOG_MODAL | gtk.DIALOG_DESTROY_WITH_PARENT, gtk.MESSAGE_ERROR, gtk.BUTTONS_OK, "An error occurred; file could not be retrieved.") dialog.run() dialog.destroy() return fd = gtk.FileChooserDialog(title=None, action=gtk.FILE_CHOOSER_ACTION_SAVE, buttons=(gtk.STOCK_CANCEL,gtk.RESPONSE_CANCEL,gtk.STOCK_SAVE,gtk.RESPONSE_OK)) fd.set_default_response(gtk.RESPONSE_OK) fd.set_current_name(self.filename) response = fd.run() if response == gtk.RESPONSE_OK: destfilename = fd.get_filename() f = open(destfilename, 'w') f.write(self.buffer) f.close() fd.destroy()
def action_save_ngc(self, *arg) : filechooserdialog = gtk.FileChooserDialog(_("Save as ngc..."), None, gtk.FILE_CHOOSER_ACTION_SAVE, (gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL, gtk.STOCK_OK, gtk.RESPONSE_OK)) try : filt = gtk.FileFilter() filt.set_name("NGC") filt.add_mime_type("text/ngc") filt.add_pattern("*.ngc") filechooserdialog.add_filter(filt) filechooserdialog.set_current_folder(NGC_DIR) filechooserdialog.set_keep_above(True) filechooserdialog.set_transient_for(self.get_toplevel()) if filechooserdialog.run() == gtk.RESPONSE_OK: gcode = self.to_gcode() filename = filechooserdialog.get_filename() if filename[-4] != ".ngc" not in filename : filename += ".ngc" with open(filename, "wb") as f: f.write(self.to_gcode()) f.close() finally : filechooserdialog.destroy()
def action_loadCfg(self, *arg) : filechooserdialog = gtk.FileChooserDialog(_("Open a cfg file"), None, \ gtk.FILE_CHOOSER_ACTION_OPEN, \ (gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL, gtk.STOCK_OK, gtk.RESPONSE_OK)) try: filt = gtk.FileFilter() filt.set_name(_("Config files")) filt.add_mime_type("text/xml") filt.add_pattern("*.cfg") filechooserdialog.add_filter(filt) filechooserdialog.set_current_folder(os.path.join(NCAM_DIR, CUSTOM_DIR)) filechooserdialog.set_keep_above(True) filechooserdialog.set_transient_for(self.get_toplevel()) if filechooserdialog.run() == gtk.RESPONSE_OK: self.add_feature(None, filechooserdialog.get_filename()) finally : filechooserdialog.destroy()
def on_open(self, action): chooser = gtk.FileChooserDialog(title="Open dot File", action=gtk.FILE_CHOOSER_ACTION_OPEN, buttons=(gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL, gtk.STOCK_OPEN, gtk.RESPONSE_OK)) chooser.set_default_response(gtk.RESPONSE_OK) filter = gtk.FileFilter() filter.set_name("Graphviz dot files") filter.add_pattern("*.dot") chooser.add_filter(filter) filter = gtk.FileFilter() filter.set_name("All files") filter.add_pattern("*") chooser.add_filter(filter) if chooser.run() == gtk.RESPONSE_OK: filename = chooser.get_filename() chooser.destroy() self.open_file(filename) else: chooser.destroy()
def show_open_dialog(parent, title, action): dlg = gtk.FileChooserDialog(title=title, parent=parent, action=action) dlg.add_button(gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL) dlg.add_button(gtk.STOCK_SAVE if action==gtk.FILE_CHOOSER_ACTION_SAVE else gtk.STOCK_OPEN, gtk.RESPONSE_OK) dlg.set_do_overwrite_confirmation(True) if not hasattr(parent,'lastPath'): parent.lastPath = os.path.expanduser("~") dlg.set_current_folder( parent.lastPath ) if dlg.run() == gtk.RESPONSE_OK: filename = dlg.get_filename() parent.lastPath = os.path.dirname(filename) else: filename = None dlg.destroy() return filename
def show_save_buffer(self, terminal): dlg = gtk.FileChooserDialog(title=_("Guardar como"), parent=self.wMain, action=gtk.FILE_CHOOSER_ACTION_SAVE) dlg.add_button(gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL) dlg.add_button(gtk.STOCK_SAVE, gtk.RESPONSE_OK) dlg.set_do_overwrite_confirmation(True) dlg.set_current_name( os.path.basename("gcm-buffer-%s.txt" % (time.strftime("%Y%m%d%H%M%S")) )) if not hasattr(self,'lastPath'): self.lastPath = os.path.expanduser("~") dlg.set_current_folder( self.lastPath ) if dlg.run() == gtk.RESPONSE_OK: filename = dlg.get_filename() self.lastPath = os.path.dirname(filename) try: buff = terminal.get_text_range(0, 0, terminal.get_property('scrollback-lines')-1, terminal.get_column_count()-1, lambda *args: True, None, None ).strip() f = open(filename, "w") f.write(buff) f.close() except: dlg.destroy() msgbox("%s: %s" % (_("No se puede abrir archivo para escritura"), filename) ) return dlg.destroy()
def __init__(self, choices, **args): buttons = (gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL, gtk.STOCK_OK, gtk.RESPONSE_OK) gtk.Dialog.__init__(self, buttons=buttons, **args) self.label = gtk.Label() self.label.set_size_request(300, 100) # pylint: disable-msg=E1101 self.vbox.pack_start(self.label, 1, 1, 0) self.label.show() try: default = choices[0] except IndexError: default = None self.choice = make_choice(sorted(choices), self.editable, default) # pylint: disable-msg=E1101 self.vbox.pack_start(self.choice, 1, 1, 0) self.choice.show() self.set_default_response(gtk.RESPONSE_OK)
def get_password(self,parent): dialog = gtk.Dialog("Configure System Password",parent,gtk.DIALOG_MODAL|gtk.DIALOG_DESTROY_WITH_PARENT,(gtk.STOCK_CANCEL,gtk.RESPONSE_REJECT,gtk.STOCK_OK,gtk.RESPONSE_ACCEPT)) self.pass1 = gtk.HBox() self.label1 = gtk.Label(" Passsword: ") self.pass1.pack_start(self.label1,False,True,0) self.password1 = gtk.Entry() self.password1.set_visibility(False) self.pass1.pack_start(self.password1,False,True,0) dialog.vbox.add(self.pass1) self.pass2 = gtk.HBox() self.label2 = gtk.Label(" Verify Password: ") self.pass2.pack_start(self.label2,False,True,0) self.password2 = gtk.Entry() self.password2.set_visibility(False) self.pass2.pack_start(self.password2,False,True,0) dialog.vbox.add(self.pass2) dialog.show_all() response = dialog.run() if response == gtk.RESPONSE_ACCEPT: self.a = self.password1.get_text() self.b = self.password2.get_text() dialog.destroy() else: self.a = '' self.b = '' dialog.destroy() # Configure Network Dialog
def _get_export_file_name(self): sel = gtk.FileChooserDialog("Save...", self.canvas.get_toplevel(), gtk.FILE_CHOOSER_ACTION_SAVE, (gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL, gtk.STOCK_SAVE, gtk.RESPONSE_OK)) sel.set_default_response(gtk.RESPONSE_OK) sel.set_local_only(True) sel.set_do_overwrite_confirmation(True) sel.set_current_name("Unnamed.pdf") filter = gtk.FileFilter() filter.set_name("Embedded PostScript") filter.add_mime_type("image/x-eps") sel.add_filter(filter) filter = gtk.FileFilter() filter.set_name("Portable Document Graphics") filter.add_mime_type("application/pdf") sel.add_filter(filter) filter = gtk.FileFilter() filter.set_name("Scalable Vector Graphics") filter.add_mime_type("image/svg+xml") sel.add_filter(filter) resp = sel.run() if resp != gtk.RESPONSE_OK: sel.destroy() return None file_name = sel.get_filename() sel.destroy() return file_name
def select_folder(self, event): dialog_select_folder = gtk.FileChooserDialog() dialog_select_folder.set_title("Export To") dialog_select_folder.set_transient_for(self) dialog_select_folder.set_action(gtk.FILE_CHOOSER_ACTION_SELECT_FOLDER) dialog_select_folder.add_buttons(gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL, gtk.STOCK_OPEN, gtk.RESPONSE_OK) dialog_select_folder.set_current_folder(self.entry_selected_folder.get_text()) response = dialog_select_folder.run() if response == gtk.RESPONSE_OK: self.entry_selected_folder.set_text(dialog_select_folder.get_filename()) dialog_select_folder.destroy()
def select_file(self, event, entry_filepath): dialog_select_folder = gtk.FileChooserDialog() dialog_select_folder.set_title("Select File") dialog_select_folder.set_transient_for(self) dialog_select_folder.add_buttons(gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL, gtk.STOCK_OPEN, gtk.RESPONSE_OK) dialog_select_folder.set_filename(entry_filepath.get_text()) response = dialog_select_folder.run() if response == gtk.RESPONSE_OK: entry_filepath.set_text(dialog_select_folder.get_filename()) dialog_select_folder.destroy()
def select_folder(self, event, entry_filepath): dialog_select_folder = gtk.FileChooserDialog() dialog_select_folder.set_title("Select Folder") dialog_select_folder.set_transient_for(self) dialog_select_folder.set_action(gtk.FILE_CHOOSER_ACTION_SELECT_FOLDER) dialog_select_folder.add_buttons(gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL, gtk.STOCK_OPEN, gtk.RESPONSE_OK) dialog_select_folder.set_current_folder(entry_filepath.get_text()) response = dialog_select_folder.run() if response == gtk.RESPONSE_OK: entry_filepath.set_text(dialog_select_folder.get_filename()) dialog_select_folder.destroy()
def openFile(self, *args): if (not self.getModified()) or self.ask("There are unsaved files.\nContinue?"): fn = gtk.FileChooserDialog(title="Save File", action=gtk.FILE_CHOOSER_ACTION_OPEN, buttons=(gtk.STOCK_CANCEL,gtk.RESPONSE_CANCEL,gtk.STOCK_OPEN,gtk.RESPONSE_OK)) _filter = gtk.FileFilter() _filter.set_name("Micro:Pi Files") _filter.add_pattern("*.%s" % SETTINGS['fileExtention']) fn.add_filter(_filter) _filter = gtk.FileFilter() _filter.set_name("All Files") _filter.add_pattern("*") fn.add_filter(_filter) fn.show() resp = fn.run() if resp == gtk.RESPONSE_OK: try: #text = open(fn.get_filename()).read() #try: #d = text.replace("\n", "") #d = base64.b64decode(d) #data = pickle.loads(d) #except: #data = pickle.loads(text) data = self.loadFilesFromFile(fn.get_filename()) mw = MainWin(data) yes = True mw.saveLocation = fn.get_filename() mw.setSaved() OPENWINDOWS.append(mw) except Exception as e: yes = False fn.destroy() if resp == gtk.RESPONSE_OK and not yes: self.message("File is not a Micro:Pi File")
def saveAs(self, *args): self.saveInternalOpenFiles() fn = gtk.FileChooserDialog(title="Save File As", action=gtk.FILE_CHOOSER_ACTION_SAVE, buttons=(gtk.STOCK_CANCEL,gtk.RESPONSE_CANCEL,gtk.STOCK_SAVE,gtk.RESPONSE_OK)) _filter = gtk.FileFilter() _filter.set_name("Micro:Pi Files") _filter.add_pattern("*.%s" % SETTINGS['fileExtention']) fn.add_filter(_filter) _filter = gtk.FileFilter() _filter.set_name("All Files") _filter.add_pattern("*") fn.add_filter(_filter) fn.show() resp = fn.run() #files = [] #for f in self.notebook: #fin = self.notebook.get_tab_label(f).get_children()[0].get_label() #tb = f.get_child().get_buffer() #txt = tb.get_text(*tb.get_bounds()) #files.append([fin, txt]) #data = base64.b64encode(pickle.dumps(files)) #data = "".join(data[i:i+64]+"\n" for i in xrange(0, len(data), 64)) if resp == gtk.RESPONSE_OK: fp = fn.get_filename() if fp[-(len(SETTINGS["fileExtention"])+1):] != "." + SETTINGS["fileExtention"]: fp += "." + SETTINGS["fileExtention"] #open(fp, 'w').write(data) self.saveLocation = fp self.save() self.setSaved() fn.destroy()
def exitfc_button_cb(self, button): label = gtk.Label("Are you sure you want the FC to exit?") dialog = gtk.Dialog("Confirm Exit", None, gtk.DIALOG_MODAL | gtk.DIALOG_DESTROY_WITH_PARENT, (gtk.STOCK_CANCEL, gtk.RESPONSE_REJECT, gtk.STOCK_OK, gtk.RESPONSE_ACCEPT)) dialog.vbox.pack_start(label) label.show() response = dialog.run() dialog.destroy() if response == gtk.RESPONSE_ACCEPT: msg = ZarjExitCommand() self.zarj_comm.push_message(msg)
def openFile(self, widget=None, default=False): """Reads from a config file. If default=True, open the tint2 default config.""" self.new() if not default: chooser = gtk.FileChooserDialog("Open Config File", self, gtk.FILE_CHOOSER_ACTION_OPEN, (gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL, gtk.STOCK_OPEN, gtk.RESPONSE_OK)) chooser.set_default_response(gtk.RESPONSE_OK) if self.curDir != None: chooser.set_current_folder(self.curDir) chooserFilter = gtk.FileFilter() chooserFilter.set_name("All files") chooserFilter.add_pattern("*") chooser.add_filter(chooserFilter) chooser.show() response = chooser.run() if response == gtk.RESPONSE_OK: self.filename = chooser.get_filename() self.curDir = os.path.dirname(self.filename) else: chooser.destroy() return chooser.destroy() else: self.filename = os.path.expandvars("$HOME/.config/tint2/tint2rc") self.curDir = os.path.expandvars("$HOME/.config/tint2") self.readTint2Config() self.generateConfig() self.updateStatusBar()
def saveAs(self, widget=None, event=None): """Prompts the user to select a file and then saves the generated config file.""" self.generateConfig() chooser = gtk.FileChooserDialog("Save Config File As...", self, gtk.FILE_CHOOSER_ACTION_SAVE, (gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL, gtk.STOCK_SAVE, gtk.RESPONSE_OK)) chooser.set_default_response(gtk.RESPONSE_OK) if self.curDir != None: chooser.set_current_folder(self.curDir) chooserFilter = gtk.FileFilter() chooserFilter.set_name("All files") chooserFilter.add_pattern("*") chooser.add_filter(chooserFilter) chooser.show() response = chooser.run() if response == gtk.RESPONSE_OK: self.filename = chooser.get_filename() if os.path.exists(self.filename): overwrite = confirmDialog(self, "This file already exists. Overwrite this file?") if overwrite == gtk.RESPONSE_YES: self.writeFile() chooser.destroy() return True else: self.filename = None chooser.destroy() return False else: self.writeFile() chooser.destroy() return True else: self.filename = None chooser.destroy() return False
def browseDirectory(self, sender, dirPathFunc): fd = gtk.FileChooserDialog(title='Choose directory to share...', action=gtk.FILE_CHOOSER_ACTION_SELECT_FOLDER, buttons=(gtk.STOCK_CANCEL,gtk.RESPONSE_CANCEL,gtk.STOCK_OK,gtk.RESPONSE_OK)) fd.set_default_response(gtk.RESPONSE_OK) path = dirPathFunc().strip() if len(path): fd.set_current_folder(path) response = fd.run() if response == gtk.RESPONSE_OK: self.entryDir.set_text(fd.get_filename()) fd.destroy()
def action_importXML(self, *arg) : filechooserdialog = gtk.FileChooserDialog(_("Import project"), None, \ gtk.FILE_CHOOSER_ACTION_OPEN, (gtk.STOCK_CANCEL, \ gtk.RESPONSE_CANCEL, gtk.STOCK_OK, gtk.RESPONSE_OK)) try: filt = gtk.FileFilter() filt.set_name(_("NativeCAM projects")) filt.add_mime_type("text/xml") filt.add_pattern("*.xml") filechooserdialog.add_filter(filt) filt = gtk.FileFilter() filt.set_name(_("All files")) filt.add_pattern("*") filechooserdialog.add_filter(filt) filechooserdialog.set_current_folder(os.path.join(NCAM_DIR, CATALOGS_DIR, self.catalog_dir, PROJECTS_DIR)) filechooserdialog.set_keep_above(True) filechooserdialog.set_transient_for(self.get_toplevel()) if filechooserdialog.run() == gtk.RESPONSE_OK: fname = filechooserdialog.get_filename() try : xml = self.update_features(etree.parse(fname).getroot()) self.import_xml(xml) self.file_changed = True except etree.ParseError as err : mess_dlg(err, _("Import project")) finally: filechooserdialog.destroy() # will update with new features version and keep the previous values
def action_save_project(self, *arg) : global CURRENT_PROJECT filechooserdialog = gtk.FileChooserDialog(_("Save project as..."), None, gtk.FILE_CHOOSER_ACTION_SAVE, (gtk.STOCK_CANCEL, \ gtk.RESPONSE_CANCEL, gtk.STOCK_OK, gtk.RESPONSE_OK)) try: filt = gtk.FileFilter() filt.set_name(_("NativeCAM projects")) filt.add_mime_type("text/xml") filt.add_pattern("*.xml") filechooserdialog.add_filter(filt) d, fname = os.path.split(CURRENT_PROJECT) filechooserdialog.set_current_folder(os.path.join(NCAM_DIR, CATALOGS_DIR, self.catalog_dir, PROJECTS_DIR)) filechooserdialog.set_current_name(fname) filechooserdialog.set_do_overwrite_confirmation(True) filechooserdialog.set_keep_above(True) filechooserdialog.set_transient_for(self.get_toplevel()) if filechooserdialog.run() == gtk.RESPONSE_OK: xml = self.treestore_to_xml() CURRENT_PROJECT = filechooserdialog.get_filename() if CURRENT_PROJECT[-4] != ".xml" not in CURRENT_PROJECT : CURRENT_PROJECT += ".xml" etree.ElementTree(xml).write(CURRENT_PROJECT, pretty_print = True) self.file_changed = False finally: self.display_proj_name() filechooserdialog.destroy()
def change_poster_select_file(self, number, handler = update_image): filename = gutils.file_chooser(_("Select image"), action=gtk.FILE_CHOOSER_ACTION_OPEN, buttons=(gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL, gtk.STOCK_OPEN, gtk.RESPONSE_OK), name='', folder=self.locations['desktop'], picture=True) if filename and filename[0]: filename = filename[0].decode('UTF-8') if handler: return handler(self, number, filename) return False
def __init__(self, window, title='', message=''): self.status = False self.dialog = gtk.Dialog(title, window, gtk.DIALOG_MODAL, ()) self.dialog.set_urgency_hint(False) self.label = gtk.Label() self.label.set_markup(message) self.dialog.vbox.pack_start(self.label) self.progress = gtk.ProgressBar() self.progress.set_pulse_step(0.01) self.dialog.vbox.pack_start(self.progress, False, False) self.button = gtk.Button(_("Cancel"), gtk.STOCK_CANCEL) self.button.connect("clicked", self.callback) self.dialog.vbox.pack_start(self.button, False, False) self.dialog.show_all()
def cover_image(self,number): filename = gutils.file_chooser(_("Select image"), \ action=gtk.FILE_CHOOSER_ACTION_OPEN, \ buttons=(gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL, \ gtk.STOCK_OPEN, gtk.RESPONSE_OK)) if filename[0]: cover_image_process(self, filename[0], number)
def run(self): basedir = None if self.config is not None: basedir = self.config.get('export_dir', None, section='export-csv') if not basedir: filename = gutils.file_chooser(_("Export a %s document")%"CSV", action=gtk.FILE_CHOOSER_ACTION_SAVE, \ buttons=(gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL, gtk.STOCK_SAVE, gtk.RESPONSE_OK), name='griffith_list.csv') else: filename = gutils.file_chooser(_("Export a %s document")%"CSV", action=gtk.FILE_CHOOSER_ACTION_SAVE, \ buttons=(gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL, gtk.STOCK_SAVE,gtk.RESPONSE_OK), name='griffith_list.csv', folder=basedir) if filename and filename[0]: if self.config is not None and filename[1]: self.config.set('export_dir', filename[1], section='export-csv') self.config.save() overwrite = None if os.path.isfile(filename[0]): if gutils.question(_("File exists. Do you want to overwrite it?"), self.parent_window): overwrite = True else: overwrite = False if overwrite or overwrite is None: movies = self.get_query().execute() writer = csv.writer(file(filename[0], 'w'), dialect=csv.excel) # write column header row writer.writerow(self.fields_to_export) # write data rows for movie in movies: t = [] for s in self.exported_columns: t.append(movie[s]) writer.writerow(t) gutils.info(_("%s file has been created.") % "CSV", self.parent_window)
def __init__(self, title, message, default_text='', modal=True, mask=False): gtk.Dialog.__init__(self) self.set_title(title) self.connect("destroy", self.quit) self.connect("delete_event", self.quit) if modal: self.set_modal(True) box = gtk.VBox(spacing=10) box.set_border_width(10) self.vbox.pack_start(box) box.show() if message: label = gtk.Label(message) box.pack_start(label) label.show() self.entry = gtk.Entry() self.entry.set_text(default_text) self.entry.set_visibility(not mask) box.pack_start(self.entry) self.entry.show() self.entry.grab_focus() button = gtk.Button(stock=gtk.STOCK_OK) button.connect("clicked", self.click) self.entry.connect("activate", self.click) button.set_flags(gtk.CAN_DEFAULT) self.action_area.pack_start(button) button.show() button.grab_default() button = gtk.Button(stock=gtk.STOCK_CANCEL) button.connect("clicked", self.quit) button.set_flags(gtk.CAN_DEFAULT) self.action_area.pack_start(button) button.show() self.ret = None
def _do_manual_select(self, filename): radiolist = {} for drv, radio in directory.DRV_TO_RADIO.items(): if not issubclass(radio, chirp_common.CloneModeRadio): continue radiolist["%s %s" % (radio.VENDOR, radio.MODEL)] = drv lab = gtk.Label("""<b><big>Unable to detect model!</big></b> If you think that it is valid, you can select a radio model below to force an open attempt. If selecting the model manually works, please file a bug on the website and attach your image. If selecting the model does not work, it is likely that you are trying to open some other type of file. """) lab.set_justify(gtk.JUSTIFY_FILL) lab.set_line_wrap(True) lab.set_use_markup(True) lab.show() choice = miscwidgets.make_choice(sorted(radiolist.keys()), False, sorted(radiolist.keys())[0]) d = gtk.Dialog(title="Detection Failed", buttons=(gtk.STOCK_OK, gtk.RESPONSE_OK, gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL)) d.vbox.pack_start(lab, 0, 0, 0) d.vbox.pack_start(choice, 0, 0, 0) d.vbox.set_spacing(5) choice.show() d.set_default_size(400, 200) # d.set_resizable(False) r = d.run() d.destroy() if r != gtk.RESPONSE_OK: return try: rc = directory.DRV_TO_RADIO[radiolist[choice.get_active_text()]] return rc(filename) except: return
def __init__(self, settings=None, parent=None, title=_("Radio")): buttons = (gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL, gtk.STOCK_OK, gtk.RESPONSE_OK) gtk.Dialog.__init__(self, title, parent=parent, flags=gtk.DIALOG_MODAL) self.__make_ui(settings) self.__cancel_button = self.add_button(gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL) self.__okay_button = self.add_button(gtk.STOCK_OK, gtk.RESPONSE_OK) self.__okay_button.grab_default() self.__okay_button.grab_focus()
def __init__(self, **kwargs): if "buttons" not in kwargs.keys(): kwargs["buttons"] = (gtk.STOCK_OK, gtk.RESPONSE_OK, gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL) self.__fields = {} self.set_default_response(gtk.RESPONSE_OK) gtk.Dialog.__init__(self, **kwargs)
def __init__(self, filename): gtk.Dialog.__init__(self, buttons=(_("Overwrite"), gtk.RESPONSE_OK, gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL)) self.set_property("text", _("File Exists")) text = \ _("The file {name} already exists. " "Do you want to overwrite it?").format(name=filename) self.format_secondary_text(text)
def gui_open_file(self, start_dir=None, types=[]): """Prompt the user to pick a file to open""" import gtk if not start_dir: start_dir = self._last_dir dlg = gtk.FileChooserDialog("Select a file to open", None, gtk.FILE_CHOOSER_ACTION_OPEN, (gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL, gtk.STOCK_OPEN, gtk.RESPONSE_OK)) if start_dir and os.path.isdir(start_dir): dlg.set_current_folder(start_dir) for desc, spec in types: ff = gtk.FileFilter() ff.set_name(desc) ff.add_pattern(spec) dlg.add_filter(ff) res = dlg.run() fname = dlg.get_filename() dlg.destroy() if res == gtk.RESPONSE_OK: self._last_dir = os.path.dirname(fname) return fname else: return None
def gui_save_file(self, start_dir=None, default_name=None, types=[]): """Prompt the user to pick a filename to save""" import gtk if not start_dir: start_dir = self._last_dir dlg = gtk.FileChooserDialog("Save file as", None, gtk.FILE_CHOOSER_ACTION_SAVE, (gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL, gtk.STOCK_SAVE, gtk.RESPONSE_OK)) if start_dir and os.path.isdir(start_dir): dlg.set_current_folder(start_dir) if default_name: dlg.set_current_name(default_name) extensions = {} for desc, ext in types: ff = gtk.FileFilter() ff.set_name(desc) ff.add_pattern("*.%s" % ext) extensions[desc] = ext dlg.add_filter(ff) res = dlg.run() fname = dlg.get_filename() ext = extensions[dlg.get_filter().get_name()] if fname and not fname.endswith(".%s" % ext): fname = "%s.%s" % (fname, ext) dlg.destroy() if res == gtk.RESPONSE_OK: self._last_dir = os.path.dirname(fname) return fname else: return None
def save_shot(self): # create a new window dialog = gtk.Dialog("Manual ScreenShot", None, gtk.DIALOG_MODAL | gtk.DIALOG_DESTROY_WITH_PARENT, (gtk.STOCK_CANCEL, gtk.RESPONSE_REJECT, gtk.STOCK_OK, gtk.RESPONSE_ACCEPT)) dialog.set_size_request(400, 250) dialog.set_title("Manual ScreenShot Comment ECEL V2.0") table = gtk.Table(5,2,False) table.show() # create ip row ipLabel = gtk.Label("IP") ipEntry = gtk.Entry() table.attach(ipLabel, 0, 1, 0, 1) table.attach(ipEntry, 1, 2, 0, 1) ipLabel.show() ipEntry.show() # create Port row portLabel = gtk.Label("Port") portEntry = gtk.Entry() table.attach(portLabel, 0, 1, 1, 2) table.attach(portEntry, 1, 2, 1, 2) portLabel.show() portEntry.show() # create initial row initialLabel = gtk.Label("Initials") initialEntry = gtk.Entry() table.attach(initialLabel, 0, 1, 2, 3) table.attach(initialEntry, 1, 2, 2, 3) initialLabel.show() initialEntry.show() #create the comment entry field maxChar = 64 commentEntry = gtk.Entry() commentEntry.set_max_length(maxChar) commentEntry.insert_text("Enter Comment") commentEntry.select_region(0, len(commentEntry.get_text())) table.attach(commentEntry, 0, 2, 3, 4) commentEntry.show() dialog.vbox.pack_start(table) response = dialog.run() self.ip_entry_text = ipEntry.get_text() self.port_entry_text = portEntry.get_text() self.initial_entry_text = initialEntry.get_text() self.comment_entry_text = commentEntry.get_text() dialog.hide_all() dialog.destroy() return response
def __init__(self, tw): """Create and shows the window.""" self.tw = tw # Create top-level window gtk.Window.__init__(self, gtk.WINDOW_TOPLEVEL) self.set_title("Preferences") self.connect("delete_event", self.quit) self.layout = gtk.Table(2, 2, False) self.table = gtk.Table(5, 2, False) self.table.set_row_spacings(5) self.table.set_col_spacings(5) createLabel(self.table, text="Default Font", gridX=0, gridY=0) self.font = gtk.FontButton(self.tw.defaults["font"]) self.font.set_alignment(0, 0.5) self.table.attach(self.font, 1, 2, 0, 1, xoptions=gtk.EXPAND, yoptions=gtk.EXPAND) createLabel(self.table, text="Default Background Color", gridX=0, gridY=1) self.bgColor = gtk.ColorButton(gtk.gdk.color_parse(self.tw.defaults["bgColor"])) self.bgColor.set_alignment(0, 0.5) self.table.attach(self.bgColor, 1, 2, 1, 2, xoptions=gtk.EXPAND, yoptions=gtk.EXPAND) createLabel(self.table, text="Default Foreground Color", gridX=0, gridY=2) self.fgColor = gtk.ColorButton(gtk.gdk.color_parse(self.tw.defaults["fgColor"])) self.fgColor.set_alignment(0, 0.5) self.table.attach(self.fgColor, 1, 2, 2, 3, xoptions=gtk.EXPAND, yoptions=gtk.EXPAND) createLabel(self.table, text="Default Border Color", gridX=0, gridY=3) self.borderColor = gtk.ColorButton(gtk.gdk.color_parse(self.tw.defaults["borderColor"])) self.borderColor.set_alignment(0, 0.5) self.table.attach(self.borderColor, 1, 2, 3, 4, xoptions=gtk.EXPAND, yoptions=gtk.EXPAND) createLabel(self.table, text="Number of background styles", gridX=0, gridY=4) self.bgCount = createEntry(self.table, maxSize=6, width=8, text=str(self.tw.defaults["bgCount"]), gridX=1, gridY=4, xExpand=True, yExpand=True) self.layout.attach(self.table, 0, 2, 0, 1, xoptions=gtk.EXPAND, yoptions=gtk.EXPAND, xpadding=20, ypadding=5) createButton(self.layout, text="Save", stock=gtk.STOCK_SAVE, name="save", gridX=0, gridY=1, xExpand=True, yExpand=True, handler=self.save) createButton(self.layout, text="Cancel", stock=gtk.STOCK_CANCEL, name="cancel", gridX=1, gridY=1, xExpand=True, yExpand=True, handler=self.quit) self.add(self.layout) self.show_all()
def action_open_project(self, *arg): global CURRENT_PROJECT if arg[1][0] == 0 : # user project dlg_title = _("Open project") flt_name = _("NativeCAM projects") dir_ = os.path.join(NCAM_DIR, CATALOGS_DIR, self.catalog_dir, PROJECTS_DIR) else : # example dlg_title = _("Open example project") flt_name = _("NativeCAM example projects") dir_ = os.path.join(NCAM_DIR, CATALOGS_DIR, self.catalog_dir, PROJECTS_DIR, EXAMPLES_DIR) filechooserdialog = gtk.FileChooserDialog(dlg_title, None, gtk.FILE_CHOOSER_ACTION_OPEN, (gtk.STOCK_CANCEL, \ gtk.RESPONSE_CANCEL, gtk.STOCK_OK, gtk.RESPONSE_OK)) try: filt = gtk.FileFilter() filt.set_name(flt_name) if arg[1][0] == 0 : filt.add_mime_type("text/xml") filt.add_pattern("*.xml") else : filt.add_pattern("*.*") filechooserdialog.add_filter(filt) filechooserdialog.set_current_folder(dir_) filechooserdialog.set_keep_above(True) filechooserdialog.set_transient_for(self.get_toplevel()) if filechooserdialog.run() == gtk.RESPONSE_OK: filename = filechooserdialog.get_filename() src_data = open(filename).read() if src_data.find(XML_TAG) != 1 : subprocess.call(["xdg-open '%s'" % filename], shell = True) else : xml = etree.fromstring(src_data) xml = self.update_features(xml) self.treestore_from_xml(xml) self.expand_and_select(self.path_to_old_selected) self.clear_undo() CURRENT_PROJECT = filename self.file_changed = False self.action(xml) finally: self.display_proj_name() filechooserdialog.destroy()
def run(self): tmp_dir = mkdtemp() griffith_list = open(os.path.join(tmp_dir,"movies"),"w") t = [] def checkForNoneAndEncode(val): if val is None: return '' return val.encode('utf-8') movies = self.get_query().execute().fetchall() for movie in movies: t.append("%s | %s | %s | %s" % (movie['number'], \ checkForNoneAndEncode(movie['o_title']), checkForNoneAndEncode(movie['title']), checkForNoneAndEncode(movie['director']))) griffith_list.write("<title>%s</title><br><br>" % _("My Movies List")) for movie in t: griffith_list.write(movie) griffith_list.write("<br>") griffith_list.close() # this is a mac, lets export to iPod's notes folder # TODO: windows and linux iPod autodetection if platform.system() == 'Darwin': thisPod=Path2iPod() thisPath=thisPod.returnPath() if thisPath: commands.getoutput('mv '+os.path.join(tmp_dir,"movies")+' "'+thisPath+'/Notes/"') # FIXME: WTF? gutils.info(_("List successfully exported to iPod."), self.parent_window) else: gutils.info(_("iPod is not connected."), self.parent_window) # this is not a mac, lets save the file else: filename = gutils.file_chooser(_("Export a %s document")%"iPod", action=gtk.FILE_CHOOSER_ACTION_SAVE, \ buttons=(gtk.STOCK_CANCEL,gtk.RESPONSE_CANCEL,gtk.STOCK_SAVE,gtk.RESPONSE_OK),name='ipod_griffith_list') if filename and filename[0]: overwrite = None if os.path.isfile(filename[0]): if gutils.question(_("File exists. Do you want to overwrite it?"), self.parent_window): overwrite = True else: overwrite = False if overwrite == True or overwrite is None: shutil.copyfile(os.path.join(tmp_dir,"movies"), filename[0]) gutils.info(_("The list was successfully exported. Now you should move it to the 'Notes' folder on your iPod."), self.parent_window)
def do_close(self, tab_child=None): if tab_child: eset = tab_child else: eset = self.get_current_editorset() if not eset: return False if eset.is_modified(): dlg = miscwidgets.YesNoDialog( title=_("Save Changes?"), parent=self, buttons=(gtk.STOCK_YES, gtk.RESPONSE_YES, gtk.STOCK_NO, gtk.RESPONSE_NO, gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL)) dlg.set_text(_("File is modified, save changes before closing?")) res = dlg.run() dlg.destroy() if res == gtk.RESPONSE_YES: self.do_save(eset) elif res != gtk.RESPONSE_NO: raise ModifiedError() eset.rthread.stop() eset.rthread.join() eset.prepare_close() if eset.radio.pipe: eset.radio.pipe.close() if isinstance(eset.radio, chirp_common.LiveRadio): action = self.menu_ag.get_action("openlive") if action: action.set_sensitive(True) page = self.tabs.page_num(eset) if page is not None: self.tabs.remove_page(page) return True
def do_columns(self): eset = self.get_current_editorset() driver = directory.get_driver(eset.rthread.radio.__class__) radio_name = "%s %s %s" % (eset.rthread.radio.VENDOR, eset.rthread.radio.MODEL, eset.rthread.radio.VARIANT) d = gtk.Dialog(title=_("Select Columns"), parent=self, buttons=(gtk.STOCK_OK, gtk.RESPONSE_OK, gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL)) vbox = gtk.VBox() vbox.show() sw = gtk.ScrolledWindow() sw.set_policy(gtk.POLICY_NEVER, gtk.POLICY_AUTOMATIC) sw.add_with_viewport(vbox) sw.show() d.vbox.pack_start(sw, 1, 1, 1) d.set_size_request(-1, 300) d.set_resizable(False) labelstr = _("Visible columns for {radio}").format(radio=radio_name) label = gtk.Label(labelstr) label.show() vbox.pack_start(label) fields = [] memedit = eset.get_current_editor() # .editors["memedit"] unsupported = memedit.get_unsupported_columns() for colspec in memedit.cols: if colspec[0].startswith("_"): continue elif colspec[0] in unsupported: continue label = colspec[0] visible = memedit.get_column_visible(memedit.col(label)) widget = gtk.CheckButton(label) widget.set_active(visible) fields.append(widget) vbox.pack_start(widget, 1, 1, 1) widget.show() res = d.run() selected_columns = [] if res == gtk.RESPONSE_OK: for widget in fields: colnum = memedit.col(widget.get_label()) memedit.set_column_visible(colnum, widget.get_active()) if widget.get_active(): selected_columns.append(widget.get_label()) d.destroy() CONF.set(driver, ",".join(selected_columns), "memedit_columns")
def __init__(self, src_radio, dst_radio, parent=None): gtk.Dialog.__init__(self, buttons=(gtk.STOCK_OK, gtk.RESPONSE_OK, gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL), title=self.TITLE, parent=parent) self.col_import = 0 self.col_nloc = 1 self.col_oloc = 2 self.col_name = 3 self.col_freq = 4 self.col_comm = 5 self.col_okay = 6 self.col_tmsg = 7 self.caps = { self.col_import: self.ACTION, self.col_nloc: _("To"), self.col_oloc: _("From"), self.col_name: _("Name"), self.col_freq: _("Frequency"), self.col_comm: _("Comment"), } self.tips = { self.col_nloc: _("Location memory will be imported into"), self.col_oloc: _("Location of memory in the file being imported"), } self.types = { self.col_import: gobject.TYPE_BOOLEAN, self.col_oloc: gobject.TYPE_INT, self.col_nloc: gobject.TYPE_INT, self.col_name: gobject.TYPE_STRING, self.col_freq: gobject.TYPE_STRING, self.col_comm: gobject.TYPE_STRING, self.col_okay: gobject.TYPE_BOOLEAN, self.col_tmsg: gobject.TYPE_STRING, } self.src_radio = src_radio self.dst_radio = dst_radio self.used_list = [] self.not_used_list = [] self.build_ui() self.set_default_size(600, 400) self.ww = WaitWindow(_("Preparing memory list..."), parent=parent) self.ww.show() self.ww.grind() self.populate_list() self.ww.hide()