@@ -538,16 +538,6 @@ def __init__(self, canvas, window):
538538 NavigationToolbar2 .__init__ (self , canvas )
539539 self ._idle_draw_id = 0
540540
541- self .connect ("destroy" , self .destroy )
542-
543- def destroy (self , * args ):
544- gtk .Toolbar .destroy (self )
545- self .fileselect .destroy ()
546- self .tooltips .destroy ()
547- self .canvas .destroy ()
548- if self ._idle_draw_id != 0 :
549- gobject .remove_source (self ._idle_draw_id )
550-
551541 def set_message (self , s ):
552542 if self ._idle_draw_id == 0 :
553543 self .message .set_label (s )
@@ -635,11 +625,6 @@ def _init_toolbar2_2(self):
635625 self .append_widget (self .message , None , None )
636626 self .message .show ()
637627
638- self .fileselect = FileSelection (title = 'Save the figure' ,
639- parent = self .win ,)
640-
641-
642-
643628 def _init_toolbar2_4 (self ):
644629 basedir = os .path .join (matplotlib .rcParams ['datapath' ],'images' )
645630 self .tooltips = gtk .Tooltips ()
@@ -670,15 +655,19 @@ def _init_toolbar2_4(self):
670655
671656 self .show_all ()
672657
673- self .fileselect = FileChooserDialog (
674- title = 'Save the figure' ,
675- parent = self .win ,
676- filetypes = self .canvas .get_supported_filetypes (),
677- default_filetype = self .canvas .get_default_filetype ())
678-
658+ def get_filechooser (self ):
659+ if gtk .pygtk_version >= (2 ,4 ,0 ):
660+ return FileChooserDialog (
661+ title = 'Save the figure' ,
662+ parent = self .win ,
663+ filetypes = self .canvas .get_supported_filetypes (),
664+ default_filetype = self .canvas .get_default_filetype ())
665+ else :
666+ return FileSelection (title = 'Save the figure' ,
667+ parent = self .win ,)
679668
680669 def save_figure (self , button ):
681- fname , format = self .fileselect .get_filename_from_user ()
670+ fname , format = self .get_filechooser () .get_filename_from_user ()
682671 if fname :
683672 try :
684673 self .canvas .print_figure (fname , format = format )
@@ -781,11 +770,6 @@ def __init__(self, canvas, window):
781770 self .show_all ()
782771 self .update ()
783772
784- def destroy (* args ):
785- self .fileselect .destroy ()
786- del self .fileselect
787- self .connect ("destroy" , destroy )
788-
789773 def _create_toolitems_2_4 (self ):
790774 # use the GTK+ 2.4 GtkToolbar API
791775 iconSize = gtk .ICON_SIZE_SMALL_TOOLBAR
@@ -970,9 +954,19 @@ def zoomy(self, button, direction):
970954 self .canvas .draw ()
971955 return True
972956
957+ def get_filechooser (self ):
958+ if gtk .pygtk_version >= (2 ,4 ,0 ):
959+ return FileChooserDialog (
960+ title = 'Save the figure' ,
961+ parent = self .win ,
962+ filetypes = self .canvas .get_supported_filetypes (),
963+ default_filetype = self .canvas .get_default_filetype ())
964+ else :
965+ return FileSelection (title = 'Save the figure' ,
966+ parent = self .win )
973967
974968 def save_figure (self , button ):
975- fname , format = self .fileselect .get_filename_from_user ()
969+ fname , format = self .get_filechooser () .get_filename_from_user ()
976970 if fname :
977971 try :
978972 self .canvas .print_figure (fname , format = format )
0 commit comments