Esempio n. 1
0
        self.emitvaluechanged()

    def _biglistitem(self, index):
        self.widget.setCurrentIndex(index.row())

    def setvalue(self, value):
        self._bindvalue = value
        index = self.widget.findData(value)
        self.widget.setCurrentIndex(index)
        if index == -1 and self.widget.isEditable():
            if value is None and not self.config['allownull']:
                return

            self.widget.addItem(str(value))
            index = self.widget.count() - 1
            self.widget.setCurrentIndex(index)

    def value(self):
        index = self.widget.currentIndex()
        value = self.widget.itemData(index)
        text = self.widget.currentText()
        if value is None and self.widget.isEditable(
        ) and not text == '(no selection)':
            return self.widget.currentText()

        return value


registerwidgets(ListWidget)
Esempio n. 2
0
        config = dict(mode=mode, mindate=self.datewidget.minimumDate())

        self.largewidgetrequest.emit(BigDateWidget, self.value(),
                                     self.setvalue, config)

    def setvalue(self, value):
        if value is None:
            value = DateWidget.DEFAULTDATE
        elif isinstance(value, basestring):
            value = QDateTime.fromString(value, Qt.ISODate)

        if isinstance(value, QDate):
            value = QDateTime(value)

        if hasattr(self.datewidget, 'setDate'):
            self.datewidget.setDate(value.date())

        if hasattr(self.datewidget, 'setTime'):
            self.datewidget.setTime(value.time())

    def value(self):
        datetime = self.datewidget.dateTime()
        if datetime == DateWidget.DEFAULTDATE:
            return None
        else:
            return datetime.toString(Qt.ISODate)


registerwidgets(DateWidget)
Esempio n. 3
0
        else:
            dlg.setDateTime(self.datewidget.dateTime())

        dlg.setMinValue(self.datewidget.minimumDate())
        if dlg.exec_():
            datetime = QDateTime()
            datetime.setDate(dlg.getSelectedDate())
            datetime.setTime(dlg.getSelectedTime())
            self.setvalue(datetime)

    def setvalue(self, value):
        if value is None:
            value = DateWidget.DEFAULTDATE
        elif not isinstance(value, QDateTime):
            value = QDateTime.fromString(value, Qt.ISODate)

        if hasattr(self.datewidget, 'setDate'):
            self.datewidget.setDate(value.date())

        if hasattr(self.datewidget, 'setTime'):
            self.datewidget.setTime(value.time())

    def value(self):
        datetime = self.datewidget.dateTime()
        if datetime == DateWidget.DEFAULTDATE:
            return None
        else:
            return datetime.toString(Qt.ISODate)

registerwidgets(DateWidget)
Esempio n. 4
0
        if (not self.allownulls and (not self.widget.currentText() or
            self.widget.currentText() == "(no selection)")):
            self.raisevalidationupdate(False)
        else:
            self.raisevalidationupdate(True)

        self.emitvaluechanged()

    def setvalue(self, value):
        self._bindvalue = value
        index = self.widget.findData(value)
        self.widget.setCurrentIndex(index)
        if index == -1 and self.widget.isEditable():
            if value is None and not self.config['allownull']:
                return

            self.widget.addItem(str(value))
            index = self.widget.count() - 1
            self.widget.setCurrentIndex(index)

    def value(self):
        index = self.widget.currentIndex()
        value = self.widget.itemData(index)
        text = self.widget.currentText()
        if value is None and self.widget.isEditable() and not text == '(no selection)':
            return self.widget.currentText()

        return value

registerwidgets(ListWidget)
Esempio n. 5
0
        self.largewidgetrequest.emit(CameraWidget, None, self.phototaken)

    def phototaken(self, value):
        self.setvalue(value)

    def updatefromconfig(self):
        self.defaultlocation = self.config.get('defaultlocation', '')

    def validate(self, *args):
        self.raisevalidationupdate(not self.widget.isDefault)
        self.emitvaluechanged()

    def showlargeimage(self, pixmap):
        RoamEvents.openimage.emit(pixmap)

    def setvalue(self, value):
        if self.tobase64 and value and not isinstance(value, QPixmap):
            value = QByteArray.fromBase64(value)

        self.widget.loadImage(value)

    def value(self):
        image = self.widget.getImage()
        if self.tobase64 and image:
            image = image.toBase64()
            return image.data()

        return image

registerwidgets(ImageWidget)
Esempio n. 6
0
    def phototaken(self, value):
        self.setvalue(value)

    def updatefromconfig(self):
        self.defaultlocation = self.config.get('defaultlocation', '')

    def validate(self, *args):
        self.raisevalidationupdate(not self.widget.isDefault)
        self.emitvaluechanged()

    def showlargeimage(self, pixmap):
        RoamEvents.openimage.emit(pixmap)

    def setvalue(self, value):
        if self.tobase64 and value and not isinstance(value, QPixmap):
            value = QByteArray.fromBase64(value)

        self.widget.loadImage(value)

    def value(self):
        image = self.widget.getImage()
        if self.tobase64 and image:
            image = image.toBase64()
            return image.data()

        return image


registerwidgets(ImageWidget)
Esempio n. 7
0
        self.emitvaluechanged()

    def setvalue(self, value):
        # Not the best way but should cover most use cases
        # for now
        value = value or ''
        value = unicode(value)
        try:
            self.widget.setPlainText(value)
        except AttributeError:
            self.widget.setText(value)

    def value(self):
        try:
            return self.widget.toPlainText()
        except AttributeError:
            return self.widget.text()


class TextBlockWidget(TextWidget):
    widgettype = 'TextBlock'

    def __init__(self, *args):
        super(TextBlockWidget, self).__init__(*args)

    def createWidget(self, parent):
        return QPlainTextEdit(parent)


registerwidgets(TextWidget, TextWidget)
Esempio n. 8
0
        return QDoubleSpinBox(parent)

    def initWidget(self, widget):
        super(DoubleNumberWidget, self).initWidget(widget)

    def _getmaxmin(self, config):
        max = config.get('max', '')
        min = config.get('min', '')
        try:
            max = float(max)
        except ValueError:
            max = sys.float_info.max

        try:
            min = float(min)
        except ValueError:
            min = sys.float_info.min
        print max, min
        return max, min

    def setvalue(self, value):
        if not value:
            value = 0.00

        value = float(value)
        self.widget.setValue(value)


registerwidgets(NumberWidget)
registerwidgets(DoubleNumberWidget)
Esempio n. 9
0
            max = float(max)
        except ValueError:
            max = None

        try:
            min = float(min)
        except ValueError:
            min = None

        if min and max:
            self.widget.setRange(min, max)
        elif max:
            self.widget.setMaximum(max)
        elif min:
            self.widget.setMinimum(min)

        self.widget.setPrefix(prefix)
        self.widget.setSuffix(suffix)

    def setvalue(self, value):
        if not value:
            value = 0.00

        value = float(value)
        self.widget.setValue(value)

    def value(self):
        return self.widget.value()

registerwidgets(NumberWidget)
Esempio n. 10
0
                                QCheckBox[ok=true]
                                {border-radius: 5px; background-color: rgba(200, 255, 197, 150); }
                                QGroupBox::title[required=true]
                                {border-radius: 5px; background-color: rgba(255, 221, 48,150);}
                                QGroupBox::title[ok=true]
                                { border-radius: 5px; background-color: rgba(200, 255, 197, 150); }"""

    def createWidget(self, parent):
        return QCheckBox(parent)

    def initWidget(self, widget):
        widget.toggled.connect(self.emitvaluechanged)
        widget.toggled.connect(self.validate)

    def validate(self, *args):
        self.raisevalidationupdate(self.widget.isChecked())

    def setvalue(self, value):
        checkedvalue = self.config['checkedvalue']
        checked = str(value) == checkedvalue or False
        self.widget.setChecked(checked)

    def value(self):
        if self.widget.isChecked():
            return self.config['checkedvalue']
        else:
            return self.config['uncheckedvalue']


registerwidgets(CheckboxWidget)
Esempio n. 11
0
        self.emitvaluechanged()

    def setvalue(self, value):
        # Not the best way but should cover most use cases
        # for now
        value = value or ''
        value = unicode(value)
        try:
            self.widget.setPlainText(value)
        except AttributeError:
            self.widget.setText(value)

    def value(self):
        try:
            return self.widget.toPlainText()
        except AttributeError:
            return self.widget.text()


class TextBlockWidget(TextWidget):
    widgettype = 'TextBlock'

    def __init__(self, *args):
        super(TextBlockWidget, self).__init__(*args)

    def createWidget(self, parent):
        return QPlainTextEdit(parent)

registerwidgets(TextWidget, TextWidget)
Esempio n. 12
0
                                {border-radius: 5px; background-color: rgba(255, 221, 48,150);}
                                QCheckBox[ok=true]
                                {border-radius: 5px; background-color: rgba(200, 255, 197, 150); }
                                QGroupBox::title[required=true]
                                {border-radius: 5px; background-color: rgba(255, 221, 48,150);}
                                QGroupBox::title[ok=true]
                                { border-radius: 5px; background-color: rgba(200, 255, 197, 150); }"""

    def createWidget(self, parent):
        return QCheckBox(parent)

    def initWidget(self, widget):
        widget.toggled.connect(self.emitvaluechanged)
        widget.toggled.connect(self.validate)

    def validate(self, *args):
        self.raisevalidationupdate(self.widget.isChecked())

    def setvalue(self, value):
        checkedvalue = self.config['checkedvalue']
        checked = str(value) == checkedvalue or False
        self.widget.setChecked(checked)

    def value(self):
        if self.widget.isChecked():
            return self.config['checkedvalue']
        else:
            return self.config['uncheckedvalue']

registerwidgets(CheckboxWidget)
Esempio n. 13
0
    def createWidget(self, parent):
        return QDoubleSpinBox(parent)

    def initWidget(self, widget):
        super(DoubleNumberWidget, self).initWidget(widget)

    def _getmaxmin(self, config):
        max = config.get('max', '')
        min = config.get('min', '')
        try:
            max = float(max)
        except ValueError:
            max = sys.float_info.max

        try:
            min = float(min)
        except ValueError:
            min = sys.float_info.min
        print max, min
        return max, min

    def setvalue(self, value):
        if not value:
            value = 0.00

        value = float(value)
        self.widget.setValue(value)

registerwidgets(NumberWidget)
registerwidgets(DoubleNumberWidget)