Esempio n. 1
0
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;
}
Esempio n. 2
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 );
}