コード例 #1
0
ファイル: parmfiddler.py プロジェクト: bmerry/meqtrees-timba
    def __init__(self, gw, dataitem, cellspec={}, **opts):
        browsers.GriddedPlugin.__init__(self, gw, dataitem, cellspec=cellspec)

        _dprint(1, "started with", dataitem.udi, dataitem.data)
        self._has_data = False
        self.rid = 0
        self.c00 = 0.
        self._wtop = QHBox(self.wparent())
        self._parmlist = []
        self._solverdict = {}
        self._parmdict = {}
        #all names off the nodes except parms
        self._nodedict = {}
        self._currentparm = None
        self._request = None
        self.swapsort = True
        self.sorted = 0
        # Initialize subscribe state
        self._callbackparm = curry(self._update_parmlist)
        self._callbacksolver = curry(self._update_solverlist)

        self.parmtable = QTable(self._wtop, "parmtable")

        QWhatsThis.add(self._wtop, parmfiddler_instructions)

        self.parmtable.setShowGrid(False)
        self.parmtable.setFocusStyle(QTable.FollowStyle)
        self.parmtable.setSelectionMode(QTable.MultiRow)

        self._menu = QPopupMenu(self.parmtable)
        self._menu.insertItem(pixmaps.publish.iconset(), "Publish",
                              self.publish_selected)
        self._menu.insertItem(pixmaps.table.iconset(), "Funklet",
                              self.parmSelected)
        tooltip = "invert publishing of all selected rows"
        QToolTip.add(self._menu, tooltip)

        tooltip = "Double Click to get complete funklet, right mouse for more options"
        QToolTip.add(self.parmtable, tooltip)
        QObject.connect(self.parmtable, SIGNAL("selectionChanged()"),
                        self.parmSetIndex)
        QObject.connect(self.parmtable,
                        SIGNAL("doubleClicked(int, int, int, const QPoint &)"),
                        self.parmSelected)
        QObject.connect(self.parmtable,
                        SIGNAL("clicked(int, int, int, const QPoint &)"),
                        self.parmClicked)
        QObject.connect(
            self.parmtable,
            SIGNAL("contextMenuRequested ( int, int, const QPoint &)"),
            self.rightMouse)
        self.sliderframe = QVBox(self.wtop())
        #    self.c00frame = QHBox(self.sliderframe);

        self.labelParm = QLabel("no parm selected", self.sliderframe,
                                "labelParm")
        self.c00Text = QLabel(self.sliderframe, "c00text")
        tooltip = "Selected Parm"
        QToolTip.add(self.labelParm, tooltip)
        alignment = Qt.AlignLeft | Qt.SingleLine
        self.c00Text.setAlignment(alignment)
        self.labelParm.setAlignment(alignment)
        style = QFrame.StyledPanel | QFrame.Sunken
        self.c00Text.setFrameStyle(style)

        self.slider1 = QSlider(self.sliderframe, "slider1")
        tooltip = "Adjust c00 of selected Parm and reexecute"
        QToolTip.add(self.slider1, tooltip)
        self.slider1.setMinValue(-50)
        self.slider1.setMaxValue(50)

        self.slider1.setTickInterval(5)
        self.slider1.setTickmarks(QSlider.Both)

        self.slider1.setTracking(True)
        self.slider1.setEnabled(False)

        QObject.connect(self.slider1, SIGNAL("valueChanged(int)"),
                        self.changeC00Text)
        QObject.connect(self.slider1, SIGNAL("sliderReleased()"),
                        self.updateC00)

        self.spinframe = QHBox(self.sliderframe)
        self.labelSpin = QLabel("stepsize:", self.spinframe, "labelSpin")
        self.stepsizeList = QComboBox(False, self.spinframe, "stepsizeList")
        tooltip = "Adjust stepsize of slider"
        QToolTip.add(self.stepsizeList, tooltip)
        QObject.connect(self.stepsizeList, SIGNAL("activated(int)"),
                        self.changeStepsize)
        self.fillstepsizelist()
        self.stepsize = 1.

        self.enable_exec = QCheckBox("reexecute", self.sliderframe,
                                     "enable_exec")
        tooltip = "If checked, node is executed after change"
        QToolTip.add(self.enable_exec, tooltip)
        self.enable_exec.setEnabled(False)

        self.enable_multi = QCheckBox("multi", self.sliderframe, "multi")
        tooltip = "If checked, multiple parms can be adjusted at the same time"
        QToolTip.add(self.enable_multi, tooltip)
        self.enable_multi.setEnabled(True)
        self.enable_multi.setChecked(True)
        QObject.connect(self.enable_multi, SIGNAL("clicked()"),
                        self.toggle_multi)

        self.ButtonFrame = QHBox(self.sliderframe)

        self.buttonOk = QPushButton(self.ButtonFrame, "buttonOk")
        self.buttonOk.setText('Execute')
        tooltip = "executes node"
        QToolTip.add(self.buttonOk, tooltip)

        self.buttonReset = QPushButton(self.ButtonFrame, "buttonReset")
        self.buttonReset.setText('Zero')
        tooltip = "sets all coefficients of selected Parm to 0"
        QToolTip.add(self.buttonReset, tooltip)
        self.buttonOk.setEnabled(False)
        self.buttonReset.setEnabled(False)
        QObject.connect(self.buttonOk, SIGNAL("clicked()"), self.do_reexecute)
        QObject.connect(self.buttonReset, SIGNAL("clicked()"),
                        self.resetfunklet)

        # form a caption and set contents
        (name, ni) = meqds.parse_node_udi(dataitem.udi)
        caption = "Fiddle from <b>%s</b>" % (name or '#' + str(ni), )
        self._node = ni
        self._name = name
        # setup widgets
        self.set_widgets(self.wtop(), caption, icon=self.icon())

        if dataitem.data is not None:
            self.set_data(dataitem)
コード例 #2
0
ファイル: parmfiddler.py プロジェクト: ska-sa/meqtrees-timba
    def __init__(self, gw, dataitem, cellspec={}, **opts):
        browsers.GriddedPlugin.__init__(self, gw, dataitem, cellspec=cellspec)

        _dprint(1, "started with", dataitem.udi, dataitem.data)
        self._has_data = False
        self.rid = 0
        self.c00 = 0.0
        self._wtop = QHBox(self.wparent())
        self._parmlist = []
        self._solverdict = {}
        self._parmdict = {}
        # all names off the nodes except parms
        self._nodedict = {}
        self._currentparm = None
        self._request = None
        self.swapsort = True
        self.sorted = 0
        # Initialize subscribe state
        self._callbackparm = curry(self._update_parmlist)
        self._callbacksolver = curry(self._update_solverlist)

        self.parmtable = QTable(self._wtop, "parmtable")

        QWhatsThis.add(self._wtop, parmfiddler_instructions)

        self.parmtable.setShowGrid(False)
        self.parmtable.setFocusStyle(QTable.FollowStyle)
        self.parmtable.setSelectionMode(QTable.MultiRow)

        self._menu = QPopupMenu(self.parmtable)
        self._menu.insertItem(pixmaps.publish.iconset(), "Publish", self.publish_selected)
        self._menu.insertItem(pixmaps.table.iconset(), "Funklet", self.parmSelected)
        tooltip = "invert publishing of all selected rows"
        QToolTip.add(self._menu, tooltip)

        tooltip = "Double Click to get complete funklet, right mouse for more options"
        QToolTip.add(self.parmtable, tooltip)
        QObject.connect(self.parmtable, SIGNAL("selectionChanged()"), self.parmSetIndex)
        QObject.connect(self.parmtable, SIGNAL("doubleClicked(int, int, int, const QPoint &)"), self.parmSelected)
        QObject.connect(self.parmtable, SIGNAL("clicked(int, int, int, const QPoint &)"), self.parmClicked)
        QObject.connect(self.parmtable, SIGNAL("contextMenuRequested ( int, int, const QPoint &)"), self.rightMouse)
        self.sliderframe = QVBox(self.wtop())
        #    self.c00frame = QHBox(self.sliderframe);

        self.labelParm = QLabel("no parm selected", self.sliderframe, "labelParm")
        self.c00Text = QLabel(self.sliderframe, "c00text")
        tooltip = "Selected Parm"
        QToolTip.add(self.labelParm, tooltip)
        alignment = Qt.AlignLeft | Qt.SingleLine
        self.c00Text.setAlignment(alignment)
        self.labelParm.setAlignment(alignment)
        style = QFrame.StyledPanel | QFrame.Sunken
        self.c00Text.setFrameStyle(style)

        self.slider1 = QSlider(self.sliderframe, "slider1")
        tooltip = "Adjust c00 of selected Parm and reexecute"
        QToolTip.add(self.slider1, tooltip)
        self.slider1.setMinValue(-50)
        self.slider1.setMaxValue(50)

        self.slider1.setTickInterval(5)
        self.slider1.setTickmarks(QSlider.Both)

        self.slider1.setTracking(True)
        self.slider1.setEnabled(False)

        QObject.connect(self.slider1, SIGNAL("valueChanged(int)"), self.changeC00Text)
        QObject.connect(self.slider1, SIGNAL("sliderReleased()"), self.updateC00)

        self.spinframe = QHBox(self.sliderframe)
        self.labelSpin = QLabel("stepsize:", self.spinframe, "labelSpin")
        self.stepsizeList = QComboBox(False, self.spinframe, "stepsizeList")
        tooltip = "Adjust stepsize of slider"
        QToolTip.add(self.stepsizeList, tooltip)
        QObject.connect(self.stepsizeList, SIGNAL("activated(int)"), self.changeStepsize)
        self.fillstepsizelist()
        self.stepsize = 1.0

        self.enable_exec = QCheckBox("reexecute", self.sliderframe, "enable_exec")
        tooltip = "If checked, node is executed after change"
        QToolTip.add(self.enable_exec, tooltip)
        self.enable_exec.setEnabled(False)

        self.enable_multi = QCheckBox("multi", self.sliderframe, "multi")
        tooltip = "If checked, multiple parms can be adjusted at the same time"
        QToolTip.add(self.enable_multi, tooltip)
        self.enable_multi.setEnabled(True)
        self.enable_multi.setChecked(True)
        QObject.connect(self.enable_multi, SIGNAL("clicked()"), self.toggle_multi)

        self.ButtonFrame = QHBox(self.sliderframe)

        self.buttonOk = QPushButton(self.ButtonFrame, "buttonOk")
        self.buttonOk.setText("Execute")
        tooltip = "executes node"
        QToolTip.add(self.buttonOk, tooltip)

        self.buttonReset = QPushButton(self.ButtonFrame, "buttonReset")
        self.buttonReset.setText("Zero")
        tooltip = "sets all coefficients of selected Parm to 0"
        QToolTip.add(self.buttonReset, tooltip)
        self.buttonOk.setEnabled(False)
        self.buttonReset.setEnabled(False)
        QObject.connect(self.buttonOk, SIGNAL("clicked()"), self.do_reexecute)
        QObject.connect(self.buttonReset, SIGNAL("clicked()"), self.resetfunklet)

        # form a caption and set contents
        (name, ni) = meqds.parse_node_udi(dataitem.udi)
        caption = "Fiddle from <b>%s</b>" % (name or "#" + str(ni),)
        self._node = ni
        self._name = name
        # setup widgets
        self.set_widgets(self.wtop(), caption, icon=self.icon())

        if dataitem.data is not None:
            self.set_data(dataitem)
コード例 #3
0
    def __init__(self, gw, dataitem, cellspec={}, **opts):
        self.rid1 = 0
        self.rid2 = 0
        self.rid3 = 0
        self.rid4 = 0
        browsers.GriddedPlugin.__init__(self, gw, dataitem, cellspec=cellspec)
        _dprint(1, "started with", dataitem.udi, dataitem.data)
        self._has_data = False
        self._request = None
        self._wtop = QVBox(self.wparent())

        udi_root = dataitem.udi
        if not udi_root.endswith('/request'):  # not a direct request object
            udi_root += '/request'
        self.reqView = browsers.HierBrowser(self.wtop(),
                                            "",
                                            "",
                                            udi_root=udi_root)
        QObject.connect(self.reqView.wtop(), PYSIGNAL("displayDataItem()"),
                        self.wtop(), PYSIGNAL("displayDataItem()"))
        self.reqView.set_refresh_func(dataitem.refresh_func)

        buttonbox = QHBox(self.wtop())

        self.buttonDef = QPushButton(buttonbox, "buttonDef")
        self.buttonDef.setText('&NewRequest')

        self.buttonLoop = QPushButton(buttonbox, "buttonLoop")
        self.buttonLoop.setText('&Loop')
        self.doLoop = False

        self.buttonOk = QPushButton(buttonbox, "buttonOk")
        self.buttonOk.setText("&Execute")
        self.buttonOk.setIconSet(pixmaps.reexecute.iconset())
        self.buttonOk.setAccel(Qt.ALT + Qt.Key_E)

        buttonRefresh = QPushButton(buttonbox, "buttonRefresh")
        buttonRefresh.setText("&Refresh")
        buttonRefresh.setIconSet(pixmaps.refresh.iconset())
        buttonRefresh.setAccel(Qt.ALT + Qt.Key_R)

        QObject.connect(self.buttonDef, SIGNAL("clicked()"), self._newreq)
        QObject.connect(self.buttonLoop, SIGNAL("clicked()"), self._startLoop)
        QObject.connect(self.buttonOk, SIGNAL("clicked()"), self._reexecute)
        QObject.connect(buttonRefresh, SIGNAL("clicked()"), self.wtop(),
                        PYSIGNAL("refresh()"))
        QObject.connect(self.wtop(), PYSIGNAL("refresh()"), self._refresh)

        ### refresh initially disabled, until we get data in
        self.buttonOk.setEnabled(0)

        # form a caption and set contents
        (name, ni) = meqds.parse_node_udi(dataitem.udi)
        caption = "Reexecute <b>%s</b>" % (name or '#' + str(ni), )
        self._node = ni
        self._name = name
        # setup widgets
        self.set_widgets(self.wtop(), caption, icon=self.icon())

        # connect font signal
        QObject.connect(self.wtop(), PYSIGNAL("fontChanged()"),
                        self.reqView.wtop(), PYSIGNAL("fontChanged()"))
        # add menu entry
        context_menu = self.cell_menu()
        if context_menu is not None:
            context_menu.insertSeparator()
            menu = browsers.PrecisionPopupMenu(
                context_menu, prec=self.reqView.get_precision())
            context_menu.insertItem(pixmaps.precplus.iconset(),
                                    'Number format', menu)
            QWidget.connect(menu,PYSIGNAL("setPrecision()"),\
                            self.reqView.set_precision)

        # set data
        if dataitem.data is not None:
            self.set_data(dataitem)
コード例 #4
0
  def __init__(self,gw,dataitem,cellspec={},**opts):
    self.rid1 = 0
    self.rid2 = 0
    self.rid3 = 0
    self.rid4 = 0
    browsers.GriddedPlugin.__init__(self,gw,dataitem,cellspec=cellspec);
    _dprint(1,"started with",dataitem.udi,dataitem.data);
    self._has_data = False;
    self._request = None;
    self._wtop = QVBox(self.wparent());
  
    udi_root = dataitem.udi;
    if not udi_root.endswith('/request'): # not a direct request object
      udi_root += '/request';
    self.reqView = browsers.HierBrowser(self.wtop(),"","",udi_root=udi_root);
    QObject.connect(self.reqView.wtop(),PYSIGNAL("displayDataItem()"),
                    self.wtop(),PYSIGNAL("displayDataItem()"));
    self.reqView.set_refresh_func(dataitem.refresh_func);
    
    buttonbox = QHBox(self.wtop());

    self.buttonDef = QPushButton(buttonbox, "buttonDef")
    self.buttonDef.setText('&NewRequest')

    self.buttonLoop = QPushButton(buttonbox, "buttonLoop");
    self.buttonLoop.setText('&Loop');
    self.doLoop = False;

    self.buttonOk = QPushButton(buttonbox,"buttonOk");
    self.buttonOk.setText("&Execute");
    self.buttonOk.setIconSet(pixmaps.reexecute.iconset());
    self.buttonOk.setAccel(Qt.ALT+Qt.Key_E);
    
    buttonRefresh = QPushButton(buttonbox,"buttonRefresh");
    buttonRefresh.setText("&Refresh");
    buttonRefresh.setIconSet(pixmaps.refresh.iconset());
    buttonRefresh.setAccel(Qt.ALT+Qt.Key_R);
    
    QObject.connect(self.buttonDef,SIGNAL("clicked()"),self._newreq);
    QObject.connect(self.buttonLoop,SIGNAL("clicked()"),self._startLoop)
    QObject.connect(self.buttonOk,SIGNAL("clicked()"),self._reexecute);
    QObject.connect(buttonRefresh,SIGNAL("clicked()"),
                    self.wtop(),PYSIGNAL("refresh()"));
    QObject.connect(self.wtop(),PYSIGNAL("refresh()"),self._refresh);
    
    ### refresh initially disabled, until we get data in
    self.buttonOk.setEnabled(0);
    
    # form a caption and set contents
    (name,ni) = meqds.parse_node_udi(dataitem.udi);
    caption = "Reexecute <b>%s</b>" % (name or '#'+str(ni),);
    self._node = ni;
    self._name = name;
    # setup widgets
    self.set_widgets(self.wtop(),caption,icon=self.icon());
    
    # connect font signal 
    QObject.connect(self.wtop(),PYSIGNAL("fontChanged()"),
                      self.reqView.wtop(),PYSIGNAL("fontChanged()"));
    # add menu entry
    context_menu = self.cell_menu();
    if context_menu is not None:
      context_menu.insertSeparator();
      menu = browsers.PrecisionPopupMenu(context_menu,prec=self.reqView.get_precision());
      context_menu.insertItem(pixmaps.precplus.iconset(),'Number format',menu);
      QWidget.connect(menu,PYSIGNAL("setPrecision()"),\
                      self.reqView.set_precision);
    
    # set data
    if dataitem.data is not None:
      self.set_data(dataitem);