예제 #1
0
    def __init__(self,
                 model,
                 help_link="",
                 default_string="",
                 continuous_update=False):
        """
        :type model: ValueModel
        :type help_link: str
        :type default_string: str
        :type continuous_update: bool
        """
        QLineEdit.__init__(self)
        addHelpToWidget(self, help_link)
        self.setMinimumWidth(250)
        self._validation = ValidationSupport(self)
        self._validator = None
        self._model = model

        self.editingFinished.connect(self.stringBoxChanged)
        self.editingFinished.connect(self.validateString)

        if continuous_update:
            self.textChanged.connect(self.stringBoxChanged)

        self.textChanged.connect(self.validateString)

        self._valid_color = self.palette().color(self.backgroundRole())
        self.setText(default_string)

        self._model.valueChanged.connect(self.modelChanged)
        self.modelChanged()
예제 #2
0
파일: stringbox.py 프로젝트: berland/ert
    def __init__(self, model, help_link="", default_string="", continuous_update=False):
        """
        :type model: ValueModel
        :type help_link: str
        :type default_string: str
        :type continuous_update: bool
        """
        QLineEdit.__init__(self)
        addHelpToWidget(self, help_link)
        self.setMinimumWidth(250)
        self._validation = ValidationSupport(self)
        self._validator = None
        self._model = model

        self.editingFinished.connect(self.stringBoxChanged)
        self.editingFinished.connect(self.validateString)

        if continuous_update:
            self.textChanged.connect(self.stringBoxChanged)

        self.textChanged.connect(self.validateString)

        self._valid_color = self.palette().color(self.backgroundRole())
        self.setText(default_string)

        self._model.valueChanged.connect(self.modelChanged)
        self.modelChanged()
예제 #3
0
class StringBox(QLineEdit):
    """StringBox shows a string. The data structure expected and sent to the getter and setter is a string."""
    def __init__(self,
                 model,
                 help_link="",
                 default_string="",
                 continuous_update=False):
        """
        :type model: ValueModel
        :type help_link: str
        :type default_string: str
        :type continuous_update: bool
        """
        QLineEdit.__init__(self)
        addHelpToWidget(self, help_link)
        self.setMinimumWidth(250)
        self._validation = ValidationSupport(self)
        self._validator = None
        self._model = model

        self.editingFinished.connect(self.stringBoxChanged)
        self.editingFinished.connect(self.validateString)

        if continuous_update:
            self.textChanged.connect(self.stringBoxChanged)

        self.textChanged.connect(self.validateString)

        self._valid_color = self.palette().color(self.backgroundRole())
        self.setText(default_string)

        self._model.valueChanged.connect(self.modelChanged)
        self.modelChanged()

    def validateString(self):
        string_to_validate = str(self.text())

        if self._validator is not None:
            status = self._validator.validate(string_to_validate)

            palette = QPalette()
            if not status:
                palette.setColor(self.backgroundRole(),
                                 ValidationSupport.ERROR_COLOR)
                self.setPalette(palette)
                self._validation.setValidationMessage(
                    str(status), ValidationSupport.EXCLAMATION)
            else:
                palette.setColor(self.backgroundRole(), self._valid_color)
                self.setPalette(palette)
                self._validation.setValidationMessage("")

    def emitChange(self, q_string):
        self.textChanged.emit(str(q_string))

    def stringBoxChanged(self):
        """Called whenever the contents of the editline changes."""
        text = str(self.text())
        if text == "":
            text = None

        self._model.setValue(text)

    def modelChanged(self):
        """Retrieves data from the model and inserts it into the edit line"""
        text = self._model.getValue()
        if text is None:
            text = ""

        self.setText(str(text))

    def setValidator(self, validator):
        self._validator = validator

    def setAlignment(self, flag):
        self.setAlignment(flag)

    def getValidationSupport(self):
        return self._validation

    def isValid(self):
        return self._validation.isValid()
예제 #4
0
파일: stringbox.py 프로젝트: berland/ert
class StringBox(QLineEdit):
    """StringBox shows a string. The data structure expected and sent to the getter and setter is a string."""

    def __init__(self, model, help_link="", default_string="", continuous_update=False):
        """
        :type model: ValueModel
        :type help_link: str
        :type default_string: str
        :type continuous_update: bool
        """
        QLineEdit.__init__(self)
        addHelpToWidget(self, help_link)
        self.setMinimumWidth(250)
        self._validation = ValidationSupport(self)
        self._validator = None
        self._model = model

        self.editingFinished.connect(self.stringBoxChanged)
        self.editingFinished.connect(self.validateString)

        if continuous_update:
            self.textChanged.connect(self.stringBoxChanged)

        self.textChanged.connect(self.validateString)

        self._valid_color = self.palette().color(self.backgroundRole())
        self.setText(default_string)

        self._model.valueChanged.connect(self.modelChanged)
        self.modelChanged()

    def validateString(self):
        string_to_validate = str(self.text())

        if self._validator is not None:
            status = self._validator.validate(string_to_validate)

            palette = QPalette()
            if not status:
                palette.setColor(self.backgroundRole(), ValidationSupport.ERROR_COLOR)
                self.setPalette(palette)
                self._validation.setValidationMessage(str(status), ValidationSupport.EXCLAMATION)
            else:
                palette.setColor(self.backgroundRole(), self._valid_color)
                self.setPalette(palette)
                self._validation.setValidationMessage("")

    def emitChange(self, q_string):
        self.textChanged.emit(str(q_string))

    def stringBoxChanged(self):
        """Called whenever the contents of the editline changes."""
        text = str(self.text())
        if text == "":
            text = None

        self._model.setValue(text)

    def modelChanged(self):
        """Retrieves data from the model and inserts it into the edit line"""
        text = self._model.getValue()
        if text is None:
            text = ""

        self.setText(str(text))

    def setValidator(self, validator):
        self._validator = validator

    def setAlignment(self, flag):
        self.setAlignment(flag)

    def getValidationSupport(self):
        return self._validation

    def isValid(self):
        return self._validation.isValid()