diff options
author | Tim McNamara <code@timmcnamara.co.nz> | 2010-08-15 21:56:51 (GMT) |
---|---|---|
committer | Tim McNamara <code@timmcnamara.co.nz> | 2010-08-15 21:56:51 (GMT) |
commit | dfbdcb9b47db727a9929a96e6a16fc3af092f158 (patch) | |
tree | 3d7343193d0f6b6f5c642b9979710235e5519a0b /Experior.Activity/widgetIdentifier.py | |
parent | 7183abd2f2d455b425ffaf94ea5217ae168b916d (diff) |
I've rewritten the toolbutton identification algorithm. Hopefully the
current implementation is faster and easier to read.
Diffstat (limited to 'Experior.Activity/widgetIdentifier.py')
-rwxr-xr-x | Experior.Activity/widgetIdentifier.py | 59 |
1 files changed, 39 insertions, 20 deletions
diff --git a/Experior.Activity/widgetIdentifier.py b/Experior.Activity/widgetIdentifier.py index d114d38..38a0d5b 100755 --- a/Experior.Activity/widgetIdentifier.py +++ b/Experior.Activity/widgetIdentifier.py @@ -163,27 +163,46 @@ class ButtonIdentifier(WidgetIdentifier): # class ToolButtonIdentifier(WidgetIdentifier): class ToolButtonIdentifier(ButtonIdentifier): def getIdentifierSub(self): - ident = ButtonIdentifier.getIdentifierSub(self) - widget = self._widget - - # Get the identifier using the icon - if not self.validateIdentifier(ident): - ico = None - ico = widget.get_icon_widget() - if isinstance(ico, Icon): - ident = ico.props.icon_name - - # Label did not give us a good ident, check the icon name - if not self.validateIdentifier(ident): - ident = widget.get_icon_name() - - # Icon did not give us a good ident, try the label - if not self.validateIdentifier(ident): - label = widget.get_label_widget() - if hasattr(label,"get_text"): - ident = label.get_text() + ident = ButtonIdentifier.getIdentifierSub(self) + if self.validateIdentifier(ident): return ident + widget = self._widget - return ident + lw = widget.get_label_widget() + if lw is not None: + try: + #hopefully it's just a gtk.Label + ident = lw.get_text() + except AttributeError: + try: + ident = identifiers[lw.get_name()](lw) + except AttributeError: + ident = None + if self.validateIdentifier(ident): return ident + + lab = widget.get_label() + if lab is not None and self.validateIdentifier(lab): + return lab + + #icon_widget + iw = widget.get_icon_widget() + if iw is not None: + try: + ident = iw.props.icon_name + except AttributeError: + try: + ident= iw.get_text() + except AttributeError: + try: + ident = identifiers[iw.get_name()](iw) + except AttributeError: + ident = None + if self.validateIdentifier(ident): return ident + + icon_n = widget.get_icon_name() + if icon_n is not None: + if self.validateIdentifier(icon_n): return icon_n + + return widget.get_stock_id() class ComboBoxIdentifier(WidgetIdentifier): def getIdentifierSub(self): |