Beispiel #1
0
 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()
Beispiel #2
0
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()