diff --git a/kcms/componentchooser/componentchooserfilemanager.cpp b/kcms/componentchooser/componentchooserfilemanager.cpp --- a/kcms/componentchooser/componentchooserfilemanager.cpp +++ b/kcms/componentchooser/componentchooserfilemanager.cpp @@ -20,7 +20,6 @@ #include "componentchooserfilemanager.h" #include -#include #include #include #include @@ -48,14 +47,24 @@ void CfgFileManager::defaults() { load(nullptr); + + for (QRadioButton *radio : qAsConst(mDynamicRadioButtons)) { + // selects dolphin as default + if (radio->property("storageId") == QStringLiteral("org.kde.dolphin.desktop")) { + radio->setChecked(true); + } + } } bool CfgFileManager::isDefaults() const { if (!mDynamicRadioButtons.isEmpty()) { - return !mDynamicRadioButtons.last()->isChecked(); + // When dolphin is not present, we can't assume any default value + return !std::any_of(mDynamicRadioButtons.constBegin(), mDynamicRadioButtons.constEnd(), [=](const QRadioButton *radio) { + return radio->property("storageId") == QStringLiteral("org.kde.dolphin.desktop") && !radio->isChecked(); + }); } else { - return false; + return true; } }