Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 3 additions & 2 deletions Mixins/Plugable.py
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,8 @@ def LoadPlugins(self, fileName:str):
for name,m in inspect.getmembers(module, inspect.isfunction):
### import only plug-ins in plug-ins list (dynamic attribute) and only method
if name in self.plugins and 'self' in inspect.getargspec(m).args:
setattr(self, name, types.MethodType(m, self, self.__class__))
#setattr(self, name, types.MethodType(m, self, self.__class__))
setattr(self, name, m.__get__(self, self.__class__))
else:
return module
### restore method which was assigned to None before being pickled
Expand All @@ -92,7 +93,7 @@ def LoadPlugins(self, fileName:str):
if getattr(self, name) is None:
### assign to default class method
setattr(self, name, types.MethodType(method, self))

return True

def main():
Expand Down
49 changes: 32 additions & 17 deletions PluginsGUI.py
Original file line number Diff line number Diff line change
Expand Up @@ -62,8 +62,8 @@ def __init__(self, *args, **kw):

self.EnableCheckBoxes(True)
self.IsChecked = self.IsItemChecked

CheckListCtrlMixin.__init__(self)
else:
CheckListCtrlMixin.__init__(self)

if wx.VERSION_STRING < '4.0':
self.SetStringItem = self.SetStringItem
Expand All @@ -75,7 +75,7 @@ def __init__(self, *args, **kw):
self.id = -100000000
self.map = {}

images = [os.path.join(ICON_PATH_16_16,s) for s in ('disable_plugin.png','enable_plugin.png','no_ok.png')]
images = [os.path.join(ICON_PATH_16_16, s) for s in ('disable_plugin.png','enable_plugin.png','no_ok.png')]

self.il = wx.ImageList(16, 16)
for i in images:
Expand Down Expand Up @@ -201,25 +201,22 @@ def GetPath(self,item):
else:
return None

def GetIndex(self, event):
""" Return index from event or currentItem
"""
return event.Index if hasattr(event,'Index') else self.currentItem

def OnEnable(self, event):
""" Ebnable the current item.
"""
try:
index = event.Index
except:
index = self.currentItem

index = self.GetIndex(event)
self.CheckItem(index, True)
self.SetItemImage(index,1)

def OnDisable(self, event):
""" Disable the current item.
"""
try:
index = event.Index
except:
index = self.currentItem

index = self.GetIndex(event)
self.CheckItem(index, False)
self.SetItemImage(index,0)

Expand Down Expand Up @@ -336,7 +333,7 @@ def Populate(self, pluginsList):
self.is_populate = True

def MyInsertItem(self, root, basename):
""" Insert plug-in in list
""" Insert plug-in in list.
"""

### absolute name
Expand Down Expand Up @@ -489,9 +486,21 @@ def __init__(self, *args, **kwargs):
self.Populate(PluginManager.pluginsList)

self.is_populate = True

def OnCheckItem(self, index, flag):
""" Item has been checked

def OnEnable(self, event):
""" Ebnable the current item.
"""
CheckListCtrl.OnEnable(self, event)
self.DoChekItem(self.GetIndex(event))

def OnDisable(self, event):
""" Disable the current item.
"""
CheckListCtrl.OnDisable(self, event)
self.DoChekItem(self.GetIndex(event))

def DoChekItem(self, index):
"""
"""

pluginName = self.GetItemText(index)
Expand Down Expand Up @@ -523,6 +532,11 @@ def OnCheckItem(self, index, flag):
sys.stdout.write(_('WARNING: class can\'t be overwritted'))
else:
pass

def OnCheckItem(self, index, flag):
""" Item has been checked.
"""
self.DoChekItem(self, index)

#@BuzyCursorNotification
def Populate(self, model):
Expand Down Expand Up @@ -769,6 +783,7 @@ def SetPluginsList(self, Checklist = None):
def OnApply(self, event):
""" Call OnApply method ig CheckList class
"""

self.check_list.OnApply(event)

def OnSelectedItem(self, event):
Expand Down