From 21b88b373e81398c3edf80144df5de51a5c9a957 Mon Sep 17 00:00:00 2001 From: Klaus Basan Date: Thu, 5 Jun 2014 02:52:36 +0200 Subject: [PATCH] refs #258, settings for voice room notifications --- src/blackcore/context_settings.h | 24 +++++++---- src/blackcore/context_settings_impl.cpp | 52 +++++++++++++++++++----- src/blackcore/context_settings_impl.h | 6 +++ src/blackcore/context_settings_proxy.cpp | 10 ++++- src/blackcore/context_settings_proxy.h | 3 ++ 5 files changed, 75 insertions(+), 20 deletions(-) diff --git a/src/blackcore/context_settings.h b/src/blackcore/context_settings.h index f9eaf0e74..e367d3f33 100644 --- a/src/blackcore/context_settings.h +++ b/src/blackcore/context_settings.h @@ -13,6 +13,7 @@ #include "blackmisc/statusmessagelist.h" #include "blackmisc/settingutilities.h" #include "blackmisc/setnetwork.h" +#include "blackmisc/setaudio.h" #include "blackmisc/dbus.h" #include "blackmisc/variant.h" #include @@ -36,7 +37,8 @@ namespace BlackCore enum SettingsType { SettingsHotKeys, - SettingsNetwork + SettingsNetwork, + SettingsAudio }; protected: @@ -70,20 +72,21 @@ namespace BlackCore return s; } - /*! - * \brief Path for network settings - * \remarks no to be confused with DBus paths - */ + //! Path for audio settings + static const QString &PathAudioSettings() + { + static QString s("audio"); + return s; + } + + //! Root path static const QString &PathRoot() { static QString s("root"); return s; } - /*! - * \brief Path for hotkeys - * \remarks no to be confused with DBus paths - */ + //! Path for hotkeys static const QString &PathHotkeys() { static QString s("hotkeys"); @@ -111,6 +114,9 @@ namespace BlackCore //! Network settings virtual BlackMisc::Settings::CSettingsNetwork getNetworkSettings() const = 0; + //! Audio settings + virtual BlackMisc::Settings::CSettingsAudio getAudioSettings() const = 0; + //! Hotkeys virtual BlackMisc::Hardware::CKeyboardKeyList getHotkeys() const = 0; diff --git a/src/blackcore/context_settings_impl.cpp b/src/blackcore/context_settings_impl.cpp index d2538f642..742d49e9d 100644 --- a/src/blackcore/context_settings_impl.cpp +++ b/src/blackcore/context_settings_impl.cpp @@ -36,21 +36,21 @@ namespace BlackCore } bool ok = false; QFile jsonFile(this->getSettingsFileName()); - QJsonObject obj; + QJsonObject jsonObject; if (jsonFile.open(QFile::ReadOnly)) { QJsonDocument doc = QJsonDocument::fromJson(jsonFile.readAll()); - obj = doc.object(); + jsonObject = doc.object(); ok = true; } jsonFile.close(); // init network - if (obj.contains(IContextSettings::PathNetworkSettings())) + if (jsonObject.contains(IContextSettings::PathNetworkSettings())) { this->m_settingsNetwork.fromJson( - obj.value(IContextSettings::PathNetworkSettings()).toObject() + jsonObject.value(IContextSettings::PathNetworkSettings()).toObject() ); } else @@ -58,11 +58,23 @@ namespace BlackCore this->m_settingsNetwork.initDefaultValues(); } + // init audio + if (jsonObject.contains(IContextSettings::PathAudioSettings())) + { + this->m_settingsAudio.fromJson( + jsonObject.value(IContextSettings::PathNetworkSettings()).toObject() + ); + } + else + { + this->m_settingsAudio.initDefaultValues(); + } + // init own members - if (obj.contains(IContextSettings::PathHotkeys())) + if (jsonObject.contains(IContextSettings::PathHotkeys())) { this->m_hotkeys.fromJson( - obj.value(IContextSettings::PathHotkeys()).toObject() + jsonObject.value(IContextSettings::PathHotkeys()).toObject() ); } this->m_hotkeys.initAsHotkeyList(false); // update missing parts @@ -116,6 +128,7 @@ namespace BlackCore { this->m_hotkeys.initAsHotkeyList(true); this->m_settingsNetwork.initDefaultValues(); + this->m_settingsAudio.initDefaultValues(); this->emitCompletelyChanged(); if (write) return this->write(); @@ -136,10 +149,11 @@ namespace BlackCore */ QJsonDocument CContextSettings::toJsonDocument() const { - QJsonObject obj; - obj.insert(IContextSettings::PathNetworkSettings(), this->m_settingsNetwork.toJson()); - obj.insert(IContextSettings::PathHotkeys(), this->m_hotkeys.toJson()); - QJsonDocument doc(obj); + QJsonObject jsonObject; + jsonObject.insert(IContextSettings::PathNetworkSettings(), this->m_settingsNetwork.toJson()); + jsonObject.insert(IContextSettings::PathAudioSettings(), this->m_settingsAudio.toJson()); + jsonObject.insert(IContextSettings::PathHotkeys(), this->m_hotkeys.toJson()); + QJsonDocument doc(jsonObject); return doc; } @@ -150,6 +164,7 @@ namespace BlackCore { emit this->changedSettings(IContextSettings::SettingsHotKeys); emit this->changedSettings(IContextSettings::SettingsNetwork); + emit this->changedSettings(IContextSettings::SettingsAudio); } /* @@ -168,6 +183,14 @@ namespace BlackCore return this->m_settingsNetwork; } + /* + * Audio settings + */ + CSettingsAudio CContextSettings::getAudioSettings() const + { + return this->m_settingsAudio; + } + /* * Pass value */ @@ -204,6 +227,15 @@ namespace BlackCore emit this->changedSettings(static_cast(SettingsNetwork)); } } + else if (path.startsWith(IContextSettings::PathAudioSettings())) + { + msgs = this->m_settingsAudio.value(nextLevelPath, command, value, changed); + if (changed) + { + msgs.push_back(this->write()); + emit this->changedSettings(static_cast(SettingsAudio)); + } + } else { // wrong path diff --git a/src/blackcore/context_settings_impl.h b/src/blackcore/context_settings_impl.h index b256ec89e..a7db222ed 100644 --- a/src/blackcore/context_settings_impl.h +++ b/src/blackcore/context_settings_impl.h @@ -11,6 +11,8 @@ #include "context_runtime.h" #include "blackmisc/setnetwork.h" +#include "blackmisc/setaudio.h" + #include "blackmisc/statusmessagelist.h" #include "blackmisc/hwkeyboardkeylist.h" @@ -52,6 +54,9 @@ namespace BlackCore //! \copydoc IContextSettings::getNetworkSettings() virtual BlackMisc::Settings::CSettingsNetwork getNetworkSettings() const override; + //! \copydoc IContextSettings::getAudioSettings() + virtual BlackMisc::Settings::CSettingsAudio getAudioSettings() const override; + //! \copydoc IContextSettings::getHotkeys() virtual BlackMisc::Hardware::CKeyboardKeyList getHotkeys() const override; @@ -72,6 +77,7 @@ namespace BlackCore private: BlackMisc::Settings::CSettingsNetwork m_settingsNetwork; + BlackMisc::Settings::CSettingsAudio m_settingsAudio; BlackMisc::Hardware::CKeyboardKeyList m_hotkeys; QJsonDocument toJsonDocument() const; void emitCompletelyChanged(); diff --git a/src/blackcore/context_settings_proxy.cpp b/src/blackcore/context_settings_proxy.cpp index 36723ad40..0bbf54471 100644 --- a/src/blackcore/context_settings_proxy.cpp +++ b/src/blackcore/context_settings_proxy.cpp @@ -50,7 +50,15 @@ namespace BlackCore } /* - * Relay tp DBus + * Relay to DBus + */ + CSettingsAudio CContextSettingsProxy::getAudioSettings() const + { + return this->m_dBusInterface->callDBusRet(QLatin1Literal("getAudioSettings")); + } + + /* + * Relay to DBus */ CKeyboardKeyList CContextSettingsProxy::getHotkeys() const { diff --git a/src/blackcore/context_settings_proxy.h b/src/blackcore/context_settings_proxy.h index bb76c5a2f..0133a0fb9 100644 --- a/src/blackcore/context_settings_proxy.h +++ b/src/blackcore/context_settings_proxy.h @@ -49,6 +49,9 @@ namespace BlackCore //! \copydoc IContextSettings::getNetworkSettings() virtual BlackMisc::Settings::CSettingsNetwork getNetworkSettings() const override; + //! \copydoc IContextSettings::getAudioSettings() + virtual BlackMisc::Settings::CSettingsAudio getAudioSettings() const override; + //! \copydoc IContextSettings::getHotkeys() virtual BlackMisc::Hardware::CKeyboardKeyList getHotkeys() const override;