Ejemplo n.º 1
0
 def __init__(self, module: str, *args: Any, **kwargs: Any):
     widgetFactory = lambda: EditWidget(module, ApplicationType.SINGLETON,
                                        "singleton")
     name = ""
     sortIndex = 0
     icon = None
     if module in conf.serverConfig["modules"]:
         config = conf.serverConfig["modules"][module]
         if config["icon"]:
             if config["icon"].lower().startswith("http://") or config[
                     "icon"].lower().startswith("https://"):
                 icon = config["icon"]
             else:
                 icon = loadIcon(config["icon"])
         else:
             icon = loadIcon("singleton")
         name = config["name"]
         sortIndex = config.get("sortIndex", 0)
     super(SingletonEntryHandler, self).__init__(widgetFactory,
                                                 descr=name,
                                                 icon=icon,
                                                 sortIndex=sortIndex,
                                                 vanishOnClose=False,
                                                 *args,
                                                 **kwargs)
Ejemplo n.º 2
0
 def onTriggered(self) -> None:
     name = QtCore.QCoreApplication.translate("TreeHandler", "Edit entry")
     nodes = []
     leafs = []
     for item in self.parent().selectedItems():
         if isinstance(item, self.parent().getLeafItemClass()):
             leafs.append(item.entryData)
         else:
             nodes.append(item.entryData)
     for entry in leafs:
         skelType = "leaf"
         modul = self.parent().module
         key = entry["key"]
         widget = lambda: EditWidget(
             modul, ApplicationType.TREE, key, skelType=skelType)
         handler = WidgetHandler(widget, descr=name, icon=loadIcon("edit"))
         handler.stackHandler()
     for entry in nodes:
         skelType = "node"
         modul = self.parent().module
         key = entry["key"]
         widget = lambda: EditWidget(
             modul, ApplicationType.TREE, key, skelType=skelType)
         handler = WidgetHandler(widget, descr=name, icon=loadIcon("edit"))
         handler.stackHandler()
Ejemplo n.º 3
0
 def __init__(self, modul, *args, **kwargs):
     # Config parsen
     config = conf.serverConfig["modules"][modul]
     if "columns" in config:
         if "filter" in config:
             widgetGen = lambda: CalenderWidget(modul, config["columns"],
                                                config["filter"])
         else:
             widgetGen = lambda: CalenderWidget(modul, config["columns"])
     else:
         widgetGen = lambda: CalenderWidget(modul)
     if config["icon"]:
         if config["icon"].lower().startswith("http://") or config[
                 "icon"].lower().startswith("https://"):
             icon = config["icon"]
         else:
             icon = loadIcon(config["icon"])
     else:
         icon = loadIcon(None)
     super(CalenderCoreHandler, self).__init__(widgetGen,
                                               descr=config["name"],
                                               icon=icon,
                                               vanishOnClose=False,
                                               *args,
                                               **kwargs)
     if "views" in config:
         for view in config["views"]:
             self.addChild(PredefinedViewHandler(modul, view["name"]))
Ejemplo n.º 4
0
    def __init__(self, module: str, *args: Any, **kwargs: Any):
        super(WidgetHandler, self).__init__(*args, **kwargs)
        self.module = module
        config = conf.serverConfig["modules"][module]
        if config["icon"]:
            if config["icon"].lower().startswith("http://") or config[
                    "icon"].lower().startswith("https://"):
                icon = config["icon"]
            else:
                icon = loadIcon(config["icon"])
        else:
            icon = loadIcon("hierarchy")
        super(HierarchyCoreHandler,
              self).__init__(lambda: HierarchyWidget(module),
                             sortIndex=config.get("sortIndex", 0),
                             descr=config["name"],
                             icon=icon,
                             vanishOnClose=False,
                             *args,
                             **kwargs)

        self.repos: List[Dict[str, Any]] = list()
        self.tmp_obj = QtCore.QObject()
        fetchTask = NetworkService.request("/%s/listRootNodes" % module,
                                           parent=self.tmp_obj)
        fetchTask.requestSucceeded.connect(self.setRepos)
Ejemplo n.º 5
0
	def openEditor(self, item: Dict[str, Any], clone: bool = False) -> None:
		"""
			Open a new Editor-Widget for the given entity.
			@param item: Entity to open the editor for
			@type item: Dict
			@param clone: Clone the given entry?
			@type clone: Bool
		"""
		myHandler = WidgetHandler.mainWindow.handlerForWidget(self)  # Always stack them as my child
		assert myHandler is not None
		if clone:
			icon = loadIcon("clone")
			if self.list.module in conf.serverConfig["modules"] and "name" in conf.serverConfig["modules"][
				self.list.module]:
				descr = QtCore.QCoreApplication.translate("List", "Clone: %s") % \
				        conf.serverConfig["modules"][self.list.module]["name"]
			else:
				descr = QtCore.QCoreApplication.translate("List", "Clone entry")
		else:
			icon = loadIcon("edit")
			if self.list.module in conf.serverConfig["modules"] and "name" in conf.serverConfig["modules"][
				self.list.module]:
				descr = QtCore.QCoreApplication.translate("List", "Edit: %s") % \
				        conf.serverConfig["modules"][self.list.module]["name"]
			else:
				descr = QtCore.QCoreApplication.translate("List", "Edit entry")
		modul = self.list.module
		key = item["key"]
		handler = WidgetHandler(lambda: EditWidget(modul, ApplicationType.LIST, key, clone=clone), descr, icon)
		handler.mainWindow.addHandler(handler, myHandler)
		handler.focus()
Ejemplo n.º 6
0
	def getBreadCrumb(self) -> Any:
		if self.clone:
			descr = QtCore.QCoreApplication.translate("EditWidget", "Clone entry")
			icon = loadIcon("clone")
		elif self.key or self.applicationType == EditWidget.appSingleton:  # We're editing
			descr = QtCore.QCoreApplication.translate("EditWidget", "Edit entry")
			icon = loadIcon("edit")
		else:
			descr = QtCore.QCoreApplication.translate("EditWidget", "Add entry")
			icon = loadIcon("add")
		return descr, icon
Ejemplo n.º 7
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']")
Ejemplo n.º 8
0
 def getBreadCrumb(self) -> Any:
     return (
         QtCore.QCoreApplication.translate("TextEditBone", "Text edit"),
         loadIcon(
             "press"
         )  # FIXME: QtGui.QIcon(QtGui.QPixmap(":icons/actions/text-edit.png")
     )
Ejemplo n.º 9
0
	def __init__(
			self,
			tag: str,
			editMode: int,
			*args: Any,
			**kwargs: Any):
		# print("Tag.init", tag, editMode)
		super(Tag, self).__init__(*args, **kwargs)
		self.setLayout(QtWidgets.QHBoxLayout(self))
		self.tag = tag
		self.lblDisplay = QtWidgets.QLabel(tag, self)
		self.editField = QtWidgets.QLineEdit(tag, self)
		self.btnDelete = QtWidgets.QPushButton("Löschen", self)
		self.btnDelete.setIcon(loadIcon("cancel-cross"))
		self.layout().addWidget(self.lblDisplay)
		self.layout().addWidget(self.editField)
		self.layout().addWidget(self.btnDelete)
		if editMode:
			self.lblDisplay.hide()
			self.editField.show()
		else:
			self.lblDisplay.show()
			self.editField.hide()
		self.editField.editingFinished.connect(self.onEditingFinished)
		self.btnDelete.released.connect(self.deleteLater)
		self.lblDisplay.mousePressEvent = self.onEdit
Ejemplo n.º 10
0
	def __init__(
			self,
			module: str,
			*args: Any,
			**kwargs: Any):
		# Config parsen
		ListCoreHandlerConfig = conf.serverConfig["modules"][module]
		actions = ListCoreHandlerConfig.get("actions")
		widgetGen = lambda: ListWidget(
			module,
			config=conf.serverConfig["modules"][module],
			fields=ListCoreHandlerConfig.get("columns", list()),
			filter=ListCoreHandlerConfig.get("filter", dict()),
			actions=actions
		)

		icon = None
		if "icon" in ListCoreHandlerConfig and ListCoreHandlerConfig["icon"]:
			icon = loadIcon(ListCoreHandlerConfig["icon"])

		super(ListCoreHandler, self).__init__(
			widgetGen,
			descr=ListCoreHandlerConfig["name"],
			icon=icon,
			sortIndex=ListCoreHandlerConfig.get("sortIndex", 0),
			vanishOnClose=False,
			*args,
			**kwargs)

		if "views" in ListCoreHandlerConfig:
			for view in ListCoreHandlerConfig["views"]:
				viewConfig = deepcopy(view)
				viewConfig["handler"] = ListCoreHandlerConfig["handler"]
				self.addChild(PredefinedViewHandler(module, viewConfig, view["name"]))
Ejemplo n.º 11
0
	def getBreadCrumb(self) -> Tuple[Union[str, None], QtGui.QIcon]:
		protoWrap = protocolWrapperInstanceSelector.select(self.moduleName)
		assert protoWrap is not None
		# FIXME: Bad hack to get the editWidget we belong to
		skel: Union[Dict[str, Any], None] = None
		for widget in WidgetHandler.mainWindow.handlerForWidget(self).widgets:
			if isinstance(widget, EditWidget):
				if (not widget.key) or widget.clone:  # We're adding a new entry
					if widget.skelType == "leaf":
						skel = protoWrap.addLeafStructure
					elif widget.skelType == "node":
						skel = protoWrap.addNodeStructure
					else:
						skel = protoWrap.addStructure
				else:
					if widget.skelType == "leaf":
						skel = protoWrap.editLeafStructure
					elif widget.skelType == "node":
						skel = protoWrap.editNodeStructure
					else:
						skel = protoWrap.editStructure
		assert skel is not None
		assert self.boneName in skel
		return QtCore.QCoreApplication.translate("ExtendedRelationalBoneSelector", "Select %s") % skel[self.boneName][
			"descr"], loadIcon("select")
Ejemplo n.º 12
0
 def _mkEntry(self):
     self.newIndex += 1
     wdg = self.widgetGen()
     self.addTab(wdg, loadIcon("bookmark-add"),
                 "Neuer Eintrag %s" % self.newIndex)
     self.btn.setMinimumSize(0, 0)
     return wdg
Ejemplo n.º 13
0
 def __init__(self, parent: QtWidgets.QWidget = None):
     super(HierarchyAddAction, self).__init__(
         loadIcon("add"),
         QtCore.QCoreApplication.translate("Hierarchy", "Add entry"),
         parent)
     self.triggered.connect(self.onTriggered)
     self.setShortcut(QtGui.QKeySequence.New)
     self.setShortcutContext(QtCore.Qt.WidgetWithChildrenShortcut)
Ejemplo n.º 14
0
 def __init__(self, parent: QtWidgets.QWidget = None):
     super(HierarchyCloneAction, self).__init__(
         loadIcon("clone"),
         QtCore.QCoreApplication.translate("HierarchyHandler",
                                           "Clone entry"), parent)
     self.triggered.connect(self.onTriggered)
     self.setShortcut(QtGui.QKeySequence.SaveAs)
     self.setShortcutContext(QtCore.Qt.WidgetWithChildrenShortcut)
Ejemplo n.º 15
0
 def __init__(self, parent: QtCore.QObject = None):
     super(HierarchyDeleteAction, self).__init__(
         loadIcon("delete"),
         QtCore.QCoreApplication.translate("Hierarchy", "Delete entry"),
         parent)
     self.triggered.connect(self.onTriggered)
     self.setShortcut(QtGui.QKeySequence.Delete)
     self.setShortcutContext(QtCore.Qt.WidgetWithChildrenShortcut)
Ejemplo n.º 16
0
 def __init__(self, parent: QtWidgets.QWidget = None):
     super(TreeEditAction, self).__init__(
         loadIcon("edit"),
         QtCore.QCoreApplication.translate("TreeHandler", "Edit entry"),
         parent)
     self.setShortcut(QtGui.QKeySequence.Open)
     self.setShortcutContext(QtCore.Qt.WidgetWithChildrenShortcut)
     self.triggered.connect(self.onTriggered)
Ejemplo n.º 17
0
 def __init__(self, widgetFactory: Callable, *args: Any, **kwargs: Any):
     super(TaskEntryHandler,
           self).__init__(widgetFactory,
                          icon=loadIcon(":icons/menu/tasks.png"),
                          vanishOnClose=True,
                          *args,
                          **kwargs)
     self.setText(0, QtCore.QCoreApplication.translate("tasks", "Tasks"))
Ejemplo n.º 18
0
 def __init__(self,
              account: Dict[str, Any],
              parent: QtWidgets.QWidget = None) -> None:
     super(AccountItem, self).__init__(
         loadIcon("personae"),  #QtGui.QIcon(":icons/profile.png"),
         account["name"],
         parent=parent)
     self.account = account
Ejemplo n.º 19
0
	def __init__(self, parent: QtCore.QObject = None):
		super(FileDownloadAction, self).__init__(
			loadIcon("download"),
			QtCore.QCoreApplication.translate("FileHandler", "Download files"),
			parent)
		self.triggered.connect(self.onTriggered)
		self.setShortcut(QtGui.QKeySequence.Save)
		self.setShortcutContext(QtCore.Qt.WidgetWithChildrenShortcut)
Ejemplo n.º 20
0
	def __init__(self, parent: QtWidgets.QWidget = None):
		super(TreeMkDirAction, self).__init__(
			loadIcon("folder"),
			QtCore.QCoreApplication.translate("TreeHandler", "New directory"),
			parent)
		self.triggered.connect(self.onTriggered)
		self.setShortcut("SHIFT+Ctrl+N")
		self.setShortcutContext(QtCore.Qt.WidgetWithChildrenShortcut)
Ejemplo n.º 21
0
 def __init__(self, parent: QtWidgets.QWidget = None):
     super(TreeDeleteAction, self).__init__(
         loadIcon("delete"),
         QtCore.QCoreApplication.translate("TreeHandler", "Delete"), parent)
     self.parent().itemSelectionChanged.connect(self.onItemSelectionChanged)
     self.triggered.connect(self.onTriggered)
     self.setShortcut(QtGui.QKeySequence.Delete)
     self.setShortcutContext(QtCore.Qt.WidgetWithChildrenShortcut)
     self.setEnabled(False)
Ejemplo n.º 22
0
 def __init__(self,
              data: Dict[str, Any],
              parent: Union[QtWidgets.QListWidget, None] = None):
     super(NodeItem, self).__init__(loadIcon("folder"),
                                    str(data["name"]),
                                    parent=parent,
                                    type=1200)
     self.entryData = data
     self.setToolTip('<strong>{0}</strong>'.format(data["name"]))
Ejemplo n.º 23
0
 def onTriggered(self) -> None:
     name = QtCore.QCoreApplication.translate("TreeHandler",
                                              "Add leaf entry")
     modul = self.parent().tree.module
     node = self.parent().getNode()
     widget = lambda: EditWidget(
         modul, ApplicationType.TREE, node=node, skelType="leaf")
     handler = WidgetHandler(widget, descr=name, icon=loadIcon("add"))
     #event.emit(QtCore.pyqtSignal('stackHandler(PyQt_PyObject)'), handler)
     handler.stackHandler()
Ejemplo n.º 24
0
	def __init__(self, parent: QtWidgets.QWidget = None):
		super(TreeSimpleRenameAction, self).__init__(
			loadIcon("rename"),
			QtCore.QCoreApplication.translate("TreeHandler", "Rename entry"),
			parent)
		self.parent().itemSelectionChanged.connect(self.onItemSelectionChanged)
		self.triggered.connect(self.onTriggered)
		self.setShortcut("F2")
		self.setShortcutContext(QtCore.Qt.WidgetWithChildrenShortcut)
		self.setEnabled(False)
Ejemplo n.º 25
0
 def __init__(self, module: str, *args: Any, **kwargs: Any):
     config = conf.serverConfig["modules"][module]
     if config["icon"]:
         if config["icon"].lower().startswith("http://") or config[
                 "icon"].lower().startswith("https://"):
             icon = config["icon"]
         else:
             icon = loadIcon(config["icon"])
     else:
         icon = loadIcon("tree.svg")
     super(TreeBaseHandler,
           self).__init__(lambda: TreeWidget(module),
                          sortIndex=config.get("sortIndex", 0),
                          descr=config["name"],
                          icon=icon,
                          vanishOnClose=False,
                          *args,
                          **kwargs)
     logger.debug("TreeBaseHandler name: %r", config["name"])
Ejemplo n.º 26
0
 def onTriggered(self) -> None:
     parent = self.parent()
     for item in parent.hierarchy.selectedItems():
         modul = self.parent().getModul()
         key = item.entryData["key"]
         widget = lambda: EditWidget(modul, ApplicationType.HIERARCHY, key)
         handler = WidgetHandler(widget,
                                 descr=QtCore.QCoreApplication.translate(
                                     "Hierarchy", "Edit entry"),
                                 icon=loadIcon("edit"))
         handler.stackHandler()
Ejemplo n.º 27
0
 def __init__(self, widgetGen):
     super().__init__()
     self.widgetGen = widgetGen
     self.setLayout(QtWidgets.QVBoxLayout(self))
     self.btnAdd = QtWidgets.QPushButton("Hinzufügen", self)
     self.btnAdd.setIcon(loadIcon("add"))
     self.layout().addWidget(self.btnAdd)
     self.btnAdd.released.connect(
         self.onAddButtonClicked)  # TODO: check if this is working
     # self.btnAdd.released.connect(lambda *args, **kwargs: self.genTag("", True))  # FIXME: Lambda
     self.btnAdd.show()
Ejemplo n.º 28
0
	def onItemDoubleClicked(self, item: HierarchyItem, col: int) -> None:
		""" Open a editor for this entry.

		:param item: the item which was clicked
		:param col: the column index
		"""

		handler = utils.WidgetHandler(
				lambda: EditWidget(self.module, ApplicationType.HIERARCHY, item.entryData["key"]),
				descr=QtCore.QCoreApplication.translate("Hierarchy", "Edit entry"),
				icon=loadIcon("edit"))
		handler.stackHandler()
Ejemplo n.º 29
0
 def _mkEntry(self):
     containterWdg = QtWidgets.QWidget()
     containterWdg.setLayout(QtWidgets.QHBoxLayout())
     wdg = self.widgetGen()
     containterWdg.layout().addWidget(wdg)
     removeBtn = QtWidgets.QPushButton()
     removeBtn.setIcon(loadIcon("cancel"))
     containterWdg.layout().addWidget(removeBtn)
     self.layout().addWidget(containterWdg)
     idx = self.children().index(containterWdg)
     removeBtn.released.connect(lambda: self.removeLine(idx))
     return wdg
Ejemplo n.º 30
0
 def __init__(self, parent: QtWidgets.QWidget = None):
     super(TreeSwitchViewAction, self).__init__(
         loadIcon(
             "transfer"
         ),  ## FIXME: QtGui.QIcon(":icons/actions/switch_list.png"),
         QtCore.QCoreApplication.translate("TreeHandler", "Switch View"),
         parent)
     self.triggered.connect(self.onTriggered)
     self.setShortcut("F8")
     if not self.parent().isIconMode():
         self.setIcon(QtGui.QIcon(":icons/actions/switch_icon.svg"))
     self.setShortcutContext(QtCore.Qt.WidgetWithChildrenShortcut)