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
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()
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()