shift-shell/initialstart/settings.cpp
Marco Allegretti 42d41351e2 Add profile-aware initial setup
Detect the device class, stage the selected experience, and write the resulting setup choices through SetupState.

Load the new device and experience modules before the existing setup pages, and use the Shift icon on the finished page.
2026-05-11 10:03:07 +02:00

35 lines
1 KiB
C++

// SPDX-FileCopyrightText: 2023 Devin Lin <devin@kde.org>
// SPDX-License-Identifier: GPL-2.0-or-later
#include "settings.h"
#include <KConfigGroup>
const QString CONFIG_FILE = QStringLiteral("plasmamobilerc");
const QString INITIAL_START_CONFIG_GROUP = QStringLiteral("InitialStart");
Settings::Settings(QObject *parent)
: QObject{parent}
, m_mobileConfig{KSharedConfig::openConfig(CONFIG_FILE)}
{
}
bool Settings::shouldStartWizard()
{
const KConfigGroup initialStartGroup{m_mobileConfig, INITIAL_START_CONFIG_GROUP};
const KConfigGroup generalGroup{m_mobileConfig, QStringLiteral("General")};
return !initialStartGroup.readEntry("wizardRun", false) || generalGroup.readEntry("setupExperienceProfile", QString()).isEmpty();
}
void Settings::setWizardFinished()
{
auto group = KConfigGroup{m_mobileConfig, INITIAL_START_CONFIG_GROUP};
group.writeEntry("wizardRun", true, KConfigGroup::Notify);
m_mobileConfig->sync();
}
Settings *Settings::self()
{
static auto instance = new Settings;
return instance;
}