From 446caa053a85a00ef1f2ed393b5a0da761d6f2d1 Mon Sep 17 00:00:00 2001 From: Manuel Nickschas Date: Sun, 15 Feb 2015 22:48:09 +0100 Subject: [PATCH] Use KNotifications if Frameworks integration is enabled This brings back proper support for KNotify if KDE Frameworks integration is enabled. Note that quassel.notifyrc is installed in a different location if KF5 as opposed to KDE4. If you don't have a system installation of Quassel, you may have to manually copy that file from data/ to $HOME/.local/share/knofitications5 for KNotify to know about Quassel. --- CMakeLists.txt | 2 +- data/CMakeLists.txt | 6 +++++- src/qtui/CMakeLists.txt | 3 ++- src/qtui/knotificationbackend.cpp | 12 +++++++++--- src/qtui/knotificationbackend.h | 8 ++------ src/qtui/mainwin.cpp | 14 +++++++------- 6 files changed, 26 insertions(+), 19 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 1cd2ccab..4ec9377d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -262,7 +262,7 @@ if (USE_QT5) endif() if (WITH_KDE) - find_package(KF5 COMPONENTS ConfigWidgets CoreAddons TextWidgets XmlGui QUIET) + find_package(KF5 COMPONENTS ConfigWidgets CoreAddons Notifications NotifyConfig TextWidgets XmlGui QUIET) set_package_properties(KF5 PROPERTIES TYPE REQUIRED URL "http://www.kde.org" DESCRIPTION "KDE Frameworks" diff --git a/data/CMakeLists.txt b/data/CMakeLists.txt index 04b322b3..5c6762d5 100644 --- a/data/CMakeLists.txt +++ b/data/CMakeLists.txt @@ -8,9 +8,13 @@ if (BUILD_GUI) install(FILES quassel.desktop DESTINATION ${CMAKE_INSTALL_APPDIR}) endif() - if (KDE4_FOUND) + if (WITH_KDE4) install(FILES quassel.notifyrc DESTINATION ${CMAKE_INSTALL_DATADIR}/quassel) endif() + + if (WITH_KF5) + install(FILES quassel.notifyrc DESTINATION ${CMAKE_INSTALL_KNOTIFY5RCDIR}) + endif() endif() if (EMBED_DATA) diff --git a/src/qtui/CMakeLists.txt b/src/qtui/CMakeLists.txt index f54c00e0..ebf128a8 100644 --- a/src/qtui/CMakeLists.txt +++ b/src/qtui/CMakeLists.txt @@ -89,7 +89,8 @@ if (WITH_KDE4) endif() if (WITH_KF5) - list(APPEND LIBS KF5::ConfigWidgets KF5::XmlGui) + list(APPEND SOURCES knotificationbackend.cpp) + list(APPEND LIBS KF5::ConfigWidgets KF5::Notifications KF5::NotifyConfig KF5::XmlGui) endif() if (LIBSNORE_FOUND) diff --git a/src/qtui/knotificationbackend.cpp b/src/qtui/knotificationbackend.cpp index 41d56385..1b09927a 100644 --- a/src/qtui/knotificationbackend.cpp +++ b/src/qtui/knotificationbackend.cpp @@ -18,13 +18,19 @@ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * ***************************************************************************/ -#include -#include +#include "knotificationbackend.h" + #include #include #include -#include "knotificationbackend.h" +#ifdef HAVE_KDE4 +# include +# include +#else +# include +# include +#endif #include "client.h" #include "mainwin.h" diff --git a/src/qtui/knotificationbackend.h b/src/qtui/knotificationbackend.h index 2f21c9ef..25abcf93 100644 --- a/src/qtui/knotificationbackend.h +++ b/src/qtui/knotificationbackend.h @@ -18,8 +18,7 @@ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * ***************************************************************************/ -#ifndef KNOTIFICATIONBACKEND_H_ -#define KNOTIFICATIONBACKEND_H_ +#pragma once #include @@ -52,7 +51,7 @@ private: void removeNotificationById(uint id); void updateToolTip(); - QList > > _notifications; + QList>> _notifications; }; @@ -72,6 +71,3 @@ private slots: private: KNotifyConfigWidget *_widget; }; - - -#endif diff --git a/src/qtui/mainwin.cpp b/src/qtui/mainwin.cpp index b64a0d93..7915c233 100644 --- a/src/qtui/mainwin.cpp +++ b/src/qtui/mainwin.cpp @@ -98,7 +98,7 @@ #include "topicwidget.h" #include "verticaldock.h" -#ifndef HAVE_KDE4 +#ifndef HAVE_KDE # ifdef HAVE_PHONON # include "phononnotificationbackend.h" # endif @@ -107,9 +107,9 @@ # endif # include "systraynotificationbackend.h" # include "taskbarnotificationbackend.h" -#else /* HAVE_KDE4 */ +#else /* HAVE_KDE */ # include "knotificationbackend.h" -#endif /* HAVE_KDE4 */ +#endif /* HAVE_KDE */ #ifdef HAVE_SSL # include "sslinfodlg.h" @@ -218,7 +218,7 @@ void MainWin::init() setupTitleSetter(); setupHotList(); -#ifndef HAVE_KDE4 +#ifndef HAVE_KDE # ifdef HAVE_PHONON QtUi::registerNotificationBackend(new PhononNotificationBackend(this)); # endif @@ -230,9 +230,9 @@ void MainWin::init() QtUi::registerNotificationBackend(new TaskbarNotificationBackend(this)); -#else /* HAVE_KDE4 */ +#else /* HAVE_KDE */ QtUi::registerNotificationBackend(new KNotificationBackend(this)); -#endif /* HAVE_KDE4 */ +#endif /* HAVE_KDE */ #ifdef HAVE_INDICATEQT QtUi::registerNotificationBackend(new IndicatorNotificationBackend(this)); @@ -546,7 +546,7 @@ void MainWin::setupMenus() _viewMenu->addAction(coll->action("LockLayout")); _settingsMenu = menuBar()->addMenu(tr("&Settings")); -#ifdef HAVE_KDE4 +#ifdef HAVE_KDE _settingsMenu->addAction(KStandardAction::configureNotifications(this, SLOT(showNotificationsDlg()), this)); _settingsMenu->addAction(KStandardAction::keyBindings(this, SLOT(showShortcutsDlg()), this)); #else -- 2.20.1