From 8b4b44e06a0e6e254d154bb140675bf951e82ccb Mon Sep 17 00:00:00 2001 From: Mauricio Baeza Date: Thu, 19 Nov 2020 22:37:11 -0600 Subject: [PATCH] Roadmap refactory --- source/diff.py | 56 ----------------------------------- source/easymacro2.py | 70 ++++++++++++++++++++++++++++++++++++++++++-- 2 files changed, 67 insertions(+), 59 deletions(-) diff --git a/source/diff.py b/source/diff.py index fffb04b..6bffb25 100644 --- a/source/diff.py +++ b/source/diff.py @@ -806,29 +806,6 @@ class EventsModify(EventsListenerBase, XModifyListener): return -class EventsItem(EventsListenerBase, XItemListener): - - def __init__(self, controller, name): - super().__init__(controller, name) - - def disposing(self, event): - pass - - def itemStateChanged(self, event): - event_name = '{}_item_changed'.format(self.name) - if hasattr(self._controller, event_name): - getattr(self._controller, event_name)(event) - return - - -class EventsItemRoadmap(EventsItem): - - def itemStateChanged(self, event): - dialog = event.Source.Context.Model - dialog.Step = event.ItemId + 1 - return - - class EventsTab(EventsListenerBase, XTabListener): def __init__(self, controller, name): @@ -1189,39 +1166,6 @@ class UnoGrid(UnoBaseObject): return -class UnoRoadmap(UnoBaseObject): - - def __init__(self, obj): - super().__init__(obj) - self._options = () - - @property - def options(self): - return self._options - @options.setter - def options(self, values): - self._options = values - for i, v in enumerate(values): - opt = self.model.createInstance() - opt.ID = i - opt.Label = v - self.model.insertByIndex(i, opt) - return - - @property - def enabled(self): - return True - @enabled.setter - def enabled(self, value): - for m in self.model: - m.Enabled = value - return - - def set_enabled(self, index, value): - self.model.getByIndex(index).Enabled = value - return - - class UnoTree(UnoBaseObject): def __init__(self, obj, ): diff --git a/source/easymacro2.py b/source/easymacro2.py index 8409607..6e15bbc 100644 --- a/source/easymacro2.py +++ b/source/easymacro2.py @@ -86,6 +86,7 @@ from com.sun.star.awt import XMouseListener from com.sun.star.awt import XMouseMotionListener from com.sun.star.awt import XFocusListener from com.sun.star.awt import XKeyListener +from com.sun.star.awt import XItemListener # ~ https://api.libreoffice.org/docs/idl/ref/namespacecom_1_1sun_1_1star_1_1awt_1_1FontUnderline.html from com.sun.star.awt import FontUnderline @@ -2931,7 +2932,7 @@ def _add_listeners(events, control, name=''): 'addActionListener': EventsButton, 'addMouseListener': EventsMouse, 'addFocusListener': EventsFocus, - # ~ 'addItemListener': EventsItem, + 'addItemListener': EventsItem, 'addKeyListener': EventsKey, # ~ 'addTabListener': EventsTab, } @@ -3096,6 +3097,30 @@ class EventsKey(EventsListenerBase, XKeyListener): return +class EventsItem(EventsListenerBase, XItemListener): + + def __init__(self, controller, name): + super().__init__(controller, name) + + def disposing(self, event): + pass + + def itemStateChanged(self, event): + event_name = '{}_item_changed'.format(self.name) + if hasattr(self._controller, event_name): + getattr(self._controller, event_name)(event) + return + + +class EventsItemRoadmap(EventsItem): + + def itemStateChanged(self, event): + dialog = event.Source.Context.Model + dialog.Step = event.ItemId + 1 + debug(dialog.Step) + return + + # ~ BorderColor = ? # ~ FontStyleName = ? # ~ HelpURL = ? @@ -3104,7 +3129,6 @@ class UnoBaseObject(object): def __init__(self, obj, path=''): self._obj = obj self._model = obj.Model - # ~ self._path = path def __setattr__(self, name, value): exists = hasattr(self, name) @@ -3560,6 +3584,45 @@ class UnoListBox(UnoBaseObject): return +class UnoRoadmap(UnoBaseObject): + + def __init__(self, obj): + super().__init__(obj) + self._options = () + + def __setattr__(self, name, value): + if name in ('_options',): + self.__dict__[name] = value + else: + super().__setattr__(name, value) + + @property + def options(self): + return self._options + @options.setter + def options(self, values): + self._options = values + for i, v in enumerate(values): + opt = self.model.createInstance() + opt.ID = i + opt.Label = v + self.model.insertByIndex(i, opt) + return + + @property + def enabled(self): + return True + @enabled.setter + def enabled(self, value): + for m in self.model: + m.Enabled = value + return + + def set_enabled(self, index, value): + self.model.getByIndex(index).Enabled = value + return + + UNO_CLASSES = { 'label': UnoLabel, 'link': UnoLabelLink, @@ -3569,6 +3632,7 @@ UNO_CLASSES = { 'text': UnoText, 'image': UnoImage, 'listbox': UnoListBox, + 'roadmap': UnoRoadmap, } @@ -3583,9 +3647,9 @@ class LODialog(object): 'text': 'com.sun.star.awt.UnoControlEditModel', 'image': 'com.sun.star.awt.UnoControlImageControlModel', 'listbox': 'com.sun.star.awt.UnoControlListBoxModel', + 'roadmap': 'com.sun.star.awt.UnoControlRoadmapModel', # ~ 'grid': 'com.sun.star.awt.grid.UnoControlGridModel', # ~ 'groupbox': 'com.sun.star.awt.UnoControlGroupBoxModel', - # ~ 'roadmap': 'com.sun.star.awt.UnoControlRoadmapModel', # ~ 'tree': 'com.sun.star.awt.tree.TreeControlModel', # ~ 'pages': 'com.sun.star.awt.UnoMultiPageModel', }