diff options
| author | Eon S. Jeon <esjeon@hyunmu.am> | 2019-11-14 13:58:10 -0700 | 
|---|---|---|
| committer | Nate Graham <nate@kde.org> | 2019-11-14 13:59:47 -0700 | 
| commit | 9b8ef694412c688c9f1e0a6f41b49ac7492ec35a (patch) | |
| tree | 567bacac2d62dab21f3a96707f538dbc36090226 | |
| parent | d63955cfe547b00aaf5e4c8bf669f50f45f484a9 (diff) | |
| download | kconfig-9b8ef694412c688c9f1e0a6f41b49ac7492ec35a.tar.gz kconfig-9b8ef694412c688c9f1e0a6f41b49ac7492ec35a.tar.bz2 | |
kwriteconfig: add delete option
Summary: Add a simple delete option to kwriteconfig. A possible usecase of this option is to delete unused shortcut bindings.
Reviewers: #frameworks, davidre, dfaure, meven, cfeck, davidedmundson
Reviewed By: davidedmundson
Subscribers: davidedmundson, ngraham, kde-frameworks-devel
Tags: #frameworks
Differential Revision: https://phabricator.kde.org/D25307
| -rw-r--r-- | src/kreadconfig/kwriteconfig.cpp | 15 | 
1 files changed, 11 insertions, 4 deletions
| diff --git a/src/kreadconfig/kwriteconfig.cpp b/src/kreadconfig/kwriteconfig.cpp index bb2c892f..0d9fdfef 100644 --- a/src/kreadconfig/kwriteconfig.cpp +++ b/src/kreadconfig/kwriteconfig.cpp @@ -36,6 +36,7 @@ int main(int argc, char **argv)      parser.addOption(QCommandLineOption(QStringLiteral("group"), QCoreApplication::translate("main", "Group to look in. Use repeatedly for nested groups."), QStringLiteral("group"), QStringLiteral("KDE")));      parser.addOption(QCommandLineOption(QStringLiteral("key"), QCoreApplication::translate("main", "Key to look for"), QStringLiteral("key")));      parser.addOption(QCommandLineOption(QStringLiteral("type"), QCoreApplication::translate("main", "Type of variable. Use \"bool\" for a boolean, otherwise it is treated as a string"), QStringLiteral("type"))); +    parser.addOption(QCommandLineOption(QStringLiteral("delete"), QCoreApplication::translate("main", "Delete the designated key if enabled")));      parser.addPositionalArgument(QStringLiteral("value"), QCoreApplication::translate("main",  "The value to write. Mandatory, on a shell use '' for empty" ));      parser.process(app); @@ -44,12 +45,16 @@ int main(int argc, char **argv)      QString key=parser.value(QStringLiteral("key"));      QString file=parser.value(QStringLiteral("file"));      QString type=parser.value(QStringLiteral("type")).toLower(); +    bool del=parser.isSet(QStringLiteral("delete")); - -    if (parser.positionalArguments().isEmpty()) { +    QString value; +    if (del) { +        value = QStringLiteral(""); +    } else if (parser.positionalArguments().isEmpty()) {          parser.showHelp(1); +    } else { +        value = parser.positionalArguments().at(0);      } -    QString value = parser.positionalArguments().at(0);      KConfig *konfig;      if (file.isEmpty()) @@ -62,7 +67,9 @@ int main(int argc, char **argv)          cfgGroup = cfgGroup.group(grp);      if ( konfig->accessMode() != KConfig::ReadWrite || cfgGroup.isEntryImmutable( key ) ) return 2; -    if(type==QStringLiteral("bool")) { +    if (del) { +        cfgGroup.deleteEntry( key ); +    } else if (type==QStringLiteral("bool")) {          // For symmetry with kreadconfig we accept a wider range of values as true than Qt          bool boolvalue=(value==QStringLiteral("true") || value==QStringLiteral("on") || value==QStringLiteral("yes") || value==QStringLiteral("1"));          cfgGroup.writeEntry( key, boolvalue ); | 
