Commit 685ff1d7580e3dfa3cc9ab41768e135970119048
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() |