2024-08-08 17:41:59 +00:00
|
|
|
/*
|
2024-09-17 19:00:25 +00:00
|
|
|
* Deskflow -- mouse and keyboard sharing utility
|
2026-06-08 20:37:23 +00:00
|
|
|
* SPDX-FileCopyrightText: (C) 2024 Synergy App Ltd
|
2025-01-24 00:11:17 +00:00
|
|
|
* SPDX-License-Identifier: GPL-2.0-only WITH LicenseRef-OpenSSL-Exception
|
2024-08-08 17:41:59 +00:00
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
#include "QSettingsProxy.h"
|
|
|
|
|
|
2025-03-13 02:02:48 +00:00
|
|
|
#include "common/Settings.h"
|
2024-08-09 18:20:10 +00:00
|
|
|
|
2024-08-12 15:39:18 +00:00
|
|
|
/**
|
|
|
|
|
* @brief The base dir for the system settings file.
|
|
|
|
|
*
|
|
|
|
|
* Important: Qt will append the org name as a dir, and the app name as the
|
2024-09-17 19:00:25 +00:00
|
|
|
* settings filename, i.e.: `{base-dir}/Deskflow/Deskflow.ini`
|
2024-08-12 15:39:18 +00:00
|
|
|
*/
|
2024-10-17 18:04:35 +00:00
|
|
|
QString getSystemSettingsBaseDir()
|
|
|
|
|
{
|
2025-03-13 02:02:48 +00:00
|
|
|
return Settings::SystemDir;
|
2024-08-09 18:20:10 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//
|
|
|
|
|
// QSettingsProxy
|
|
|
|
|
//
|
|
|
|
|
|
2025-03-15 02:17:08 +00:00
|
|
|
void QSettingsProxy::load(const QString &fileName)
|
|
|
|
|
{
|
2025-03-31 18:31:51 +00:00
|
|
|
if (m_pSettings)
|
|
|
|
|
m_pSettings.get()->deleteLater();
|
|
|
|
|
|
|
|
|
|
if (fileName.isEmpty())
|
|
|
|
|
m_pSettings = std::make_unique<QSettings>(QSettings::NativeFormat, QSettings::UserScope, kAppName, kAppName);
|
|
|
|
|
else
|
|
|
|
|
m_pSettings = std::make_unique<QSettings>(fileName, QSettings::IniFormat);
|
2025-03-15 02:17:08 +00:00
|
|
|
}
|
|
|
|
|
|
2024-10-17 18:04:35 +00:00
|
|
|
int QSettingsProxy::beginReadArray(const QString &prefix)
|
|
|
|
|
{
|
2024-08-08 17:41:59 +00:00
|
|
|
return m_pSettings->beginReadArray(prefix);
|
|
|
|
|
}
|
|
|
|
|
|
2024-10-17 18:04:35 +00:00
|
|
|
void QSettingsProxy::setArrayIndex(int i)
|
|
|
|
|
{
|
|
|
|
|
m_pSettings->setArrayIndex(i);
|
|
|
|
|
}
|
2024-08-08 17:41:59 +00:00
|
|
|
|
2024-10-17 18:04:35 +00:00
|
|
|
QVariant QSettingsProxy::value(const QString &key) const
|
|
|
|
|
{
|
2024-08-08 17:41:59 +00:00
|
|
|
return m_pSettings->value(key);
|
|
|
|
|
}
|
|
|
|
|
|
2024-10-17 18:04:35 +00:00
|
|
|
QVariant QSettingsProxy::value(const QString &key, const QVariant &defaultValue) const
|
|
|
|
|
{
|
2024-08-08 17:41:59 +00:00
|
|
|
return m_pSettings->value(key, defaultValue);
|
|
|
|
|
}
|
|
|
|
|
|
2024-10-17 18:04:35 +00:00
|
|
|
void QSettingsProxy::endArray()
|
|
|
|
|
{
|
|
|
|
|
m_pSettings->endArray();
|
|
|
|
|
}
|
2024-08-08 17:41:59 +00:00
|
|
|
|
2024-10-17 18:04:35 +00:00
|
|
|
void QSettingsProxy::beginWriteArray(const QString &prefix)
|
|
|
|
|
{
|
2024-08-08 17:41:59 +00:00
|
|
|
m_pSettings->beginWriteArray(prefix);
|
|
|
|
|
}
|
|
|
|
|
|
2024-10-17 18:04:35 +00:00
|
|
|
void QSettingsProxy::setValue(const QString &key, const QVariant &value)
|
|
|
|
|
{
|
2024-08-08 17:41:59 +00:00
|
|
|
m_pSettings->setValue(key, value);
|
|
|
|
|
}
|
|
|
|
|
|
2024-10-17 18:04:35 +00:00
|
|
|
void QSettingsProxy::beginGroup(const QString &prefix)
|
|
|
|
|
{
|
2024-08-08 17:41:59 +00:00
|
|
|
m_pSettings->beginGroup(prefix);
|
|
|
|
|
}
|
|
|
|
|
|
2024-10-17 18:04:35 +00:00
|
|
|
void QSettingsProxy::remove(const QString &key)
|
|
|
|
|
{
|
|
|
|
|
m_pSettings->remove(key);
|
|
|
|
|
}
|
2024-08-08 17:41:59 +00:00
|
|
|
|
2024-10-17 18:04:35 +00:00
|
|
|
void QSettingsProxy::endGroup()
|
|
|
|
|
{
|
|
|
|
|
m_pSettings->endGroup();
|
|
|
|
|
}
|
2024-08-08 17:41:59 +00:00
|
|
|
|
2024-10-17 18:04:35 +00:00
|
|
|
bool QSettingsProxy::isWritable() const
|
|
|
|
|
{
|
|
|
|
|
return m_pSettings->isWritable();
|
|
|
|
|
}
|
2024-08-08 17:41:59 +00:00
|
|
|
|
2024-10-17 18:04:35 +00:00
|
|
|
bool QSettingsProxy::contains(const QString &key) const
|
|
|
|
|
{
|
2024-08-08 17:41:59 +00:00
|
|
|
return m_pSettings->contains(key);
|
|
|
|
|
}
|