File indexing completed on 2024-04-14 05:29:59

0001 /*
0002     SPDX-FileCopyrightText: 2020 David Redondo <kde@david-redondo.de>
0003     SPDX-License-Identifier: GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
0004 */
0005 
0006 #include "sddmsettingsbase.h"
0007 
0008 #include "config.h"
0009 
0010 #include <QDebug>
0011 #include <QDir>
0012 
0013 #include <algorithm>
0014 
0015 SddmSettingsBase::SddmSettingsBase(KSharedConfigPtr config, QObject *parent)
0016     : KConfigSkeleton(config, parent)
0017 {
0018     auto defaultFiles = QDir(QStringLiteral(SDDM_SYSTEM_CONFIG_DIR)).entryList(QDir::Files | QDir::NoDotAndDotDot, QDir::LocaleAware);
0019     std::transform(defaultFiles.begin(), defaultFiles.end(), defaultFiles.begin(), [](const QString &filename) -> QString {
0020         return QStringLiteral(SDDM_SYSTEM_CONFIG_DIR "/") + filename;
0021     });
0022     // If no filename is set, KConfig will not parse any file
0023     if (!defaultFiles.isEmpty()) {
0024         m_defaultConfig = KSharedConfig::openConfig(defaultFiles.takeLast(), KConfig::CascadeConfig);
0025     } else {
0026         m_defaultConfig = KSharedConfig::openConfig(QString(), KConfig::CascadeConfig);
0027     }
0028     m_defaultConfig->addConfigSources(defaultFiles);
0029 }
0030 
0031 QString SddmSettingsBase::defaultCurrent() const
0032 {
0033     return m_defaultConfig->group("Theme").readEntry("Current");
0034 }
0035 
0036 unsigned int SddmSettingsBase::defaultMinimumUid() const
0037 {
0038     return m_defaultConfig->group("Users").readEntry("MinimumUid", 1000);
0039 }
0040 
0041 unsigned int SddmSettingsBase::defaultMaximumUid() const
0042 {
0043     return m_defaultConfig->group("Users").readEntry("MaximumUid", 60000);
0044 }
0045 
0046 QString SddmSettingsBase::defaultUser() const
0047 {
0048     return m_defaultConfig->group("AutoLogin").readEntry("User");
0049 }
0050 
0051 QString SddmSettingsBase::defaultSession() const
0052 {
0053     return m_defaultConfig->group("AutoLogin").readEntry("Session");
0054 }
0055 
0056 bool SddmSettingsBase::defaultRelogin() const
0057 {
0058     return m_defaultConfig->group("AutoLogin").readEntry("Relogin", false);
0059 }
0060 
0061 QString SddmSettingsBase::defaultHaltCommand() const
0062 {
0063     return m_defaultConfig->group("General").readEntry("HaltCommand");
0064 }
0065 
0066 QString SddmSettingsBase::defaultRebootCommand() const
0067 {
0068     return m_defaultConfig->group("General").readEntry("RebootCommand");
0069 }