def loadBlock(self, parent, blockName, block): logging.debug("Processing Block %s in %s" % (blockName, parent.blockName)) type = block.type if type == 'frame': blockWidget = QFrame(parent) elif type == 'label': blockWidget = QLabel(parent) else: raise Exception("%s.type = % invalid block type" % (blockName, type)) blockWidget.setObjectName(blockName) geometry = self._calcGeometry(parent, block) logging.debug("Block Geometry: %s" % (geometry)) blockWidget.setGeometry(geometry) styleString = self._buildFullStyleString( blockName, block, blockWidget.size() ) logging.debug("Block Style " + styleString) blockWidget.setStyleSheet(styleString) if 'text' in block: logger.debug("Block Text: %s" % (block.text)) blockWidget.setText(block.text) blockWidget.blockName = blockName blockWidget.blockType = type self.blocks[blockName] = blockWidget if 'blocks' in block: self.loadBlocks(blockWidget, block.blocks)
def initWidgets(self): self.setStyleSheet(self.styles.default) unsortedPages = [] for pageName in self.config.pages: page = self.config.pages[pageName] logging.debug("Building Page: " + pageName) order = 0 if 'order' in page: order = page.order pageFrame = QFrame(self) pageFrame.setVisible(False) pageFrame.setObjectName(pageName) pageFrame.setGeometry( 0, 0, self.screen.width(), self.screen.height()) styleString = self._buildFullStyleString(pageName, page) logging.debug("Page Style " + styleString) pageFrame.setStyleSheet(styleString) pageFrame.order = order pageFrame.blockName = pageName self.pages[pageName] = pageFrame unsortedPages.append(pageFrame) if 'blocks' in page: logging.debug("call loadblocks, passing %s %s" % (self.blockName, self)) self.loadBlocks(pageFrame, page.blocks) sortedPages = sorted(unsortedPages, key=lambda x: x.order) for i in range(len(sortedPages)): pageFrame = sortedPages[i] if i == 0: pageFrame.setVisible(True) pageFrame.pageNumber = i self.pages[pageFrame.blockName] = pageFrame for module in self.config.plugins: self.loadModule(module, self.config.plugins[module])