shift-shell/envmanager/utils.h
Devin Lin 92a1cfc740 envmanager: Write options as immutable, and add kdeglobals
This commit writes options as immutable to the config file ([$i]
suffix), so that user defined options from desktop do not override our
specified mobile settings.

This commit also moves kdeglobals settings to be written to
~/.config/plasma-mobile/kdeglobals rather than directly to
~/.config/kdeglobals, continuing the work from
!723

Fixes https://invent.kde.org/plasma/plasma-mobile/-/issues/467
2025-06-13 07:16:18 -04:00

25 lines
900 B
C

// SPDX-FileCopyrightText: 2023-2025 Devin Lin <devin@kde.org>
// SPDX-License-Identifier: GPL-2.0-or-later
#pragma once
#include <QDir>
#include <QFile>
#include <QLoggingCategory>
#include <QTextStream>
static const QLoggingCategory &LOGGING_CATEGORY()
{
static const QLoggingCategory category("plasma-mobile-envmanager");
return category;
}
/**
* Sets each config option in the config file to be immutable or not (appended with [$i])
* See https://api.kde.org/frameworks/kconfig/html/options.html for more details.
*
* @param immutable whether to set options to be immutable, or to remove immutability
* @param configFilePath path to the config file
* @param options the options in the config file to affect (format: <config group, <key, value>>)
*/
void setOptionsImmutable(bool immutable, const QString &configFilePath, const QMap<QString, QMap<QString, QVariant>> &options);