Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035 from __future__ import division
00036
00037 import os
00038 import sys
00039
00040 from python_qt_binding import loadUi
00041 from python_qt_binding.QtGui import QHBoxLayout, QSplitter, QWidget
00042
00043 from .node_selector_widget import NodeSelectorWidget
00044 from .paramedit_widget import ParameditWidget
00045
00046 class ParamWidget(QWidget):
00047 _TITLE_PLUGIN = 'Param'
00048
00049 def __init__(self, context, node=None):
00050 """
00051 This class is intended to be called by rqt plugin framework class.
00052 Currently (12/12/2012) the whole widget is splitted into 2 panes:
00053 one on left allows you to choose the node(s) you work on. Right side
00054 pane lets you work with the parameters associated with the node(s) you
00055 select on the left.
00056 """
00057
00058
00059
00060 super(ParamWidget, self).__init__()
00061 self.setObjectName(self._TITLE_PLUGIN)
00062
00063 _hlayout_top = QHBoxLayout(self)
00064 self._splitter = QSplitter(self)
00065 _hlayout_top.addWidget(self._splitter)
00066
00067 nodesel = NodeSelectorWidget()
00068 reconf_widget = ParameditWidget()
00069
00070 self._splitter.insertWidget(0, nodesel)
00071 self._splitter.insertWidget(1, reconf_widget)
00072
00073 nodesel.sig_node_selected.connect(reconf_widget.show_reconf)
00074
00075 if node is not None:
00076 title = self._TITLE_PLUGIN + ' %s' % node
00077 else:
00078 title = self._TITLE_PLUGIN
00079 self.setObjectName(title)
00080
00081 def shutdown(self):
00082
00083
00084 pass
00085
00086 def save_settings(self, plugin_settings, instance_settings):
00087 instance_settings.set_value('splitter', self._splitter.saveState())
00088
00089 def restore_settings(self, plugin_settings, instance_settings):
00090 if instance_settings.contains('splitter'):
00091 self._splitter.restoreState(instance_settings.value('splitter'))
00092 else:
00093 self._splitter.setSizes([100, 100, 200])
00094