int main(int argc, char **argv) { KAboutData aboutData("kwriteconfig", I18N_NOOP("KWriteConfig"), "1.0.0", I18N_NOOP("Write KConfig entries - for use in shell scripts"), KAboutData::License_GPL, "(c) 2001 Red Hat, Inc. & Luís Pedro Coelho"); aboutData.addAuthor("Luís Pedro Coelho", 0, "*****@*****.**"); aboutData.addAuthor("Bernhard Rosenkraenzer", "Wrote kreadconfig on which this is based", "*****@*****.**"); KCmdLineArgs::init(argc, argv, &aboutData); KCmdLineArgs::addCmdLineOptions(options); KCmdLineArgs *args = KCmdLineArgs::parsedArgs(); QString group = QString::fromLocal8Bit(args->getOption("group")); QString key = QString::fromLocal8Bit(args->getOption("key")); QString file = QString::fromLocal8Bit(args->getOption("file")); QCString type = args->getOption("type").lower(); if(key.isNull() || !args->count()) { KCmdLineArgs::usage(); return 1; } QCString value = args->arg(0); KInstance inst(&aboutData); KConfig *konfig; if(file.isEmpty()) konfig = new KConfig(QString::fromLatin1("kdeglobals"), false, false); else konfig = new KConfig(file, false, false); konfig->setGroup(group); if(konfig->getConfigState() != KConfig::ReadWrite || konfig->entryIsImmutable(key)) return 2; if(type == "bool") { // For symmetry with kreadconfig we accept a wider range of values as true than Qt bool boolvalue = (value == "true" || value == "on" || value == "yes" || value == "1"); konfig->writeEntry(key, boolvalue); } else if(type == "path") { konfig->writePathEntry(key, QString::fromLocal8Bit(value)); } else { konfig->writeEntry(key, QString::fromLocal8Bit(value)); } konfig->sync(); delete konfig; return 0; }
void KDesktopConfig::load( bool useDefaults ) { // get number of desktops NETRootInfo info( qt_xdisplay(), NET::NumberOfDesktops | NET::DesktopNames ); int n = info.numberOfDesktops(); int konq_screen_number = 0; if (qt_xdisplay()) konq_screen_number = DefaultScreen(qt_xdisplay()); QCString groupname; if (konq_screen_number == 0) groupname = "Desktops"; else groupname.sprintf("Desktops-screen-%d", konq_screen_number); KConfig * kwinconfig = new KConfig("kwinrc"); kwinconfig->setReadDefaults( useDefaults ); kwinconfig->setGroup("Desktops"); for(int i = 1; i <= maxDesktops; i++) { QString key_name(QString("Name_") + QString::number(i)); QString name = QString::fromUtf8(info.desktopName(i)); if (name.isEmpty()) // Get name from configuration if none is set in the WM. { name = kwinconfig->readEntry(key_name, i18n("Desktop %1").arg(i)); } _nameInput[i-1]->setText(name); // Is this entry immutable or not in the range of configured desktops? _labelImmutable[i - 1] = kwinconfig->entryIsImmutable(key_name); _nameInput[i-1]->setEnabled(i <= n && !_labelImmutable[i - 1]); } _numInput->setEnabled(!kwinconfig->entryIsImmutable("Number")); delete kwinconfig; kwinconfig = 0; QString configfile; if (konq_screen_number == 0) configfile = "kdesktoprc"; else configfile.sprintf("kdesktop-screen-%drc", konq_screen_number); KConfig *config = new KConfig(configfile, false, false); config->setReadDefaults( useDefaults ); config->setGroup("Mouse Buttons"); _wheelOption->setChecked(config->readBoolEntry("WheelSwitchesWorkspace",false)); _wheelOptionImmutable = config->entryIsImmutable("WheelSwitchesWorkspace"); if (_wheelOptionImmutable || n<2) _wheelOption->setEnabled( false ); delete config; config = 0; _numInput->setValue(n); emit changed( useDefaults ); }