Kiln » TortoiseHg » TortoiseHg
Clone URL:  
Pushed to one repository · View In Graph Contained in 0.8, 0.8.1, and 0.8.2

gtklib: native save dialog improvements

Changeset b4902d3060c5

Parent 0c57710e2add

by Steve Borho

Changes to 2 files · Browse files at b4902d3060c5 Showing diff from parent 0c57710e2add Diff from another changeset...

Change 1 of 3 Show Entire File hggtk/​gtklib.py Stacked
 
174
175
176
177
 
178
179
180
 
199
200
201
202
203
204
 
 
 
 
 
205
206
207
208
209
 
210
211
 
 
212
213
214
215
216
217
218
219
220
221
 
222
223
224
 
229
230
231
 
 
232
233
234
235
236
237
238
239
240
241
 
 
 
 
 
 
 
 
 
242
243
244
245
246
247
 
 
 
248
249
250
 
251
252
253
 
174
175
176
 
177
178
179
180
 
199
200
201
 
 
 
202
203
204
205
206
207
208
209
210
 
211
212
213
214
215
216
 
 
 
 
 
 
 
 
 
217
218
219
220
 
225
226
227
228
229
230
231
 
 
 
 
 
 
 
 
232
233
234
235
236
237
238
239
240
241
242
243
 
 
 
244
245
246
247
248
 
249
250
251
252
@@ -174,7 +174,7 @@
  """Wrap the windows file dialog, or display default gtk dialog if   that isn't available"""   def __init__(self, InitialDir = None, Title = _('Save File'), - Filter = (_("All files"), "*.*"), FilterIndex = 1, + Filter = ((_('All files'), '*.*'),), FilterIndex = 1,   FileName = '', Open=False):   if InitialDir == None:   InitialDir = os.path.expanduser("~") @@ -199,26 +199,22 @@
  cwd = os.getcwd()   fname = None   try: - if self.Open: - fname, customfilter, flags=win32gui.GetOpenFileNameW( - InitialDir=self.InitialDir, + f = '' + for name, mask in self.Filter: + '\0'.join(f, name, mask) + f.append('\0') + opts = dict(InitialDir=self.InitialDir,   Flags=win32con.OFN_EXPLORER,   File=self.FileName,   DefExt=None,   Title=hglib.fromutf(self.Title), - Filter= hglib.fromutf('\0'.join(self.Filter)+'\0'), + Filter= hglib.fromutf(f),   CustomFilter=None,   FilterIndex=self.FilterIndex) + if self.Open: + fname, _, _ = win32gui.GetOpenFileNameW(**opts)   else: - fname, customfilter, flags=win32gui.GetSaveFileNameW( - InitialDir=self.InitialDir, - Flags=win32con.OFN_EXPLORER, - File=self.FileName, - DefExt=None, - Title=hglib.fromutf(self.Title), - Filter= hglib.fromutf('\0'.join(self.Filter)+'\0'), - CustomFilter=None, - FilterIndex=self.FilterIndex) + fname, _, _ = win32gui.GetSaveFileNameW(**opts)   if fname:   fname = os.path.abspath(fname)   except pywintypes.error: @@ -229,25 +225,28 @@
  def runCompatible(self):   if self.Open:   action = gtk.FILE_CHOOSER_ACTION_OPEN + buttons = (gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL, + gtk.STOCK_OPEN, gtk.RESPONSE_OK)   else:   action = gtk.FILE_CHOOSER_ACTION_SAVE - file_save = gtk.FileChooserDialog(self.Title, None, action, - (gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL, - gtk.STOCK_SAVE, gtk.RESPONSE_OK)) - file_save.set_do_overwrite_confirmation(True) - file_save.set_default_response(gtk.RESPONSE_OK) - file_save.set_current_folder(self.InitialDir) - file_save.set_current_name(self.FileName) - for name, pattern in dict(self.Filter).iteritems(): + buttons = (gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL, + gtk.STOCK_SAVE, gtk.RESPONSE_OK) + dlg = gtk.FileChooserDialog(self.Title, None, action, buttons) + dlg.set_do_overwrite_confirmation(True) + dlg.set_default_response(gtk.RESPONSE_OK) + dlg.set_current_folder(self.InitialDir) + if not self.Open: + dlg.set_current_name(self.FileName) + for name, pattern in self.Filter:   fi = gtk.FileFilter()   fi.set_name(name)   fi.add_pattern(pattern) - file_save.add_filter(fi) - if file_save.run() == gtk.RESPONSE_OK: - result = file_save.get_filename(); + dlg.add_filter(fi) + if dlg.run() == gtk.RESPONSE_OK: + result = dlg.get_filename();   else:   result = False - file_save.destroy() + dlg.destroy()   return result    class NativeFolderSelectDialog:
Change 1 of 1 Show Entire File hggtk/​synch.py Stacked
 
355
356
357
358
359
 
 
360
361
362
 
355
356
357
 
 
358
359
360
361
362
@@ -355,8 +355,8 @@
  response = gtklib.NativeSaveFileDialogWrapper(   InitialDir=self.root,   Title=_('Select Bundle'), - Filter=(_('Bundle (*.hg)'), '*.hg', - _('Bundle (*)'), '*.*'), + Filter=((_('Bundle (*.hg)'), '*.hg'), + (_('Bundle (*)'), '*.*')),   Open=True).run()   if response:   self.pathtext.set_text(response)