Пример #1
0
	def __init__(
			self,
			moduleName: str,
			boneName: str,
			readOnly: bool,
			required: bool,
			destModule: str,
			multiple: bool,
			using: Union[str, None] = None,
			format: str = "$(name)",
			*args: Any,
			**kwargs: Any):
		super(RelationalEditBone, self).__init__(moduleName, boneName, readOnly, required, *args, **kwargs)
		logger.debug("RelationalEditBone: %r, %r, %r, %r", moduleName, boneName, readOnly, destModule)
		self.toModule = self.realModule = destModule
		if self.toModule.endswith("_rootNode"):
			self.realModule = destModule[:-9]
		self.multiple = multiple
		self.using = using
		self.format = format
		self.overlay = Overlay(self)
		self.internalEdits: InternalEdit = None
		self.blockAutoCompletion = False
		self.outerLayout = QtWidgets.QVBoxLayout(self.editWidget)  # Vbox with Relational entry and optional using edit
		hboxWidget = QtWidgets.QWidget(self.editWidget)
		self.hboxLayout = QtWidgets.QHBoxLayout(hboxWidget)
		self.outerLayout.addWidget(hboxWidget)
		self.previewIcon = None

		self.addBtn = QtWidgets.QPushButton(
			QtCore.QCoreApplication.translate("RelationalEditBone", "Change selection"),
			parent=hboxWidget)
		self.addBtn.setIcon(loadIcon("select"))
		self.addBtn.released.connect(self.onAddBtnReleased)
		self.entry = QtWidgets.QLineEdit(hboxWidget)
		self.installAutoCompletion()
		self.hboxLayout.addWidget(self.entry)
		self.hboxLayout.addWidget(self.addBtn)
		if not self.multiple:  ## FIXME: AND SELF REQUIRED
			self.delBtn = QtWidgets.QPushButton("", parent=self.editWidget)
			self.delBtn.setIcon(loadIcon("cancel"))
			self.delBtn.released.connect(self.onDelBtnReleased)
			self.hboxLayout.addWidget(self.delBtn)
		self.selection: Dict[str, Any] = None
		self.usingEdit = QtWidgets.QWidget(hboxWidget)
		self.previewLayout = QtWidgets.QVBoxLayout(self.usingEdit)
		self.outerLayout.addWidget(self.usingEdit)
		self.lastErrors = []  # List of errors we receveid in last unserialize call
		self.safeEval = safeeval.SafeEval()
		try:
			self.ast = self.safeEval.compile(self.format)
		except:
			self.ast = self.safeEval.compile("value['name']")
Пример #2
0
	def __init__(self, module: str, boneName: str, structure: dict):
		super(FileViewBoneDelegate, self).__init__(module, boneName, structure)
		if not hasattr(self, "cache"):
			self.cache: Dict[str, str] = dict()
		self.format = "value['name']"
		self.structure = structure
		if "format" in structure[boneName]:
			self.format = structure[boneName]["format"]
		self.safeEval = safeeval.SafeEval()
		try:
			self.ast = self.safeEval.compile(self.format)
		except:
			self.ast = self.safeEval.compile("value['name']")
Пример #3
0
	def __init__(self, module: str, boneName: str, structure: Dict[str, Any]):
		super(RelationalViewBoneDelegate, self).__init__(module, boneName, structure)
		# logger.debug("RelationalViewBoneDelegate.init: %r", boneName)
		self.format = "value['name']"
		if "format" in structure[boneName]:
			self.format = structure[boneName]["format"]
		self.module = module
		self.structure = structure
		self.boneName = boneName
		self.safeEval = safeeval.SafeEval()
		try:
			self.ast = self.safeEval.compile(self.format)
		except:
			self.ast = self.safeEval.compile("value['name']")
		self._cache = {}
Пример #4
0
	def __init__(
			self,
			module: str,
			format: str,
			structure: Dict[str, Any],
			*args: Any,
			**kwargs: Any):
		super(AutocompletionModel, self).__init__(*args, **kwargs)
		self.module = module
		self.format = format
		self.structure = structure
		self.dataCache: List[Dict[str, Any]] = list()
		self.safeEval = safeeval.SafeEval()
		try:
			self.ast = self.safeEval.compile(self.format)
		except:
			self.ast = self.safeEval.compile("value['name']")
Пример #5
0
	def __init__(self, module: str, data: Dict[str, Any]):
		moduleCfg = conf.serverConfig["modules"][module]
		if "format" in moduleCfg:
			fmt = moduleCfg["format"]
		else:
			fmt = "value['name']"
		protoWrap = protocolWrapperInstanceSelector.select(module)
		assert protoWrap is not None
		try:
			itemName = safeeval.SafeEval().safeEval(fmt, {
				"value": data,
				"structure": moduleCfg,
				"language": config.conf.adminConfig["language"]
			})
		except:
			itemName = "(invalid format string)"
		super(HierarchyItem, self).__init__([str(itemName)])
		self.loaded = False
		self.entryData = data
		self.setChildIndicatorPolicy(QtWidgets.QTreeWidgetItem.ShowIndicator)