Commit 685ff1d7580e3dfa3cc9ab41768e135970119048

Authored by Thiago Franco de Moraes
1 parent 306f8ac6
Exists in master

Fixed the problem with checkbox in listctrl in datanotebook

(cherry picked from commit ee26bb89f728518ae0ff586c61b687b94ea7e962)
Showing 1 changed file with 29 additions and 4 deletions   Show diff stats
invesalius/gui/data_notebook.py
@@ -347,7 +347,7 @@ class ButtonControlPanel(wx.Panel): @@ -347,7 +347,7 @@ class ButtonControlPanel(wx.Panel):
347 else: 347 else:
348 dlg.MaskSelectionRequiredForDuplication() 348 dlg.MaskSelectionRequiredForDuplication()
349 349
350 -class MasksListCtrlPanel(wx.ListCtrl, listmix.TextEditMixin): 350 +class MasksListCtrlPanel(wx.ListCtrl, listmix.TextEditMixin, listmix.CheckListCtrlMixin):
351 351
352 def __init__(self, parent, ID=-1, pos=wx.DefaultPosition, 352 def __init__(self, parent, ID=-1, pos=wx.DefaultPosition,
353 size=wx.DefaultSize, style=wx.LC_REPORT): 353 size=wx.DefaultSize, style=wx.LC_REPORT):
@@ -358,6 +358,7 @@ class MasksListCtrlPanel(wx.ListCtrl, listmix.TextEditMixin): @@ -358,6 +358,7 @@ class MasksListCtrlPanel(wx.ListCtrl, listmix.TextEditMixin):
358 358
359 wx.ListCtrl.__init__(self, parent, ID, pos, size, style=wx.LC_REPORT) 359 wx.ListCtrl.__init__(self, parent, ID, pos, size, style=wx.LC_REPORT)
360 listmix.TextEditMixin.__init__(self) 360 listmix.TextEditMixin.__init__(self)
  361 + listmix.CheckListCtrlMixin.__init__(self)
361 self.mask_list_index = {} 362 self.mask_list_index = {}
362 self.current_index = 0 363 self.current_index = 0
363 self.__init_columns() 364 self.__init_columns()
@@ -367,6 +368,7 @@ class MasksListCtrlPanel(wx.ListCtrl, listmix.TextEditMixin): @@ -367,6 +368,7 @@ class MasksListCtrlPanel(wx.ListCtrl, listmix.TextEditMixin):
367 368
368 def __bind_events_wx(self): 369 def __bind_events_wx(self):
369 self.Bind(wx.EVT_LIST_ITEM_ACTIVATED, self.OnItemActivated) 370 self.Bind(wx.EVT_LIST_ITEM_ACTIVATED, self.OnItemActivated)
  371 + self.Bind(wx.EVT_LIST_BEGIN_LABEL_EDIT, self.OnBeginLabelEdit)
370 self.Bind(wx.EVT_LIST_END_LABEL_EDIT, self.OnEditLabel) 372 self.Bind(wx.EVT_LIST_END_LABEL_EDIT, self.OnEditLabel)
371 self.Bind(wx.EVT_KEY_UP, self.OnKeyEvent) 373 self.Bind(wx.EVT_KEY_UP, self.OnKeyEvent)
372 374
@@ -485,6 +487,12 @@ class MasksListCtrlPanel(wx.ListCtrl, listmix.TextEditMixin): @@ -485,6 +487,12 @@ class MasksListCtrlPanel(wx.ListCtrl, listmix.TextEditMixin):
485 487
486 self.image_gray = Image.open(os.path.join(const.ICON_DIR, "object_colour.jpg")) 488 self.image_gray = Image.open(os.path.join(const.ICON_DIR, "object_colour.jpg"))
487 489
  490 + def OnBeginLabelEdit(self, evt):
  491 + if evt.GetColumn() == 1:
  492 + evt.Skip()
  493 + else:
  494 + evt.Veto()
  495 +
488 def OnEditLabel(self, evt): 496 def OnEditLabel(self, evt):
489 Publisher.sendMessage('Change mask name', 497 Publisher.sendMessage('Change mask name',
490 index=evt.GetIndex(), name=evt.GetLabel()) 498 index=evt.GetIndex(), name=evt.GetLabel())
@@ -492,6 +500,7 @@ class MasksListCtrlPanel(wx.ListCtrl, listmix.TextEditMixin): @@ -492,6 +500,7 @@ class MasksListCtrlPanel(wx.ListCtrl, listmix.TextEditMixin):
492 500
493 def OnItemActivated(self, evt): 501 def OnItemActivated(self, evt):
494 self.ToggleItem(evt.Index) 502 self.ToggleItem(evt.Index)
  503 + # pass
495 504
496 def OnCheckItem(self, index, flag): 505 def OnCheckItem(self, index, flag):
497 if flag: 506 if flag:
@@ -695,7 +704,7 @@ class SurfaceButtonControlPanel(wx.Panel): @@ -695,7 +704,7 @@ class SurfaceButtonControlPanel(wx.Panel):
695 Publisher.sendMessage('Import surface file', filename=filename) 704 Publisher.sendMessage('Import surface file', filename=filename)
696 705
697 706
698 -class SurfacesListCtrlPanel(wx.ListCtrl, listmix.TextEditMixin): 707 +class SurfacesListCtrlPanel(wx.ListCtrl, listmix.TextEditMixin, listmix.CheckListCtrlMixin):
699 708
700 def __init__(self, parent, ID=-1, pos=wx.DefaultPosition, 709 def __init__(self, parent, ID=-1, pos=wx.DefaultPosition,
701 size=wx.DefaultSize, style=wx.LC_REPORT): 710 size=wx.DefaultSize, style=wx.LC_REPORT):
@@ -706,6 +715,7 @@ class SurfacesListCtrlPanel(wx.ListCtrl, listmix.TextEditMixin): @@ -706,6 +715,7 @@ class SurfacesListCtrlPanel(wx.ListCtrl, listmix.TextEditMixin):
706 715
707 wx.ListCtrl.__init__(self, parent, ID, pos, size, style=wx.LC_REPORT) 716 wx.ListCtrl.__init__(self, parent, ID, pos, size, style=wx.LC_REPORT)
708 listmix.TextEditMixin.__init__(self) 717 listmix.TextEditMixin.__init__(self)
  718 + listmix.CheckListCtrlMixin.__init__(self)
709 719
710 self.__init_columns() 720 self.__init_columns()
711 self.__init_image_list() 721 self.__init_image_list()
@@ -729,6 +739,7 @@ class SurfacesListCtrlPanel(wx.ListCtrl, listmix.TextEditMixin): @@ -729,6 +739,7 @@ class SurfacesListCtrlPanel(wx.ListCtrl, listmix.TextEditMixin):
729 739
730 def __bind_events_wx(self): 740 def __bind_events_wx(self):
731 self.Bind(wx.EVT_LIST_ITEM_ACTIVATED, self.OnItemActivated) 741 self.Bind(wx.EVT_LIST_ITEM_ACTIVATED, self.OnItemActivated)
  742 + self.Bind(wx.EVT_LIST_BEGIN_LABEL_EDIT, self.OnBeginLabelEdit)
732 self.Bind(wx.EVT_LIST_END_LABEL_EDIT, self.OnEditLabel) 743 self.Bind(wx.EVT_LIST_END_LABEL_EDIT, self.OnEditLabel)
733 #self.Bind(wx.EVT_LIST_ITEM_SELECTED, self.OnItemSelected_) 744 #self.Bind(wx.EVT_LIST_ITEM_SELECTED, self.OnItemSelected_)
734 self.Bind(wx.EVT_KEY_UP, self.OnKeyEvent) 745 self.Bind(wx.EVT_KEY_UP, self.OnKeyEvent)
@@ -832,6 +843,12 @@ class SurfacesListCtrlPanel(wx.ListCtrl, listmix.TextEditMixin): @@ -832,6 +843,12 @@ class SurfacesListCtrlPanel(wx.ListCtrl, listmix.TextEditMixin):
832 843
833 self.image_gray = Image.open(os.path.join(const.ICON_DIR, "object_colour.jpg")) 844 self.image_gray = Image.open(os.path.join(const.ICON_DIR, "object_colour.jpg"))
834 845
  846 + def OnBeginLabelEdit(self, evt):
  847 + if evt.GetColumn() == 1:
  848 + evt.Skip()
  849 + else:
  850 + evt.Veto()
  851 +
835 def OnEditLabel(self, evt): 852 def OnEditLabel(self, evt):
836 Publisher.sendMessage('Change surface name', index=evt.GetIndex(), name=evt.GetLabel()) 853 Publisher.sendMessage('Change surface name', index=evt.GetIndex(), name=evt.GetLabel())
837 evt.Skip() 854 evt.Skip()
@@ -954,7 +971,7 @@ class SurfacesListCtrlPanel(wx.ListCtrl, listmix.TextEditMixin): @@ -954,7 +971,7 @@ class SurfacesListCtrlPanel(wx.ListCtrl, listmix.TextEditMixin):
954 #------------------------------------------------- 971 #-------------------------------------------------
955 #------------------------------------------------- 972 #-------------------------------------------------
956 973
957 -class MeasuresListCtrlPanel(wx.ListCtrl, listmix.TextEditMixin): 974 +class MeasuresListCtrlPanel(wx.ListCtrl, listmix.TextEditMixin, listmix.CheckListCtrlMixin):
958 975
959 def __init__(self, parent, ID=-1, pos=wx.DefaultPosition, 976 def __init__(self, parent, ID=-1, pos=wx.DefaultPosition,
960 size=wx.DefaultSize, style=wx.LC_REPORT): 977 size=wx.DefaultSize, style=wx.LC_REPORT):
@@ -965,6 +982,7 @@ class MeasuresListCtrlPanel(wx.ListCtrl, listmix.TextEditMixin): @@ -965,6 +982,7 @@ class MeasuresListCtrlPanel(wx.ListCtrl, listmix.TextEditMixin):
965 982
966 wx.ListCtrl.__init__(self, parent, ID, pos, size, style=wx.LC_REPORT) 983 wx.ListCtrl.__init__(self, parent, ID, pos, size, style=wx.LC_REPORT)
967 listmix.TextEditMixin.__init__(self) 984 listmix.TextEditMixin.__init__(self)
  985 + listmix.CheckListCtrlMixin.__init__(self)
968 986
969 self.__init_columns() 987 self.__init_columns()
970 self.__init_image_list() 988 self.__init_image_list()
@@ -986,6 +1004,7 @@ class MeasuresListCtrlPanel(wx.ListCtrl, listmix.TextEditMixin): @@ -986,6 +1004,7 @@ class MeasuresListCtrlPanel(wx.ListCtrl, listmix.TextEditMixin):
986 1004
987 def __bind_events_wx(self): 1005 def __bind_events_wx(self):
988 self.Bind(wx.EVT_LIST_ITEM_ACTIVATED, self.OnItemActivated) 1006 self.Bind(wx.EVT_LIST_ITEM_ACTIVATED, self.OnItemActivated)
  1007 + self.Bind(wx.EVT_LIST_BEGIN_LABEL_EDIT, self.OnBeginLabelEdit)
989 self.Bind(wx.EVT_LIST_END_LABEL_EDIT, self.OnEditLabel) 1008 self.Bind(wx.EVT_LIST_END_LABEL_EDIT, self.OnEditLabel)
990 self.Bind(wx.EVT_LIST_ITEM_SELECTED, self.OnItemSelected_) 1009 self.Bind(wx.EVT_LIST_ITEM_SELECTED, self.OnItemSelected_)
991 self.Bind(wx.EVT_KEY_UP, self.OnKeyEvent) 1010 self.Bind(wx.EVT_KEY_UP, self.OnKeyEvent)
@@ -1099,6 +1118,11 @@ class MeasuresListCtrlPanel(wx.ListCtrl, listmix.TextEditMixin): @@ -1099,6 +1118,11 @@ class MeasuresListCtrlPanel(wx.ListCtrl, listmix.TextEditMixin):
1099 1118
1100 self.image_gray = Image.open(os.path.join(const.ICON_DIR, "object_colour.jpg")) 1119 self.image_gray = Image.open(os.path.join(const.ICON_DIR, "object_colour.jpg"))
1101 1120
  1121 + def OnBeginLabelEdit(self, evt):
  1122 + if evt.GetColumn() == 1:
  1123 + evt.Skip()
  1124 + else:
  1125 + evt.Veto()
1102 1126
1103 def OnEditLabel(self, evt): 1127 def OnEditLabel(self, evt):
1104 Publisher.sendMessage('Change measurement name', index=evt.GetIndex(), name=evt.GetLabel()) 1128 Publisher.sendMessage('Change measurement name', index=evt.GetIndex(), name=evt.GetLabel())
@@ -1233,7 +1257,7 @@ class MeasuresListCtrlPanel(wx.ListCtrl, listmix.TextEditMixin): @@ -1233,7 +1257,7 @@ class MeasuresListCtrlPanel(wx.ListCtrl, listmix.TextEditMixin):
1233 #******************************************************************* 1257 #*******************************************************************
1234 1258
1235 1259
1236 -class AnnotationsListCtrlPanel(wx.ListCtrl, listmix.TextEditMixin): 1260 +class AnnotationsListCtrlPanel(wx.ListCtrl, listmix.TextEditMixin, listmix.CheckListCtrlMixin):
1237 # TODO: Remove edimixin, allow only visible and invisible 1261 # TODO: Remove edimixin, allow only visible and invisible
1238 def __init__(self, parent, ID=-1, pos=wx.DefaultPosition, 1262 def __init__(self, parent, ID=-1, pos=wx.DefaultPosition,
1239 size=wx.DefaultSize, style=wx.LC_REPORT): 1263 size=wx.DefaultSize, style=wx.LC_REPORT):
@@ -1244,6 +1268,7 @@ class AnnotationsListCtrlPanel(wx.ListCtrl, listmix.TextEditMixin): @@ -1244,6 +1268,7 @@ class AnnotationsListCtrlPanel(wx.ListCtrl, listmix.TextEditMixin):
1244 1268
1245 wx.ListCtrl.__init__(self, parent, ID, pos, size, style=wx.LC_REPORT) 1269 wx.ListCtrl.__init__(self, parent, ID, pos, size, style=wx.LC_REPORT)
1246 listmix.TextEditMixin.__init__(self) 1270 listmix.TextEditMixin.__init__(self)
  1271 + listmix.CheckListCtrlMixin.__init__(self)
1247 1272
1248 self.__init_columns() 1273 self.__init_columns()
1249 self.__init_image_list() 1274 self.__init_image_list()