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()
python类STOCK_CANCEL的实例源码
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 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 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 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()
gnome_connection_manager.py 文件源码
项目:gnome-connection-manager
作者: mjun
项目源码
文件源码
阅读 16
收藏 0
点赞 0
评论 0
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
gnome_connection_manager.py 文件源码
项目:gnome-connection-manager
作者: mjun
项目源码
文件源码
阅读 20
收藏 0
点赞 0
评论 0
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