From 0dba500c57301d2cdaf7172190bbe20d662ee1c2 Mon Sep 17 00:00:00 2001 From: Thiago Franco de Moraes Date: Fri, 11 May 2018 14:53:53 -0300 Subject: [PATCH] Listctrl events working with wxpython4 --- invesalius/gui/data_notebook.py | 13 +++++++------ invesalius/gui/widgets/listctrl.py | 36 ++++++++++++++++++++++-------------- 2 files changed, 29 insertions(+), 20 deletions(-) diff --git a/invesalius/gui/data_notebook.py b/invesalius/gui/data_notebook.py index 90f98fb..36a9af9 100644 --- a/invesalius/gui/data_notebook.py +++ b/invesalius/gui/data_notebook.py @@ -41,6 +41,7 @@ import invesalius.constants as const import invesalius.data.slice_ as slice_ import invesalius.gui.dialogs as dlg import invesalius.gui.widgets.listctrl as listmix +# import wx.lib.mixins.listctrl as listmix import invesalius.utils as ul @@ -491,7 +492,7 @@ class MasksListCtrlPanel(wx.ListCtrl, listmix.TextEditMixin): evt.Skip() def OnItemActivated(self, evt): - self.ToggleItem(evt.m_itemIndex) + self.ToggleItem(evt.Index) def OnCheckItem(self, index, flag): if flag: @@ -783,7 +784,7 @@ class SurfacesListCtrlPanel(wx.ListCtrl, listmix.TextEditMixin): # Otherwise the parent's method will be overwritten and other # things will stop working, e.g.: OnCheckItem - last_surface_index = evt.m_itemIndex + last_surface_index = evt.Index Publisher.sendMessage('Change surface selected', last_surface_index) evt.Skip() @@ -840,7 +841,7 @@ class SurfacesListCtrlPanel(wx.ListCtrl, listmix.TextEditMixin): evt.Skip() def OnItemActivated(self, evt): - self.ToggleItem(evt.m_itemIndex) + self.ToggleItem(evt.Index) evt.Skip() def OnCheckItem(self, index, flag): @@ -1055,7 +1056,7 @@ class MeasuresListCtrlPanel(wx.ListCtrl, listmix.TextEditMixin): # Otherwise the parent's method will be overwritten and other # things will stop working, e.g.: OnCheckItem - last_index = evt.m_itemIndex + last_index = evt.Index Publisher.sendMessage('Change measurement selected', last_index) evt.Skip() @@ -1113,7 +1114,7 @@ class MeasuresListCtrlPanel(wx.ListCtrl, listmix.TextEditMixin): evt.Skip() def OnItemActivated(self, evt): - self.ToggleItem(evt.m_itemIndex) + self.ToggleItem(evt.Index) evt.Skip() @@ -1314,7 +1315,7 @@ class AnnotationsListCtrlPanel(wx.ListCtrl, listmix.TextEditMixin): def OnItemActivated(self, evt): - self.ToggleItem(evt.m_itemIndex) + self.ToggleItem(evt.Index) def OnCheckItem(self, index, flag): # TODO: use pubsub to communicate to models diff --git a/invesalius/gui/widgets/listctrl.py b/invesalius/gui/widgets/listctrl.py index 76017c3..0960ae2 100644 --- a/invesalius/gui/widgets/listctrl.py +++ b/invesalius/gui/widgets/listctrl.py @@ -644,19 +644,23 @@ class TextEditMixin: # give the derived class a chance to Allow/Veto this edit. evt = wx.ListEvent(wx.wxEVT_COMMAND_LIST_BEGIN_LABEL_EDIT, self.GetId()) - evt.m_itemIndex = row - evt.m_col = col + try: + evt.SetIndex(row) + evt.SetColumn(col) + except AttributeError: + evt.m_itemIndex = row + evt.m_col = col item = self.GetItem(row, col) - evt.m_item.SetId(item.GetId()) - evt.m_item.SetColumn(item.GetColumn()) - evt.m_item.SetData(item.GetData()) - evt.m_item.SetText(item.GetText()) + evt.Item.SetId(item.GetId()) + evt.Item.SetColumn(item.GetColumn()) + evt.Item.SetData(item.GetData()) + evt.Item.SetText(item.GetText()) ret = self.GetEventHandler().ProcessEvent(evt) if ret and not evt.IsAllowed(): return # user code doesn't allow the edit. - if self.GetColumn(col).m_format != self.col_style: - self.make_editor(self.GetColumn(col).m_format) + if self.GetColumn(col).Align != self.col_style: + self.make_editor(self.GetColumn(col).Align) x0 = self.col_locs[col] x1 = self.col_locs[col+1] - x0 @@ -717,13 +721,17 @@ class TextEditMixin: # Event can be vetoed. It doesn't has SetEditCanceled(), what would # require passing extra argument to CloseEditor() evt = wx.ListEvent(wx.wxEVT_COMMAND_LIST_END_LABEL_EDIT, self.GetId()) - evt.m_itemIndex = self.curRow - evt.m_col = self.curCol + try: + evt.SetIndex(self.curRow) + evt.SetColumn(self.curCol) + except AttributeError: + evt.m_itemIndex = self.curRow + evt.m_col = self.curCol item = self.GetItem(self.curRow, self.curCol) - evt.m_item.SetId(item.GetId()) - evt.m_item.SetColumn(item.GetColumn()) - evt.m_item.SetData(item.GetData()) - evt.m_item.SetText(text) #should be empty string if editor was canceled + evt.Item.SetId(item.GetId()) + evt.Item.SetColumn(item.GetColumn()) + evt.Item.SetData(item.GetData()) + evt.Item.SetText(text) #should be empty string if editor was canceled ret = self.GetEventHandler().ProcessEvent(evt) if not ret or evt.IsAllowed(): if self.IsVirtual(): -- libgit2 0.21.2