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

hggtk: move NativeSaveFileDialogWrapper to gtklib

Changeset a9cae9a52e7a

Parent e32407c7a099

by Steve Borho

Changes to 5 files · Browse files at a9cae9a52e7a Showing diff from parent e32407c7a099 Diff from another changeset...

 
477
478
479
480
 
481
482
483
 
477
478
479
 
480
481
482
483
@@ -477,7 +477,7 @@
  wfile = util.localpath(self.curfile)   wfile, ext = os.path.splitext(os.path.basename(wfile))   filename = "%s@%d%s" % (wfile, self.currev, ext) - fd = gdialog.NativeSaveFileDialogWrapper(Title = "Save file to", + fd = gtklib.NativeSaveFileDialogWrapper(Title = "Save file to",   InitialDir=self.cwd,   FileName=filename)   result = fd.run()
Change 1 of 1 Show Entire File hggtk/​gdialog.py Stacked
 
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
 
509
510
511
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
@@ -509,63 +509,3 @@
  thread.setDaemon(True)   thread.start()   -class NativeSaveFileDialogWrapper: - """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, FileName = ''): - if InitialDir == None: - InitialDir = os.path.expanduser("~") - self.InitialDir = InitialDir - self.FileName = FileName - self.Title = Title - self.Filter = Filter - self.FilterIndex = FilterIndex - - def run(self): - """run the file dialog, either return a file name, or False if - the user aborted the dialog""" - try: - import win32gui, win32con - return self.runWindows() - except ImportError: - return self.runCompatible() - - def runWindows(self): - import win32gui, win32con - fname, customfilter, flags=win32gui.GetSaveFileNameW( - InitialDir=self.InitialDir, - Flags=win32con.OFN_EXPLORER, - File=self.FileName, - DefExt='py', - Title=self.Title, - Filter="", - CustomFilter="", - FilterIndex=1) - if fname: - return fname - else: - return False - - def runCompatible(self): - file_save = gtk.FileChooserDialog(self.Title,None, - gtk.FILE_CHOOSER_ACTION_SAVE - , (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 self.Filter.iteritems(): - 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(); - else: - result = False - file_save.destroy() - return result
Change 1 of 1 Show Entire File hggtk/​gtklib.py Stacked
 
168
169
170
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
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
225
226
227
228
229
230
231
@@ -168,3 +168,64 @@
  self._image = image   self._image_frame.add(self._image)   self._image.show() + +class NativeSaveFileDialogWrapper: + """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, FileName = ''): + if InitialDir == None: + InitialDir = os.path.expanduser("~") + self.InitialDir = InitialDir + self.FileName = FileName + self.Title = Title + self.Filter = Filter + self.FilterIndex = FilterIndex + + def run(self): + """run the file dialog, either return a file name, or False if + the user aborted the dialog""" + try: + import win32gui, win32con + return self.runWindows() + except ImportError: + return self.runCompatible() + + def runWindows(self): + import win32gui, win32con + fname, customfilter, flags=win32gui.GetSaveFileNameW( + InitialDir=self.InitialDir, + Flags=win32con.OFN_EXPLORER, + File=self.FileName, + DefExt='py', + Title=self.Title, + Filter="", + CustomFilter="", + FilterIndex=1) + if fname: + return fname + else: + return False + + def runCompatible(self): + file_save = gtk.FileChooserDialog(self.Title,None, + gtk.FILE_CHOOSER_ACTION_SAVE + , (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 self.Filter.iteritems(): + 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(); + else: + result = False + file_save.destroy() + return result
Change 1 of 3 Show Entire File hggtk/​history.py Stacked
 
566
567
568
569
 
570
571
572
 
611
612
613
614
 
615
616
617
 
642
643
644
645
 
646
647
648
 
566
567
568
 
569
570
571
572
 
611
612
613
 
614
615
616
617
 
642
643
644
 
645
646
647
648
@@ -566,7 +566,7 @@
    filename = "%s_rev%d_to_rev%s.hg" % (os.path.basename(self.repo.root),   revs[0], revs[1]) - result = NativeSaveFileDialogWrapper(Title=_('Write bundle to'), + result = gtklib.NativeSaveFileDialogWrapper(Title=_('Write bundle to'),   InitialDir=self.repo.root,   FileName=filename).run()   if result: @@ -611,7 +611,7 @@
  def _export_patch(self, menuitem):   rev = self.currow[treemodel.REVID]   filename = "%s_rev%s.patch" % (os.path.basename(self.repo.root), rev) - fd = NativeSaveFileDialogWrapper(Title=_('Save patch to'), + fd = gtklib.NativeSaveFileDialogWrapper(Title=_('Save patch to'),   InitialDir=self.repo.root,   FileName=filename)   result = fd.run() @@ -642,7 +642,7 @@
  except (ValueError, hglib.LookupError):   return   filename = "%s_rev%d_to_tip.hg" % (os.path.basename(self.repo.root), rev) - result = NativeSaveFileDialogWrapper(Title=_('Write bundle to'), + result = gtklib.NativeSaveFileDialogWrapper(Title=_('Write bundle to'),   InitialDir=self.repo.root,   FileName=filename).run()   if result:
Change 1 of 1 Show Entire File hggtk/​status.py Stacked
 
1038
1039
1040
1041
 
1042
1043
1044
 
1038
1039
1040
 
1041
1042
1043
1044
@@ -1038,7 +1038,7 @@
  'Write selected diff hunks to a patch file'   revrange = self.opts.get('rev')[0]   filename = "%s.patch" % revrange.replace(':', '_to_') - fd = gdialog.NativeSaveFileDialogWrapper(Title=_('Save patch to'), + fd = gtklib.NativeSaveFileDialogWrapper(Title=_('Save patch to'),   InitialDir=self.repo.root,   FileName=filename)   result = fd.run()