Пример #1
0
def test_fromXML():
    """
        Ensure UITemplate creates a dictionary structure from XML correctly
    """
    xml = """<container randomattribute="Hello">
                <childelement id="SomeRandomId" name="SomeRandomName">
                    <childishchildelement />
                </childelement>
             </container>"""

    assert UITemplate.fromXML(xml) == EXPECTED_STRUCTURE
Пример #2
0
def test_fromXML():
    """
        Ensure UITemplate creates a dictionary structure from XML correctly
    """
    xml = """<container randomattribute="Hello">
                <childelement id="SomeRandomId" name="SomeRandomName">
                    <childishchildelement />
                </childelement>
             </container>"""

    assert UITemplate.fromXML(xml) == EXPECTED_STRUCTURE
Пример #3
0
    def updatePreview(self, redrawTree=True):
        if not unicode(self.ui.wuiXML.toPlainText()) or unicode(
                self.ui.wuiXML.toPlainText()) == self.oldXML:
            return

        selected = app.focusWidget()
        try:
            self.structure = UITemplate.fromXML(
                unicode(self.ui.wuiXML.toPlainText()))
            structureCopy = copy.deepcopy(self.structure)
            self.highlightSelected(structureCopy)
            element = GuiBuilderConfig.Factory.buildFromTemplate(structureCopy)
            scriptContainer = GuiBuilderConfig.Factory.build('ScriptContainer')
            validTemplate = True
        except Exception as e:
            validTemplate = False
            self.ui.wuiXML.setText(self.oldXML)
            self.ui.wuiSHPAML.setText(self.oldSHPAML)
            self.ui.splitter.setStyleSheet(
                "#splitter{background-color:#ffc0c0;}")
            if selected:
                selected.setStyleSheet("background-color: #ffc0c0;")
            print("Exception thrown trying to render template: " + str(e))

        if validTemplate:
            if redrawTree:
                self.ui.splitter.setStyleSheet(
                    "#splitter{background-color:rgb(204, 204, 204);}")
                if selected:
                    selected.setStyleSheet("")
            self.oldXML = unicode(self.ui.wuiXML.toPlainText())
            self.oldSHPAML = unicode(self.ui.wuiSHPAML.toPlainText())
            element.setScriptContainer(scriptContainer)
            element.addChildElement(scriptContainer)

            scrollPosition = self.ui.preview.page().mainFrame().scrollPosition(
            )
            if scrollPosition:
                self.scrollPosition = QPoint(scrollPosition.x(),
                                             scrollPosition.y())
            self.ui.preview.setHtml(self.html(element.toHTML()),
                                    QUrl.fromLocalFile(sharedFilesRoot + "/"))

            if redrawTree:
                self.updateTree()
                self.disconnect(self.ui.wuiSHPAML, SIGNAL("textChanged()"),
                                self.updateXML)
                self.convertTreeToTemplate()
                self.connect(self.ui.wuiSHPAML, SIGNAL("textChanged()"),
                             self.updateXML)

        self.updateSaveIndicator()
Пример #4
0
    def updatePreview(self, redrawTree=True):
        if not self.ui.wuiXML.toPlainText() or self.ui.wuiXML.toPlainText() == self.oldXML:
            return

        selected = app.focusWidget()
        try:
            self.structure = UITemplate.fromXML(unicode(self.ui.wuiXML.toPlainText()))
            structureCopy = copy.deepcopy(self.structure)
            self.highlightSelected(structureCopy)
            element = GuiBuilderConfig.Factory.buildFromTemplate(structureCopy)
            scriptContainer = GuiBuilderConfig.Factory.build('ScriptContainer')
            validTemplate = True
        except Exception as e:
            validTemplate = False
            self.ui.wuiXML.setText(self.oldXML)
            self.ui.wuiSHPAML.setText(self.oldSHPAML)
            self.ui.splitter.setStyleSheet("#splitter{background-color:#ffc0c0;}")
            if selected:
                selected.setStyleSheet("background-color: #ffc0c0;");
            print("Exception thrown trying to render template: " + str(e))

        if validTemplate:
            if redrawTree:
                self.ui.splitter.setStyleSheet("#splitter{background-color:rgb(204, 204, 204);}")
                if selected:
                    selected.setStyleSheet("");
            self.oldXML = self.ui.wuiXML.toPlainText()
            self.oldSHPAML = self.ui.wuiSHPAML.toPlainText()
            element.setScriptContainer(scriptContainer)
            element.addChildElement(scriptContainer)


            scrollPosition = self.ui.preview.page().mainFrame().scrollPosition()
            if scrollPosition:
                self.scrollPosition = QPoint(scrollPosition.x(), scrollPosition.y())
            self.ui.preview.setHtml(self.html(element.toHTML()), QUrl.fromLocalFile(sharedFilesRoot + "/"))

            if redrawTree:
                self.updateTree()
                self.disconnect(self.ui.wuiSHPAML, SIGNAL("textChanged()"), self.updateXML)
                self.convertTreeToTemplate()
                self.connect(self.ui.wuiSHPAML, SIGNAL("textChanged()"), self.updateXML)

        self.updateSaveIndicator()