summaryrefslogtreecommitdiff
path: root/lib/taurus/qt/qtgui/extra_guiqwt
diff options
context:
space:
mode:
Diffstat (limited to 'lib/taurus/qt/qtgui/extra_guiqwt')
-rw-r--r--lib/taurus/qt/qtgui/extra_guiqwt/cli.py42
-rw-r--r--lib/taurus/qt/qtgui/extra_guiqwt/curve.py2
-rw-r--r--lib/taurus/qt/qtgui/extra_guiqwt/curvesmodel.py8
-rw-r--r--lib/taurus/qt/qtgui/extra_guiqwt/image.py4
-rw-r--r--lib/taurus/qt/qtgui/extra_guiqwt/plot.py66
-rw-r--r--lib/taurus/qt/qtgui/extra_guiqwt/taurustrend2d.py92
-rw-r--r--lib/taurus/qt/qtgui/extra_guiqwt/tools.py2
7 files changed, 120 insertions, 96 deletions
diff --git a/lib/taurus/qt/qtgui/extra_guiqwt/cli.py b/lib/taurus/qt/qtgui/extra_guiqwt/cli.py
new file mode 100644
index 00000000..1a00f8df
--- /dev/null
+++ b/lib/taurus/qt/qtgui/extra_guiqwt/cli.py
@@ -0,0 +1,42 @@
+#############################################################################
+##
+# This file is part of Taurus
+##
+# http://taurus-scada.org
+##
+# Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
+##
+# Taurus is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+##
+# Taurus is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Lesser General Public License for more details.
+##
+# You should have received a copy of the GNU Lesser General Public License
+# along with Taurus. If not, see <http://www.gnu.org/licenses/>.
+##
+#############################################################################
+
+import click
+
+
+from .plot import image_cmd
+from .taurustrend2d import trend2d_cmd
+
+
+@click.group('guiqwt')
+def guiqwt():
+ """guiqwt related commands (image, trend2d)"""
+ pass
+
+
+guiqwt.add_command(image_cmd)
+guiqwt.add_command(trend2d_cmd)
+
+if __name__ == '__main__':
+ guiqwt()
+
diff --git a/lib/taurus/qt/qtgui/extra_guiqwt/curve.py b/lib/taurus/qt/qtgui/extra_guiqwt/curve.py
index 18f3d6bf..a4cf9df4 100644
--- a/lib/taurus/qt/qtgui/extra_guiqwt/curve.py
+++ b/lib/taurus/qt/qtgui/extra_guiqwt/curve.py
@@ -30,7 +30,7 @@ from builtins import next
from taurus.external.qt import Qt
from taurus.qt.qtgui.base import TaurusBaseComponent
-from taurus.qt.qtcore.util.signal import baseSignal
+from taurus.qt.qtcore.util import baseSignal
import taurus
from guiqwt.curve import CurveItem
from taurus.qt.qtgui.extra_guiqwt.styles import TaurusCurveParam, TaurusTrendParam
diff --git a/lib/taurus/qt/qtgui/extra_guiqwt/curvesmodel.py b/lib/taurus/qt/qtgui/extra_guiqwt/curvesmodel.py
index 8dc49bde..2175a284 100644
--- a/lib/taurus/qt/qtgui/extra_guiqwt/curvesmodel.py
+++ b/lib/taurus/qt/qtgui/extra_guiqwt/curvesmodel.py
@@ -30,6 +30,7 @@ curvesmodel Model and view for new CurveItem configuration
from __future__ import print_function
from builtins import next
from builtins import str
+from builtins import bytes
from builtins import range
from builtins import object
@@ -320,11 +321,12 @@ class TaurusCurveItemTableModel(Qt.QAbstractTableModel):
else:
column = parent.columnCount()
if data.hasFormat(TAURUS_ATTR_MIME_TYPE):
- self.setData(self.index(row, column),
- value=str(data.data(TAURUS_ATTR_MIME_TYPE)))
+ model = bytes(data.data(TAURUS_ATTR_MIME_TYPE)).decode("utf-8")
+ self.setData(self.index(row, column), value=model)
return True
elif data.hasFormat(TAURUS_MODEL_LIST_MIME_TYPE):
- models = str(data.data(TAURUS_MODEL_LIST_MIME_TYPE)).split()
+ d = bytes(data.data(TAURUS_MODEL_LIST_MIME_TYPE))
+ models = d.decode("utf-8").split()
if len(models) == 1:
self.setData(self.index(row, column), value=models[0])
return True
diff --git a/lib/taurus/qt/qtgui/extra_guiqwt/image.py b/lib/taurus/qt/qtgui/extra_guiqwt/image.py
index 1781043f..885b19a9 100644
--- a/lib/taurus/qt/qtgui/extra_guiqwt/image.py
+++ b/lib/taurus/qt/qtgui/extra_guiqwt/image.py
@@ -33,7 +33,7 @@ __all__ = ["TaurusImageItem", "TaurusRGBImageItem", "TaurusTrend2DItem",
from taurus.core.units import Quantity
from taurus.external.qt import Qt
from taurus.qt.qtgui.base import TaurusBaseComponent
-from taurus.qt.qtcore.util.signal import baseSignal
+from taurus.qt.qtcore.util import baseSignal
import taurus.core
from taurus.core.util.containers import ArrayBuffer
@@ -601,7 +601,7 @@ def test1():
from guiqwt.plot import ImageDialog
from taurus.qt.qtgui.extra_guiqwt.builder import make
from taurus.qt.qtgui.application import TaurusApplication
- app = TaurusApplication()
+ app = TaurusApplication(cmd_line_parser=None)
# define a taurus image
#model1 = 'sys/tg_test/1/short_image_ro'
diff --git a/lib/taurus/qt/qtgui/extra_guiqwt/plot.py b/lib/taurus/qt/qtgui/extra_guiqwt/plot.py
index 2ec85ac9..8ba2579b 100644
--- a/lib/taurus/qt/qtgui/extra_guiqwt/plot.py
+++ b/lib/taurus/qt/qtgui/extra_guiqwt/plot.py
@@ -29,6 +29,7 @@ Extension of :mod:`guiqwt.plot`
from builtins import next
from builtins import str
+import click
import copy
from future.utils import string_types
@@ -62,7 +63,7 @@ class TaurusCurveDialog(CurveDialog, TaurusBaseWidget):
'''see :class:`guiqwt.plot.CurveDialog` for other valid initialization parameters'''
CurveDialog.__init__(self, parent=parent, toolbar=toolbar, **kwargs)
TaurusBaseWidget.__init__(self, 'TaurusCurveDialog')
- self.deprecated(rel='4.1', dep='TaurusCurveDialog', alt='TaurusPlot / taurusplot launcher')
+ self.deprecated(rel='4.1', dep='TaurusCurveDialog', alt='TaurusPlot / taurus tpg plot launcher')
self.setWindowFlags(Qt.Qt.Widget)
self._designMode = designMode
self._modelNames = CaselessList()
@@ -209,7 +210,7 @@ class TaurusTrendDialog(CurveDialog, TaurusBaseWidget):
'''see :class:`guiqwt.plot.CurveDialog` for other valid initialization parameters'''
CurveDialog.__init__(self, parent=parent, toolbar=toolbar, **kwargs)
TaurusBaseWidget.__init__(self, 'TaurusTrendDialog')
- self.deprecated(rel='4.1', dep='TaurusTrendDialog', alt='TaurusTrend / taurustrend launcher')
+ self.deprecated(rel='4.1', dep='TaurusTrendDialog', alt='TaurusTrend / taurus tpg trend launcher')
self.setWindowFlags(Qt.Qt.Widget)
self._designMode = designMode
self._modelNames = CaselessList()
@@ -627,49 +628,48 @@ def taurusTrendDlgMain():
sys.exit(app.exec_())
-def taurusImageDlgMain():
+@click.command('image')
+@click.argument('model', nargs=1, required=False)
+@click.option('-c', '--color-mode', 'color_mode',
+ type=click.Choice(['gray', 'rgb']),
+ default='gray',
+ show_default=True,
+ help=('Color mode expected from the attribute')
+ )
+@click.option("--demo", is_flag=True, help="show a demo of the widget")
+@click.option('--window-name', 'window_name',
+ default='TaurusPlot (qwt5)',
+ help='Name of the window')
+def image_cmd(model, color_mode, demo, window_name):
from taurus.qt.qtgui.application import TaurusApplication
- import taurus.core
import sys
- # prepare options
- parser = taurus.core.util.argparse.get_taurus_parser()
- parser.set_usage("%prog [options] <model>")
- parser.set_description(
- 'a Taurus application for plotting Image Attributes')
- parser.add_option("--demo", action="store_true", dest="demo",
- default=False, help="show a demo of the widget")
- parser.add_option("--rgb", action="store_true", dest="rgb_mode",
- default=False, help="assume image is RGB")
- parser.add_option("--window-name", dest="window_name",
- default="Taurus Image", help="Name of the window")
- app = TaurusApplication(
- cmd_line_parser=parser, app_name="Taurus Image Dialog", app_version=taurus.Release.version)
- args = app.get_command_line_args()
- options = app.get_command_line_options()
+ app = TaurusApplication(cmd_line_parser=None,
+ app_name="Taurus Image Dialog")
- # check & process options
- if options.demo:
- if options.rgb_mode:
- args.append('eval:randint(0,256,(10,20,3))')
+ rgb_mode = (color_mode == 'rgb')
+
+ # TODO: is "-c rgb --demo" doing the right thing?? Check it.
+ if demo:
+ if color_mode == 'rgb':
+ model = 'eval:randint(0,256,(10,20,3))'
else:
- args.append('eval:rand(256,128)')
- w = TaurusImageDialog(wintitle=options.window_name)
+ model = 'eval:rand(256,128)'
- w.setRGBmode(options.rgb_mode)
+ w = TaurusImageDialog(wintitle=window_name)
+
+ w.setRGBmode(rgb_mode)
# set model
- if len(args) == 1:
- w.setModel(args[0])
- else:
- parser.print_help(sys.stderr)
- sys.exit(1)
+ if model:
+ w.setModel(model)
w.show()
sys.exit(app.exec_())
if __name__ == "__main__":
- taurusCurveDlgMain()
+ image_cmd()
+ # taurusCurveDlgMain()
# taurusTrendDlgMain()
-# taurusImageDlgMain()
+ # taurusImageDlgMain()
diff --git a/lib/taurus/qt/qtgui/extra_guiqwt/taurustrend2d.py b/lib/taurus/qt/qtgui/extra_guiqwt/taurustrend2d.py
index af564905..90090ff4 100644
--- a/lib/taurus/qt/qtgui/extra_guiqwt/taurustrend2d.py
+++ b/lib/taurus/qt/qtgui/extra_guiqwt/taurustrend2d.py
@@ -28,6 +28,8 @@ taurustrend.py: Generic trend widget for Taurus
"""
__all__ = ["TaurusTrend2DDialog"]
+import click
+
from guiqwt.plot import ImageDialog
from taurus.external.qt import Qt
import taurus.core
@@ -306,68 +308,46 @@ class TaurusTrend2DDialog(ImageDialog, TaurusBaseWidget):
TaurusBaseWidget.resetModifiableByUser)
-def taurusTrend2DMain():
+@click.command('trend2d')
+@click.argument('model', nargs=1, required=False)
+@click.option("-x", "--x-axis-mode", "x_axis_mode",
+ type=click.Choice(['t', 'd', 'e']),
+ default='d',
+ show_default=True,
+ help=("interpret X values as timestamps (t), "
+ + "time deltas (d) or event numbers (e). ")
+ )
+@click.option('-b', '--buffer', 'max_buffer_size', type=int,
+ default=512,
+ show_default=True,
+ help=("maximum number of values to be stacked "
+ + "(when reached, the oldest values will be "
+ + "discarded)")
+ )
+@click.option("--demo", is_flag=True, help="show a demo of the widget")
+@click.option('--window-name', 'window_name',
+ default='TaurusPlot (qwt5)',
+ help='Name of the window')
+def trend2d_cmd(model, x_axis_mode, max_buffer_size,
+ demo, window_name):
from taurus.qt.qtgui.application import TaurusApplication
- import taurus.core
import sys
- # prepare options
- parser = taurus.core.util.argparse.get_taurus_parser()
- parser.set_usage("%prog [options] <model>")
- parser.set_description('a Taurus application for plotting trends of ' +
- 'arrays (aka "spectrograms")')
- parser.add_option("-x", "--x-axis-mode", dest="x_axis_mode", default='d',
- metavar="t|d|e",
- help=("interpret X values as timestamps (t), " +
- "time deltas (d) or event numbers (e). " +
- "Accepted values: t|d|e")
- )
- parser.add_option("-b", "--buffer", dest="max_buffer_size", default='512',
- help=("maximum number of values to be stacked " +
- "(when reached, the oldest values will be " +
- "discarded)")
- )
- parser.add_option("-a", "--use-archiving",
- action="store_true", dest="use_archiving", default=False)
- parser.add_option("--demo", action="store_true", dest="demo",
- default=False, help="show a demo of the widget")
- parser.add_option("--window-name", dest="window_name",
- default="Taurus Trend 2D", help="Name of the window")
-
- app = TaurusApplication(cmd_line_parser=parser, app_name="Taurus Trend 2D",
- app_version=taurus.Release.version)
- args = app.get_command_line_args()
- options = app.get_command_line_options()
-
- # check & process options
- stackModeMap = dict(t='datetime', d='deltatime', e='event')
- if options.x_axis_mode.lower() not in stackModeMap:
- parser.print_help(sys.stderr)
- sys.exit(1)
-
- stackMode = stackModeMap[options.x_axis_mode.lower()]
-
- if options.demo:
- args.append('eval:x=linspace(0,3,40);t=rand();sin(x+t)')
-
- w = TaurusTrend2DDialog(stackMode=stackMode, wintitle=options.window_name,
- buffersize=int(options.max_buffer_size))
-
- # set archiving
- if options.use_archiving:
- raise NotImplementedError('Archiving support is not yet implemented')
- w.setUseArchiving(True)
-
- # set model
- if len(args) == 1:
- w.setModel(args[0])
- else:
- parser.print_help(sys.stderr)
- sys.exit(1)
+ if demo:
+ model = 'eval:x=linspace(0,3,40);t=rand();sin(x+t)'
+
+ app = TaurusApplication(cmd_line_parser=None, app_name="Taurus Trend 2D")
+
+ stackMode = dict(t='datetime', d='deltatime', e='event')[x_axis_mode]
+
+ w = TaurusTrend2DDialog(stackMode=stackMode, wintitle=window_name,
+ buffersize=max_buffer_size)
+ if model:
+ w.setModel(model)
w.show()
sys.exit(app.exec_())
if __name__ == "__main__":
- taurusTrend2DMain()
+ trend2d_cmd()
diff --git a/lib/taurus/qt/qtgui/extra_guiqwt/tools.py b/lib/taurus/qt/qtgui/extra_guiqwt/tools.py
index 25920c4f..fa752fb5 100644
--- a/lib/taurus/qt/qtgui/extra_guiqwt/tools.py
+++ b/lib/taurus/qt/qtgui/extra_guiqwt/tools.py
@@ -355,7 +355,7 @@ def testTool(tool):
from taurus.qt.qtgui.application import TaurusApplication
from guiqwt.plot import CurveDialog
- app = TaurusApplication()
+ app = TaurusApplication(cmd_line_parser=None)
win = CurveDialog(edit=False, toolbar=True)
win.add_tool(tool)
win.show()