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

Skip to content

Commit 50e3719

Browse files
committed
MEP22 Save Figure Tool
1 parent cdbd51b commit 50e3719

File tree

4 files changed

+43
-33
lines changed

4 files changed

+43
-33
lines changed

lib/matplotlib/backend_tools.py

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@
1919
import time
2020
import warnings
2121

22+
import os
23+
2224

2325
class Cursors(object):
2426
"""Simple namespace for cursor reference"""
@@ -679,6 +681,43 @@ class SaveFigureBase(ToolBase):
679681
default_keymap = rcParams['keymap.save']
680682

681683

684+
class ToolSaveFigure(ToolBase):
685+
"""Saves the figure"""
686+
687+
description = 'Save the figure'
688+
image = 'filesave.png'
689+
default_keymap = rcParams['keymap.save']
690+
691+
def get_filechooser(self):
692+
fc = self.figure.canvas.backend.FileChooserDialog(
693+
title='Save the figure',
694+
parent=self.figure.canvas.manager.window,
695+
path=os.path.expanduser(rcParams.get('savefig.directory', '')),
696+
filetypes=self.figure.canvas.get_supported_filetypes(),
697+
default_filetype=self.figure.canvas.get_default_filetype())
698+
fc.set_current_name(self.figure.canvas.get_default_filename())
699+
return fc
700+
701+
def trigger(self, *args, **kwargs):
702+
chooser = self.get_filechooser()
703+
fname, format_ = chooser.get_filename_from_user()
704+
chooser.destroy()
705+
if fname:
706+
startpath = os.path.expanduser(
707+
rcParams.get('savefig.directory', ''))
708+
if startpath == '':
709+
# explicitly missing key or empty str signals to use cwd
710+
rcParams['savefig.directory'] = startpath
711+
else:
712+
# save dir for next time
713+
rcParams['savefig.directory'] = os.path.dirname(
714+
six.text_type(fname))
715+
try:
716+
self.figure.canvas.print_figure(fname, format=format_)
717+
except Exception as e:
718+
error_msg_gtk(str(e), parent=self)
719+
720+
682721
class ZoomPanBase(ToolToggleBase):
683722
"""Base class for `ToolZoom` and `ToolPan`"""
684723
def __init__(self, *args):

lib/matplotlib/backends/backend_gtk3.py

Lines changed: 0 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -923,38 +923,6 @@ def set_message(self, s):
923923
self.push(self._context, s)
924924

925925

926-
class SaveFigureGTK3(backend_tools.SaveFigureBase):
927-
928-
def get_filechooser(self):
929-
fc = FileChooserDialog(
930-
title='Save the figure',
931-
parent=self.figure.canvas.manager.window,
932-
path=os.path.expanduser(rcParams.get('savefig.directory', '')),
933-
filetypes=self.figure.canvas.get_supported_filetypes(),
934-
default_filetype=self.figure.canvas.get_default_filetype())
935-
fc.set_current_name(self.figure.canvas.get_default_filename())
936-
return fc
937-
938-
def trigger(self, *args, **kwargs):
939-
chooser = self.get_filechooser()
940-
fname, format_ = chooser.get_filename_from_user()
941-
chooser.destroy()
942-
if fname:
943-
startpath = os.path.expanduser(
944-
rcParams.get('savefig.directory', ''))
945-
if startpath == '':
946-
# explicitly missing key or empty str signals to use cwd
947-
rcParams['savefig.directory'] = startpath
948-
else:
949-
# save dir for next time
950-
rcParams['savefig.directory'] = os.path.dirname(
951-
six.text_type(fname))
952-
try:
953-
self.figure.canvas.print_figure(fname, format=format_)
954-
except Exception as e:
955-
error_msg_gtk(str(e), parent=self)
956-
957-
958926
class SetCursorGTK3(backend_tools.SetCursorBase):
959927
def set_cursor(self, cursor):
960928
self.figure.canvas.get_property("window").set_cursor(cursord[cursor])
@@ -1039,7 +1007,6 @@ def error_msg_gtk(msg, parent=None):
10391007
dialog.destroy()
10401008

10411009

1042-
backend_tools.ToolSaveFigure = SaveFigureGTK3
10431010
backend_tools.ToolConfigureSubplots = ConfigureSubplotsGTK3
10441011
backend_tools.ToolSetCursor = SetCursorGTK3
10451012
backend_tools.ToolRubberband = RubberbandGTK3

lib/matplotlib/backends/backend_gtk3agg.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -124,6 +124,8 @@ def new_figure_manager_given_figure(num, figure):
124124
Window = backend_gtk3.WindowGTK3
125125
Toolbar = backend_gtk3.ToolbarGTK3
126126
Statusbar = backend_gtk3.StatusbarGTK3
127+
FileChooserDialog = backend_gtk3.FileChooserDialog
128+
127129
Toolbar2 = backend_gtk3.NavigationToolbar2GTK3
128130
MainLoop = backend_gtk3.MainLoopGTK3
129131
show = backend_gtk3.show

lib/matplotlib/backends/backend_gtk3cairo.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,8 @@ def new_figure_manager_given_figure(num, figure):
7575
Window = backend_gtk3.WindowGTK3
7676
Toolbar = backend_gtk3.ToolbarGTK3
7777
Statusbar = backend_gtk3.StatusbarGTK3
78+
FileChooserDialog = backend_gtk3.FileChooserDialog
79+
7880
Toolbar2 = backend_gtk3.NavigationToolbar2GTK3
7981
MainLoop = backend_gtk3.MainLoopGTK3
8082
show = backend_gtk3.show

0 commit comments

Comments
 (0)