diff options
| -rw-r--r-- | autotests/kconfig_compiler/kconfigcompiler_test.cpp | 4 | ||||
| -rw-r--r-- | autotests/kconfig_compiler/test4main.cpp | 2 | ||||
| -rw-r--r-- | autotests/kconfig_compiler/test_emptyentries_main.cpp | 2 | ||||
| -rw-r--r-- | autotests/kconfigguitest.cpp | 20 | ||||
| -rw-r--r-- | autotests/kconfigloadertest.cpp | 46 | ||||
| -rw-r--r-- | autotests/kconfigskeletontest.cpp | 47 | ||||
| -rw-r--r-- | autotests/kdesktopfiletest.cpp | 48 | ||||
| -rw-r--r-- | autotests/kstandardshortcuttest.cpp | 4 | ||||
| -rw-r--r-- | autotests/test_kconf_update.cpp | 25 | ||||
| -rw-r--r-- | src/kconf_update/kconf_update.cpp | 52 | ||||
| -rw-r--r-- | src/kconf_update/kconfigutils.cpp | 49 | 
11 files changed, 167 insertions, 132 deletions
| diff --git a/autotests/kconfig_compiler/kconfigcompiler_test.cpp b/autotests/kconfig_compiler/kconfigcompiler_test.cpp index 6afc0096..014bc0f3 100644 --- a/autotests/kconfig_compiler/kconfigcompiler_test.cpp +++ b/autotests/kconfig_compiler/kconfigcompiler_test.cpp @@ -119,8 +119,8 @@ void KConfigCompiler_Test::testBaselineComparison()          qWarning() << "Failed to open" << fileRef.fileName() << "(" << testName << ".ref )";          QFAIL("Can't open file for comparison");      } -    QString content = file.readAll(); -    QString contentRef = fileRef.readAll(); +    const QByteArray content = file.readAll(); +    const QByteArray contentRef = fileRef.readAll();      if (content != contentRef)  {          appendFileDiff(fileRef.fileName(), file.fileName()); diff --git a/autotests/kconfig_compiler/test4main.cpp b/autotests/kconfig_compiler/test4main.cpp index 2d48e440..8792842f 100644 --- a/autotests/kconfig_compiler/test4main.cpp +++ b/autotests/kconfig_compiler/test4main.cpp @@ -19,7 +19,7 @@ int main(int argc, char **argv)          group.writeEntry(QStringLiteral("foo bar"), QStringLiteral("Value"));      }      Test4 *t = Test4::self(); -    bool ok = QFile::exists(QStandardPaths::writableLocation(QStandardPaths::GenericConfigLocation) + "/test4rc"); +    const bool ok = QFile::exists(QStandardPaths::writableLocation(QStandardPaths::GenericConfigLocation) + QLatin1String{"/test4rc"});      if (!ok) {          qWarning() << "config file was not created!";      } diff --git a/autotests/kconfig_compiler/test_emptyentries_main.cpp b/autotests/kconfig_compiler/test_emptyentries_main.cpp index 18c750a5..5dbce8e4 100644 --- a/autotests/kconfig_compiler/test_emptyentries_main.cpp +++ b/autotests/kconfig_compiler/test_emptyentries_main.cpp @@ -11,7 +11,7 @@ int main(int argc, char **argv)  {      QGuiApplication app(argc, argv);      Q_UNUSED(app); -    QMakeBuilderSettings::instance("abc"); +    QMakeBuilderSettings::instance(QStringLiteral("abc"));      auto *t = QMakeBuilderSettings::self();      delete t;      return 0; diff --git a/autotests/kconfigguitest.cpp b/autotests/kconfigguitest.cpp index 2a618ce2..87168a7f 100644 --- a/autotests/kconfigguitest.cpp +++ b/autotests/kconfigguitest.cpp @@ -16,10 +16,16 @@  QTEST_MAIN(KConfigTest) -#define COLORENTRY1 QColor("steelblue") -#define COLORENTRY2 QColor(235, 235, 100, 125) -#define COLORENTRY3 QColor(234, 234, 127) -#define FONTENTRY QFont("Times", 16, QFont::Normal) +// clazy:excludeall=non-pod-global-static + +const QColor COLORENTRY1(QLatin1String{"steelblue"}); +const QColor COLORENTRY2(235, 235, 100, 125); +const QColor COLORENTRY3(234, 234, 127); + +static QFont fontEntry() +{ +    return QFont{QStringLiteral("Times"), 16, QFont::Normal}; +}  void KConfigTest::initTestCase()  { @@ -36,7 +42,7 @@ void KConfigTest::initTestCase()      cg.writeEntry("colorEntry2", COLORENTRY2);      cg.writeEntry("colorEntry3", (QList<int>() << 234 << 234 << 127));      cg.writeEntry("colorEntry4", (QList<int>() << 235 << 235 << 100 << 125)); -    cg.writeEntry("fontEntry", FONTENTRY); +    cg.writeEntry("fontEntry", fontEntry());      QVERIFY(sc.sync());      KConfig sc1(QStringLiteral("kdebugrc")); @@ -51,7 +57,7 @@ void KConfigTest::initTestCase()      // This is fixed by https://codereview.qt-project.org/181645      // It's not in yet, and it depends on the app font, so rather than      // a version check, let's do a runtime check. -    QFont orig(FONTENTRY); +    QFont orig(fontEntry());      QFont f;      f.fromString(orig.toString());      m_fontFromStringBug = (f.toString() != orig.toString()); @@ -81,7 +87,7 @@ void KConfigTest::testComplex()      if (m_fontFromStringBug) {          QEXPECT_FAIL("", "QFont fromString bug from Qt 5.8.0", Continue);      } -    QCOMPARE(sc3.readEntry("fontEntry", QFont()), FONTENTRY); +    QCOMPARE(sc3.readEntry("fontEntry", QFont()), fontEntry());  }  void KConfigTest::testInvalid() diff --git a/autotests/kconfigloadertest.cpp b/autotests/kconfigloadertest.cpp index afc58a1b..27a90916 100644 --- a/autotests/kconfigloadertest.cpp +++ b/autotests/kconfigloadertest.cpp @@ -12,7 +12,7 @@  Q_DECLARE_METATYPE(QList<int>) -#define TEST_NAME QString::fromLatin1("kconfigloadertest") +const QString TEST_NAME(QStringLiteral("kconfigloadertest"));  #define GET_CONFIG_ITEM_VALUE(type, configName) \      KConfigSkeletonItem* item = cl->findItem(TEST_NAME, configName); \ @@ -38,70 +38,70 @@ void ConfigLoaderTest::cleanup()  void ConfigLoaderTest::boolDefaultValue()  { -    GET_CONFIG_ITEM_VALUE(KCoreConfigSkeleton::ItemBool *, "DefaultBoolItem"); +    GET_CONFIG_ITEM_VALUE(KCoreConfigSkeleton::ItemBool *, QStringLiteral("DefaultBoolItem"));      QVERIFY(typeItem->isEqual(true));  }  void ConfigLoaderTest::colorDefaultValue()  { -    GET_CONFIG_ITEM_VALUE(KConfigSkeleton::ItemColor *, "DefaultColorItem"); +    GET_CONFIG_ITEM_VALUE(KConfigSkeleton::ItemColor *, QStringLiteral("DefaultColorItem"));      QVERIFY(typeItem->isEqual(QColor("#00FF00")));  }  void ConfigLoaderTest::dateTimeDefaultValue()  { -    GET_CONFIG_ITEM_VALUE(KCoreConfigSkeleton::ItemDateTime *, "DefaultDateTimeItem"); +    GET_CONFIG_ITEM_VALUE(KCoreConfigSkeleton::ItemDateTime *, QStringLiteral("DefaultDateTimeItem")); -    QVERIFY(typeItem->isEqual(QDateTime::fromString("Thu Sep 09 2010"))); +    QVERIFY(typeItem->isEqual(QDateTime::fromString(QStringLiteral("Thu Sep 09 2010"))));  }  void ConfigLoaderTest::enumDefaultValue()  { -    GET_CONFIG_ITEM_VALUE(KConfigSkeleton::ItemEnum *, "DefaultEnumItem"); +    GET_CONFIG_ITEM_VALUE(KConfigSkeleton::ItemEnum *, QStringLiteral("DefaultEnumItem"));      QVERIFY(typeItem->isEqual(3));  }  void ConfigLoaderTest::fontDefaultValue()  { -    GET_CONFIG_ITEM_VALUE(KConfigSkeleton::ItemFont *, "DefaultFontItem"); +    GET_CONFIG_ITEM_VALUE(KConfigSkeleton::ItemFont *, QStringLiteral("DefaultFontItem")); -    QVERIFY(typeItem->isEqual(QFont("DejaVu Sans"))); +    QVERIFY(typeItem->isEqual(QFont(QStringLiteral("DejaVu Sans"))));  }  void ConfigLoaderTest::intDefaultValue()  { -    GET_CONFIG_ITEM_VALUE(KCoreConfigSkeleton::ItemInt *, "DefaultIntItem"); +    GET_CONFIG_ITEM_VALUE(KCoreConfigSkeleton::ItemInt *, QStringLiteral("DefaultIntItem"));      QVERIFY(typeItem->isEqual(27));  }  void ConfigLoaderTest::passwordDefaultValue()  { -    GET_CONFIG_ITEM_VALUE(KConfigSkeleton::ItemPassword *, "DefaultPasswordItem"); +    GET_CONFIG_ITEM_VALUE(KConfigSkeleton::ItemPassword *, QStringLiteral("DefaultPasswordItem"));      QVERIFY(typeItem->isEqual(QString::fromLatin1("h4x.")));  }  void ConfigLoaderTest::pathDefaultValue()  { -    GET_CONFIG_ITEM_VALUE(KConfigSkeleton::ItemPath *, "DefaultPathItem"); +    GET_CONFIG_ITEM_VALUE(KConfigSkeleton::ItemPath *, QStringLiteral("DefaultPathItem"));      QVERIFY(typeItem->isEqual(QString::fromLatin1("/dev/null")));  }  void ConfigLoaderTest::stringDefaultValue()  { -    GET_CONFIG_ITEM_VALUE(KConfigSkeleton::ItemString *, "DefaultStringItem"); +    GET_CONFIG_ITEM_VALUE(KConfigSkeleton::ItemString *, QStringLiteral("DefaultStringItem"));      QVERIFY(typeItem->isEqual(QString::fromLatin1("TestString")));  }  void ConfigLoaderTest::stringListDefaultValue()  { -    GET_CONFIG_ITEM_VALUE(KConfigSkeleton::ItemStringList *, "DefaultStringListItem"); +    GET_CONFIG_ITEM_VALUE(KConfigSkeleton::ItemStringList *, QStringLiteral("DefaultStringListItem"));      // Create a string list with the expected values.      QStringList expected; @@ -116,28 +116,28 @@ void ConfigLoaderTest::stringListDefaultValue()  void ConfigLoaderTest::uintDefaultValue()  { -    GET_CONFIG_ITEM_VALUE(KCoreConfigSkeleton::ItemUInt *, "DefaultUIntItem"); +    GET_CONFIG_ITEM_VALUE(KCoreConfigSkeleton::ItemUInt *, QStringLiteral("DefaultUIntItem"));      QVERIFY(typeItem->isEqual(7U));  }  void ConfigLoaderTest::urlDefaultValue()  { -    GET_CONFIG_ITEM_VALUE(KCoreConfigSkeleton::ItemUrl *, "DefaultUrlItem"); +    GET_CONFIG_ITEM_VALUE(KCoreConfigSkeleton::ItemUrl *, QStringLiteral("DefaultUrlItem")); -    QVERIFY(typeItem->isEqual(QUrl("http://kde.org"))); +    QVERIFY(typeItem->isEqual(QUrl(QStringLiteral("http://kde.org"))));  }  void ConfigLoaderTest::doubleDefaultValue()  { -    GET_CONFIG_ITEM_VALUE(KCoreConfigSkeleton::ItemDouble *, "DefaultDoubleItem"); +    GET_CONFIG_ITEM_VALUE(KCoreConfigSkeleton::ItemDouble *, QStringLiteral("DefaultDoubleItem"));      QVERIFY(typeItem->isEqual(13.37));  }  void ConfigLoaderTest::intListDefaultValue()  { -    GET_CONFIG_ITEM_VALUE(KCoreConfigSkeleton::ItemIntList *, "DefaultIntListItem"); +    GET_CONFIG_ITEM_VALUE(KCoreConfigSkeleton::ItemIntList *, QStringLiteral("DefaultIntListItem"));      // Create a int list with the expected values.      QList<int> expected; @@ -153,21 +153,21 @@ void ConfigLoaderTest::intListDefaultValue()  void ConfigLoaderTest::longLongDefaultValue()  { -    GET_CONFIG_ITEM_VALUE(KCoreConfigSkeleton::ItemLongLong *, "DefaultLongLongItem"); +    GET_CONFIG_ITEM_VALUE(KCoreConfigSkeleton::ItemLongLong *, QStringLiteral("DefaultLongLongItem"));      QVERIFY(typeItem->isEqual(Q_INT64_C(-9211372036854775808)));  }  void ConfigLoaderTest::pointDefaultValue()  { -    GET_CONFIG_ITEM_VALUE(KCoreConfigSkeleton::ItemPoint *, "DefaultPointItem"); +    GET_CONFIG_ITEM_VALUE(KCoreConfigSkeleton::ItemPoint *, QStringLiteral("DefaultPointItem"));      QVERIFY(typeItem->isEqual(QPoint(185, 857)));  }  void ConfigLoaderTest::rectDefaultValue()  { -    GET_CONFIG_ITEM_VALUE(KCoreConfigSkeleton::ItemRect *, "DefaultRectItem"); +    GET_CONFIG_ITEM_VALUE(KCoreConfigSkeleton::ItemRect *, QStringLiteral("DefaultRectItem"));      // Create a new QRect with the expected value.      QRect expected; @@ -178,14 +178,14 @@ void ConfigLoaderTest::rectDefaultValue()  void ConfigLoaderTest::sizeDefaultValue()  { -    GET_CONFIG_ITEM_VALUE(KCoreConfigSkeleton::ItemSize *, "DefaultSizeItem"); +    GET_CONFIG_ITEM_VALUE(KCoreConfigSkeleton::ItemSize *, QStringLiteral("DefaultSizeItem"));      QVERIFY(typeItem->isEqual(QSize(640, 480)));  }  void ConfigLoaderTest::ulongLongDefaultValue()  { -    GET_CONFIG_ITEM_VALUE(KCoreConfigSkeleton::ItemULongLong *, "DefaultULongLongItem"); +    GET_CONFIG_ITEM_VALUE(KCoreConfigSkeleton::ItemULongLong *, QStringLiteral("DefaultULongLongItem"));      QVERIFY(typeItem->isEqual(Q_UINT64_C(9223372036854775806)));  } diff --git a/autotests/kconfigskeletontest.cpp b/autotests/kconfigskeletontest.cpp index 896d4ee1..75708bc1 100644 --- a/autotests/kconfigskeletontest.cpp +++ b/autotests/kconfigskeletontest.cpp @@ -14,13 +14,22 @@ QTEST_MAIN(KConfigSkeletonTest)  #define DEFAULT_SETTING1 false  #define DEFAULT_SETTING2 QColor(1,2,3) -#define DEFAULT_SETTING3 QFont("helvetica",12) -#define DEFAULT_SETTING4 QString("Hello World") +const QString DEFAULT_SETTING4{QStringLiteral("Hello World")}; +  #define WRITE_SETTING1 true  #define WRITE_SETTING2 QColor(3,2,1) -#define WRITE_SETTING3 QFont("helvetica",14) -#define WRITE_SETTING4 QString("KDE") +const QString WRITE_SETTING4{QStringLiteral("KDE")}; + +static QFont defaultSetting3() +{ +    return QFont{QStringLiteral("helvetica"), 12}; +} + +static QFont writeSettings3() +{ + return QFont{QStringLiteral("helvetica"), 14}; +}  void KConfigSkeletonTest::initTestCase()  { @@ -29,19 +38,19 @@ void KConfigSkeletonTest::initTestCase()  void KConfigSkeletonTest::init()  { -    QFile::remove(QStandardPaths::writableLocation(QStandardPaths::GenericConfigLocation) + "/kconfigskeletontestrc"); +    QFile::remove(QStandardPaths::writableLocation(QStandardPaths::GenericConfigLocation) + QLatin1String{"/kconfigskeletontestrc"});      s = new KConfigSkeleton(QStringLiteral("kconfigskeletontestrc"));      s->setCurrentGroup(QStringLiteral("MyGroup"));      itemBool = s->addItemBool(QStringLiteral("MySetting1"), mMyBool, DEFAULT_SETTING1);      s->addItemColor(QStringLiteral("MySetting2"), mMyColor, DEFAULT_SETTING2);      s->setCurrentGroup(QStringLiteral("MyOtherGroup")); -    s->addItemFont(QStringLiteral("MySetting3"), mMyFont, DEFAULT_SETTING3); +    s->addItemFont(QStringLiteral("MySetting3"), mMyFont, defaultSetting3());      s->addItemString(QStringLiteral("MySetting4"), mMyString, DEFAULT_SETTING4);      QCOMPARE(mMyBool, DEFAULT_SETTING1);      QCOMPARE(mMyColor, DEFAULT_SETTING2); -    QCOMPARE(mMyFont, DEFAULT_SETTING3); +    QCOMPARE(mMyFont, defaultSetting3());      QCOMPARE(mMyString, DEFAULT_SETTING4);      QVERIFY(s->isDefaults()); @@ -57,7 +66,7 @@ void KConfigSkeletonTest::testSimple()  {      mMyBool = WRITE_SETTING1;      mMyColor = WRITE_SETTING2; -    mMyFont = WRITE_SETTING3; +    mMyFont = writeSettings3();      mMyString = WRITE_SETTING4;      QVERIFY(s->isSaveNeeded()); @@ -83,35 +92,35 @@ void KConfigSkeletonTest::testSimple()      QCOMPARE(mMyBool, WRITE_SETTING1);      QCOMPARE(mMyColor, WRITE_SETTING2); -    QCOMPARE(mMyFont, WRITE_SETTING3); +    QCOMPARE(mMyFont, writeSettings3());      QCOMPARE(mMyString, WRITE_SETTING4);  }  void KConfigSkeletonTest::testRemoveItem()  { -    QVERIFY(s->findItem("MySetting1")); +    QVERIFY(s->findItem(QStringLiteral("MySetting1")));      s->removeItem(QStringLiteral("MySetting1")); -    QVERIFY(!s->findItem("MySetting1")); +    QVERIFY(!s->findItem(QStringLiteral("MySetting1")));  }  void KConfigSkeletonTest::testClear()  { -    QVERIFY(s->findItem("MySetting2")); -    QVERIFY(s->findItem("MySetting3")); -    QVERIFY(s->findItem("MySetting4")); +    QVERIFY(s->findItem(QStringLiteral("MySetting2"))); +    QVERIFY(s->findItem(QStringLiteral("MySetting3"))); +    QVERIFY(s->findItem(QStringLiteral("MySetting4")));      s->clearItems(); -    QVERIFY(!s->findItem("MySetting2")); -    QVERIFY(!s->findItem("MySetting3")); -    QVERIFY(!s->findItem("MySetting4")); +    QVERIFY(!s->findItem(QStringLiteral("MySetting2"))); +    QVERIFY(!s->findItem(QStringLiteral("MySetting3"))); +    QVERIFY(!s->findItem(QStringLiteral("MySetting4")));  }  void KConfigSkeletonTest::testDefaults()  {      mMyBool = WRITE_SETTING1;      mMyColor = WRITE_SETTING2; -    mMyFont = WRITE_SETTING3; +    mMyFont = writeSettings3();      mMyString = WRITE_SETTING4;      QVERIFY(s->isSaveNeeded()); @@ -129,7 +138,7 @@ void KConfigSkeletonTest::testDefaults()      QCOMPARE(mMyBool, DEFAULT_SETTING1);      QCOMPARE(mMyColor, DEFAULT_SETTING2); -    QCOMPARE(mMyFont, DEFAULT_SETTING3); +    QCOMPARE(mMyFont, defaultSetting3());      QCOMPARE(mMyString, DEFAULT_SETTING4);      s->save(); diff --git a/autotests/kdesktopfiletest.cpp b/autotests/kdesktopfiletest.cpp index 34391489..e45ba44e 100644 --- a/autotests/kdesktopfiletest.cpp +++ b/autotests/kdesktopfiletest.cpp @@ -53,7 +53,7 @@ void KDesktopFileTest::testRead()  #if KCONFIGCORE_ENABLE_DEPRECATED_SINCE(5, 0)  void KDesktopFileTest::testReadDirectory()  { -    QTemporaryFile file("testReadDirectoryXXXXXX.directory"); +    QTemporaryFile file(QStringLiteral("testReadDirectoryXXXXXX.directory"));      QVERIFY(file.open());      const QString fileName = file.fileName();      QTextStream ts(&file); @@ -178,20 +178,20 @@ void KDesktopFileTest::testActionGroup()      KDesktopFile df(fileName);      QCOMPARE(df.readType(), QString());      QCOMPARE(df.fileName(), QFileInfo(fileName).canonicalFilePath()); -    QCOMPARE(df.readActions(), QStringList() << "encrypt" << "semi;colon" << "decrypt"); -    QCOMPARE(df.hasActionGroup("encrypt"), true); -    QCOMPARE(df.hasActionGroup("semi;colon"), true); -    QCOMPARE(df.hasActionGroup("decrypt"), true); -    QCOMPARE(df.hasActionGroup("doesnotexist"), false); +    QCOMPARE(df.readActions(), (QStringList{QStringLiteral("encrypt"), QStringLiteral("semi;colon"), QStringLiteral("decrypt")})); +    QCOMPARE(df.hasActionGroup(QStringLiteral("encrypt")), true); +    QCOMPARE(df.hasActionGroup(QStringLiteral("semi;colon")), true); +    QCOMPARE(df.hasActionGroup(QStringLiteral("decrypt")), true); +    QCOMPARE(df.hasActionGroup(QStringLiteral("doesnotexist")), false);      KConfigGroup cg = df.actionGroup(QStringLiteral("encrypt"));      QVERIFY(cg.hasKey("Name")); -    QCOMPARE(cg.readEntry("Name"), QString("Encrypt file")); +    QCOMPARE(cg.readEntry("Name"), QStringLiteral("Encrypt file"));      cg = df.actionGroup(QStringLiteral("decrypt"));      QVERIFY(cg.hasKey("Name")); -    QCOMPARE(cg.readEntry("Name"), QString("Decrypt file")); +    QCOMPARE(cg.readEntry("Name"), QStringLiteral("Decrypt file"));      cg = df.actionGroup(QStringLiteral("semi;colon"));      QVERIFY(cg.hasKey("Name")); -    QCOMPARE(cg.readEntry("Name"), QString("With semicolon")); +    QCOMPARE(cg.readEntry("Name"), QStringLiteral("With semicolon"));  }  void KDesktopFileTest::testIsAuthorizedDesktopFile() @@ -275,17 +275,25 @@ void KDesktopFileTest::testLocateLocal_data()      QTest::addColumn<QString>("path");      QTest::addColumn<QString>("result"); -    QTest::newRow("configLocation, system-wide") << systemConfigLocation + "/test.desktop" << writableConfigLocation + "/test.desktop"; -    QTest::newRow("autostart, system-wide") << systemConfigLocation + "/autostart/test.desktop" << writableConfigLocation + "/autostart/test.desktop"; -    QTest::newRow("dataLocation, system-wide") << systemDataLocation + "/test.desktop" << writableDataLocation + "/test.desktop"; -    QTest::newRow("applications, system-wide") << systemDataLocation + "/applications/test.desktop" << writableDataLocation + "/applications/test.desktop"; -    QTest::newRow("desktop-directories, system-wide") << systemDataLocation + "/desktop-directories/test.directory" << writableDataLocation + "/desktop-directories/test.directory"; -    QTest::newRow("configLocation, writable") << writableConfigLocation + "/test.desktop" << writableConfigLocation + "/test.desktop"; -    QTest::newRow("autostart, writable") << writableConfigLocation + "/autostart/test.desktop" << writableConfigLocation + "/autostart/test.desktop"; -    QTest::newRow("dataLocation, writable") << writableDataLocation + "/test.desktop" << writableDataLocation + "/test.desktop"; -    QTest::newRow("applications, writable") << writableDataLocation + "/applications/test.desktop" << writableDataLocation + "/applications/test.desktop"; -    QTest::newRow("desktop-directories, writable") << writableDataLocation + "/desktop-directories/test.directory" << writableDataLocation + "/desktop-directories/test.directory"; -    QTest::newRow("unknown location") << "/test.desktop" << writableDataLocation + "/test.desktop"; +    QTest::newRow("configLocation, system-wide") << systemConfigLocation + QLatin1String{"/test.desktop"} +                                                 << writableConfigLocation + QLatin1String{"/test.desktop"}; +    QTest::newRow("autostart, system-wide") << systemConfigLocation + QLatin1String{"/autostart/test.desktop"} +                                            << writableConfigLocation + QLatin1String{"/autostart/test.desktop"}; +    QTest::newRow("dataLocation, system-wide") << systemDataLocation + QLatin1String{"/test.desktop"} << writableDataLocation + QLatin1String{"/test.desktop"}; +    QTest::newRow("applications, system-wide") << systemDataLocation + QLatin1String{"/applications/test.desktop"} +                                               << writableDataLocation + QLatin1String{"/applications/test.desktop"}; +    QTest::newRow("desktop-directories, system-wide") << systemDataLocation + QLatin1String{"/desktop-directories/test.directory"} +                                                      << writableDataLocation + QLatin1String{"/desktop-directories/test.directory"}; +    QTest::newRow("configLocation, writable") << writableConfigLocation + QLatin1String{"/test.desktop"} +                                              << writableConfigLocation + QLatin1String{"/test.desktop"}; +    QTest::newRow("autostart, writable") << writableConfigLocation + QLatin1String{"/autostart/test.desktop"} +                                         << writableConfigLocation + QLatin1String{"/autostart/test.desktop"}; +    QTest::newRow("dataLocation, writable") << writableDataLocation + QLatin1String{"/test.desktop"} << writableDataLocation + QLatin1String{"/test.desktop"}; +    QTest::newRow("applications, writable") << writableDataLocation + QLatin1String{"/applications/test.desktop"} +                                            << writableDataLocation + QLatin1String{"/applications/test.desktop"}; +    QTest::newRow("desktop-directories, writable") << writableDataLocation + QLatin1String{"/desktop-directories/test.directory"} +                                                   << writableDataLocation + QLatin1String{"/desktop-directories/test.directory"}; +    QTest::newRow("unknown location") << QStringLiteral("/test.desktop") << writableDataLocation + QLatin1String{"/test.desktop"};  }  void KDesktopFileTest::testLocateLocal() diff --git a/autotests/kstandardshortcuttest.cpp b/autotests/kstandardshortcuttest.cpp index 69e234ab..1b7f88ff 100644 --- a/autotests/kstandardshortcuttest.cpp +++ b/autotests/kstandardshortcuttest.cpp @@ -49,8 +49,8 @@ void KStandardShortcutTest::testShortcut()  void KStandardShortcutTest::testFindStdAccel()  { -    QCOMPARE(KStandardShortcut::find(QString("Ctrl+F")), KStandardShortcut::Find); -    QCOMPARE(KStandardShortcut::find(QString("Ctrl+Shift+Alt+G")), KStandardShortcut::AccelNone); +    QCOMPARE(KStandardShortcut::find(QKeySequence(Qt::CTRL | Qt::Key_F)), KStandardShortcut::Find); +    QCOMPARE(KStandardShortcut::find(QKeySequence(Qt::CTRL | Qt::SHIFT | Qt::ALT | Qt::Key_G)), KStandardShortcut::AccelNone);  }  void KStandardShortcutTest::testFindByName() diff --git a/autotests/test_kconf_update.cpp b/autotests/test_kconf_update.cpp index ba716f28..88ba385f 100644 --- a/autotests/test_kconf_update.cpp +++ b/autotests/test_kconf_update.cpp @@ -65,8 +65,8 @@ static std::unique_ptr<QTemporaryFile> writeUpdFile(const QString &content)  static void runKConfUpdate(const QString &updPath)  { -    QVERIFY(QFile::exists(KCONF_UPDATE_EXECUTABLE)); -    QCOMPARE(0, QProcess::execute(KCONF_UPDATE_EXECUTABLE, QStringList() << "--testmode" << "--debug" << updPath)); +    QVERIFY(QFile::exists(QStringLiteral(KCONF_UPDATE_EXECUTABLE))); +    QCOMPARE(0, QProcess::execute(QStringLiteral(KCONF_UPDATE_EXECUTABLE), QStringList{QStringLiteral("--testmode"), QStringLiteral("--debug"), updPath}));  }  void TestKConfUpdate::test_data() @@ -313,10 +313,11 @@ void TestKConfUpdate::test()      QFETCH(bool, shouldUpdateWork);      // Prepend Version and the Id= field to the upd content -    const QString header = QStringLiteral("Id=%1\n").arg(QTest::currentDataTag()); +    const QString header = QLatin1String("Id=%1\n").arg(QLatin1String(QTest::currentDataTag()));      updContent = header + updContent; -    if (useVersion5) -        updContent.prepend("Version=5\n"); +    if (useVersion5) { +        updContent.prepend(QLatin1String{"Version=5\n"}); +    }      const QString configDir = QStandardPaths::writableLocation(QStandardPaths::GenericConfigLocation);      QVERIFY(QDir().mkpath(configDir)); @@ -331,7 +332,7 @@ void TestKConfUpdate::test()      std::unique_ptr<QTemporaryFile> updFile(writeUpdFile(updContent));      runKConfUpdate(updFile->fileName()); -    QString updateInfo = QStringLiteral("%1:%2").arg(updFile->fileName().section(QLatin1Char('/'), -1), QTest::currentDataTag()); +    QString updateInfo = QLatin1String("%1:%2").arg(updFile->fileName().section(QLatin1Char('/'), -1), QLatin1String{QTest::currentDataTag()});      QString newConfContentAfter = readFile(newConfPath);      if (shouldUpdateWork) { @@ -609,26 +610,24 @@ void TestKConfUpdate::testScript()      QFETCH(QString, expectedNewConfContent);      // Prepend the Version and Id= field to the upd content -    updContent = QStringLiteral("Version=5\nId=%1\n").arg(QTest::currentDataTag()) + updContent; +    updContent.prepend(QLatin1String("Version=5\nId=%1\n").arg(QLatin1String{QTest::currentDataTag()}));      std::unique_ptr<QTemporaryFile> updFile(writeUpdFile(updContent)); -    const QString scriptDir = QStandardPaths::writableLocation(QStandardPaths::GenericDataLocation) + "/kconf_update"; +    const QString scriptDir = QStandardPaths::writableLocation(QStandardPaths::GenericDataLocation) + QLatin1String{"/kconf_update"};      QVERIFY(QDir().mkpath(scriptDir)); -    QString scriptPath = scriptDir + "/test.sh"; +    const QString scriptPath = scriptDir + QLatin1String{"/test.sh"};      writeFile(scriptPath, updScript);      QCOMPARE(readFile(scriptPath), updScript); -    QString confPath = QStandardPaths::writableLocation(QStandardPaths::GenericConfigLocation) + QLatin1Char('/') + "testrc"; +    const QString confPath = QStandardPaths::writableLocation(QStandardPaths::GenericConfigLocation) + QLatin1String{"/testrc"};      writeFile(confPath, oldConfContent);      QCOMPARE(readFile(confPath), oldConfContent);      runKConfUpdate(updFile->fileName()); -    QString updateInfo = QStringLiteral("%1:%2").arg(updFile->fileName().section(QLatin1Char('/'), -1), QTest::currentDataTag()); +    const QString updateInfo = QLatin1String("%1:%2").arg(updFile->fileName().section(QLatin1Char{'/'}, -1), QLatin1String{QTest::currentDataTag()});      QString newConfContent = readFile(confPath);      expectedNewConfContent = expectedNewConfContent.arg(updateInfo);      QCOMPARE(newConfContent, expectedNewConfContent);  } - - diff --git a/src/kconf_update/kconf_update.cpp b/src/kconf_update/kconf_update.cpp index a1a1ac72..c2552c23 100644 --- a/src/kconf_update/kconf_update.cpp +++ b/src/kconf_update/kconf_update.cpp @@ -122,7 +122,7 @@ KonfUpdate::KonfUpdate(QCommandLineParser *parser)          // its mode. This can however be overridden by the environment, so          // we'll want to have a fallback warning if debug is not enabled          // after setting the filter. -        QLoggingCategory::setFilterRules(QStringLiteral("%1.debug=true").arg(KCONF_UPDATE_LOG().categoryName())); +        QLoggingCategory::setFilterRules(QLatin1String("%1.debug=true").arg(QLatin1String{KCONF_UPDATE_LOG().categoryName()}));          qDebug() << "Automatically enabled the debug logging category" << KCONF_UPDATE_LOG().categoryName();          if (!KCONF_UPDATE_LOG().isDebugEnabled()) {              qWarning("The debug logging category %s needs to be enabled manually to get debug output", @@ -138,7 +138,8 @@ KonfUpdate::KonfUpdate(QCommandLineParser *parser)      m_bUseConfigInfo = false;      if (parser->isSet(QStringLiteral("check"))) {          m_bUseConfigInfo = true; -        const QString file = QStandardPaths::locate(QStandardPaths::GenericDataLocation, "kconf_update/" + parser->value(QStringLiteral("check"))); +        const QString file = +            QStandardPaths::locate(QStandardPaths::GenericDataLocation, QLatin1String{"kconf_update/"} + parser->value(QStringLiteral("check")));          if (file.isEmpty()) {              qWarning("File '%s' not found.", parser->value(QStringLiteral("check")).toLocal8Bit().data());              qCDebug(KCONF_UPDATE_LOG) << "File" << parser->value(QStringLiteral("check")) << "passed on command line not found"; @@ -211,7 +212,7 @@ QStringList KonfUpdate::findUpdateFiles(bool dirtyOnly)  bool KonfUpdate::checkFile(const QString &filename)  {      m_currentFilename = filename; -    int i = m_currentFilename.lastIndexOf('/'); +    const int i = m_currentFilename.lastIndexOf(QLatin1Char{'/'});      if (i != -1) {          m_currentFilename = m_currentFilename.mid(i + 1);      } @@ -237,7 +238,7 @@ bool KonfUpdate::checkFile(const QString &filename)              foundVersion = true;          }          ++lineCount; -        if (line.isEmpty() || (line[0] == '#')) { +        if (line.isEmpty() || (line[0] == QLatin1Char{'#'})) {              continue;          }          if (line.startsWith(QLatin1String("Id="))) { @@ -247,7 +248,7 @@ bool KonfUpdate::checkFile(const QString &filename)                          qUtf8Printable(filename));                  return true;              } -            id = m_currentFilename + ':' + line.mid(3); +            id = m_currentFilename + QLatin1Char{':'} + line.mid(3);          } else if (line.startsWith(QLatin1String("File="))) {              checkGotFile(line.mid(5), id);          } @@ -259,7 +260,7 @@ bool KonfUpdate::checkFile(const QString &filename)  void KonfUpdate::checkGotFile(const QString &_file, const QString &id)  {      QString file; -    int i = _file.indexOf(','); +    const int i = _file.indexOf(QLatin1Char{','});      if (i == -1) {          file = _file.trimmed();      } else { @@ -300,7 +301,7 @@ void KonfUpdate::checkGotFile(const QString &_file, const QString &id)  bool KonfUpdate::updateFile(const QString &filename)  {      m_currentFilename = filename; -    int i = m_currentFilename.lastIndexOf('/'); +    const int i = m_currentFilename.lastIndexOf(QLatin1Char{'/'});      if (i != -1) {          m_currentFilename = m_currentFilename.mid(i + 1);      } @@ -441,7 +442,7 @@ void KonfUpdate::gotFile(const QString &_file)          KConfigGroup cg(m_oldConfig2, "$Version");          QStringList ids = cg.readEntry("update_info", QStringList()); -        QString cfg_id = m_currentFilename + ':' + m_id; +        QString cfg_id = m_currentFilename + QLatin1Char{':'} + m_id;          if (!ids.contains(cfg_id) && !m_skip) {              ids.append(cfg_id);              cg.writeEntry("update_info", ids); @@ -463,7 +464,7 @@ void KonfUpdate::gotFile(const QString &_file)          // Close new file.          KConfigGroup cg(m_newConfig, "$Version");          QStringList ids = cg.readEntry("update_info", QStringList()); -        QString cfg_id = m_currentFilename + ':' + m_id; +        const QString cfg_id = m_currentFilename + QLatin1Char{':'} + m_id;          if (!ids.contains(cfg_id) && !m_skip) {              ids.append(cfg_id);              cg.writeEntry("update_info", ids); @@ -476,7 +477,7 @@ void KonfUpdate::gotFile(const QString &_file)      }      m_newConfig = nullptr; -    int i = _file.indexOf(','); +    const int i = _file.indexOf(QLatin1Char{','});      if (i == -1) {          m_oldFile = _file.trimmed();      } else { @@ -489,7 +490,7 @@ void KonfUpdate::gotFile(const QString &_file)      if (!m_oldFile.isEmpty()) {          m_oldConfig2 = new KConfig(m_oldFile, KConfig::NoGlobals); -        QString cfg_id = m_currentFilename + ':' + m_id; +        const QString cfg_id = m_currentFilename + QLatin1Char{':'} + m_id;          KConfigGroup cg(m_oldConfig2, "$Version");          QStringList ids = cg.readEntry("update_info", QStringList());          if (ids.contains(cfg_id)) { @@ -549,7 +550,7 @@ void KonfUpdate::gotGroup(const QString &_group)          return;      } -    QStringList tokens = group.split(','); +    const QStringList tokens = group.split(QLatin1Char{','});      m_oldGroup = parseGroupString(tokens.at(0));      if (tokens.count() == 1) {          m_newGroup = m_oldGroup; @@ -579,7 +580,7 @@ void KonfUpdate::gotRemoveGroup(const QString &_group)  void KonfUpdate::gotKey(const QString &_key)  {      QString oldKey, newKey; -    int i = _key.indexOf(','); +    const int i = _key.indexOf(QLatin1Char{','});      if (i == -1) {          oldKey = _key.trimmed();          newKey = oldKey; @@ -704,7 +705,7 @@ void KonfUpdate::gotAllGroups()  void KonfUpdate::gotOptions(const QString &_options)  { -    const QStringList options = _options.split(','); +    const QStringList options = _options.split(QLatin1Char{','});      for (QStringList::ConstIterator it = options.begin();              it != options.end();              ++it) { @@ -750,8 +751,9 @@ void KonfUpdate::gotScriptArguments(const QString &_arguments)  void KonfUpdate::gotScript(const QString &_script)  { -    QString script, interpreter; -    int i = _script.indexOf(','); +    QString script; +    QString interpreter; +    const int i = _script.indexOf(QLatin1Char{','});      if (i == -1) {          script = _script.trimmed();      } else { @@ -768,7 +770,7 @@ void KonfUpdate::gotScript(const QString &_script)      QString path = QStandardPaths::locate(QStandardPaths::GenericDataLocation, QLatin1String("kconf_update/") + script);      if (path.isEmpty()) {          if (interpreter.isEmpty()) { -            path = CMAKE_INSTALL_PREFIX "/" LIB_INSTALL_DIR "/kconf_update_bin/" + script; +            path = QLatin1String{CMAKE_INSTALL_PREFIX "/" LIB_INSTALL_DIR "/kconf_update_bin/"} + script;              if (!QFile::exists(path)) {                  path = QStandardPaths::findExecutable(script);              } @@ -899,16 +901,16 @@ void KonfUpdate::gotScript(const QString &_script)              ts.setCodec(QTextCodec::codecForName("UTF-8"));  #endif              while (!ts.atEnd()) { -                QString line = ts.readLine(); -                if (line.startsWith('[')) { +                const QString line = ts.readLine(); +                if (line.startsWith(QLatin1Char{'['})) {                      group = parseGroupString(line);                  } else if (line.startsWith(QLatin1String("# DELETE "))) {                      QString key = line.mid(9); -                    if (key[0] == '[') { -                        int j = key.lastIndexOf(']') + 1; -                        if (j > 0) { -                            group = parseGroupString(key.left(j)); -                            key = key.mid(j); +                    if (key.startsWith(QLatin1Char{'['})) { +                        const int idx = key.lastIndexOf(QLatin1Char{']'}) + 1; +                        if (idx > 0) { +                            group = parseGroupString(key.left(idx)); +                            key = key.mid(idx);                          }                      }                      KConfigGroup cg = KConfigUtils::openGroup(m_oldConfig2, group); @@ -918,7 +920,7 @@ void KonfUpdate::gotScript(const QString &_script)                         qCDebug(KCONF_UPDATE_LOG) << m_currentFilename << ": Removing empty group " << m_oldFile << ":" << group;                      } (this should be automatic)*/                  } else if (line.startsWith(QLatin1String("# DELETEGROUP"))) { -                    QString str = line.mid(13).trimmed(); +                    const QString str = line.mid(13).trimmed();                      if (!str.isEmpty()) {                          group = parseGroupString(str);                      } diff --git a/src/kconf_update/kconfigutils.cpp b/src/kconf_update/kconfigutils.cpp index a47ef53a..56e5cba7 100644 --- a/src/kconf_update/kconfigutils.cpp +++ b/src/kconf_update/kconfigutils.cpp @@ -38,12 +38,12 @@ QStringList parseGroupString(const QString &_str, bool *ok, QString *error)      }      *ok = true; -    if (str[0] != '[') { +    if (!str.startsWith(QLatin1Char{'['})) {          // Simplified notation, no '[' -        return QStringList() << str; +        return QStringList{str};      } -    if (!str.endsWith(']')) { +    if (!str.endsWith(QLatin1Char{']'})) {          *ok = false;          *error = QStringLiteral("Missing closing ']' in %1").arg(_str);          return QStringList(); @@ -52,16 +52,16 @@ QStringList parseGroupString(const QString &_str, bool *ok, QString *error)      str.chop(1);      str.remove(0, 1); -    return str.split(QStringLiteral("][")); +    return str.split(QLatin1String{"]["});  }  QString unescapeString(const QString &src, bool *ok, QString *error)  {      QString dst; -    int length = src.length(); +    const int length = src.length();      for (int pos = 0; pos < length; ++pos) {          QChar ch = src.at(pos); -        if (ch != '\\') { +        if (ch != QLatin1Char{'\\'}) {              dst += ch;          } else {              ++pos; @@ -70,22 +70,29 @@ QString unescapeString(const QString &src, bool *ok, QString *error)                  *error = QStringLiteral("Unfinished escape sequence in %1").arg(src);                  return QString();              } +              ch = src.at(pos); -            if (ch == 's') { -                dst += ' '; -            } else if (ch == 't') { -                dst += '\t'; -            } else if (ch == 'n') { -                dst += '\n'; -            } else if (ch == 'r') { -                dst += '\r'; -            } else if (ch == '\\') { -                dst += '\\'; -            } else if (ch == 'x') { +            switch (ch.unicode()) { +            case L's': +                dst += QLatin1Char{' '}; +                break; +            case L't': +                dst += QLatin1Char{'\t'}; +                break; +            case L'n': +                dst += QLatin1Char{'\n'}; +                break; +            case L'r': +                dst += QLatin1Char{'\r'}; +                break; +            case L'\\': +                dst += QLatin1Char{'\\'}; +                break; +            case L'x': {                  if (pos + 2 < length) {                      char value = src.midRef(pos + 1, 2).toInt(ok, 16);                      if (*ok) { -                        dst += QChar::fromLatin1(value); +                        dst += QLatin1Char{value};                          pos += 2;                      } else {                          *error = QStringLiteral("Invalid hex escape sequence at column %1 in %2").arg(pos).arg(src); @@ -96,11 +103,15 @@ QString unescapeString(const QString &src, bool *ok, QString *error)                      *error = QStringLiteral("Unfinished hex escape sequence at column %1 in %2").arg(pos).arg(src);                      return QString();                  } -            } else { + +                break; +            } +            default: {                  *ok = false;                  *error = QStringLiteral("Invalid escape sequence at column %1 in %2").arg(pos).arg(src);                  return QString();              } +            }          }      } | 
