Commit 0dba500c57301d2cdaf7172190bbe20d662ee1c2
1 parent
696200d1
Exists in
master
Listctrl events working with wxpython4
Showing
2 changed files
with
29 additions
and
20 deletions
Show diff stats
invesalius/gui/data_notebook.py
| ... | ... | @@ -41,6 +41,7 @@ import invesalius.constants as const |
| 41 | 41 | import invesalius.data.slice_ as slice_ |
| 42 | 42 | import invesalius.gui.dialogs as dlg |
| 43 | 43 | import invesalius.gui.widgets.listctrl as listmix |
| 44 | +# import wx.lib.mixins.listctrl as listmix | |
| 44 | 45 | import invesalius.utils as ul |
| 45 | 46 | |
| 46 | 47 | |
| ... | ... | @@ -491,7 +492,7 @@ class MasksListCtrlPanel(wx.ListCtrl, listmix.TextEditMixin): |
| 491 | 492 | evt.Skip() |
| 492 | 493 | |
| 493 | 494 | def OnItemActivated(self, evt): |
| 494 | - self.ToggleItem(evt.m_itemIndex) | |
| 495 | + self.ToggleItem(evt.Index) | |
| 495 | 496 | |
| 496 | 497 | def OnCheckItem(self, index, flag): |
| 497 | 498 | if flag: |
| ... | ... | @@ -783,7 +784,7 @@ class SurfacesListCtrlPanel(wx.ListCtrl, listmix.TextEditMixin): |
| 783 | 784 | # Otherwise the parent's method will be overwritten and other |
| 784 | 785 | # things will stop working, e.g.: OnCheckItem |
| 785 | 786 | |
| 786 | - last_surface_index = evt.m_itemIndex | |
| 787 | + last_surface_index = evt.Index | |
| 787 | 788 | Publisher.sendMessage('Change surface selected', |
| 788 | 789 | last_surface_index) |
| 789 | 790 | evt.Skip() |
| ... | ... | @@ -840,7 +841,7 @@ class SurfacesListCtrlPanel(wx.ListCtrl, listmix.TextEditMixin): |
| 840 | 841 | evt.Skip() |
| 841 | 842 | |
| 842 | 843 | def OnItemActivated(self, evt): |
| 843 | - self.ToggleItem(evt.m_itemIndex) | |
| 844 | + self.ToggleItem(evt.Index) | |
| 844 | 845 | evt.Skip() |
| 845 | 846 | |
| 846 | 847 | def OnCheckItem(self, index, flag): |
| ... | ... | @@ -1055,7 +1056,7 @@ class MeasuresListCtrlPanel(wx.ListCtrl, listmix.TextEditMixin): |
| 1055 | 1056 | # Otherwise the parent's method will be overwritten and other |
| 1056 | 1057 | # things will stop working, e.g.: OnCheckItem |
| 1057 | 1058 | |
| 1058 | - last_index = evt.m_itemIndex | |
| 1059 | + last_index = evt.Index | |
| 1059 | 1060 | Publisher.sendMessage('Change measurement selected', |
| 1060 | 1061 | last_index) |
| 1061 | 1062 | evt.Skip() |
| ... | ... | @@ -1113,7 +1114,7 @@ class MeasuresListCtrlPanel(wx.ListCtrl, listmix.TextEditMixin): |
| 1113 | 1114 | evt.Skip() |
| 1114 | 1115 | |
| 1115 | 1116 | def OnItemActivated(self, evt): |
| 1116 | - self.ToggleItem(evt.m_itemIndex) | |
| 1117 | + self.ToggleItem(evt.Index) | |
| 1117 | 1118 | evt.Skip() |
| 1118 | 1119 | |
| 1119 | 1120 | |
| ... | ... | @@ -1314,7 +1315,7 @@ class AnnotationsListCtrlPanel(wx.ListCtrl, listmix.TextEditMixin): |
| 1314 | 1315 | |
| 1315 | 1316 | |
| 1316 | 1317 | def OnItemActivated(self, evt): |
| 1317 | - self.ToggleItem(evt.m_itemIndex) | |
| 1318 | + self.ToggleItem(evt.Index) | |
| 1318 | 1319 | |
| 1319 | 1320 | def OnCheckItem(self, index, flag): |
| 1320 | 1321 | # TODO: use pubsub to communicate to models | ... | ... |
invesalius/gui/widgets/listctrl.py
| ... | ... | @@ -644,19 +644,23 @@ class TextEditMixin: |
| 644 | 644 | |
| 645 | 645 | # give the derived class a chance to Allow/Veto this edit. |
| 646 | 646 | evt = wx.ListEvent(wx.wxEVT_COMMAND_LIST_BEGIN_LABEL_EDIT, self.GetId()) |
| 647 | - evt.m_itemIndex = row | |
| 648 | - evt.m_col = col | |
| 647 | + try: | |
| 648 | + evt.SetIndex(row) | |
| 649 | + evt.SetColumn(col) | |
| 650 | + except AttributeError: | |
| 651 | + evt.m_itemIndex = row | |
| 652 | + evt.m_col = col | |
| 649 | 653 | item = self.GetItem(row, col) |
| 650 | - evt.m_item.SetId(item.GetId()) | |
| 651 | - evt.m_item.SetColumn(item.GetColumn()) | |
| 652 | - evt.m_item.SetData(item.GetData()) | |
| 653 | - evt.m_item.SetText(item.GetText()) | |
| 654 | + evt.Item.SetId(item.GetId()) | |
| 655 | + evt.Item.SetColumn(item.GetColumn()) | |
| 656 | + evt.Item.SetData(item.GetData()) | |
| 657 | + evt.Item.SetText(item.GetText()) | |
| 654 | 658 | ret = self.GetEventHandler().ProcessEvent(evt) |
| 655 | 659 | if ret and not evt.IsAllowed(): |
| 656 | 660 | return # user code doesn't allow the edit. |
| 657 | 661 | |
| 658 | - if self.GetColumn(col).m_format != self.col_style: | |
| 659 | - self.make_editor(self.GetColumn(col).m_format) | |
| 662 | + if self.GetColumn(col).Align != self.col_style: | |
| 663 | + self.make_editor(self.GetColumn(col).Align) | |
| 660 | 664 | |
| 661 | 665 | x0 = self.col_locs[col] |
| 662 | 666 | x1 = self.col_locs[col+1] - x0 |
| ... | ... | @@ -717,13 +721,17 @@ class TextEditMixin: |
| 717 | 721 | # Event can be vetoed. It doesn't has SetEditCanceled(), what would |
| 718 | 722 | # require passing extra argument to CloseEditor() |
| 719 | 723 | evt = wx.ListEvent(wx.wxEVT_COMMAND_LIST_END_LABEL_EDIT, self.GetId()) |
| 720 | - evt.m_itemIndex = self.curRow | |
| 721 | - evt.m_col = self.curCol | |
| 724 | + try: | |
| 725 | + evt.SetIndex(self.curRow) | |
| 726 | + evt.SetColumn(self.curCol) | |
| 727 | + except AttributeError: | |
| 728 | + evt.m_itemIndex = self.curRow | |
| 729 | + evt.m_col = self.curCol | |
| 722 | 730 | item = self.GetItem(self.curRow, self.curCol) |
| 723 | - evt.m_item.SetId(item.GetId()) | |
| 724 | - evt.m_item.SetColumn(item.GetColumn()) | |
| 725 | - evt.m_item.SetData(item.GetData()) | |
| 726 | - evt.m_item.SetText(text) #should be empty string if editor was canceled | |
| 731 | + evt.Item.SetId(item.GetId()) | |
| 732 | + evt.Item.SetColumn(item.GetColumn()) | |
| 733 | + evt.Item.SetData(item.GetData()) | |
| 734 | + evt.Item.SetText(text) #should be empty string if editor was canceled | |
| 727 | 735 | ret = self.GetEventHandler().ProcessEvent(evt) |
| 728 | 736 | if not ret or evt.IsAllowed(): |
| 729 | 737 | if self.IsVirtual(): | ... | ... |