def __init__(self, stylesheet, data, preview, snippet, parent=None): QtGui.QWidget.__init__(self,parent) self.scale = .3 self.data = data self.ui=Ui_stylesheets() self.ui.setupUi(self) self.stylesheet=stylesheet self.ui.preview=preview self.ui.snippet=snippet sheets=[] for folder in self.stylesheet.StyleSearchPath: sheets.extend(glob.glob(os.path.join(folder,'*.style'))) sheets.extend(glob.glob(os.path.join(folder,'*.json'))) sheets.sort() for s in sheets: self.ui.system.addItem(os.path.basename(s)) self.applyChanges()
class StyleSheets(QtGui.QWidget): def __init__(self, stylesheet, data, preview, snippet, parent=None): QtGui.QWidget.__init__(self,parent) self.scale = .3 self.data = data self.ui=Ui_stylesheets() self.ui.setupUi(self) self.stylesheet=stylesheet self.ui.preview=preview self.ui.snippet=snippet sheets=[] for folder in self.stylesheet.StyleSearchPath: sheets.extend(glob.glob(os.path.join(folder,'*.style'))) sheets.extend(glob.glob(os.path.join(folder,'*.json'))) sheets.sort() for s in sheets: self.ui.system.addItem(os.path.basename(s)) self.applyChanges() def on_addFromFile_clicked(self, b = None): if b is None: return fname=QtGui.QFileDialog.getOpenFileName(self, 'Open Stylesheet', os.getcwd(), 'stylesheets (*.json *.style)' ) if fname: self.ui.custom.addItem(fname) self.applyChanges() def on_addFromSystem_clicked(self, b = None): if b is None: return for i in self.ui.system.selectedItems(): self.ui.custom.addItem(i.text()) i.setSelected(False) self.applyChanges() def on_remove_clicked(self, b = None): if b is None: return i=self.ui.custom.currentItem() if not i: return self.ui.custom.takeItem(self.ui.custom.currentRow()) self.applyChanges() def on_up_clicked(self, b = None): if b is None: return i=self.ui.custom.currentItem() if not i: return cr=self.ui.custom.currentRow() i=self.ui.custom.takeItem(cr) self.ui.custom.insertItem(cr-1,i) self.ui.custom.setCurrentItem(i) self.applyChanges() def on_down_clicked(self, b = None): if b is None: return i=self.ui.custom.currentItem() if not i: return cr=self.ui.custom.currentRow() i=self.ui.custom.takeItem(cr) self.ui.custom.insertItem(cr+1,i) self.ui.custom.setCurrentItem(i) self.applyChanges() def updatePreview(self): body=highlight(json.dumps(self.data, indent=2), JavascriptLexer(),HtmlFormatter()) head=HtmlFormatter().get_style_defs('.highlight') self.ui.snippet.setHtml( '''<HEAD> <STYLE type="text/css"> %s </STYLE> </HEAD> <BODY> %s </BODY> '''%(head,body)) def applyChanges(self): self.data.update({'options':{'stylesheets':[str(self.ui.custom.item(x).text()) \ for x in range(self.ui.custom.count())]}}) self.updatePreview()