def __init__(self, *args): QtGui.QWidget.__init__(self,None) self.ui = Ui_mouseWidget() self.ui.setupUi(self) # Our default click behaviour is double click. So make SingleClick = false (kdeglobals) self.clickBehaviour = "False" # read default settings try: config = KConfig("kcminputrc") group = config.group("Mouse") self.__class__.screenSettings["selectedMouse"] = group.readEntry("MouseButtonMapping") config = KConfig("kdeglobals") group = config.group("KDE") self.__class__.screenSettings["selectedBehaviour"] = str(group.readEntry("SingleClick")) self.ui.singleClick.setChecked(self.str2bool(self.__class__.screenSettings["selectedBehaviour"])) self.clickBehaviour = self.str2bool(self.__class__.screenSettings["selectedBehaviour"]) if self.__class__.screenSettings["selectedMouse"] == "LeftHanded": self.ui.radioButtonLeftHand.setChecked(True) except: pass # set signals self.connect(self.ui.radioButtonRightHand, SIGNAL("toggled(bool)"), self.setHandedness) self.connect(self.ui.checkReverse, SIGNAL("toggled(bool)"), self.setHandedness)
def initializeGlobals(self): ''' initializes global variables ''' self.screenData = None self.moveInc = 1 self.menuText = "" self.titles = [] self.descriptions = [] self.currentDir = os.path.dirname(os.path.realpath(__file__)) self.screensPath = self.currentDir + "/kaptan/screens/scr*py" self.kaptanConfig = KConfig("kaptanrc") self.plasmaConfig = KConfig("plasma-desktop-appletsrc")
def __init__(self, parent=None): QtGui.QWidget.__init__(self, parent) self.ui = Ui_kaptanUI() self.ui.setupUi(self) self.screens = availableScreens self.screenData = None self.moveInc = 1 self.menuText = "" self.config = KConfig("kaptanrc") self.createWidgets(self.screens) self.screenId = [] for each in self.screens: #title = each.Widget().windowTitle() title = "camera" self.screenId.append(title) if self.screens.index(each) == 0: self.menuText += self.putBold(title) else: self.menuText += self.putBr(title) self.ui.labelMenu.setText(self.menuText) QtCore.QObject.connect(self.ui.buttonNext, QtCore.SIGNAL("clicked()"), self.slotNext) QtCore.QObject.connect(self.ui.buttonBack, QtCore.SIGNAL("clicked()"), self.slotBack) QtCore.QObject.connect(self.ui.buttonFinish, QtCore.SIGNAL("clicked()"), QtGui.qApp, QtCore.SLOT("quit()")) QtCore.QObject.connect(self.ui.buttonCancel, QtCore.SIGNAL("clicked()"), QtGui.qApp, QtCore.SLOT("quit()"))
def setKopeteAccounts(self): "Add imported accounts into Kopete" config = KConfig("kopeterc") for account in self.accounts: if account["type"] == "Jabber": groupname = "Account_JabberProtocol_" + account["user"] if not config.hasGroup(groupname): pluginsGroup = config.group("Plugins") pluginsGroup.writeEntry("kopete_jabberEnabled", "true") accountGroup = config.group(groupname) accountGroup.writeEntry("AccountId", account["user"]) accountGroup.writeEntry("Protocol", "JabberProtocol") accountGroup.writeEntry("CustomServer", "true") accountGroup.writeEntry("Server", account["host"]) accountGroup.writeEntry("Port", account["port"]) if account["SSL"]: accountGroup.writeEntry("UseSSL", "true") elif account["type"] == "MSN": groupname = "Account_MSNProtocol_" + account["mail"] if not config.hasGroup(groupname): pluginsGroup = config.group("Plugins") pluginsGroup.writeEntry("kopete_msnEnabled", "true") accountGroup = config.group(groupname) accountGroup.writeEntry("AccountId", account["mail"]) accountGroup.writeEntry("Protocol", "MSNProtocol") accountGroup.writeEntry("serverName", "messenger.hotmail.com") accountGroup.writeEntry("serverPort", 1863) config.sync()
def get_last_session(): config = KConfig('katerc') kgroup = KConfigGroup(config, "General") session = kgroup.readEntry("Last Session") if session: session = unicode(session) session = session.replace('.katesession', '') return session return None
def update_kconfig(self, src_config_path, dst_config_path): """Update a configuration file which is in format of kconfig. Args: src_config_path (str): relative path to the source configuration file dst_config_path (str): path to the file to apply patch to """ assert isinstance(src_config_path, str) assert isinstance(dst_config_path, str) assert not os.path.isabs( src_config_path), 'The source should be relative' src_config_path = self.make_abs_path(src_config_path) assert os.path.isfile(src_config_path) dst_config_path = self.make_abs_path(dst_config_path) self.print_html( 'Updating configuration in <code>%s</code> from <code>%s</code>.' % (dst_config_path, src_config_path)) # http://api.kde.org/4.x-api/kdelibs-apidocs/kdeui/html/classKGlobalSettings.html # http://api.kde.org/4.x-api/kdelibs-apidocs/kdecore/html/classKConfig.html # http://api.kde.org/4.x-api/kdelibs-apidocs/kdecore/html/classKConfigGroup.html # https://projects.kde.org/projects/kde/kdebase/kde-runtime/repository/show/kreadconfig def update_group(src_group, dst_group, bkp_group): for entry_name, new_entry_value in src_group.entryMap().items(): if hasattr(dst_group, 'writeEntry'): old_entry_value = dst_group.readEntry(entry_name) dst_group.writeEntry(entry_name, new_entry_value) if new_entry_value != old_entry_value and old_entry_value: bkp_group.writeEntry(entry_name, old_entry_value) for group_name in src_group.groupList(): update_group(src_group.group(group_name), dst_group.group(group_name), bkp_group.group(group_name)) src_cfg = KConfig(src_config_path, KConfig.SimpleConfig) dst_cfg = KConfig(dst_config_path, KConfig.SimpleConfig) bkp_cfg = KConfig( '', KConfig.SimpleConfig) # we keep here original settings of dest update_group(src_cfg, dst_cfg, bkp_cfg) # update top level entries update_group(src_cfg.group(''), dst_cfg.group(''), bkp_cfg) dst_cfg.sync() # save the current state of the configuration object
def initializeGlobals(self): ''' initializes global variables ''' self.screenData = None self.moveInc = 1 self.menuText = "" self.titles = [] self.descriptions = [] self.currentDir = os.path.dirname(os.path.realpath(__file__)) self.screensPath = self.currentDir + "/migration/gui/Scr*py" self.migrationConfig = KConfig("migrationrc")
def setHandedness(self, item): mapMouse = {} if self.ui.radioButtonRightHand.isChecked(): handed = RIGHT_HANDED else: handed = LEFT_HANDED mapMouse = display.Display().get_pointer_mapping() num_buttons = len(mapMouse) if num_buttons == 1: mapMouse[0] = 1 elif num_buttons == 2: if handed == RIGHT_HANDED: mapMouse[0], mapMouse[1] = 1, 3 else: mapMouse[0], mapMouse[1] = 3, 1 else: if handed == RIGHT_HANDED: mapMouse[0], mapMouse[2] = 1, 3 else: mapMouse[0], mapMouse[2] = 3, 1 if num_buttons >= 5: pos = 0 for pos in range(num_buttons): if mapMouse[pos] == 4 or mapMouse[pos] == 5: break if pos < num_buttons - 1: if self.ui.checkReverse.isChecked(): mapMouse[pos], mapMouse[pos + 1] = 5, 4 else: mapMouse[pos], mapMouse[pos + 1] = 4, 5 display.Display().set_pointer_mapping(mapMouse) config = KConfig("kcminputrc") group = config.group("Mouse") if handed == RIGHT_HANDED: group.writeEntry("MouseButtonMapping", QString("RightHanded")) self.__class__.screenSettings["selectedMouse"] = "RightHanded" else: group.writeEntry("MouseButtonMapping", QString("LeftHanded")) self.__class__.screenSettings["selectedMouse"] = "LeftHanded" group.writeEntry("ReverseScrollPolarity", QString(str(self.ui.checkReverse.isChecked()))) config.sync() KGlobalSettings.self().emitChange(KGlobalSettings.SettingsChanged, KGlobalSettings.SETTINGS_MOUSE)
def getResourceConfigGroup(account): """Get Resource Config Groups for account type""" accountGroups = [] if account["type"] == "SMTP": config = KConfig("mailtransports") generalGroup = config.group("General") defaultAccount = generalGroup.readEntry("default-transport") if defaultAccount: groupname = QString("Transport ").append(defaultAccount) transportGroup = config.group(groupname) accountGroups.append(transportGroup) return accountGroups[0] else: config = KConfig("kmailrc") for each in list(config.groupList()): if each.contains( "Account") and not each.endsWith("Wizard"): account = config.group(each) accountGroups.append(account) return accountGroups
def applySettings(self): # write selected configurations to future package-managerrc config = KConfig("package-managerrc") group = config.group("General") group.writeEntry("SystemTray", str(self.ui.showTray.isChecked())) group.writeEntry("UpdateCheck", str(self.ui.checkUpdate.isChecked())) group.writeEntry("UpdateCheckInterval", str(self.ui.updateInterval.value() * 60)) config.sync() if self.ui.showTray.isChecked(): p = subprocess.Popen(["package-manager"], stdout=subprocess.PIPE)
def __init__(self, *args): QtGui.QWidget.__init__(self, None) self.ui = Ui_mouseWidget() self.ui.setupUi(self) # Our default click behavior is single click. So make SingleClick = true (kdeglobals) self.clickBehavior = True # read default settings try: config = KConfig("kcminputrc") group = config.group("Mouse") self.__class__.screenSettings["selectedMouse"] = group.readEntry( "MouseButtonMapping") config = KConfig("kdeglobals") group = config.group("KDE") self.__class__.screenSettings["selectedBehavior"] = str( group.readEntry("SingleClick")) # TODO: change this, put single click on top in the ui self.ui.singleClick.setChecked(True) self.ui.singleClick.setChecked( self.str2bool( self.__class__.screenSettings["selectedBehavior"])) self.clickBehavior = self.str2bool( self.__class__.screenSettings["selectedBehavior"]) if self.__class__.screenSettings["selectedMouse"] == "LeftHanded": self.ui.radioButtonLeftHand.setChecked(True) except: pass # set signals self.ui.radioButtonRightHand.toggled.connect(self.setHandedness) self.ui.checkReverse.toggled.connect(self.setHandedness) self.ui.singleClick.clicked.connect(self.clickBehaviorToggle) self.ui.DoubleClick.clicked.connect(self.clickBehaviorToggle)
def execute(self): self.__class__.screenSettings["summaryMessage"] ={} self.__class__.screenSettings["summaryMessage"].update({"selectedMouse": ki18n("Left Handed") if self.__class__.screenSettings["selectedMouse"] == "LeftHanded" else ki18n("Right Handed")}) self.__class__.screenSettings["summaryMessage"].update({"clickBehaviour": ki18n("Single Click ") if self.clickBehaviour == "True" else ki18n("Double Click")}) config = KConfig("kdeglobals") group = config.group("KDE") group.writeEntry("SingleClick", QString(self.clickBehaviour)) config.sync() KGlobalSettings.self().emitChange(KGlobalSettings.SettingsChanged, KGlobalSettings.SETTINGS_MOUSE) return True
def setHandedness(self, item): self.getMouseMap() # mouse has 1 button if self.num_buttons == 1: self.mapMouse[0] = 1 # mouse has 2 buttons elif self.num_buttons == 2: if self.handed == RIGHT_HANDED: self.mapMouse[0], self.mapMouse[1] = 1, 3 else: self.mapMouse[0], self.mapMouse[1] = 3, 1 # mouse has 3 or more buttons else: if self.handed == RIGHT_HANDED: self.mapMouse[0], self.mapMouse[2] = 1, 3 else: self.mapMouse[0], self.mapMouse[2] = 3, 1 if self.num_buttons >= 5: # get wheel position for pos in range(0, self.num_buttons): if self.mapMouse[pos] in (4, 5): break if pos < self.num_buttons - 1: if self.ui.checkReverse.isChecked(): self.mapMouse[pos], self.mapMouse[pos + 1] = 5, 4 else: self.mapMouse[pos], self.mapMouse[pos + 1] = 4, 5 display.Display().set_pointer_mapping(self.mapMouse) config = KConfig("kcminputrc") group = config.group("Mouse") if self.handed == RIGHT_HANDED: group.writeEntry("MouseButtonMapping", "RightHanded") self.__class__.screenSettings["selectedMouse"] = "RightHanded" else: group.writeEntry("MouseButtonMapping", "LeftHanded") self.__class__.screenSettings["selectedMouse"] = "LeftHanded" group.writeEntry("ReverseScrollPolarity", str(self.ui.checkReverse.isChecked())) config.sync() KGlobalSettings.self().emitChange(KGlobalSettings.SettingsChanged, KGlobalSettings.SETTINGS_MOUSE)
def __init__(self, *args): QtGui.QWidget.__init__(self,None) self.ui = Ui_menuWidget() self.ui.setupUi(self) # read default menu style first config = KConfig("plasma-desktop-appletsrc") group = config.group("Containments") self.menuNames = {} self.menuNames["launcher"] = { "menuIndex": 0, "summaryMessage": ki18n("Kick-off Menu"), "image": QtGui.QPixmap(':/raw/pixmap/kickoff.png'), "description": ki18n("Kick-off menu is the default menu of Pisi Linux.<br><br>The program shortcuts are easy to access and well organized.") } self.menuNames["simplelauncher"] = { "menuIndex": 1, "summaryMessage": ki18n("Simple Menu"), "image": QtGui.QPixmap(':/raw/pixmap/simple.png'), "description": ki18n("Simple menu is an old style menu from KDE 3.<br><br>It is a very lightweight menu thus it is recommended for slower PC's.") } self.menuNames["lancelot_launcher"] = { "menuIndex": 2, "summaryMessage": ki18n("Lancelot Menu"), "image": QtGui.QPixmap(':/raw/pixmap/lancelot.png'), "description": ki18n("Lancelot is an advanced and highly customizable menu for Pisi Linux.<br><br>The program shortcuts are easy to access and well organized.") } for each in list(group.groupList()): subgroup = group.group(each) subcomponent = subgroup.readEntry('plugin') if subcomponent == 'panel': subg = subgroup.group('Applets') for i in list(subg.groupList()): subg2 = subg.group(i) launcher = subg2.readEntry('plugin') if str(launcher).find('launcher') >= 0: self.__class__.screenSettings["selectedMenu"] = subg2.readEntry('plugin') # set menu preview to default menu # if default menu could not found, default to kickoff if not self.__class__.screenSettings.has_key("selectedMenu"): self.__class__.screenSettings["selectedMenu"] = "launcher" self.ui.pictureMenuStyles.setPixmap(self.menuNames[str(self.__class__.screenSettings["selectedMenu"])]["image"]) self.ui.labelMenuDescription.setText(self.menuNames[str(self.__class__.screenSettings["selectedMenu"])]["description"].toString()) self.ui.menuStyles.setCurrentIndex(self.menuNames[str(self.__class__.screenSettings["selectedMenu"])]["menuIndex"]) self.ui.menuStyles.connect(self.ui.menuStyles, SIGNAL("activated(const QString &)"), self.setMenuStyle)
def __init__(self, parent=None): QtGui.QWidget.__init__(self, parent) self.ui = Ui_kaptanUI() self.ui.setupUi(self) # Kaptan screen settings self.commonScreens = [ welcomeWidget, avatarWidget, mouseWidget, styleWidget, menuWidget, wallpaperWidget, networkWidget ] self.endScreens = [summaryWidget, goodbyeWidget] self.screens = self.appendOtherScreens( self.commonScreens) + self.endScreens self.screenData = None self.moveInc = 1 self.menuText = "" self.config = KConfig("kaptanrc") self.titles = [] self.descriptions = [] # Draw progress pie self.countScreens = len(self.screens) self.pie = DrawPie(self.countScreens, self.ui.labelProgress) # Add screens to StackWidget self.createWidgets(self.screens) # Get Screen Titles for screen in self.screens: title = screen.Widget.title.toString() self.titles.append(title) # Initialize Menu self.menu = Menu(self.titles, self.ui.labelMenu) self.menu.start() QtCore.QObject.connect(self.ui.buttonNext, QtCore.SIGNAL("clicked()"), self.slotNext) QtCore.QObject.connect(self.ui.buttonBack, QtCore.SIGNAL("clicked()"), self.slotBack) QtCore.QObject.connect(self.ui.buttonFinish, QtCore.SIGNAL("clicked()"), QtGui.qApp, QtCore.SLOT("quit()")) QtCore.QObject.connect(self.ui.buttonCancel, QtCore.SIGNAL("clicked()"), QtGui.qApp, QtCore.SLOT("quit()"))
def slotFinished(self): if wallpaperWidget.Widget.selectedWallpaper: config = KConfig("plasma-desktop-appletsrc") group = config.group("Containments") for each in list(group.groupList()): subgroup = group.group(each) subcomponent = subgroup.readEntry('plugin') if subcomponent == 'desktop' or subcomponent == 'folderview': subg = subgroup.group('Wallpaper') subg_2 = subg.group('image') subg_2.writeEntry("wallpaper", wallpaperWidget.Widget.selectedWallpaper) self.killPlasma() QtGui.qApp.quit() else: QtGui.qApp.quit()
def __init__(self, *args): QtGui.QWidget.__init__(self,None) self.ui = Ui_menuWidget() self.ui.setupUi(self) # read default menu style first config = KConfig("plasma-appletsrc") group = config.group("Containments") self.menuNames = {} self.menuNames["launcher"] = { "menuIndex": 0, "summaryMessage": ki18n("Kick-off Menu"), "image": QtGui.QPixmap(':/raw/pics/kickoff.png'), "description": ki18n("Default menu of Pardus GNU/Linux.") } self.menuNames["simplelauncher"] = { "menuIndex": 1, "summaryMessage": ki18n("Simple Menu"), "image": QtGui.QPixmap(':/raw/pics/simple.png'), "description": ki18n("An old style menu from KDE 3.") } self.menuNames["lancelot_launcher"] = { "menuIndex": 2, "summaryMessage": ki18n("Lancelot Menu"), "image": QtGui.QPixmap(':/raw/pics/lancelot.png'), "description": ki18n("An advanced menu for KDE4.") } for each in list(group.groupList()): subgroup = group.group(each) subcomponent = subgroup.readEntry('plugin') if subcomponent == 'panel': subg = subgroup.group('Applets') for i in list(subg.groupList()): subg2 = subg.group(i) launcher = subg2.readEntry('plugin') if str(launcher).find('launcher') >= 0: self.__class__.screenSettings["selectedMenu"] = subg2.readEntry('plugin') # set menu preview to default menu self.ui.pictureMenuStyles.setPixmap(self.menuNames[str(self.__class__.screenSettings["selectedMenu"])]["image"]) self.ui.labelMenuDescription.setText(self.menuNames[str(self.__class__.screenSettings["selectedMenu"])]["description"].toString()) self.ui.menuStyles.setCurrentIndex(self.menuNames[str(self.__class__.screenSettings["selectedMenu"])]["menuIndex"]) self.ui.menuStyles.connect(self.ui.menuStyles, SIGNAL("activated(const QString &)"), self.setMenuStyle)
def removeFolderViewWidget(): config = KConfig("plasma-desktop-appletsrc") sub_lvl_0 = config.group("Containments") for sub in list(sub_lvl_0.groupList()): sub_lvl_1 = sub_lvl_0.group(sub) if sub_lvl_1.hasGroup("Applets"): sub_lvl_2 = sub_lvl_1.group("Applets") for sub2 in list(sub_lvl_2.groupList()): sub_lvl_3 = sub_lvl_2.group(sub2) plugin = sub_lvl_3.readEntry('plugin') if plugin == 'folderview': sub_lvl_3.deleteGroup()
def __init__(self, *args): QtGui.QWidget.__init__(self,None) self.ui = Ui_searchWidget() self.ui.setupUi(self) self.ui.labelSearchImage.setPixmap(QtGui.QPixmap(':/raw/pics/nepomuk.png')) config = KConfig("nepomukserverrc") group = config.group("Basic Settings") isNepomuk = str(group.readEntry('Start Nepomuk')) if isNepomuk.lower() == "true": self.ui.checkBoxNepomuk.setChecked(True) self.__class__.screenSettings["state"] = True else: self.ui.checkBoxNepomuk.setChecked(False) self.__class__.screenSettings["state"] = False self.ui.checkBoxNepomuk.connect(self.ui.checkBoxNepomuk, SIGNAL("toggled(bool)"), self.activateNepomuk)
def indentationCharacters(document): ''' The characters used to indent in a document as set by variables in the document or in the configuration. Will be something like '\t' or ' ' ''' v = document.variableInterface() # cache if not hasattr(indentationCharacters, 'configurationUseTabs'): config = KConfig('katerc') group = config.group('Kate Document Defaults') flags = str(group.readEntry('Basic Config Flags')) # gross, but there's no public API for this. Growl. indentationCharacters.configurationUseTabs = True if flags and int(flags) & 0x2000000: print 'insert spaces instead of tabulators' indentationCharacters.configurationUseTabs = False indentWidth = str(group.readEntry('Indentation Width')) indentationCharacters.configurationIndentWidth = int( indentWidth) if indentWidth else 4 # indent with tabs or spaces useTabs = True spaceIndent = v.variable('space-indent') if spaceIndent == 'on': useTabs = False elif spaceIndent == 'off': useTabs = True else: useTabs = indentationCharacters.configurationUseTabs if useTabs: return '\t' else: indentWidth = v.variable('indent-width') if indentWidth and indentWidth.isdigit(): return ' ' * int(indentWidth) else: # default return ' ' * indentationCharacters.configurationIndentWidth
def __init__(self, *args): QtGui.QWidget.__init__(self, None) self.ui = Ui_keyboardWidget() self.ui.setupUi(self) # get layout config self.config = KConfig("kxkbrc") self.group = self.config.group("Layout") self.layoutList = str(self.group.readEntry("LayoutList")) self.lastLayout = 0 # get language list self.languageList = self.getLanguageList() # generate language list for language in self.languageList: languageCode, languageName, languageLayout, languageVariant = language item = QtGui.QListWidgetItem(self.ui.listWidgetKeyboard) item.setText(languageName) item.setToolTip(languageLayout) item.setStatusTip(languageVariant) self.ui.listWidgetKeyboard.addItem(item) # select appropriate keymap if self.getCurrentSystemLanguage().strip() == languageCode.strip(): if languageCode.strip() == "tr" and languageVariant.strip( ) == "f": break else: self.ui.listWidgetKeyboard.setCurrentItem(item) self.ui.listWidgetKeyboard.sortItems() self.ui.listWidgetKeyboard.connect(self.ui.listWidgetKeyboard, SIGNAL("itemSelectionChanged()"), self.setKeyboard)
def __init__(self, *args): QtGui.QWidget.__init__(self, None) self.ui = Ui_keyboardWidget() self.ui.setupUi(self) self.ui.picKeyboard.setPixmap( QtGui.QPixmap(':/raw/pics/keyboards.png')) # get Layout config self.config = KConfig("kxkbrc") self.group = self.config.group("Layout") self.layoutList = str(self.group.readEntry("LayoutList")) self.lastLayout = 0 for lang in localedata.languages: for each in localedata.languages[lang].keymaps: item = QtGui.QListWidgetItem(self.ui.listWidgetKeyboard) item.setText(each.name) item.setToolTip(each.xkb_layout) item.setStatusTip(each.xkb_variant) self.ui.listWidgetKeyboard.addItem(item) self.ui.listWidgetKeyboard.connect(self.ui.listWidgetKeyboard, SIGNAL("itemSelectionChanged()"), self.setKeyboard)
def __init__(self, config): self.config = KConfig(config) self.group = None
def __init__(self, *args): QtGui.QWidget.__init__(self, None) self.ui = Ui_menuWidget() self.ui.setupUi(self) # read default menu style first config = KConfig("plasma-desktop-appletsrc") group = config.group("Containments") self.menuNames = {} self.menuNames["launcher"] = { "menuIndex": 0, "summaryMessage": i18n("Kick-off Menu"), "image": QtGui.QPixmap(':/raw/pixmap/kickoff.png'), "description": i18n( "Kick-off menu is the default menu of Chakra.<br><br>The program shortcuts are easy to access and well organized." ) } self.menuNames["simplelauncher"] = { "menuIndex": 1, "summaryMessage": i18n("Simple Menu"), "image": QtGui.QPixmap(':/raw/pixmap/simple.png'), "description": i18n( "Simple menu is an old style menu from KDE 3.<br><br>It is a very lightweight menu thus it is recommended for slower PC's." ) } self.menuNames["lancelot_launcher"] = { "menuIndex": 2, "summaryMessage": i18n("Lancelot Menu"), "image": QtGui.QPixmap(':/raw/pixmap/lancelot.png'), "description": i18n( "Lancelot is an advanced and highly customizable menu for Chakra.<br><br>The program shortcuts are easy to access and well organized." ) } self.menuNames["homerunlauncher"] = { "menuIndex": 3, "summaryMessage": i18n("Homerun Menu"), "image": QtGui.QPixmap(':/raw/pixmap/homerun.png'), "description": i18n( "Homerun is a full screen launcher with content organized in tabs." ) } self.menuNames["appmenu-qml"] = { "menuIndex": 4, "summaryMessage": i18n("AppMenu QML"), "image": QtGui.QPixmap(':/raw/pixmap/appmenu-qml.png'), "description": i18n( "This plasmoid shows a menu of the installed applications, similar to Lancelot but much simpler" ) } self.menuNames["org.kde.homerun-kicker"] = { "menuIndex": 5, "summaryMessage": i18n("Homerun Kicker"), "image": QtGui.QPixmap(':/raw/pixmap/homerun-kicker.png'), "description": i18n("A non-fullscreen version of Homerun.") } for each in list(group.groupList()): subgroup = group.group(each) subcomponent = subgroup.readEntry('plugin') if subcomponent == 'panel': subg = subgroup.group('Applets') for i in list(subg.groupList()): subg2 = subg.group(i) launcher = subg2.readEntry('plugin') if str(launcher).find('launcher') >= 0: self.__class__.screenSettings[ "selectedMenu"] = subg2.readEntry('plugin') # set menu preview to default menu # if default menu could not found, default to kickoff if "selectedMenu" not in self.__class__.screenSettings: self.__class__.screenSettings["selectedMenu"] = "launcher" self.ui.pictureMenuStyles.setPixmap(self.menuNames[str( self.__class__.screenSettings["selectedMenu"])]["image"]) self.ui.labelMenuDescription.setText(self.menuNames[str( self.__class__.screenSettings["selectedMenu"])]["description"]) self.ui.menuStyles.setCurrentIndex(self.menuNames[str( self.__class__.screenSettings["selectedMenu"])]["menuIndex"]) self.ui.menuStyles.activated.connect(self.setMenuStyle)
def setKMailAccounts(self): """Add imported accounts into Kmail""" #Set default config and configGroup #config = KConfig("kmailrc") #configGroup = KConfigGroup(config, "Account") def getResourceConfigGroup(account): """Get Resource Config Groups for account type""" accountGroups = [] if account["type"] == "SMTP": config = KConfig("mailtransports") generalGroup = config.group("General") defaultAccount = generalGroup.readEntry("default-transport") if defaultAccount: print "defaultSMTPAccount:%s" % defaultAccount groupname = QString("Transport ").append(defaultAccount) transportGroup = config.group(groupname) accountGroups.append(transportGroup) return accountGroups[0] else: config = KConfig("kmailrc") for each in list(config.groupList()): if each.contains( "Account") and not each.endsWith("Wizard"): account = config.group(each) accountGroups.append(account) print "accountGroups:%s" % accountGroups return accountGroups for account in self.accounts: print "account type:%s ve host:%s" % (account["type"], account["host"]) print "account keys%s" % account.keys() # Add POP3 Account: if account["type"] == "POP3": validAccount = None if getResourceConfigGroup(account): for accountGroup in getResourceConfigGroup(account): if not isKMailAccountValid(accountGroup, account): continue print "Popa girdir...." config = KConfig("kmailrc") configGroup = KConfigGroup(config, "Account") configGroup.writeEntry("trash", "trash") configGroup.writeEntry("Type", "Pop") configGroup.writeEntry("Name", account["name"]) configGroup.writeEntry("auth", "USER") configGroup.writeEntry("host", account["host"]) configGroup.writeEntry("login", account["user"]) # Set Inbox Folder: inbox = account.get("inbox", "inbox") folder = kMailFolderName(inbox) configGroup.writeEntry("Folder", folder) # Create inbox if not exists: folders = inbox.split("/") for i in xrange(len(folders)): foldername = "/".join(folders[:(i + 1)]) foldername = kMailFolderName(foldername) folderpath = os.path.expanduser( "~/.kde4/share/apps/kmail/mail/" + foldername) if not os.path.exists(folderpath): os.makedirs(folderpath) os.makedirs(os.path.join(folderpath, "cur")) os.makedirs(os.path.join(folderpath, "new")) os.makedirs(os.path.join(folderpath, "tmp")) if account.has_key("SSL") and account["SSL"]: configGroup.writeEntry("use-ssl", "true") configGroup.writeEntry("port", "995") else: configGroup.writeEntry("use-ssl", "false") configGroup.writeEntry("port", "110") if account.has_key("port") and account["port"]: configGroup.writeEntry("port", account["port"]) configGroup.writeEntry("use-tls", "false") configGroup.sync() # Add IMAP Account: elif account["type"] == "IMAP": print "imap de.." if getResourceConfigGroup(account): for accountGroup in getResourceConfigGroup(account): print "iskmailAccount girilecek" if not isKMailAccountValid(accountGroup, account): continue print "IMAP girddiii" config = KConfig("kmailrc") configGroup = KConfigGroup(config, "Account") configGroup.writeEntry("Folder", "") configGroup.writeEntry("trash", "trash") configGroup.writeEntry("Type", "Pop") configGroup.writeEntry("Name", account["name"]) configGroup.writeEntry("auth", "USER") configGroup.writeEntry("host", account["host"]) configGroup.writeEntry("login", account["user"]) if account.has_key("SSL") and account["SSL"]: configGroup.writeEntry("use-ssl", "true") configGroup.writeEntry("port", 993) else: configGroup.writeEntry("use-ssl", "false") configGroup.writeEntry("port", "143") if account.has_key("port") and account["port"]: configGroup.writeEntry("port", account["port"]) configGroup.writeEntry("use-tls", "false") configGroup.sync() # Add SMTP Account: elif account["type"] == "SMTP": accountGroup = getResourceConfigGroup(account) if not isKMailAccountValid(accountGroup, account): return print "SMTP girdi...." config = KConfig("mailtransports") configGroup = KConfigGroup(config, "Transport") if account.get("auth", False) and account.has_key("user"): configGroup.writeEntry("auth", "true") configGroup.writeEntry("authtype", "PLAIN") configGroup.writeEntry("user", account["user"]) configGroup.writeEntry("name", account["host"]) configGroup.writeEntry("host", account["host"]) if account.has_key("SSL") and account["SSL"]: configGroup.writeEntry("encryption", "SSL") configGroup.writeEntry("port", "465") else: configGroup.writeEntry("port", "25") if account.has_key("TLS") and account["TLS"]: configGroup.writeEntry("encryption", "TLS") if account.has_key("port") and account["port"]: configGroup.writeEntry("port", account["port"]) configGroup.sync()
def setStyleSettings(self): if scrStyleWidget.screenSettings["iconChanged"]: hasChanged = True configKdeGlobals = KConfig("kdeglobals") group = configKdeGlobals.group("General") groupIconTheme = configKdeGlobals.group("Icons") groupIconTheme.writeEntry( "Theme", scrStyleWidget.screenSettings["iconTheme"]) configKdeGlobals.sync() # Change Icon theme kdeui.KIconTheme.reconfigure() kdeui.KIconCache.deleteCache() deleteIconCache() if scrStyleWidget.screenSettings["styleChanged"]: hasChanged = True configKdeGlobals = KConfig("kdeglobals") group = configKdeGlobals.group("General") group.writeEntry( "widgetStyle", scrStyleWidget.screenSettings["styleDetails"][unicode( scrStyleWidget.screenSettings["styleName"])] ["widgetStyle"]) groupIconTheme = configKdeGlobals.group("Icons") groupIconTheme.writeEntry( "Theme", scrStyleWidget.screenSettings["iconTheme"]) #groupIconTheme.writeEntry("Theme", scrStyleWidget.screenSettings["styleDetails"][unicode(scrStyleWidget.screenSettings["styleName"])]["iconTheme"]) configKdeGlobals.sync() # Change Icon theme kdeui.KIconTheme.reconfigure() kdeui.KIconCache.deleteCache() deleteIconCache() for i in range(kdeui.KIconLoader.LastGroup): kdeui.KGlobalSettings.self().emitChange( kdeui.KGlobalSettings.IconChanged, i) # Change widget style & color for key, value in scrStyleWidget.screenSettings["styleDetails"][ unicode(scrStyleWidget.screenSettings["styleName"] )]["colorScheme"].items(): colorGroup = configKdeGlobals.group(key) for key2, value2 in value.items(): colorGroup.writeEntry(str(key2), str(value2)) configKdeGlobals.sync() kdeui.KGlobalSettings.self().emitChange( kdeui.KGlobalSettings.StyleChanged) configPlasmaRc = KConfig("plasmarc") groupDesktopTheme = configPlasmaRc.group("Theme") groupDesktopTheme.writeEntry( "name", scrStyleWidget.screenSettings["styleDetails"][unicode( scrStyleWidget.screenSettings["styleName"])] ["desktopTheme"]) configPlasmaRc.sync() configPlasmaApplet = KConfig("plasma-desktop-appletsrc") group = configPlasmaApplet.group("Containments") for each in list(group.groupList()): subgroup = group.group(each) subcomponent = subgroup.readEntry('plugin') if subcomponent == 'panel': #print subcomponent subgroup.writeEntry( 'location', scrStyleWidget.screenSettings["styleDetails"][unicode( scrStyleWidget.screenSettings["styleName"])] ["panelPosition"]) configPlasmaApplet.sync() configKwinRc = KConfig("kwinrc") groupWindowDecoration = configKwinRc.group("Style") groupWindowDecoration.writeEntry( "PluginLib", scrStyleWidget.screenSettings["styleDetails"][unicode( scrStyleWidget.screenSettings["styleName"])] ["windowDecoration"]) configKwinRc.sync() session = dbus.SessionBus() try: proxy = session.get_object('org.kde.kwin', '/KWin') proxy.reconfigure() except dbus.DBusException: pass
def package_config(self, config): self.config = KConfig(config) self.group = None
def __init__(self, *args): QtGui.QWidget.__init__(self, None) self.ui = Ui_styleWidget() self.ui.setupUi(self) self.styleDetails = {} self.catLang = KGlobal.locale().language() config = KConfig("kwinrc") group = config.group("Desktops") defaultDesktopNumber = int(group.readEntry('Number')) self.ui.spinBoxDesktopNumbers.setValue(defaultDesktopNumber) lst2 = glob.glob1("/usr/kde/4/share/apps/kaptan/gui/styles", "*.style") for desktopFiles in lst2: parser = DesktopParser() parser.read("/usr/kde/4/share/apps/kaptan/gui/styles/" + str(desktopFiles)) try: styleName = unicode( parser.get_locale('Style', 'name[%s]' % self.catLang, '')) except: styleName = unicode(parser.get_locale('Style', 'name', '')) try: styleDesc = unicode( parser.get_locale('Style', 'description[%s]' % self.catLang, '')) except: styleDesc = unicode( parser.get_locale('Style', 'description', '')) try: # TODO find a fallback values for these & handle exceptions seperately. #styleApplet = parser.get_locale('Style', 'applets', '') panelPosition = parser.get_locale('Style', 'panelPosition', '') #styleColorScheme = parser.get_locale('Style', 'colorScheme', '') widgetStyle = unicode( parser.get_locale('Style', 'widgetStyle', '')) desktopTheme = unicode( parser.get_locale('Style', 'desktopTheme', '')) colorScheme = unicode( parser.get_locale('Style', 'colorScheme', '')) iconTheme = unicode(parser.get_locale('Style', 'iconTheme', '')) windowDecoration = unicode( parser.get_locale('Style', 'windowDecoration', '')) styleThumb = unicode( os.path.join("/usr/kde/4/share/apps/kaptan/gui/styles/", parser.get_locale('Style', 'thumbnail', ''))) colorDict = {} colorDir = "/usr/kde/4/share/apps/color-schemes/" self.Config = ConfigParser() self.Config.optionxform = str color = colorDir + colorScheme + ".colors" if not os.path.exists(color): color = colorDir + "Oxygen.colors" self.Config.read(color) #colorConfig= KConfig("kdeglobals") for i in self.Config.sections(): #colorGroup = colorConfig.group(str(i)) colorDict[i] = {} for key, value in self.ConfigSectionMap(i).items(): colorDict[i][key] = value #colorGroup.writeEntry(str(key), str(value)) self.styleDetails[styleName] = { "description": styleDesc, "widgetStyle": widgetStyle, "colorScheme": colorDict, "desktopTheme": desktopTheme, "iconTheme": iconTheme, "windowDecoration": windowDecoration, "panelPosition": panelPosition } item = QtGui.QListWidgetItem(self.ui.listStyles) widget = StyleItemWidget(unicode(styleName), unicode(styleDesc), styleThumb, self.ui.listStyles) self.ui.listStyles.setItemWidget(item, widget) item.setSizeHint(QSize(120, 170)) item.setStatusTip(styleName) except: print "Warning! Invalid syntax in ", desktopFiles self.ui.listStyles.connect(self.ui.listStyles, SIGNAL("itemSelectionChanged()"), self.setStyle) self.ui.comboBoxDesktopType.connect( self.ui.comboBoxDesktopType, SIGNAL("activated(const QString &)"), self.setDesktopType) self.ui.spinBoxDesktopNumbers.connect( self.ui.spinBoxDesktopNumbers, SIGNAL("valueChanged(const QString &)"), self.addDesktop)
from PyQt4 import QtGui from . import base from kaptan.tools.desktop_parser import DesktopParser from ConfigParser import ConfigParser from kaptan.screens.scrStyle import Widget as scrStyleWidget HEAD_SCREENS = [ 'scrWelcome', 'scrMouse', 'scrStyle', 'scrMenu', 'scrWallpaper', 'scrAvatar' ] TAIL_SCREENS = ['scrSummary', 'scrGoodbye'] CONFIG_KXBRC = KConfig("kxkbrc") CONFIG_PLASMARC = KConfig("plasmarc") CONFIG_KCMINPUTRC = KConfig("kcminputrc") CONFIG_KDEGLOBALS = KConfig("kdeglobals") CONFIG_APPLETSRC = KConfig("plasma-desktop-appletsrc") CONFIG_KWINRC = KConfig("kwinrc") # shared KDE methods def deleteIconCache(): try: os.remove("/var/tmp/kdecache-%s/icon-cache.kcache" % os.environ.get("USER")) except: pass
def execute(self): hasChanged = False rootActions = "" # Wallpaper Settings if self.wallpaperSettings["hasChanged"]: hasChanged = True if self.wallpaperSettings["selectedWallpaper"]: config = KConfig("plasma-desktop-appletsrc") group = config.group("Containments") for each in list(group.groupList()): subgroup = group.group(each) subcomponent = subgroup.readEntry('plugin') if subcomponent == 'desktop' or subcomponent == 'folderview': subg = subgroup.group('Wallpaper') subg_2 = subg.group('image') subg_2.writeEntry( "wallpaper", self.wallpaperSettings["selectedWallpaper"]) # Menu Settings if self.menuSettings["hasChanged"]: hasChanged = True config = KConfig("plasma-desktop-appletsrc") group = config.group("Containments") for each in list(group.groupList()): subgroup = group.group(each) subcomponent = subgroup.readEntry('plugin') if subcomponent == 'panel': subg = subgroup.group('Applets') for i in list(subg.groupList()): subg2 = subg.group(i) launcher = subg2.readEntry('plugin') if str(launcher).find('launcher') >= 0: subg2.writeEntry('plugin', self.menuSettings["selectedMenu"]) def removeFolderViewWidget(): config = KConfig("plasma-desktop-appletsrc") sub_lvl_0 = config.group("Containments") for sub in list(sub_lvl_0.groupList()): sub_lvl_1 = sub_lvl_0.group(sub) if sub_lvl_1.hasGroup("Applets"): sub_lvl_2 = sub_lvl_1.group("Applets") for sub2 in list(sub_lvl_2.groupList()): sub_lvl_3 = sub_lvl_2.group(sub2) plugin = sub_lvl_3.readEntry('plugin') if plugin == 'folderview': sub_lvl_3.deleteGroup() # Desktop Type if self.styleSettings["hasChangedDesktopType"]: hasChanged = True config = KConfig("plasma-desktop-appletsrc") group = config.group("Containments") for each in list(group.groupList()): subgroup = group.group(each) subcomponent = subgroup.readEntry('plugin') subcomponent2 = subgroup.readEntry('screen') if subcomponent == 'desktop' or subcomponent == 'folderview': if int(subcomponent2) == 0: subgroup.writeEntry('plugin', self.styleSettings["desktopType"]) # Remove folder widget - normally this would be done over dbus but thanks to improper naming of the plasma interface # this is not possible # ValueError: Invalid interface or error name 'org.kde.plasma-desktop': contains invalid character '-' # # Related Bug: # Bug 240358 - Invalid D-BUS interface name 'org.kde.plasma-desktop.PlasmaApp' found while parsing introspection # https://bugs.kde.org/show_bug.cgi?id=240358 if self.styleSettings["desktopType"] == "folderview": removeFolderViewWidget() config.sync() # Number of Desktops if self.styleSettings["hasChangedDesktopNumber"]: hasChanged = True config = KConfig("kwinrc") group = config.group("Desktops") group.writeEntry('Number', self.styleSettings["desktopNumber"]) group.sync() info = kdeui.NETRootInfo( QtGui.QX11Info.display(), kdeui.NET.NumberOfDesktops | kdeui.NET.DesktopNames) info.setNumberOfDesktops(int(self.styleSettings["desktopNumber"])) info.activate() session = dbus.SessionBus() try: proxy = session.get_object('org.kde.kwin', '/KWin') proxy.reconfigure() except dbus.DBusException: pass config.sync() def deleteIconCache(): try: os.remove("/var/tmp/kdecache-%s/icon-cache.kcache" % os.environ.get("USER")) except: pass for i in range(kdeui.KIconLoader.LastGroup): kdeui.KGlobalSettings.self().emitChange( kdeui.KGlobalSettings.IconChanged, i) # Theme Settings if self.styleSettings["hasChanged"]: # if self.styleSettings["iconChanged"]: # hasChanged = True # configKdeGlobals = KConfig("kdeglobals") # group = configKdeGlobals.group("General") # # groupIconTheme = configKdeGlobals.group("Icons") # groupIconTheme.writeEntry("Theme", self.styleSettings["iconTheme"]) # # configKdeGlobals.sync() # # # Change Icon theme # kdeui.KIconTheme.reconfigure() # kdeui.KIconCache.deleteCache() # deleteIconCache() if self.styleSettings["styleChanged"]: hasChanged = True configKdeGlobals = KConfig("kdeglobals") group = configKdeGlobals.group("General") group.writeEntry( "widgetStyle", self.styleSettings["styleDetails"][unicode( self.styleSettings["styleName"])]["widgetStyle"]) #groupIconTheme = configKdeGlobals.group("Icons") #groupIconTheme.writeEntry("Theme", self.styleSettings["iconTheme"]) #groupIconTheme.writeEntry("Theme", self.styleSettings["styleDetails"][unicode(self.styleSettings["styleName"])]["iconTheme"]) configKdeGlobals.sync() # Change Icon theme kdeui.KIconTheme.reconfigure() kdeui.KIconCache.deleteCache() deleteIconCache() for i in range(kdeui.KIconLoader.LastGroup): kdeui.KGlobalSettings.self().emitChange( kdeui.KGlobalSettings.IconChanged, i) # Change widget style & color for key, value in self.styleSettings["styleDetails"][unicode( self.styleSettings["styleName"])]["colorScheme"].items( ): colorGroup = configKdeGlobals.group(key) for key2, value2 in value.items(): colorGroup.writeEntry(str(key2), str(value2)) configKdeGlobals.sync() kdeui.KGlobalSettings.self().emitChange( kdeui.KGlobalSettings.StyleChanged) configPlasmaRc = KConfig("plasmarc") groupDesktopTheme = configPlasmaRc.group("Theme") groupDesktopTheme.writeEntry( "name", self.styleSettings["styleDetails"][unicode( self.styleSettings["styleName"])]["desktopTheme"]) configPlasmaRc.sync() configPlasmaApplet = KConfig("plasma-desktop-appletsrc") group = configPlasmaApplet.group("Containments") for each in list(group.groupList()): subgroup = group.group(each) subcomponent = subgroup.readEntry('plugin') if subcomponent == 'panel': #print subcomponent subgroup.writeEntry( 'location', self.styleSettings["styleDetails"][unicode( self.styleSettings["styleName"])] ["panelPosition"]) configPlasmaApplet.sync() configKwinRc = KConfig("kwinrc") groupWindowDecoration = configKwinRc.group("Style") groupWindowDecoration.writeEntry( "PluginLib", self.styleSettings["styleDetails"][unicode( self.styleSettings["styleName"])]["windowDecoration"]) configKwinRc.sync() session = dbus.SessionBus() try: proxy = session.get_object('org.kde.kwin', '/KWin') proxy.reconfigure() except dbus.DBusException: pass # Notifier Settings if self.packageSettings["hasChanged"]: if self.packageSettings["enabled"]: rootActions += "disable_notifier " else: rootActions += "enable_notifier " # Services Settings if self.servicesSettings["hasChanged"]: if self.servicesSettings[ "enableCups"] and not self.daemon.isEnabled( "org.cups.cupsd"): rootActions += "enable_cups " elif not self.servicesSettings[ "enableCups"] and self.daemon.isEnabled("org.cups.cupsd"): rootActions += "disable_cups " if self.servicesSettings[ "enableBluetooth"] and not self.daemon.isEnabled( "bluetooth"): rootActions += "enable_blue " elif not self.servicesSettings[ "enableBluetooth"] and self.daemon.isEnabled("bluetooth"): rootActions += "disable_blue " # Security Settings if self.securitySettings["hasChanged"]: if self.securitySettings[ "enableClam"] and not self.daemon.isEnabled("clamd"): rootActions += "enable_clam " elif not self.securitySettings[ "enableClam"] and self.daemon.isEnabled("clamd"): rootActions += "disable_clam " if self.securitySettings[ "enableFire"] and not self.daemon.isEnabled("ufw"): rootActions += "enable_fire " elif not self.securitySettings[ "enableFire"] and self.daemon.isEnabled("ufw"): rootActions += "disable_fire " # Extra Settings if self.extraSettings["hasChanged"]: if self.extraSettings["enableExtra"]: rootActions += "enable_extra " else: rootActions += "disable_extra " if hasChanged: self.killPlasma() if not rootActions == "": os.system("kdesu konsole -e kapudan-rootactions " + rootActions) return True