Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 41aa505

Browse files
pelsonmspacek
pelson
authored andcommitted
Supported & tested on wx, gtk, gtk3, qt3, tk.
1 parent 88dbef7 commit 41aa505

File tree

6 files changed

+38
-9
lines changed

6 files changed

+38
-9
lines changed

lib/matplotlib/backend_bases.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2108,6 +2108,15 @@ def set_window_title(self, title):
21082108
if hasattr(self, "manager"):
21092109
self.manager.set_window_title(title)
21102110

2111+
def get_default_filename(self):
2112+
"""
2113+
Return a string, which includes extension, suitable for use as
2114+
a default filename.
2115+
"""
2116+
default_filename = self.get_window_title() or 'image'
2117+
default_filename = default_filename.lower().replace(' ', '_')
2118+
return default_filename + '.' + self.get_default_filetype()
2119+
21112120
def switch_backends(self, FigureCanvasClass):
21122121
"""
21132122
Instantiate an instance of FigureCanvasClass

lib/matplotlib/backends/backend_gtk.py

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -529,7 +529,7 @@ def __init__(self, canvas, num):
529529
FigureManagerBase.__init__(self, canvas, num)
530530

531531
self.window = gtk.Window()
532-
self.window.set_title("Figure %d" % num)
532+
self.set_window_title("Figure %d" % num)
533533
if (window_icon):
534534
try:
535535
self.window.set_icon_from_file(window_icon)
@@ -620,6 +620,9 @@ def _get_toolbar(self, canvas):
620620
toolbar = None
621621
return toolbar
622622

623+
def get_window_title(self):
624+
return self.window.get_title()
625+
623626
def set_window_title(self, title):
624627
self.window.set_title(title)
625628

@@ -725,11 +728,13 @@ def _init_toolbar2_4(self):
725728
self.show_all()
726729

727730
def get_filechooser(self):
728-
return FileChooserDialog(
731+
fc = FileChooserDialog(
729732
title='Save the figure',
730733
parent=self.win,
731734
filetypes=self.canvas.get_supported_filetypes(),
732735
default_filetype=self.canvas.get_default_filetype())
736+
fc.set_current_name(self.canvas.get_default_filename())
737+
return fc
733738

734739
def save_figure(self, *args):
735740
fname, format = self.get_filechooser().get_filename_from_user()

lib/matplotlib/backends/backend_gtk3.py

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -358,7 +358,7 @@ def __init__(self, canvas, num):
358358
FigureManagerBase.__init__(self, canvas, num)
359359

360360
self.window = Gtk.Window()
361-
self.window.set_title("Figure %d" % num)
361+
self.set_window_title("Figure %d" % num)
362362
if (window_icon):
363363
try:
364364
self.window.set_icon_from_file(window_icon)
@@ -447,6 +447,9 @@ def _get_toolbar(self, canvas):
447447
toolbar = None
448448
return toolbar
449449

450+
def get_window_title(self):
451+
return self.window.get_title()
452+
450453
def set_window_title(self, title):
451454
self.window.set_title(title)
452455

@@ -532,11 +535,13 @@ def _init_toolbar(self):
532535
self.show_all()
533536

534537
def get_filechooser(self):
535-
return FileChooserDialog(
538+
fc = FileChooserDialog(
536539
title='Save the figure',
537540
parent=self.win,
538541
filetypes=self.canvas.get_supported_filetypes(),
539542
default_filetype=self.canvas.get_default_filetype())
543+
fc.set_current_name(self.canvas.get_default_filename())
544+
return fc
540545

541546
def save_figure(self, *args):
542547
fname, format = self.get_filechooser().get_filename_from_user()

lib/matplotlib/backends/backend_qt.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -219,7 +219,7 @@ def __init__( self, canvas, num ):
219219
# Give the keyboard focus to the figure instead of the manager
220220
self.canvas.setFocusPolicy( qt.QWidget.ClickFocus )
221221
self.canvas.setFocus()
222-
self.window.setCaption( "Figure %d" % num )
222+
self.set_window_title( "Figure %d" % num )
223223

224224
self.window._destroying = False
225225

@@ -293,6 +293,9 @@ def destroy( self, *args ):
293293
if DEBUG: print("destroy figure manager")
294294
self.window.close(True)
295295

296+
def get_window_title(self):
297+
return str(self.window.caption())
298+
296299
def set_window_title(self, title):
297300
self.window.setCaption(title)
298301

@@ -420,7 +423,7 @@ def save_figure(self, *args):
420423
sorted_filetypes.sort()
421424
default_filetype = self.canvas.get_default_filetype()
422425

423-
start = 'image.' + default_filetype
426+
start = self.canvas.get_default_filename()
424427
filters = []
425428
selectedFilter = None
426429
for name, exts in sorted_filetypes:

lib/matplotlib/backends/backend_tkagg.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -494,7 +494,7 @@ def __init__(self, canvas, num, window):
494494
FigureManagerBase.__init__(self, canvas, num)
495495
self.window = window
496496
self.window.withdraw()
497-
self.window.wm_title("Figure %d" % num)
497+
self.set_window_title("Figure %d" % num)
498498
self.canvas = canvas
499499
self._num = num
500500
_, _, w, h = canvas.figure.bbox.bounds
@@ -565,6 +565,9 @@ def destroy(self, *args):
565565
self.window.quit()
566566
self.window = None
567567

568+
def get_window_title(self):
569+
return self.window.wm_title()
570+
568571
def set_window_title(self, title):
569572
self.window.wm_title(title)
570573

@@ -874,7 +877,8 @@ def save_figure(self, *args):
874877
master=self.window,
875878
title='Save the figure',
876879
filetypes = tk_filetypes,
877-
defaultextension = defaultextension
880+
defaultextension = defaultextension,
881+
initialfile=self.canvas.get_default_filename(),
878882
)
879883

880884
if fname == "" or fname == ():

lib/matplotlib/backends/backend_wx.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1603,6 +1603,9 @@ def destroy(self, *args):
16031603
#wx.GetApp().ProcessIdle()
16041604
wx.WakeUpIdle()
16051605

1606+
def get_window_title(self):
1607+
return self.window.GetTitle()
1608+
16061609
def set_window_title(self, title):
16071610
self.window.SetTitle(title)
16081611

@@ -1840,7 +1843,7 @@ def configure_subplots(self, evt):
18401843
def save_figure(self, *args):
18411844
# Fetch the required filename and file type.
18421845
filetypes, exts, filter_index = self.canvas._get_imagesave_wildcards()
1843-
default_file = "image." + self.canvas.get_default_filetype()
1846+
default_file = self.canvas.get_default_filename()
18441847
dlg = wx.FileDialog(self._parent, "Save to file", "", default_file,
18451848
filetypes,
18461849
wx.SAVE|wx.OVERWRITE_PROMPT)

0 commit comments

Comments
 (0)