diff --git a/libnotificationmanager/CMakeLists.txt b/libnotificationmanager/CMakeLists.txt
--- a/libnotificationmanager/CMakeLists.txt
+++ b/libnotificationmanager/CMakeLists.txt
@@ -38,10 +38,10 @@
install(FILES libnotificationmanager.categories DESTINATION ${KDE_INSTALL_LOGGINGCATEGORIESDIR})
# Settings
-kconfig_add_kcfg_files(notificationmanager_LIB_SRCS kcfg/donotdisturbsettings.kcfgc)
-kconfig_add_kcfg_files(notificationmanager_LIB_SRCS kcfg/notificationsettings.kcfgc)
-kconfig_add_kcfg_files(notificationmanager_LIB_SRCS kcfg/jobsettings.kcfgc)
-kconfig_add_kcfg_files(notificationmanager_LIB_SRCS kcfg/badgesettings.kcfgc)
+kconfig_add_kcfg_files(notificationmanager_LIB_SRCS kcfg/donotdisturbsettings.kcfgc GENERATE_MOC)
+kconfig_add_kcfg_files(notificationmanager_LIB_SRCS kcfg/notificationsettings.kcfgc GENERATE_MOC)
+kconfig_add_kcfg_files(notificationmanager_LIB_SRCS kcfg/jobsettings.kcfgc GENERATE_MOC)
+kconfig_add_kcfg_files(notificationmanager_LIB_SRCS kcfg/badgesettings.kcfgc GENERATE_MOC)
# DBus
# Notifications
@@ -93,6 +93,10 @@
jobsmodel.h
job.h
settings.h
+ ${CMAKE_CURRENT_BINARY_DIR}/donotdisturbsettings.h
+ ${CMAKE_CURRENT_BINARY_DIR}/notificationsettings.h
+ ${CMAKE_CURRENT_BINARY_DIR}/jobsettings.h
+ ${CMAKE_CURRENT_BINARY_DIR}/badgesettings.h
${CMAKE_CURRENT_BINARY_DIR}/notificationmanager_export.h
DESTINATION ${KDE_INSTALL_INCLUDEDIR}/notificationmanager COMPONENT Devel
)
diff --git a/libnotificationmanager/kcfg/badgesettings.kcfg b/libnotificationmanager/kcfg/badgesettings.kcfg
--- a/libnotificationmanager/kcfg/badgesettings.kcfg
+++ b/libnotificationmanager/kcfg/badgesettings.kcfg
@@ -3,7 +3,7 @@
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.kde.org/standards/kcfg/1.0
http://www.kde.org/standards/kcfg/1.0/kcfg.xsd" >
-
+
diff --git a/libnotificationmanager/kcfg/badgesettings.kcfgc b/libnotificationmanager/kcfg/badgesettings.kcfgc
--- a/libnotificationmanager/kcfg/badgesettings.kcfgc
+++ b/libnotificationmanager/kcfg/badgesettings.kcfgc
@@ -1,7 +1,10 @@
File=badgesettings.kcfg
NameSpace=NotificationManager
ClassName=BadgeSettings
-Singleton=true
+Visibility=NOTIFICATIONMANAGER_EXPORT
+IncludeFiles=\"notificationmanager_export.h\"
Mutators=true
DefaultValueGetters=true
Notifiers=true
+GenerateProperties=true
+ParentInConstructor=true
diff --git a/libnotificationmanager/kcfg/donotdisturbsettings.kcfg b/libnotificationmanager/kcfg/donotdisturbsettings.kcfg
--- a/libnotificationmanager/kcfg/donotdisturbsettings.kcfg
+++ b/libnotificationmanager/kcfg/donotdisturbsettings.kcfg
@@ -3,7 +3,7 @@
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.kde.org/standards/kcfg/1.0
http://www.kde.org/standards/kcfg/1.0/kcfg.xsd" >
-
+
diff --git a/libnotificationmanager/kcfg/donotdisturbsettings.kcfgc b/libnotificationmanager/kcfg/donotdisturbsettings.kcfgc
--- a/libnotificationmanager/kcfg/donotdisturbsettings.kcfgc
+++ b/libnotificationmanager/kcfg/donotdisturbsettings.kcfgc
@@ -1,7 +1,10 @@
File=donotdisturbsettings.kcfg
NameSpace=NotificationManager
ClassName=DoNotDisturbSettings
-Singleton=true
+Visibility=NOTIFICATIONMANAGER_EXPORT
+IncludeFiles=\"notificationmanager_export.h\"
Mutators=true
DefaultValueGetters=true
Notifiers=true
+GenerateProperties=true
+ParentInConstructor=true
diff --git a/libnotificationmanager/kcfg/jobsettings.kcfg b/libnotificationmanager/kcfg/jobsettings.kcfg
--- a/libnotificationmanager/kcfg/jobsettings.kcfg
+++ b/libnotificationmanager/kcfg/jobsettings.kcfg
@@ -3,7 +3,7 @@
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.kde.org/standards/kcfg/1.0
http://www.kde.org/standards/kcfg/1.0/kcfg.xsd" >
-
+
diff --git a/libnotificationmanager/kcfg/jobsettings.kcfgc b/libnotificationmanager/kcfg/jobsettings.kcfgc
--- a/libnotificationmanager/kcfg/jobsettings.kcfgc
+++ b/libnotificationmanager/kcfg/jobsettings.kcfgc
@@ -1,7 +1,10 @@
File=jobsettings.kcfg
NameSpace=NotificationManager
ClassName=JobSettings
-Singleton=true
+Visibility=NOTIFICATIONMANAGER_EXPORT
+IncludeFiles=\"notificationmanager_export.h\"
Mutators=true
DefaultValueGetters=true
Notifiers=true
+GenerateProperties=true
+ParentInConstructor=true
diff --git a/libnotificationmanager/kcfg/notificationsettings.kcfg b/libnotificationmanager/kcfg/notificationsettings.kcfg
--- a/libnotificationmanager/kcfg/notificationsettings.kcfg
+++ b/libnotificationmanager/kcfg/notificationsettings.kcfg
@@ -3,7 +3,7 @@
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.kde.org/standards/kcfg/1.0
http://www.kde.org/standards/kcfg/1.0/kcfg.xsd" >
-
+
diff --git a/libnotificationmanager/kcfg/notificationsettings.kcfgc b/libnotificationmanager/kcfg/notificationsettings.kcfgc
--- a/libnotificationmanager/kcfg/notificationsettings.kcfgc
+++ b/libnotificationmanager/kcfg/notificationsettings.kcfgc
@@ -1,10 +1,12 @@
File=notificationsettings.kcfg
NameSpace=NotificationManager
ClassName=NotificationSettings
-Singleton=true
+Visibility=NOTIFICATIONMANAGER_EXPORT
Mutators=true
DefaultValueGetters=true
Notifiers=true
+GenerateProperties=true
+ParentInConstructor=true
# For Settings::PopupPosition
-IncludeFiles=\"settings.h\"
-UseEnumTypes=true
+IncludeFiles=\"settings.h\",\"notificationmanager_export.h\"
+UseEnumTypes=false
diff --git a/libnotificationmanager/settings.cpp b/libnotificationmanager/settings.cpp
--- a/libnotificationmanager/settings.cpp
+++ b/libnotificationmanager/settings.cpp
@@ -62,6 +62,11 @@
MirroredScreensTracker::Ptr mirroredScreensTracker;
+ DoNotDisturbSettings dndSettings;
+ NotificationSettings notificationSettings;
+ JobSettings jobSettings;
+ BadgeSettings badgeSettings;
+
bool live = false; // set to true initially in constructor
bool dirty = false;
@@ -168,23 +173,14 @@
{
d->config = config;
- static bool s_settingsInited = false;
- if (!s_settingsInited) {
- DoNotDisturbSettings::instance(config);
- NotificationSettings::instance(config);
- JobSettings::instance(config);
- BadgeSettings::instance(config);
- s_settingsInited = true;
- }
-
setLive(true);
connect(&Server::self(), &Server::inhibitedByApplicationChanged,
this, &Settings::notificationsInhibitedByApplicationChanged);
connect(&Server::self(), &Server::inhibitionApplicationsChanged,
this, &Settings::notificationInhibitionApplicationsChanged);
- if (DoNotDisturbSettings::whenScreensMirrored()) {
+ if (d->dndSettings.whenScreensMirrored()) {
d->mirroredScreensTracker = MirroredScreensTracker::createTracker();
connect(d->mirroredScreensTracker.data(), &MirroredScreensTracker::screensMirroredChanged, this, &Settings::screensMirroredChanged);
}
@@ -260,31 +256,33 @@
{
d->config->markAsClean();
d->config->reparseConfiguration();
- DoNotDisturbSettings::self()->load();
- NotificationSettings::self()->load();
- JobSettings::self()->load();
- BadgeSettings::self()->load();
+ d->dndSettings.load();
+ d->notificationSettings.load();
+ d->jobSettings.load();
+ d->badgeSettings.load();
emit settingsChanged();
d->setDirty(false);
}
void Settings::save()
{
- DoNotDisturbSettings::self()->save();
- NotificationSettings::self()->save();
- JobSettings::self()->save();
- BadgeSettings::self()->save();
+ d->dndSettings.save();
+ d->notificationSettings.save();
+ d->jobSettings.save();
+ d->badgeSettings.save();
d->config->sync();
d->setDirty(false);
}
void Settings::defaults()
{
- DoNotDisturbSettings::self()->setDefaults();
- NotificationSettings::self()->setDefaults();
- JobSettings::self()->setDefaults();
- BadgeSettings::self()->setDefaults();
+ d->dndSettings.setDefaults();
+ d->notificationSettings.setDefaults();
+ d->jobSettings.setDefaults();
+ d->badgeSettings.setDefaults();
+ emit settingsChanged();
+ d->setDirty(false);
}
bool Settings::live() const
@@ -307,10 +305,10 @@
Q_UNUSED(names);
if (group.name() == QLatin1String("DoNotDisturb")) {
- DoNotDisturbSettings::self()->load();
+ d->dndSettings.load();
bool emitScreensMirroredChanged = false;
- if (DoNotDisturbSettings::whenScreensMirrored()) {
+ if (d->dndSettings.whenScreensMirrored()) {
if (!d->mirroredScreensTracker) {
d->mirroredScreensTracker = MirroredScreensTracker::createTracker();
emitScreensMirroredChanged = d->mirroredScreensTracker->screensMirrored();
@@ -325,11 +323,11 @@
emit screensMirroredChanged();
}
} else if (group.name() == QLatin1String("Notifications")) {
- NotificationSettings::self()->load();
+ d->notificationSettings.load();
} else if (group.name() == QLatin1String("Jobs")) {
- JobSettings::self()->load();
+ d->jobSettings.load();
} else if (group.name() == QLatin1String("Badges")) {
- BadgeSettings::self()->load();
+ d->badgeSettings.load();
}
emit settingsChanged();
@@ -352,145 +350,145 @@
bool Settings::keepCriticalAlwaysOnTop() const
{
- return NotificationSettings::criticalAlwaysOnTop();
+ return d->notificationSettings.criticalAlwaysOnTop();
}
void Settings::setKeepCriticalAlwaysOnTop(bool enable)
{
if (this->keepCriticalAlwaysOnTop() == enable) {
return;
}
- NotificationSettings::setCriticalAlwaysOnTop(enable);
+ d->notificationSettings.setCriticalAlwaysOnTop(enable);
d->setDirty(true);
}
bool Settings::criticalPopupsInDoNotDisturbMode() const
{
- return NotificationSettings::criticalInDndMode();
+ return d->notificationSettings.criticalInDndMode();
}
void Settings::setCriticalPopupsInDoNotDisturbMode(bool enable)
{
if (this->criticalPopupsInDoNotDisturbMode() == enable) {
return;
}
- NotificationSettings::setCriticalInDndMode(enable);
+ d->notificationSettings.setCriticalInDndMode(enable);
d->setDirty(true);
}
bool Settings::lowPriorityPopups() const
{
- return NotificationSettings::lowPriorityPopups();
+ return d->notificationSettings.lowPriorityPopups();
}
void Settings::setLowPriorityPopups(bool enable)
{
if (this->lowPriorityPopups() == enable) {
return;
}
- NotificationSettings::setLowPriorityPopups(enable);
+ d->notificationSettings.setLowPriorityPopups(enable);
d->setDirty(true);
}
bool Settings::lowPriorityHistory() const
{
- return NotificationSettings::lowPriorityHistory();
+ return d->notificationSettings.lowPriorityHistory();
}
void Settings::setLowPriorityHistory(bool enable)
{
if (this->lowPriorityHistory() == enable) {
return;
}
- NotificationSettings::setLowPriorityHistory(enable);
+ d->notificationSettings.setLowPriorityHistory(enable);
d->setDirty(true);
}
Settings::PopupPosition Settings::popupPosition() const
{
- return NotificationSettings::popupPosition();
+ return static_cast(d->notificationSettings.popupPosition());
}
void Settings::setPopupPosition(Settings::PopupPosition position)
{
if (this->popupPosition() == position) {
return;
}
- NotificationSettings::setPopupPosition(position);
+ d->notificationSettings.setPopupPosition(position);
d->setDirty(true);
}
int Settings::popupTimeout() const
{
- return NotificationSettings::popupTimeout();
+ return d->notificationSettings.popupTimeout();
}
void Settings::setPopupTimeout(int timeout)
{
if (this->popupTimeout() == timeout) {
return;
}
- NotificationSettings::setPopupTimeout(timeout);
+ d->notificationSettings.setPopupTimeout(timeout);
d->setDirty(true);
}
void Settings::resetPopupTimeout()
{
- setPopupTimeout(NotificationSettings::defaultPopupTimeoutValue());
+ setPopupTimeout(d->notificationSettings.defaultPopupTimeoutValue());
}
bool Settings::jobsInTaskManager() const
{
- return JobSettings::inTaskManager();
+ return d->jobSettings.inTaskManager();
}
void Settings::setJobsInTaskManager(bool enable)
{
if (jobsInTaskManager() == enable) {
return;
}
- JobSettings::setInTaskManager(enable);
+ d->jobSettings.setInTaskManager(enable);
d->setDirty(true);
}
bool Settings::jobsInNotifications() const
{
- return JobSettings::inNotifications();
+ return d->jobSettings.inNotifications();
}
void Settings::setJobsInNotifications(bool enable)
{
if (jobsInNotifications() == enable) {
return;
}
- JobSettings::setInNotifications(enable);
+ d->jobSettings.setInNotifications(enable);
d->setDirty(true);
}
bool Settings::permanentJobPopups() const
{
- return JobSettings::permanentPopups();
+ return d->jobSettings.permanentPopups();
}
void Settings::setPermanentJobPopups(bool enable)
{
if (permanentJobPopups() == enable) {
return;
}
- JobSettings::setPermanentPopups(enable);
+ d->jobSettings.setPermanentPopups(enable);
d->setDirty(true);
}
bool Settings::badgesInTaskManager() const
{
- return BadgeSettings::inTaskManager();
+ return d->badgeSettings.inTaskManager();
}
void Settings::setBadgesInTaskManager(bool enable)
{
if (badgesInTaskManager() == enable) {
return;
}
- BadgeSettings::setInTaskManager(enable);
+ d->badgeSettings.setInTaskManager(enable);
d->setDirty(true);
}
@@ -536,18 +534,18 @@
QDateTime Settings::notificationsInhibitedUntil() const
{
- return DoNotDisturbSettings::until();
+ return d->dndSettings.until();
}
void Settings::setNotificationsInhibitedUntil(const QDateTime &time)
{
- DoNotDisturbSettings::setUntil(time);
+ d->dndSettings.setUntil(time);
d->setDirty(true);
}
void Settings::resetNotificationsInhibitedUntil()
{
- setNotificationsInhibitedUntil(QDateTime());// FIXME DoNotDisturbSettings::defaultUntilValue());
+ setNotificationsInhibitedUntil(QDateTime());// FIXME d->dndSettings.defaultUntilValue());
}
bool Settings::notificationsInhibitedByApplication() const
@@ -567,16 +565,16 @@
bool Settings::inhibitNotificationsWhenScreensMirrored() const
{
- return DoNotDisturbSettings::whenScreensMirrored();
+ return d->dndSettings.whenScreensMirrored();
}
void Settings::setInhibitNotificationsWhenScreensMirrored(bool inhibit)
{
if (inhibit == inhibitNotificationsWhenScreensMirrored()) {
return;
}
- DoNotDisturbSettings::setWhenScreensMirrored(inhibit);
+ d->dndSettings.setWhenScreensMirrored(inhibit);
d->setDirty(true);
}
@@ -604,15 +602,15 @@
bool Settings::notificationSoundsInhibited() const
{
- return DoNotDisturbSettings::notificationSoundsMuted();
+ return d->dndSettings.notificationSoundsMuted();
}
void Settings::setNotificationSoundsInhibited(bool inhibited)
{
if (inhibited == notificationSoundsInhibited()) {
return;
}
- DoNotDisturbSettings::setNotificationSoundsMuted(inhibited);
+ d->dndSettings.setNotificationSoundsMuted(inhibited);
d->setDirty(true);
}