Esempio n. 1
0
			self.tabWidget.blockSignals(True)
			self.tabWidget.setCurrentWidget(self.langEdits[lang])
			self.tabWidget.blockSignals(False)

	def unserialize(self, data: dict, errors: List[Dict]) -> None:
		self.setErrors(errors)
		if not data:
			return
		self.lineEdit.setText(str(data))

	def serializeForPost(self) -> dict:
		text = self.lineEdit.text()
		if text:
			return self.lineEdit.text()
		return ""

	def serializeForDocument(self) -> dict:
		return self.serialize()


def CheckForPasswordBone(
		moduleName: str,
		boneName: str,
		skelStucture: Dict[str, Any]) -> bool:
	return skelStucture[boneName]["type"] == "password"


# Register this Bone in the global queue
editBoneSelector.insert(2, CheckForPasswordBone, PasswordEditBone)
viewDelegateSelector.insert(2, CheckForPasswordBone, PasswordViewBoneDelegate)
Esempio n. 2
0
            else:
                self.webView.setHtml(text)

    def unserialize(self, data: dict, errors: List[Dict]) -> None:
        self.setErrors(errors)
        self.html = str(data).replace("target=\"_blank\" href=\"",
                                      "href=\"!") if (data) else ""
        if isPyodide:
            self.webView.setText(self.html)
        else:
            self.webView.setHtml(self.html)

    def serializeForPost(self) -> Dict[str, Any]:
        return self.html.replace("href=\"!", "target=\"_blank\" href=\"")

    def serializeForDocument(self) -> dict:
        return self.serialize()

    def remove(self) -> None:
        pass


def CheckForTextBone(moduleName: str, boneName: str,
                     skelStucture: Dict[str, Any]) -> bool:
    return skelStucture[boneName]["type"] == "text"


# Register this Bone in the global queue
editBoneSelector.insert(2, CheckForTextBone, TextEditBone)
viewDelegateSelector.insert(2, CheckForTextBone, TextViewBoneDelegate)
Esempio n. 3
0
            if str(data) in items:
                self.comboBox.setCurrentIndex(
                    self.comboBox.findText(items[str(data)]))
            else:
                self.comboBox.setCurrentIndex(-1)
        else:  # except:
            self.comboBox.setCurrentIndex(-1)

    def serializeForPost(self) -> Dict[str, Any]:
        currentValue = str(self.comboBox.currentText())
        for key, value in self.values:
            if str(value) == currentValue:
                return str(key)
        return None


def CheckForSelectOneBone(moduleName: str, boneName: str,
                          skelStucture: Dict[str, Any]) -> bool:
    isSelect = skelStucture[boneName]["type"] == "select" or skelStucture[
        boneName]["type"].startswith("select.")
    return isSelect and not bool(skelStucture[boneName].get("multiple"))


# Register this Bone in the global queue
editBoneSelector.insert(2, CheckForSelectOneBone, SelectOneEditBone)
viewDelegateSelector.insert(2, CheckForSelectOneBone,
                            SelectOneViewBoneDelegate)
extendedSearchWidgetSelector.insert(
    1, ExtendedSelectOneFilterPlugin.canHandleExtension,
    ExtendedSelectOneFilterPlugin)
Esempio n. 4
0
            widgetGen = lambda: ListMultiContainer(preMultiWidgetGen)
        if myStruct.get("languages"):
            preLangWidgetGen = widgetGen
            widgetGen = lambda: LanguageContainer(myStruct["languages"],
                                                  preLangWidgetGen)
        return widgetGen()

    def unserialize(self, data: Dict[str, Any], errors: List[Dict]) -> None:
        self.setErrors(errors)
        if not data:
            return
        try:
            lat, lng = data
        except:
            lat = lng = 0
        self.lat.setValue(lat)
        self.lng.setValue(lng)

    def serializeForPost(self) -> Dict[str, Any]:
        return {"lat": str(self.lat.value()), "lng": str(self.lng.value())}


def CheckForSpatialBone(moduleName: str, boneName: str,
                        skelStucture: Dict[str, Any]) -> bool:
    return (skelStucture[boneName]["type"] == "spatial")


# Register this Bone in the global queue
editBoneSelector.insert(2, CheckForSpatialBone, SpatialEditBone)
viewDelegateSelector.insert(2, CheckForSpatialBone, SpatialViewBoneDelegate)
Esempio n. 5
0
			required,
			multiple=False,
			languages=None,
			**kwargs)
		if myStruct.get("multiple"):
			preMultiWidgetGen = widgetGen
			widgetGen = lambda: ListMultiContainer(preMultiWidgetGen)
		if myStruct.get("languages"):
			preLangWidgetGen = widgetGen
			widgetGen = lambda: LanguageContainer(myStruct["languages"], preLangWidgetGen)
		return widgetGen()

	def unserialize(self, data: Dict[str, Any], errors: List[Dict]) -> None:
		self.setErrors(errors)
		if not data:
			return
		self.lineEdit.setText(unescapeHtml(str(data)))

	def serializeForPost(self) -> Dict[str, Any]:
		return self.lineEdit.text()


def CheckForStringBone(moduleName: str, boneName: str, skelStucture: Dict[str, Any]) -> bool:
	return skelStucture[boneName]["type"] == "str" or skelStucture[boneName]["type"].startswith("str.")


# Register this Bone in the global queue
editBoneSelector.insert(2, CheckForStringBone, StringEditBone)
viewDelegateSelector.insert(2, CheckForStringBone, StringViewBoneDelegate)
extendedSearchWidgetSelector.insert(1, ExtendedStringFilterPlugin.canHandleExtension, ExtendedStringFilterPlugin)
Esempio n. 6
0
    displaySelectionWidget = TreeSelectedEntities

    def onSourceItemDoubleClicked(self,
                                  item: QtWidgets.QListWidgetItem) -> None:
        """
			An item has been doubleClicked in our listWidget.
			Read its properties and add them to our selection.
		"""
        return

    def onSourceItemClicked(self, item: QtWidgets.QListWidgetItem) -> None:
        if not isinstance(item, self.list.getNodeItemClass()):
            return

        data = item.entryData
        selection = self.selection.get()
        if data in selection:
            self.selection.set([])
        else:
            self.selection.set([data])


def CheckForTreeDirBone(moduleName: str, boneName: str,
                        skelStucture: Dict[str, Any]) -> bool:
    return skelStucture[boneName]["type"].startswith("treedir.")


# Register this Bone in the global queue
editBoneSelector.insert(2, CheckForTreeDirBone, TreeDirBone)
viewDelegateSelector.insert(2, CheckForTreeDirBone, TreeDirViewBoneDelegate)
Esempio n. 7
0
        return widgetGen()

    def unserialize(self, data: Dict[str, Any], errors: List[Dict]) -> None:
        self.setErrors(errors)
        return self.internalEdit.unserialize(
            data or {}, errors)  # New, non-multipe record-bones may be none

    def serializeForPost(self) -> dict:
        return self.internalEdit.serializeForPost()

    def setErrors(self, errorList):  # Just forward to internalEdit
        self.internalEdit.setErrors(errorList)

    def getEffectiveMaximumBoneError(
        self,
        inOptionalContainer: bool = False
    ) -> int:  # Just forward to internalEdit
        return self.internalEdit.getEffectiveMaximumBoneError(
            inOptionalContainer or not self.required)


def CheckForRecordBoneBone(moduleName: str, boneName: str,
                           skelStucture: Dict[str, Any]) -> bool:
    return skelStucture[boneName]["type"] == "record" or skelStucture[
        boneName]["type"].startswith("record.")


# Register this Bone in the global queue
editBoneSelector.insert(2, CheckForRecordBoneBone, RecordEditBone)
viewDelegateSelector.insert(2, CheckForRecordBoneBone, RecordViewBoneDelegate)
Esempio n. 8
0
    skelType = "leaf"


class TreeBoneSelector(RelationalBoneSelector):
    displaySourceWidget = TreeWidget
    displaySelectionWidget = TreeSelectedEntities

    def onSourceItemDoubleClicked(self,
                                  item: QtWidgets.QListWidgetItem) -> None:
        """
			An item has been doubleClicked in our listWidget.
			Read its properties and add them to our selection.
		"""
        if not isinstance(item, self.list.getLeafItemClass()):
            return
        data = item.entryData
        if self.multiple:
            self.selection.extend([data])
        else:
            self.selectionChanged.emit([data])
            event.emit("popWidget", self)


def CheckForTreeItemBone(moduleName: str, boneName: str,
                         skelStucture: Dict[str, Any]) -> bool:
    return skelStucture[boneName]["type"].startswith("relational.treeitem.")


editBoneSelector.insert(2, CheckForTreeItemBone, TreeItemBone)
viewDelegateSelector.insert(2, CheckForTreeItemBone, TreeItemViewBoneDelegate)
Esempio n. 9
0
		except AttributeError:
			pass
		self.selectionChanged.emit(self.selection.get())
		event.emit("popWidget", self)

	def onBtnCancelReleased(self, *args: Any, **kwargs: Any) -> None:
		logger.debug("onBtnCancelReleased")
		try:
			self.selection.prepareDeletion()
		except AttributeError:
			pass
		event.emit("popWidget", self)

	def getFilter(self) -> Dict[str, Any]:
		return self.list.getFilter()

	def setFilter(self, queryFilter: Dict[str, Any]) -> None:
		return self.list.setFilter(queryFilter)

	def getModul(self) -> str:
		return self.list.getModul()


def CheckForRelationalicBone(moduleName: str, boneName: str, skelStucture: Dict[str, Any]) -> bool:
	return skelStucture[boneName]["type"].startswith("relational.")


# Register this Bone in the global queue
editBoneSelector.insert(2, CheckForRelationalicBone, RelationalEditBone)
viewDelegateSelector.insert(2, CheckForRelationalicBone, RelationalViewBoneDelegate)
Esempio n. 10
0
            widgetGen = lambda: ListMultiContainer(preMultiWidgetGen)
        if myStruct.get("languages"):
            preLangWidgetGen = widgetGen
            widgetGen = lambda: LanguageContainer(myStruct["languages"],
                                                  preLangWidgetGen)
        return widgetGen()

    def unserialize(self, data: dict, errors: List[Dict]) -> None:
        self.setErrors(errors)
        if data:
            self.checkBox.setChecked(True)

    def serializeForPost(self) -> dict:
        return "1" if self.checkBox.isChecked() else "0"

    def serializeForDocument(self) -> dict:
        return self.serialize()


def CheckForBooleanBone(moduleName: str, boneName: str,
                        skelStucture: Dict[str, Any]) -> bool:
    return skelStucture[boneName]["type"] == "bool"


# Register this Bone in the global queue
editBoneSelector.insert(2, CheckForBooleanBone, BooleanEditBone)
viewDelegateSelector.insert(2, CheckForBooleanBone, BooleanViewBoneDelegate)
extendedSearchWidgetSelector.insert(
    1, ExtendedBooleanFilterPlugin.canHandleExtension,
    ExtendedBooleanFilterPlugin)
Esempio n. 11
0
		"""
        if not self.multiple:
            self.entry.setReadOnly(True)


class HierarchyBoneSelector(RelationalBoneSelector):
    displaySourceWidget = HierarchyWidget

    def onSourceItemDoubleClicked(self,
                                  item: QtWidgets.QListWidgetItem) -> None:
        """
			An item has been doubleClicked in our listWidget.
			Read its properties and add them to our selection.
		"""
        data = item.entryData
        if self.multiple:
            self.selection.extend([data])
        else:
            self.selectionChanged.emit([data])
            event.emit("popWidget", self)


def CheckForHierarchyItemBone(moduleName: str, boneName: str,
                              skelStucture: Dict[str, Any]) -> bool:
    return skelStucture[boneName]["type"].startswith("hierarchy.")


viewDelegateSelector.insert(1, CheckForHierarchyItemBone,
                            HierarchyItemViewBoneDelegate)
editBoneSelector.insert(1, CheckForHierarchyItemBone, HierarchyItemBone)
Esempio n. 12
0
        self.ui.setupUi(self)
        self.setTitle(extension["name"])
        self.ui.values.addItem("", None)
        for userData, text in extension["values"].items():
            self.ui.values.addItem(text, userData)

    @staticmethod
    def canHandleExtension(extension: Dict[str, Any]) -> bool:
        return (isinstance(extension, dict) and "type" in extension
                and (((extension["type"] == "select"
                       or extension["type"].startswith("select."))
                      and extension.get("multiple", True)) or
                     (extension["type"] == "selectmulti"
                      or extension["type"].startswith("selectmulti."))))


def CheckForSelectMultiBone(moduleName: str, boneName: str,
                            skelStucture: Dict[str, Any]) -> bool:
    isSelect = skelStucture[boneName]["type"] == "select" or skelStucture[
        boneName]["type"].startswith("select.")
    return isSelect and bool(skelStucture[boneName].get("multiple"))


# Register this Bone in the global queue
editBoneSelector.insert(2, CheckForSelectMultiBone, SelectMultiEditBone)
viewDelegateSelector.insert(2, CheckForSelectMultiBone,
                            SelectMultiViewBoneDelegate)
extendedSearchWidgetSelector.insert(
    1, ExtendedSelectMultiFilterPlugin.canHandleExtension,
    ExtendedSelectMultiFilterPlugin)
Esempio n. 13
0
        self.setParams()
        self.lineEdit.show()

    def setParams(self) -> None:
        self.setEnabled(not self.readOnly)

    @staticmethod
    def fromSkelStructure(moduleName: str, boneName: str, skelStructure: dict,
                          **kwargs: Any) -> Any:
        readOnly = "readonly" in skelStructure[boneName] and skelStructure[
            boneName]["readonly"]
        required = "required" in skelStructure[boneName] and skelStructure[
            boneName]["required"]
        return BaseEditBone(moduleName, boneName, readOnly, required, **kwargs)

    def unserialize(self, data: dict, errors: List[Dict]) -> None:
        self.setErrors(errors)
        self.lineEdit.setText(str(data) if data else "")

    def serializeForPost(self) -> dict:
        return self.lineEdit.displayText()

    def serializeForDocument(self) -> dict:
        return self.serialize()


# Register this Bone in the global queue
editBoneSelector.insert(0, lambda *args, **kwargs: True, BaseEditBone)
viewDelegateSelector.insert(0, lambda *args, **kwargs: True,
                            BaseViewBoneDelegate)