def __init__(self, *args): QtGui.QWidget.__init__(self,None) self.ui = Ui_styleWidget() self.ui.setupUi(self) self.styleDetails = {} # listIcon widget shows Kde's desktop types if not ctx.Pds.session.Name == "kde": self.ui.listIcon.item(0).setHidden(True) self.ui.labelDesktopType.setVisible(False) self.ui.comboBoxDesktopType.setVisible(False) elif ctx.Pds.session.Name == "kde": self.ui.listIcon.item(1).setHidden(True) self.ui.label.setText(str(ctx.Pds.session.Name)+" Themes") self.catLang = Desktop.common.getLanguage() # Get desktop number defaultDesktopNumber = Desktop.style.getDesktopNumber() self.__class__.screenSettings["desktopNumber"]= defaultDesktopNumber self.ui.spinBoxDesktopNumbers.setValue(defaultDesktopNumber) # Get theme list lst2 = Desktop.style.getThemeList() for themes in lst2: ThemeFile = themes themes = themes.split(".")[0] thumbFolder = Desktop.style.themesPreviewFile + themes + ".png" # Kde need to know details of theme if ctx.Pds.session.Name == "kde": StyleName = themes self.styleDetails[StyleName] = Desktop.style.getThemeDetails(ThemeFile) self.__class__.screenSettings["iconTheme"] = Desktop.style.iconTheme try: try: StyleName = Desktop.style.styleName except : StyleName = theme try: StyleDesc = Desktop.style.styleDesc except: StyleDesc = "theme" except: print "Warning! Invalid syntax in ", themes if (os.path.exists(thumbFolder)): self.list_themes.append(themes) styleThumb = thumbFolder item = QtGui.QListWidgetItem(self.ui.listStyles) widget = StyleItemWidget(unicode(StyleName),unicode(StyleDesc),thumbFolder,self.ui.listStyles) if ctx.Pds.session.Name == "kde": item.setSizeHint(QSize(120,170)) else: item.setSizeHint(QSize(130,160)) self.ui.listStyles.setItemWidget(item,widget) item.setStatusTip(themes) self.ui.listStyles.connect(self.ui.listStyles, SIGNAL("itemSelectionChanged()"), self.setStyle) if ctx.Pds.session.Name =="fluxbox": self.ui.listIcon.setVisible(False) self.ui.iconContainer.hide() self.ui.label_3.hide() self.ui.listIcon.connect(self.ui.listIcon, SIGNAL("itemClicked(QListWidgetItem *)"), self.setIcon) if ctx.Pds.session == ctx.pds.LXDE: self.ui.spinBoxDesktopNumbers.hide() self.ui.labelDesktopNumbers.hide() self.ui.spinBoxDesktopNumbers.connect(self.ui.spinBoxDesktopNumbers, SIGNAL("valueChanged(const QString &)"), self.addDesktop) self.ui.comboBoxDesktopType.connect(self.ui.comboBoxDesktopType, SIGNAL("activated(const QString &)"), self.setDesktopType)
class Widget(QtGui.QWidget, Screen): list_themes = [] screenSettings = {} screenSettings["hasChanged"] = False screenSettings["iconChanged"] = False screenSettings["iconTheme"] = "" screenSettings["styleChanged"] = False screenSettings["hasChangedDesktopType"] = False screenSettings["hasChangedDesktopNumber"] = False # Set title and description for the information widget title = i18n("Themes") desc = i18n("Customize Your Desktop") def __init__(self, *args): QtGui.QWidget.__init__(self,None) self.ui = Ui_styleWidget() self.ui.setupUi(self) self.styleDetails = {} # listIcon widget shows Kde's desktop types if not ctx.Pds.session.Name == "kde": self.ui.listIcon.item(0).setHidden(True) self.ui.labelDesktopType.setVisible(False) self.ui.comboBoxDesktopType.setVisible(False) elif ctx.Pds.session.Name == "kde": self.ui.listIcon.item(1).setHidden(True) self.ui.label.setText(str(ctx.Pds.session.Name)+" Themes") self.catLang = Desktop.common.getLanguage() # Get desktop number defaultDesktopNumber = Desktop.style.getDesktopNumber() self.__class__.screenSettings["desktopNumber"]= defaultDesktopNumber self.ui.spinBoxDesktopNumbers.setValue(defaultDesktopNumber) # Get theme list lst2 = Desktop.style.getThemeList() for themes in lst2: ThemeFile = themes themes = themes.split(".")[0] thumbFolder = Desktop.style.themesPreviewFile + themes + ".png" # Kde need to know details of theme if ctx.Pds.session.Name == "kde": StyleName = themes self.styleDetails[StyleName] = Desktop.style.getThemeDetails(ThemeFile) self.__class__.screenSettings["iconTheme"] = Desktop.style.iconTheme try: try: StyleName = Desktop.style.styleName except : StyleName = theme try: StyleDesc = Desktop.style.styleDesc except: StyleDesc = "theme" except: print "Warning! Invalid syntax in ", themes if (os.path.exists(thumbFolder)): self.list_themes.append(themes) styleThumb = thumbFolder item = QtGui.QListWidgetItem(self.ui.listStyles) widget = StyleItemWidget(unicode(StyleName),unicode(StyleDesc),thumbFolder,self.ui.listStyles) if ctx.Pds.session.Name == "kde": item.setSizeHint(QSize(120,170)) else: item.setSizeHint(QSize(130,160)) self.ui.listStyles.setItemWidget(item,widget) item.setStatusTip(themes) self.ui.listStyles.connect(self.ui.listStyles, SIGNAL("itemSelectionChanged()"), self.setStyle) if ctx.Pds.session.Name =="fluxbox": self.ui.listIcon.setVisible(False) self.ui.iconContainer.hide() self.ui.label_3.hide() self.ui.listIcon.connect(self.ui.listIcon, SIGNAL("itemClicked(QListWidgetItem *)"), self.setIcon) if ctx.Pds.session == ctx.pds.LXDE: self.ui.spinBoxDesktopNumbers.hide() self.ui.labelDesktopNumbers.hide() self.ui.spinBoxDesktopNumbers.connect(self.ui.spinBoxDesktopNumbers, SIGNAL("valueChanged(const QString &)"), self.addDesktop) self.ui.comboBoxDesktopType.connect(self.ui.comboBoxDesktopType, SIGNAL("activated(const QString &)"), self.setDesktopType) #self.ui.previewButton.connect(self.ui.previewButton, SIGNAL("clicked()"), self.previewStyle) def ConfigSectionMap(self,section): dict1 = {} options = self.Config.options(section) for option in options: try: dict1[option] = self.Config.get(section, option) if dict1[option] == -1: DebugPrint("skip: %s" % option) except: print("exception on %s!" % option) dict1[option] = None return dict1 def addDesktop(self, numberOfDesktop): self.__class__.screenSettings["hasChangedDesktopNumber"] = True self.__class__.screenSettings["desktopNumber"] = str(numberOfDesktop) def setDesktopType(self): currentIndex = self.ui.comboBoxDesktopType.currentIndex() if currentIndex == 0: self.selectedType = 'desktop' else: self.selectedType = 'folderview' self.__class__.screenSettings["hasChangedDesktopType"] = True self.__class__.screenSettings["desktopType"] = self.selectedType def setStyle(self): styleName = str(self.ui.listStyles.currentItem().statusTip()) for wallpaper_index in range (self.ui.listStyles.count()): self.ui.listStyles.item(wallpaper_index).setBackground(Qt.gray); self.ui.listStyles.currentItem().setBackground(Qt.blue) self.__class__.screenSettings["summaryMessage"] = unicode(styleName.split(".")[0]) self.__class__.screenSettings["hasChanged"] = True self.__class__.screenSettings["styleChanged"] = True self.__class__.screenSettings["styleDetails"] = self.styleDetails self.__class__.screenSettings["styleName"] = styleName def setIcon(self): self.__class__.screenSettings["hasChanged"] = True self.iconTheme = unicode(self.ui.listIcon.selectedItems()[0].text()) self.iconTheme = str(self.iconTheme.split()[0]).lower() self.__class__.screenSettings["iconTheme"] = self.iconTheme self.__class__.screenSettings["summaryMessage"] = unicode(self.iconTheme) self.__class__.screenSettings["iconChanged"] = True def shown(self): pass def execute(self): return True