mirror of
https://github.com/keepassxreboot/keepassxc.git
synced 2024-10-01 01:26:01 -04:00
parent
5caf68988e
commit
e7fe3ff968
@ -74,6 +74,11 @@ NixUtils::NixUtils(QObject* parent)
|
||||
"SettingChanged",
|
||||
this,
|
||||
SLOT(handleColorSchemeChanged(QString, QString, QDBusVariant)));
|
||||
|
||||
QDBusMessage msg = QDBusMessage::createMethodCall(
|
||||
"org.freedesktop.portal.Desktop", "/org/freedesktop/portal/desktop", "org.freedesktop.portal.Settings", "Read");
|
||||
msg << QVariant("org.freedesktop.appearance") << QVariant("color-scheme");
|
||||
sessionBus.callWithCallback(msg, this, SLOT(handleColorSchemeRead(QDBusVariant)));
|
||||
}
|
||||
|
||||
NixUtils::~NixUtils()
|
||||
@ -83,7 +88,7 @@ NixUtils::~NixUtils()
|
||||
bool NixUtils::isDarkMode() const
|
||||
{
|
||||
// prefer freedesktop "org.freedesktop.appearance color-scheme" setting
|
||||
if (m_systemColorschemePref != ColorschemePref::PreferNone) {
|
||||
if (m_systemColorschemePrefExists) {
|
||||
return m_systemColorschemePref == ColorschemePref::PreferDark;
|
||||
}
|
||||
|
||||
@ -299,10 +304,22 @@ bool NixUtils::unregisterGlobalShortcut(const QString& name)
|
||||
return true;
|
||||
}
|
||||
|
||||
void NixUtils::handleColorSchemeRead(QDBusVariant value)
|
||||
{
|
||||
value = qvariant_cast<QDBusVariant>(value.variant());
|
||||
setColorScheme(value);
|
||||
}
|
||||
|
||||
void NixUtils::handleColorSchemeChanged(QString ns, QString key, QDBusVariant value)
|
||||
{
|
||||
if (ns == "org.freedesktop.appearance" && key == "color-scheme") {
|
||||
m_systemColorschemePref = static_cast<ColorschemePref>(value.variant().toInt());
|
||||
emit interfaceThemeChanged();
|
||||
setColorScheme(value);
|
||||
}
|
||||
}
|
||||
|
||||
void NixUtils::setColorScheme(QDBusVariant value)
|
||||
{
|
||||
m_systemColorschemePref = static_cast<ColorschemePref>(value.variant().toInt());
|
||||
m_systemColorschemePrefExists = true;
|
||||
emit interfaceThemeChanged();
|
||||
}
|
||||
|
@ -50,6 +50,7 @@ public:
|
||||
}
|
||||
|
||||
private slots:
|
||||
void handleColorSchemeRead(QDBusVariant value);
|
||||
void handleColorSchemeChanged(QString ns, QString key, QDBusVariant value);
|
||||
|
||||
private:
|
||||
@ -79,6 +80,9 @@ private:
|
||||
PreferLight
|
||||
};
|
||||
ColorschemePref m_systemColorschemePref = ColorschemePref::PreferNone;
|
||||
bool m_systemColorschemePrefExists;
|
||||
|
||||
void setColorScheme(QDBusVariant value);
|
||||
|
||||
Q_DISABLE_COPY(NixUtils)
|
||||
};
|
||||
|
Loading…
Reference in New Issue
Block a user