1- import collections
21import importlib .util
32import re
43
3837 ]
3938
4039
41- PrivateActionData = collections .namedtuple ("ColorMapMenuPrivateActionData" , ["name" , "source" ])
42-
43-
4440def buildMenuEntryWidget (cmap , text ):
4541 lut = cmap .getLookupTable (nPts = 32 , alpha = True )
4642 qimg = QtGui .QImage (lut , len (lut ), 1 , QtGui .QImage .Format .Format_RGBA8888 )
@@ -66,7 +62,7 @@ def buildMenuEntryAction(menu, name, source):
6662 else :
6763 cmap = colormap .get (name , source = source )
6864 act = QtWidgets .QWidgetAction (menu )
69- act .setData (PrivateActionData (name , source ))
65+ act .setData (ColorMapMenuActionData (name , source ))
7066 act .setDefaultWidget (buildMenuEntryWidget (cmap , name ))
7167 menu .addAction (act )
7268
@@ -152,7 +148,7 @@ def __init__(self, *, userList=None, showGradientSubMenu=False, showColorMapSubM
152148
153149 topmenu = self
154150 act = topmenu .addAction ('None' )
155- act .setData (PrivateActionData (None , None ))
151+ act .setData (ColorMapMenuActionData (None , None ))
156152
157153 if userList is not None :
158154 buildUserSubMenu (topmenu , userList )
@@ -207,9 +203,9 @@ def __init__(self, *, userList=None, showGradientSubMenu=False, showColorMapSubM
207203
208204 @QtCore .Slot (QtGui .QAction )
209205 def onTriggered (self , action ):
210- if not isinstance (data := action .data (), PrivateActionData ):
206+ if not isinstance (data := action .data (), ColorMapMenuActionData ):
211207 return
212- cmap = self . actionDataToColorMap ( data )
208+ cmap = data . toColorMap ( )
213209 self .sigColorMapTriggered .emit (cmap )
214210
215211 @QtCore .Slot ()
@@ -283,9 +279,13 @@ def buildSubMenu(self, names, source, sort=True):
283279 for name in names :
284280 buildMenuEntryAction (menu , name , source )
285281
286- @staticmethod
287- def actionDataToColorMap (data ):
288- name , source = data
282+
283+ class ColorMapMenuActionData :
284+ def __init__ (self , * args ):
285+ self .args = args
286+
287+ def toColorMap (self ):
288+ name , source = self .args
289289 if isinstance (source , colormap .ColorMap ):
290290 cmap = source
291291 elif name is None :
0 commit comments