Example #1
0
 def __init__(self):
     QtWidgets.QTreeWidget.__init__(self)
     # self.header().setResizeMode(QtWidgets.QHeaderView.Stretch)
     self.setHeaderLabels(['Title', 'Type'])
     source = QtXml.QXmlInputSource()
     source.setData(xml)
     handler = XmlHandler(self)
     reader = QtXml.QXmlSimpleReader()
     reader.setContentHandler(handler)
     reader.setErrorHandler(handler)
     reader.parse(source)
Example #2
0
    def readProject(self, path):
        # validate project
        project_file = os.path.join(path, "project.xml")
        if os.path.exists(project_file) is False:
            return False
        # FIXME QtXml is no longer supported.
        dom_document = QtXml.QDomDocument()
        file = open(os.path.join(path, "project.xml"), "r")
        dom_document.setContent(file.read())
        file.close()

        data = {}

        elements = dom_document.documentElement()
        node = elements.firstChild()
        while node.isNull() is False:
            tag = node.toElement()
            name = tag.tagName()
            data["Version"] = tag.attribute("Version")
            data["Type"] = tag.attribute("Type")
            data["Name"] = tag.attribute("Name")
            data["MainScript"] = tag.attribute("MainScript")
            node = node.nextSibling()

        if name != "pycoder_project":
            return False
        else:
            return name, data
Example #3
0
        def addRowToReportData(self, l):
            if not self.qry_.isValid():
                return
            row = QtXml.QDomElement(self.q_.rptXmlData().createElement("Row"))
            row.setAttribute("level", l)

            imgFieldsBack = []
            i = 0
            for it in self.qFieldList_:
                strVal = str(self.qry_.value(i, False))
                if self.qImgFields_ and self.qImgFields_[len(self.qImgFields_) - 1] == i:
                    imgFieldsBack.append(self.qImgFields_.pop())
                    if strVal in ["", "None"]:
                        row.setAttribute(it, strVal)
                        continue
                    imgFile = filedir("../tempdata")
                    imgFile += "/%s.png" % strVal
                    if not os.path.exists(imgFile):
                        #print("Creando", imgFile)
                        #print(self.qry_.value(i, True))
                        pix = QtGui.QPixmap(self.qry_.value(i, True))
                        if not pix.save(imgFile):
                            print("FLReportEngine::No se ha podido guardar", imgFile)
                    row.setAttribute(it, imgFile)
                else:
                    row.setAttribute(it, strVal)
                i += 1

            self.rows_.appendChild(row)
            self.qImgFields_ = imgFieldsBack
Example #4
0
        def addRowToReportData(self, l):
            if not self.qry_.isValid():
                return

            row = QtXml.QDomElement(self.q_.rptXmlData().createElement("Row"))
            row.setAttribute("level", l)

            imgFieldsBack = []
            i = 0

            for it in self.qFieldList_:
                rawVal = self.qry_.value(i, True)
                empty = len(self.qImgFields_) == 0
                if not empty and self.qImgFields_.top() == i:
                    strVal = str(rawVal)
                    imgFieldsBack.push_front(self.qImgFields_.pop())
                    if not strVal or strVal == "":
                        row.setAttribute(it, strVal)
                        continue
                    imgFile = FLDiskCache.AQ_DISKCACHE_DIRPATH + "/"
                    imgFile += strVal + ".png"
                    if not QtCore.QFile.exists(imgFile):
                        pix = QtGui.QPixmap()
                        # pix.loadFromData(str(self.qry_.value(i))) #FIXME?
                        pix.loadFromData(self.qry_.value(i).toCString())
                        pix.save(imgFile, "PNG")
                    row.setAttribute(it, imgFile)
                else:
                    row.setAttribute(it, str(rawVal))
                i += 1

            self.rows_.appendChild(row)
            self.qImgFields_ = imgFieldsBack
Example #5
0
    def saveModulesForCompletion(self):
        # FIXME QtXml is no longer supported.
        dom_document = QtXml.QDomDocument("modules")

        modules = dom_document.createElement("modules")
        dom_document.appendChild(modules)

        for i, v in self.libraryDict.items():
            tag = dom_document.createElement(i)
            modules.appendChild(tag)
            tag.setAttribute("use", str(v[1]))

            for subModule in v[0]:
                item = dom_document.createElement("item")
                tag.appendChild(item)

                t = dom_document.createTextNode(subModule)
                item.appendChild(t)

        try:
            file = open(self.appPathDict["modules"], "w")
            file.write('<?xml version="1.0" encoding="UTF-8"?>\n')
            file.write(dom_document.toString())
            file.close()
        except:
            exc_type, exc_value, exc_traceback = sys.exc_info()
            logging.error(repr(traceback.format_exception(exc_type, exc_value,
                         exc_traceback)))
Example #6
0
 def setReportPages(self, pgs: Any) -> None:
     """Add pages to actual report."""
     self.setReportEngine(None)
     self.qry_ = None
     self.xmlData_ = QtXml.QDomNode()
     self.rptViewer_.setReportPages(pgs.pageCollection() if pgs else 0)
     self.report_ = self.rptViewer_.reportPages()
    def load(self):
        # FIXME QtXml is no longer supported.
        dom_document = QtXml.QDomDocument()
        file = open(self.projectPathDict["buildprofile"], "r")
        dom_document.setContent(file.read())
        file.close()

        dataDict = {}

        elements = dom_document.documentElement()
        node = elements.firstChild()
        while node.isNull() is False:
            name = node.nodeName()
            expandedName = name.replace('-', ' ')
            if expandedName in self.lists:
                sub_node = node.firstChild()
                while sub_node.isNull() is False:
                    sub_prop = sub_node.toElement()
                    self.lists[expandedName].append(sub_prop.text())
                    sub_node = sub_node.nextSibling()
                dataDict[expandedName] = self.lists[expandedName]
            else:
                sub_prop = node.toElement()
                dataDict[name] = sub_prop.text()
            node = node.nextSibling()
        return dataDict
Example #8
0
    def loadModulesForCompletion(self):
        # FIXME QtXml is no longer supported.
        dom_document = QtXml.QDomDocument()
        try:
            file = open(self.appPathDict["modules"], "r")
            dom_document.setContent(file.read())
            file.close()
        except:
            exc_type, exc_value, exc_traceback = sys.exc_info()
            logging.error(repr(traceback.format_exception(exc_type, exc_value,
                         exc_traceback)))
            return

        element = dom_document.documentElement()
        node = element.firstChild()

        self.libraryDict = {}
        while node.isNull() is False:
            property = node.toElement()
            sub_node = property.firstChild()

            moduleName = node.nodeName()
            use = property.attribute('use')

            itemList = []
            while sub_node.isNull() is False:
                sub_prop = sub_node.toElement()
                itemList.append(sub_prop.text())

                sub_node = sub_node.nextSibling()
            self.libraryDict[moduleName] = [itemList, use]
            node = node.nextSibling()
Example #9
0
 def setFLReportData(self, n: Any) -> bool:
     """Set data to report."""
     self.d_.setQuery(None)
     tmp_doc = QtXml.QDomDocument("KugarData")
     tmp_doc.appendChild(n)
     self.rd = tmp_doc
     return True
Example #10
0
    def saveKeymap(self, path=None):
        # FIXME QtXml is no longer supported.
        dom_document = QtXml.QDomDocument("keymap")

        keymap = dom_document.createElement("keymap")
        dom_document.appendChild(keymap)

        for key, value in self.useData.CUSTOM_SHORTCUTS.items():
            root = dom_document.createElement(key)
            keymap.appendChild(root)

            for short, func in value.items():
                tag = dom_document.createElement(short)
                if key == "Editor":
                    shortName = func[0]
                    keyValue = str(func[1])
                    tag.setAttribute("shortcut", shortName)
                    tag.setAttribute("value", keyValue)
                else:
                    tag.setAttribute("shortcut", func)
                root.appendChild(tag)

        if path is None:
            path = self.useData.appPathDict["keymap"]
        file = open(path, "w")
        file.write('<?xml version="1.0" encoding="UTF-8"?>\n')
        file.write(dom_document.toString())
        file.close()
Example #11
0
    def save(self, name=None):
        # save style
        # FIXME QtXml is no longer supported.
        dom_document = QtXml.QDomDocument("Scheme")

        main = dom_document.createElement("Attributes")
        dom_document.appendChild(main)

        root = dom_document.createElement("lexer")
        main.appendChild(root)

        for key, value in self.lexerStyler.currentStyle.items():
            tag = dom_document.createElement("property")
            tag.setAttribute("font", value[0])
            tag.setAttribute("color", value[1])
            tag.setAttribute("size", value[2])
            tag.setAttribute("bold", str(value[3]))
            tag.setAttribute("italic", str(value[4]))
            tag.setAttribute("paper", value[5])

            t = dom_document.createTextNode(key)
            tag.appendChild(t)
            root.appendChild(tag)

        root = dom_document.createElement("editor")
        main.appendChild(root)

        for key, value in self.editorStyler.currentProperties.items():
            tag = dom_document.createElement("property")
            root.appendChild(tag)

            tag.setAttribute("background", value[0])
            tag.setAttribute("foreground", value[1])
            if key == "Calltips":
                tag.setAttribute("highLight", value[2])
            if key == "Number Margin":
                tag.setAttribute("font", value[2])
                tag.setAttribute("size", str(value[3]))
                tag.setAttribute("bold", str(value[4]))
                tag.setAttribute("italic", str(value[5]))

            t = dom_document.createTextNode(key)
            tag.appendChild(t)

        if name is None:
            name = self.schemeNameBox.currentText()
        groupName = self.schemeTypeBox.currentText()
        path = os.path.join(
            self.useData.appPathDict["stylesdir"], groupName, name + '.xml')
        try:
            file = open(path, "w")
            file.write('<?xml version="1.0" encoding="UTF-8"?>\n')
            file.write(dom_document.toString())
            file.close()
        except Exception as err:
            message = QtWidgets.QMessageBox.warning(self, "Save",
                                                "Saving failed: {0}".format(str(err)))
            file.close()
            return
Example #12
0
    def editComment(self):
        edit = EditComment(self.commentViewer.toPlainText(), self)
        edit.exec_()

        if edit.accepted:
            comment = edit.commentEdit.toPlainText()
            source = self.sourceLine.text()
            snippetName = self.currentSnippetNameLabel.text()
            path = os.path.join(self.useData.appPathDict["librarydir"],
                                snippetName)

            # FIXME QtXml is no longer supported.
            dom_document = QtXml.QDomDocument()
            file = open(path, "r")
            dom_document.setContent(file.read())
            file.close()

            # save changes
            # FIXME QtXml is no longer supported.
            dom_document = QtXml.QDomDocument("snippet")
            root = dom_document.createElement("snippet")
            dom_document.appendChild(root)

            tag = dom_document.createElement('comments')
            root.appendChild(tag)

            t = dom_document.createCDATASection(comment)
            tag.appendChild(t)

            tag = dom_document.createElement('source')
            root.appendChild(tag)

            t = dom_document.createCDATASection(source)
            tag.appendChild(t)

            tag = dom_document.createElement('code')
            root.appendChild(tag)

            t = dom_document.createCDATASection(self.codeViewer.text())
            tag.appendChild(t)

            file = open(path, "w")
            file.write('<?xml version="1.0" encoding="UTF-8"?>\n')
            file.write(dom_document.toString())
            file.close()
            self.viewLibraryItem(self.currentSnippetItem)
    def save(self):
        fileName = self.projectPathDict["ropeprofile"]

        # FIXME QtXml is no longer supported.
        dom_document = QtXml.QDomDocument("rope_profile")

        main_data = dom_document.createElement("rope")
        dom_document.appendChild(main_data)

        root = dom_document.createElement("ignoresyntaxerrors")
        attrib = dom_document.createTextNode(
            self.ignoreSyntaxErrorsBox.currentText())
        root.appendChild(attrib)
        main_data.appendChild(root)

        root = dom_document.createElement("ignorebadimports")
        attrib = dom_document.createTextNode(
            self.ignoreBadImportsBox.currentText())
        root.appendChild(attrib)
        main_data.appendChild(root)

        root = dom_document.createElement("maxhistoryitems")
        attrib = dom_document.createTextNode(str(self.maxHistoryBox.value()))
        root.appendChild(attrib)
        main_data.appendChild(root)

        root = dom_document.createElement("Extensions_qt5")
        main_data.appendChild(root)

        defExt = ['*.py', '*.pyw']
        for i in defExt:
            tag = dom_document.createElement("item")
            root.appendChild(tag)

            t = dom_document.createTextNode(i)
            tag.appendChild(t)

        root = dom_document.createElement("IgnoredResources")
        main_data.appendChild(root)

        defIgnore = [
            "*.pyc", "*~", ".ropeproject", ".hg", ".svn", "_svn", ".git",
            "__pycache__"
        ]
        for i in defIgnore:
            tag = dom_document.createElement("item")
            root.appendChild(tag)

            t = dom_document.createTextNode(i)
            tag.appendChild(t)

        root = dom_document.createElement("CustomFolders")
        main_data.appendChild(root)

        file = open(fileName, "w")
        file.write('<?xml version="1.0" encoding="UTF-8"?>\n')
        file.write(dom_document.toString())
        file.close()
Example #14
0
    def setReportData(self, q):
        if isinstance(q, FLDomNodeInterface):
            return self.setFLReportData(q.obj())

        if not q:
            return

        if not self.rd:
            self.rd = QtXml.QDomDocument("KUGAR_DATA")

        tmpDoc = QtXml.QDomDocument("KUGAR_DATA")

        self.d_.rows_ = tmpDoc.createDocumentFragment()
        self.d_.setQuery(q)
        q.setForwardOnly(True)

        if not q.exec_():
            return False

        if not q.next():
            return False

        g = self.d_.qGroupDict_
        if not g:
            while True:
                self.d_.addRowToReportData(0)
                if not q.next():
                    break
        else:
            vA = QtCore.QStringListModel().stringList()
            for i in range(10):
                vA.append("")
            while True:
                self.d_.groupBy(len(g), vA)
                if not q.next():
                    break

        data = QtXml.QDomElement(tmpDoc.createElement("KugarData"))
        data.appendChild(self.d_.rows_)
        tmpDoc.appendChild(data)
        self.rd = tmpDoc
        self.d_.rows_.clear()

        self.initData()
        return True
    def init(self, _acl_xml: str = None) -> None:
        """
        Read the file "acl.xml" and establish a new access control list.

        If the file "acl.xml" cannot be read, the access control list is empty and
        no access control will be processed on any object.

        @param _acl_xml XML content with the definition of the access control list.
        """
        if _acl_xml is None:

            if application.PROJECT.conn_manager is None:
                raise Exception("Project is not connected yet")

            _acl_xml = application.PROJECT.conn_manager.managerModules(
            ).content("acl.xml")

        doc = QtXml.QDomDocument("ACL")
        if self._access_control_list:
            self._access_control_list.clear()

        if _acl_xml and not doc.setContent(_acl_xml):
            LOGGER.warning(
                QtCore.QObject().tr("Lista de control de acceso errónea"))
            return

        self._access_control_list = {}
        # self._access_control_list.setAutoDelete(True)

        doc_elem = doc.documentElement()
        node = doc_elem.firstChild()

        if node.isNull():
            return

        while not node.isNull():
            element = node.toElement()
            if element:
                if element.tagName() == "name":
                    self._name = element.text()
                    node = node.nextSibling()
                    continue

                rule = pnaccesscontrolfactory.PNAccessControlFactory().create(
                    element.tagName())
                if rule:
                    rule.set(element)
                    self._access_control_list["%s::%s::%s" %
                                              (rule.type(), rule.name(),
                                               rule.user())] = rule
                    node = node.nextSibling()
                    continue

            node = node.nextSibling()

        LOGGER.warning(
            QtCore.QObject().tr("Lista de control de acceso cargada"))
Example #16
0
def loadNodes(fname):
    '''Попытка "плоской" (загружаем всё в список, и потом формируем дерево) загрузки из БД'''
    if not os.path.exists(fname):
        print('File not exists')
        return None
    xmlFile = QFile(fname)
    source = QtXml.QXmlInputSource(xmlFile)
    handler = XmlHandler()
    reader = QtXml.QXmlSimpleReader()
    reader.setContentHandler(handler)
    reader.setErrorHandler(handler)
    print('prepare parse')
    root = None
    if reader.parse(source):
        print('parse')
        root = handler.getTree()
    else:
        print('error {}'.format(handler.errorString()))
    return root
Example #17
0
    def writeRopeProfile(self):
        # FIXME QtXml is no longer supported.
        dom_document = QtXml.QDomDocument("rope_profile")

        main_data = dom_document.createElement("rope")
        dom_document.appendChild(main_data)

        root = dom_document.createElement("ignoresyntaxerrors")
        attrib = dom_document.createTextNode('')
        root.appendChild(attrib)
        main_data.appendChild(root)

        root = dom_document.createElement("ignorebadimports")
        attrib = dom_document.createTextNode('')
        root.appendChild(attrib)
        main_data.appendChild(root)

        root = dom_document.createElement("maxhistoryitems")
        attrib = dom_document.createTextNode('32')
        root.appendChild(attrib)
        main_data.appendChild(root)

        root = dom_document.createElement("Extensions_qt5")
        main_data.appendChild(root)

        defExt = ['*.py', '*.pyw']
        for i in defExt:
            tag = dom_document.createElement("item")
            root.appendChild(tag)

            t = dom_document.createTextNode(i)
            tag.appendChild(t)

        root = dom_document.createElement("IgnoredResources")
        main_data.appendChild(root)

        defIgnore = [
            "*.pyc", "*~", ".ropeproject", ".hg", ".svn", "_svn", ".git",
            "__pycache__"
        ]
        for i in defIgnore:
            tag = dom_document.createElement("item")
            root.appendChild(tag)

            t = dom_document.createTextNode(i)
            tag.appendChild(t)

        root = dom_document.createElement("CustomFolders")
        main_data.appendChild(root)

        file = open(os.path.join(self.projectPath, "Rope", "profile.xml"), "w")
        file.write('<?xml version="1.0" encoding="UTF-8"?>\n')
        file.write(dom_document.toString())
        file.close()
Example #18
0
 def createDomDocument(self):
     """
     Create the QDomDocument where to store project information.
     """
     self.document = QtXml.QDomDocument()
     instruction = self.document.createProcessingInstruction(
         'xml', 'version="1.0" encoding="UTF-8"')
     self.document.appendChild(instruction)
     graphol = self.document.createElement('graphol')
     graphol.setAttribute('version', '2')
     self.document.appendChild(graphol)
Example #19
0
    def writeDefaultSession(self):
        # FIXME QtXml is no longer supported.
        dom_document = QtXml.QDomDocument("session")

        session = dom_document.createElement("session")
        dom_document.appendChild(session)

        file = open(os.path.join(self.projectPath, "Data", "session.xml"), "w")
        file.write('<?xml version="1.0" encoding="UTF-8"?>\n')
        file.write(dom_document.toString())
        file.close()
Example #20
0
    def loadProjectData(self):
        # FIXME QtXml is no longer supported.
        dom_document = QtXml.QDomDocument()
        file = open(os.path.join(self.projectPathDict[
                    "root"], "Data", "projectdata.xml"), "r")
        x = dom_document.setContent(file.read())
        file.close()

        elements = dom_document.documentElement()
        node = elements.firstChild()

        shortcuts = []
        recentfiles = []
        favourites = []
        launchers = {}

        settingsList = []
        while node.isNull() is False:
            property = node.toElement()
            sub_node = property.firstChild()
            while sub_node.isNull() is False:
                sub_prop = sub_node.toElement()
                if node.nodeName() == "shortcuts":
                    shortcuts.append(sub_prop.text())
                elif node.nodeName() == "recentfiles":
                    if os.path.exists(sub_prop.text()):
                        recentfiles.append(sub_prop.text())
                    else:
                        pass
                elif node.nodeName() == "favourites":
                    favourites.append(sub_prop.text())
                elif node.nodeName() == "settings":
                    settingsList.append((tuple(sub_prop.text().split('=', 1))))
                elif node.nodeName() == "launchers":
                    tag = sub_prop.toElement()
                    path = tag.attribute("path")
                    param = tag.attribute("param")
                    launchers[path] = param
                sub_node = sub_node.nextSibling()
            node = node.nextSibling()
        settingsDict = dict(settingsList)

        settingsDict['LastCloseSuccessful'] = settingsDict['Closed']
        settingsDict['Closed'] = "False"

        self.projectData = {}
        self.projectData["shortcuts"] = shortcuts
        self.projectData["favourites"] = favourites
        self.projectData["recentfiles"] = recentfiles
        self.projectData["settings"] = settingsDict
        self.projectData["launchers"] = launchers

        # in order that a crash can be reported
        self.saveProjectData()
Example #21
0
    def setMainScript(self):
        fileName = self.getCurrentFilePath()
        self.projectPathDict["mainscript"] = fileName

        # FIXME QtXml is no longer supported.
        dom_document = QtXml.QDomDocument()
        file = open(self.projectPathDict["projectmainfile"], "r")
        x = dom_document.setContent(file.read())
        file.close()

        elements = dom_document.documentElement()
        node = elements.firstChild()

        settingsDict = {}
        while node.isNull() is False:
            tag = node.toElement()

            settingsDict["Type"] = tag.attribute("Type")
            settingsDict["Name"] = tag.attribute("Name")
            settingsDict["MainScript"] = tag.attribute("MainScript")
            settingsDict["Version"] = tag.attribute("Version")

            node = node.nextSibling()

        settingsDict["MainScript"] = fileName

        # save data
        # FIXME QtXml is no longer supported.
        dom_document = QtXml.QDomDocument("Project")
        properties = dom_document.createElement("properties")
        dom_document.appendChild(properties)

        tag = dom_document.createElement("pycoder_project")
        for key, value in settingsDict.items():
            tag.setAttribute(key, value)
        properties.appendChild(tag)

        file = open(self.projectPathDict["projectmainfile"], "w")
        file.write('<?xml version="1.0" encoding="UTF-8"?>\n')
        file.write(dom_document.toString())
        file.close()
Example #22
0
    def getElements(self, fileopen):
        doc = QtXml.QDomDocument()
        if not doc.setContent(fileopen):
            return []

        rectangles = self.__getRectangles(doc)
        ellipses = self.__getEllipses(doc)
        circles = self.__getCircles(doc)
        lines = self.__getLines(doc)
        polygons = self.__getPolygons(doc)
        texts = self.__getTexts(doc)

        return rectangles + ellipses + circles + lines + polygons + texts
Example #23
0
    def getSize(self, fileopen):
        doc = QtXml.QDomDocument()
        if not doc.setContent(fileopen):
            return QtCore.QRectF(0, 0, 200, 200)

        SVGNode = doc.elementsByTagName('svg')
        if len(SVGNode) > 0:
            SVGNodeElement = SVGNode.at(0).toElement()
            viewBoxParams = self.__findParams(
                r"([-?+?0-9.,]+)", SVGNodeElement.attribute('viewBox'))
            return QtCore.QRectF(int(viewBoxParams[0]), int(viewBoxParams[1]),
                                 int(viewBoxParams[2]), int(viewBoxParams[3]))
        else:
            return QtCore.QRectF(0, 0, 200, 200)
Example #24
0
def deserialize_sld_named_layer(
    raw_sld_named_layer: str,
) -> typing.Tuple[typing.Optional[QtXml.QDomElement], str]:
    """Deserialize the SLD named layer element which is used to style QGIS layers."""
    sld_doc = QtXml.QDomDocument()
    sld_loaded = sld_doc.setContent(
        QtCore.QByteArray(raw_sld_named_layer.encode()), True)
    error_message = "Could not parse SLD document"
    named_layer_element = None
    if sld_loaded:
        named_layer_element = sld_doc.documentElement()
        if not named_layer_element.isNull():
            error_message = ""
    return named_layer_element, error_message
Example #25
0
    def createDomDocument(self):
        """
        Create the QDomDocument from where to parse information.
        """
        QtWidgets.QApplication.processEvents()

        LOGGER.info('Loading diagram: %s', self.path)

        if not fexists(self.path):
            raise DiagramNotFoundError('diagram not found: {0}'.format(self.path))

        self.document = QtXml.QDomDocument()
        if not self.document.setContent(fread(self.path)):
            raise DiagramNotValidError('could not parse diagram from {0}'.format(self.path))
Example #26
0
    def execute(self, filename):
        doc = QtXml.QDomDocument("Geometric Constraints")
        root = doc.createElement("Objects")
        doc.appendChild(root)

        for prtObject in self.prototypeManager.prtObjects:
            if not prtObject.ghost:
                root.appendChild(prtObject.save(doc))
        root.appendChild(self.prototypeManager.save(doc))

        file = QtCore.QFile(filename)
        if file.open(QtCore.QIODevice.WriteOnly):
            ts = QtCore.QTextStream(file)
            ts << doc.toString()
            file.close()
Example #27
0
    def saveUseData(self):
        # FIXME QtXml is no longer supported.
        dom_document = QtXml.QDomDocument("usedata")

        usedata = dom_document.createElement("usedata")
        dom_document.appendChild(usedata)

        root = dom_document.createElement("openedprojects")
        usedata.appendChild(root)

        for i in self.OPENED_PROJECTS:
            tag = dom_document.createElement("project")
            root.appendChild(tag)

            t = dom_document.createTextNode(i)
            tag.appendChild(t)

        root = dom_document.createElement("settings")
        usedata.appendChild(root)

        s = 0
        for key, value in self.SETTINGS.items():
            if key == "InstalledInterpreters":
                continue
            tag = dom_document.createElement("key")
            root.appendChild(tag)

            t = dom_document.createTextNode(key + '=' + value)
            tag.appendChild(t)
            s += 1

        usedata = dom_document.createElement("usedata")
        dom_document.appendChild(usedata)

        try:    
            file = open(self.appPathDict["usedata"], "w")
            file.write('<?xml version="1.0" encoding="UTF-8"?>\n')
            file.write(dom_document.toString())
            file.close()
        except:
            exc_type, exc_value, exc_traceback = sys.exc_info()
            logging.error(repr(traceback.format_exception(exc_type, exc_value,
                         exc_traceback)))
            return

        self.settings["running"] = 'False'
        self.saveSettings()
        self.saveModulesForCompletion()
Example #28
0
    def run(self):
        self.found = []
        if self.reg:
            txt = self.text
        else:
            txt = re.escape(self.text)
        if self.wo:
            txt = "\\b{0}\\b".format(txt)
        flags = re.UNICODE | re.LOCALE
        if not self.cs:
            flags |= re.IGNORECASE
        try:
            search = re.compile(txt, flags)
        except re.error as why:
            print(why)

        files = os.listdir(self.libraryDir)
        # FIXME QtXml is no longer supported.
        dom_document = QtXml.QDomDocument()
        for i in range(len(files)):
            if self.stop:
                break
            file = os.path.abspath(os.path.join(self.libraryDir, files[i]))

            try:
                text = open(file, 'r').read()
            except:
                continue
            dom_document.setContent(text)

            documentElement = dom_document.documentElement()
            childElement = documentElement.firstChild().toElement()
            while childElement.isNull() is False:
                if childElement.nodeName() == 'comments':
                    if (self.searchLoc == 0) or (self.searchLoc == 2):
                        comments = childElement.firstChild().nodeValue()
                        contains = search.search(comments)
                        if contains:
                            self.found.append(files[i])
                elif childElement.nodeName() == 'code':
                    if (self.searchLoc == 0) or (self.searchLoc == 1):
                        code = childElement.firstChild().nodeValue()
                        contains = search.search(code)
                        if contains:
                            if files[i] not in self.found:
                                self.found.append(files[i])
                childElement = childElement.nextSibling()
            self.searchSoFar.emit(i)
Example #29
0
def deserialize_sld_doc(
    raw_sld_doc: QtCore.QByteArray,
) -> typing.Tuple[typing.Optional[QtXml.QDomElement], str]:
    """Deserialize SLD document gotten from GeoNode into a usable named layer element"""
    sld_doc = QtXml.QDomDocument()
    # in the line below, `True` means use XML namespaces and it is crucial for
    # QGIS to be able to load the SLD
    sld_loaded = sld_doc.setContent(raw_sld_doc, True)
    error_message = "Could not parse SLD document"
    named_layer_element = None
    if sld_loaded:
        root = sld_doc.documentElement()
        if not root.isNull():
            sld_named_layer = root.firstChildElement("NamedLayer")
            if not sld_named_layer.isNull():
                named_layer_element = sld_named_layer
                error_message = ""
    return named_layer_element, error_message
Example #30
0
    def run(self, path):
        """
        Perform graph references document generation.
        :type path: str
        """
        # CREATE THE DOCUMENT
        self.document = QtXml.QDomDocument()
        instruction = self.document.createProcessingInstruction('xml', 'version="1.0" encoding="UTF-8" standalone="no"')
        self.document.appendChild(instruction)

        # CREATE ROOT ELEMENT
        root = self.document.createElement('graphReferences')

        # GENERATE NODES
        for diagram in self.project.diagrams():
            for node in diagram.nodes():
                QtCore.QCoreApplication.processEvents()
                if node.isMeta():
                    iri = self.project.get_full_IRI(
                        self.project.get_iri_of_node(node), None, node.remaining_characters)
                    diagramElement = self.document.createElement('diagramName')
                    diagramElement.appendChild(self.document.createTextNode(diagram.name))
                    xElement = self.document.createElement('x')
                    xElement.appendChild(self.document.createTextNode(str(int(node.x()))))
                    yElement = self.document.createElement('y')
                    yElement.appendChild(self.document.createTextNode(str(int(node.y()))))
                    wElement = self.document.createElement('w')
                    wElement.appendChild(self.document.createTextNode(str(int(node.width()))))
                    hElement = self.document.createElement('h')
                    hElement.appendChild(self.document.createTextNode(str(int(node.height()))))
                    nodeElement = self.document.createElement(node.type().realName.replace(' node', ''))
                    nodeElement.setAttribute('name', iri)
                    nodeElement.appendChild(diagramElement)
                    nodeElement.appendChild(xElement)
                    nodeElement.appendChild(yElement)
                    nodeElement.appendChild(wElement)
                    nodeElement.appendChild(hElement)
                    root.appendChild(nodeElement)

        # APPEND THE GRAPH TO THE DOCUMENT
        self.document.appendChild(root)

        # GENERATE THE FILE
        fwrite(self.document.toString(2), path)