def handleEvent(self, evt_src, evt_type, evt_value):
     """
     Adding the validator from here, also if config event, fix the number of elements displayed
     """
     if evt_type == TaurusEventType.Config:
         self._fixnumberofelements()
         self._updateValidator(evt_value)
     TaurusBaseWritableWidget.handleEvent(self, evt_src, evt_type,
                                          evt_value)
Exemplo n.º 2
0
    def handleEvent(self, src, evt_type, evt_value):
        if hasattr(evt_value, 'rvalue'):
            self._my_debug("received from %s: %s" % (src, evt_value.rvalue))
            if self.isResetCheckBox():
                if self.getValue() and not evt_value.rvalue:
                    self.setValue(False)
#            else:
#                self.setChecked(evt_value.w_value)
        TaurusBaseWritableWidget.handleEvent(self, src, evt_type, evt_value)
Exemplo n.º 3
0
    def handleEvent(self, evt_src, evt_type, evt_value):
        if evt_type == TaurusEventType.Config or not self._configured:
            if evt_value is not None:
                obj = self.getModelObj()
                # set decimal digits
                self.setDigitCount(int_nb=None, dec_nb=obj.precision)
                # set min and max values
                min_, max_ = obj.getRange()
                if min_ is not None:
                    self.setMinValue(min_.magnitude)
                if max_ is not None:
                    self.setMaxValue(max_.magnitude)
                self._configured = True

        TaurusBaseWritableWidget.handleEvent(self, evt_src, evt_type,
                                             evt_value)
Exemplo n.º 4
0
    def handleEvent(self, evt_src, evt_type, evt_value):

        # handle the case in which the line edit is not yet initialized
        if self._last_value is None:
            try:
                value = self.getModelObj().read(cache=True)
                self._updateValidator(value)
                self.setValue(value.wvalue)
            except Exception as e:
                self.info('Failed attempt to initialize value: %r', e)

        self.setEnabled(evt_type != TaurusEventType.Error)

        if evt_type in (TaurusEventType.Change, TaurusEventType.Periodic):
            self._updateValidator(evt_value)

        TaurusBaseWritableWidget.handleEvent(self, evt_src, evt_type,
                                             evt_value)

        if evt_type == TaurusEventType.Error:
            self.updateStyle()
Exemplo n.º 5
0
    def handleEvent(self, evt_src, evt_type, evt_value):
        if evt_type == TaurusEventType.Config and evt_value is not None:
            import re
            # match the format string to "%[width][.precision][f_type]"
            obj = self.getModelObj()
            m = re.match(r'%([0-9]+)?(\.([0-9]+))?([df])', obj.format)
            if m is None:
                raise ValueError("'%s' format unsupported" % obj.format)

            width, _, precision, f_type = m.groups()

            if width is None:
                width = self.DefaultIntDigitCount + \
                    self.DefaultDecDigitCount + 1
            else:
                width = int(width)

            if precision is None:
                precision = self.DefaultDecDigitCount
            else:
                precision = int(precision)

            dec_nb = precision

            if dec_nb == 0 or f_type == 'd':
                int_nb = width
            else:
                int_nb = width - dec_nb - 1  # account for decimal sep

            self.setDigitCount(int_nb=int_nb, dec_nb=dec_nb)
            try:
                self.setMinValue(float(obj.min_value))
            except:
                pass
            try:
                self.setMaxValue(float(obj.max_value))
            except:
                pass
        TaurusBaseWritableWidget.handleEvent(self, evt_src, evt_type,
                                             evt_value)
Exemplo n.º 6
0
    def handleEvent(self, evt_src, evt_type, evt_value):
        if evt_type == TaurusEventType.Config and evt_value is not None:
            import re
            # match the format string to "%[width][.precision][f_type]"
            obj = self.getModelObj()
            m = re.match(r'%([0-9]+)?(\.([0-9]+))?([df])', obj.format)
            if m is None:
                raise ValueError("'%s' format unsupported" % obj.format)

            width, _, precision, f_type = m.groups()

            if width is None:
                width = self.DefaultIntDigitCount + \
                    self.DefaultDecDigitCount + 1
            else:
                width = int(width)

            if precision is None:
                precision = self.DefaultDecDigitCount
            else:
                precision = int(precision)

            dec_nb = precision

            if dec_nb == 0 or f_type == 'd':
                int_nb = width
            else:
                int_nb = width - dec_nb - 1  # account for decimal sep

            self.setDigitCount(int_nb=int_nb, dec_nb=dec_nb)
            try:
                self.setMinValue(float(obj.min_value))
            except:
                pass
            try:
                self.setMaxValue(float(obj.max_value))
            except:
                pass
        TaurusBaseWritableWidget.handleEvent(
            self, evt_src, evt_type, evt_value)
Exemplo n.º 7
0
 def handleEvent(self, evt_src, evt_type, evt_value):
     if evt_type in (TaurusEventType.Change, TaurusEventType.Periodic):
         self._updateValidator(evt_value)
     TaurusBaseWritableWidget.handleEvent(
         self, evt_src, evt_type, evt_value)