diff options
Diffstat (limited to 'lib/taurus/qt/qtdesigner')
-rw-r--r-- | lib/taurus/qt/qtdesigner/containerplugin.py | 14 | ||||
-rw-r--r-- | lib/taurus/qt/qtdesigner/taurusdesigner.py | 57 | ||||
-rw-r--r-- | lib/taurus/qt/qtdesigner/tauruspluginplugin.py | 3 |
3 files changed, 36 insertions, 38 deletions
diff --git a/lib/taurus/qt/qtdesigner/containerplugin.py b/lib/taurus/qt/qtdesigner/containerplugin.py index 70009e0a..83a87cb4 100644 --- a/lib/taurus/qt/qtdesigner/containerplugin.py +++ b/lib/taurus/qt/qtdesigner/containerplugin.py @@ -23,17 +23,21 @@ ## ############################################################################# -""" Every TaurusWidget should have the following Qt Designer extended capabilities: +""" +Every TaurusWidget should have the following Qt Designer extended +capabilities: - Task menu: it means when you right click on the widget in the designer, it will have the following additional items: - - 'Edit model...' - opens a customized dialog for editing the widget model + + - 'Edit model...': opens a customized dialog for editing the widget model - Property Sheet: it means that in the Qt Designer property sheet it will have the following properties customized: - - 'model' - will have a '...' button that will open a customized dialog for + + - 'model': will have a '...' button that will open a customized dialog for editing the widget model (same has 'Edit model...' task menu item """ @@ -103,8 +107,8 @@ class QGroupWidgetExtensionFactory(QtDesigner.QExtensionFactory): def create_plugin(): - #from .taurusplugin.taurusplugin import TaurusWidgetPlugin # - after futurize stage1 - from taurusplugin.taurusplugin import TaurusWidgetPlugin # + after futurize stage1 + from taurus.qt.qtdesigner.taurusplugin.taurusplugin import ( + TaurusWidgetPlugin) class QGroupWidgetPlugin(TaurusWidgetPlugin): diff --git a/lib/taurus/qt/qtdesigner/taurusdesigner.py b/lib/taurus/qt/qtdesigner/taurusdesigner.py index 3ceee990..2d8c17b4 100644 --- a/lib/taurus/qt/qtdesigner/taurusdesigner.py +++ b/lib/taurus/qt/qtdesigner/taurusdesigner.py @@ -25,10 +25,12 @@ from builtins import str import sys +import click import os.path -import optparse +import subprocess import taurus +import taurus.tauruscustomsettings from taurus.external.qt import Qt from taurus.core.util.log import deprecation_decorator @@ -73,17 +75,24 @@ def append_or_create_env_list(env, env_name, env_value): def get_qtdesigner_bin(): + designer_bin = getattr(taurus.tauruscustomsettings, 'QT_DESIGNER_PATH', None) + if designer_bin: + return designer_bin designer_bin = str(Qt.QLibraryInfo.location(Qt.QLibraryInfo.BinariesPath)) plat = sys.platform if plat == "darwin": designer_bin = os.path.join( - designer_bin, "Designer.app", "Contents", "MacOS") + designer_bin, "Designer.app", "Contents", "MacOS", "designer") elif plat in ("win32", "nt"): - import PyQt4 - designer_bin = os.path.abspath(os.path.dirname(PyQt4.__file__)) - - designer_bin = os.path.join(designer_bin, "designer") + designer_bin = os.path.join(designer_bin, "designer.exe") + if not os.path.exists(designer_bin): + # some installations don't properly install designer + # in QLibraryInfo.BinariesPath. We do a best effort to find it + designer_bin = subprocess.check_output('where designer') + designer_bin = designer_bin.decode().strip() + else: + designer_bin = os.path.join(designer_bin, "designer") return designer_bin @@ -151,31 +160,17 @@ def qtdesigner_start(args, env=None): return designer.exitCode() -def main(env=None): - if env is not None: - taurus.info('ignoring obsolete env parameter to qtdesigner_start') - - version = "taurusdesigner %s" % (taurus.Release.version) - usage = "Usage: %prog [options] <ui file(s)>" - description = "The Qt designer application customized for taurus" - parser = optparse.OptionParser( - version=version, usage=usage, description=description) - parser.add_option("--taurus-path", dest="tauruspath", default="", - help="additional directories to look for taurus widgets") - parser.add_option("--qt-designer-path", dest="pyqtdesignerpath", default="", - help="additional directories to look for python qt widgets") - - options, args = parser.parse_args() - - taurus_extra_path = None - # Set TAURUSQTDESIGNERPATH - if len(options.tauruspath) > 0: - taurus_extra_path = options.tauruspath - - if env is None: - env = get_taurus_designer_env(taurus_extra_path=taurus_extra_path) +@click.command('designer') +@click.argument('ui_files', nargs=-1) +@click.option("--taurus-path", "tauruspath", + metavar='TAURUSPATH', + default=None, + help="additional directories to look for taurus widgets") +def designer_cmd(ui_files, tauruspath): + """Launch a Taurus-customized Qt Designer application""" - sys.exit(qtdesigner_start(args, env=env)) + env = get_taurus_designer_env(taurus_extra_path=tauruspath) + sys.exit(qtdesigner_start(ui_files, env=env)) if __name__ == "__main__": - main() + designer_cmd() diff --git a/lib/taurus/qt/qtdesigner/tauruspluginplugin.py b/lib/taurus/qt/qtdesigner/tauruspluginplugin.py index 2abb98f9..5a875ffe 100644 --- a/lib/taurus/qt/qtdesigner/tauruspluginplugin.py +++ b/lib/taurus/qt/qtdesigner/tauruspluginplugin.py @@ -32,8 +32,7 @@ from taurus.external.qt import QtDesigner def build_qtdesigner_widget_plugin(klass): - #from . import taurusplugin # - after futurize stage 1 - import taurusplugin.taurusplugin as taurusplugin # + after futurize stage 1 + from taurus.qt.qtdesigner.taurusplugin import taurusplugin class Plugin(taurusplugin.TaurusWidgetPlugin): WidgetClass = klass |