@@ -83,7 +83,9 @@ class ToolBase:
8383 Keymap to associate with this tool.
8484
8585 ``list[str]``: List of keys that will trigger this tool when a keypress
86- event is emitted on ``self.figure.canvas``.
86+ event is emitted on ``self.figure.canvas``. Note that this attribute is
87+ looked up on the instance, and can therefore be a property (this is used
88+ e.g. by the built-in tools to load the rcParams at instantiation time).
8789 """
8890
8991 description = None
@@ -382,7 +384,7 @@ class ToolQuit(ToolBase):
382384 """Tool to call the figure manager destroy method."""
383385
384386 description = 'Quit the figure'
385- default_keymap = mpl .rcParams ['keymap.quit' ]
387+ default_keymap = property ( lambda self : mpl .rcParams ['keymap.quit' ])
386388
387389 def trigger (self , sender , event , data = None ):
388390 Gcf .destroy_fig (self .figure )
@@ -392,7 +394,7 @@ class ToolQuitAll(ToolBase):
392394 """Tool to call the figure manager destroy method."""
393395
394396 description = 'Quit all figures'
395- default_keymap = mpl .rcParams ['keymap.quit_all' ]
397+ default_keymap = property ( lambda self : mpl .rcParams ['keymap.quit_all' ])
396398
397399 def trigger (self , sender , event , data = None ):
398400 Gcf .destroy_all ()
@@ -402,7 +404,7 @@ class ToolGrid(ToolBase):
402404 """Tool to toggle the major grids of the figure."""
403405
404406 description = 'Toggle major grids'
405- default_keymap = mpl .rcParams ['keymap.grid' ]
407+ default_keymap = property ( lambda self : mpl .rcParams ['keymap.grid' ])
406408
407409 def trigger (self , sender , event , data = None ):
408410 sentinel = str (uuid .uuid4 ())
@@ -417,7 +419,7 @@ class ToolMinorGrid(ToolBase):
417419 """Tool to toggle the major and minor grids of the figure."""
418420
419421 description = 'Toggle major and minor grids'
420- default_keymap = mpl .rcParams ['keymap.grid_minor' ]
422+ default_keymap = property ( lambda self : mpl .rcParams ['keymap.grid_minor' ])
421423
422424 def trigger (self , sender , event , data = None ):
423425 sentinel = str (uuid .uuid4 ())
@@ -432,7 +434,7 @@ class ToolFullScreen(ToolToggleBase):
432434 """Tool to toggle full screen."""
433435
434436 description = 'Toggle fullscreen mode'
435- default_keymap = mpl .rcParams ['keymap.fullscreen' ]
437+ default_keymap = property ( lambda self : mpl .rcParams ['keymap.fullscreen' ])
436438
437439 def enable (self , event ):
438440 self .figure .canvas .manager .full_screen_toggle ()
@@ -462,7 +464,7 @@ class ToolYScale(AxisScaleBase):
462464 """Tool to toggle between linear and logarithmic scales on the Y axis."""
463465
464466 description = 'Toggle scale Y axis'
465- default_keymap = mpl .rcParams ['keymap.yscale' ]
467+ default_keymap = property ( lambda self : mpl .rcParams ['keymap.yscale' ])
466468
467469 def set_scale (self , ax , scale ):
468470 ax .set_yscale (scale )
@@ -472,7 +474,7 @@ class ToolXScale(AxisScaleBase):
472474 """Tool to toggle between linear and logarithmic scales on the X axis."""
473475
474476 description = 'Toggle scale X axis'
475- default_keymap = mpl .rcParams ['keymap.xscale' ]
477+ default_keymap = property ( lambda self : mpl .rcParams ['keymap.xscale' ])
476478
477479 def set_scale (self , ax , scale ):
478480 ax .set_xscale (scale )
@@ -626,7 +628,7 @@ class ToolHome(ViewsPositionsBase):
626628
627629 description = 'Reset original view'
628630 image = 'home'
629- default_keymap = mpl .rcParams ['keymap.home' ]
631+ default_keymap = property ( lambda self : mpl .rcParams ['keymap.home' ])
630632 _on_trigger = 'home'
631633
632634
@@ -635,7 +637,7 @@ class ToolBack(ViewsPositionsBase):
635637
636638 description = 'Back to previous view'
637639 image = 'back'
638- default_keymap = mpl .rcParams ['keymap.back' ]
640+ default_keymap = property ( lambda self : mpl .rcParams ['keymap.back' ])
639641 _on_trigger = 'back'
640642
641643
@@ -644,7 +646,7 @@ class ToolForward(ViewsPositionsBase):
644646
645647 description = 'Forward to next view'
646648 image = 'forward'
647- default_keymap = mpl .rcParams ['keymap.forward' ]
649+ default_keymap = property ( lambda self : mpl .rcParams ['keymap.forward' ])
648650 _on_trigger = 'forward'
649651
650652
@@ -660,7 +662,7 @@ class SaveFigureBase(ToolBase):
660662
661663 description = 'Save the figure'
662664 image = 'filesave'
663- default_keymap = mpl .rcParams ['keymap.save' ]
665+ default_keymap = property ( lambda self : mpl .rcParams ['keymap.save' ])
664666
665667
666668class ZoomPanBase (ToolToggleBase ):
@@ -735,7 +737,7 @@ class ToolZoom(ZoomPanBase):
735737
736738 description = 'Zoom to rectangle'
737739 image = 'zoom_to_rect'
738- default_keymap = mpl .rcParams ['keymap.zoom' ]
740+ default_keymap = property ( lambda self : mpl .rcParams ['keymap.zoom' ])
739741 cursor = cursors .SELECT_REGION
740742 radio_group = 'default'
741743
@@ -859,7 +861,7 @@ def _release(self, event):
859861class ToolPan (ZoomPanBase ):
860862 """Pan axes with left mouse, zoom with right."""
861863
862- default_keymap = mpl .rcParams ['keymap.pan' ]
864+ default_keymap = property ( lambda self : mpl .rcParams ['keymap.pan' ])
863865 description = 'Pan axes with left mouse, zoom with right'
864866 image = 'move'
865867 cursor = cursors .MOVE
@@ -924,7 +926,7 @@ def _mouse_move(self, event):
924926
925927class ToolHelpBase (ToolBase ):
926928 description = 'Print tool list, shortcuts and description'
927- default_keymap = mpl .rcParams ['keymap.help' ]
929+ default_keymap = property ( lambda self : mpl .rcParams ['keymap.help' ])
928930 image = 'help'
929931
930932 @staticmethod
@@ -964,7 +966,7 @@ class ToolCopyToClipboardBase(ToolBase):
964966 """Tool to copy the figure to the clipboard."""
965967
966968 description = 'Copy the canvas figure to clipboard'
967- default_keymap = mpl .rcParams ['keymap.copy' ]
969+ default_keymap = property ( lambda self : mpl .rcParams ['keymap.copy' ])
968970
969971 def trigger (self , * args , ** kwargs ):
970972 message = "Copy tool is not available"
0 commit comments