Added Plasma 5 notifier support (Qt5 build).

This commit is contained in:
codestation
2014-10-23 11:10:35 -04:30
parent 090f226934
commit a4662a1392
6 changed files with 19 additions and 8 deletions

View File

@@ -2,6 +2,7 @@ qcma (0.3.7) unstable; urgency=low
* Added pre 2.00 protocol versions to the config dialog. * Added pre 2.00 protocol versions to the config dialog.
* Fixed installation of appindicator plguin on standalone mode. * Fixed installation of appindicator plguin on standalone mode.
* Added support for Plasma 5 notifier.
-- codestation <codestation404@gmail.com> Fri, 23 Oct 2014 00:00:00 -0000 -- codestation <codestation404@gmail.com> Fri, 23 Oct 2014 00:00:00 -0000

View File

@@ -20,9 +20,6 @@ unix:!macx:!android {
SUBDIRS += qcma_appindicator.pro SUBDIRS += qcma_appindicator.pro
} }
ENABLE_KDENOTIFIER { ENABLE_KDENOTIFIER {
greaterThan(QT_MAJOR_VERSION, 4) {
error("ENABLE_KDE can only be used with Qt4")
}
SUBDIRS += qcma_kdenotifier.pro SUBDIRS += qcma_kdenotifier.pro
} }
} }

View File

@@ -5,9 +5,14 @@ TEMPLATE = lib
CONFIG += plugin CONFIG += plugin
DEFINES += QCMA_TRAYINDICATOR_LIBRARY DEFINES += QCMA_TRAYINDICATOR_LIBRARY
PKGCONFIG = PKGCONFIG =
LIBS += -lkdeui
INCLUDEPATH += src/ INCLUDEPATH += src/
greaterThan(QT_MAJOR_VERSION, 4) {
QT += KNotifications
} else {
LIBS += -lkdeui
}
SOURCES += \ SOURCES += \
src/indicator/kdenotifier.cpp \ src/indicator/kdenotifier.cpp \
src/indicator/kdenotifiertray.cpp src/indicator/kdenotifiertray.cpp

View File

@@ -219,7 +219,6 @@ TrayIndicator *MainWidget::createTrayObject(QWidget *parent)
QString desktop = getenv("XDG_CURRENT_DESKTOP"); QString desktop = getenv("XDG_CURRENT_DESKTOP");
qDebug() << "Current desktop: " << desktop; qDebug() << "Current desktop: " << desktop;
#if QT_VERSION < QT_VERSION_CHECK(5, 0, 0)
if(desktop.toLower() == "kde") if(desktop.toLower() == "kde")
{ {
// KDENotifier // KDENotifier
@@ -230,7 +229,6 @@ TrayIndicator *MainWidget::createTrayObject(QWidget *parent)
qDebug() << "Cannot load libqcma_kdenotifier plugin"; qDebug() << "Cannot load libqcma_kdenotifier plugin";
} }
else else
#endif
// try to use the appindicator if is available // try to use the appindicator if is available
// if(desktop.toLower() == "unity") // if(desktop.toLower() == "unity")
{ {

View File

@@ -21,7 +21,9 @@
#define KDENOTIFIER_H #define KDENOTIFIER_H
#include <kstatusnotifieritem.h> #include <kstatusnotifieritem.h>
#if QT_VERSION < QT_VERSION_CHECK(5, 0, 0)
#include <kmenu.h> #include <kmenu.h>
#endif
class KDENotifier : public KStatusNotifierItem class KDENotifier : public KStatusNotifierItem
{ {

View File

@@ -18,7 +18,11 @@
*/ */
#include "kdenotifiertray.h" #include "kdenotifiertray.h"
#if QT_VERSION < QT_VERSION_CHECK(5, 0, 0)
#include <kmenu.h> #include <kmenu.h>
#else
#include <QMenu>
#endif
KDENotifierTray::KDENotifierTray(QWidget *parent) KDENotifierTray::KDENotifierTray(QWidget *parent)
: TrayIndicator(parent) : TrayIndicator(parent)
@@ -41,7 +45,11 @@ void KDENotifierTray::init()
connect(about_qt, SIGNAL(triggered()), this, SIGNAL(showAboutQt())); connect(about_qt, SIGNAL(triggered()), this, SIGNAL(showAboutQt()));
connect(quit, SIGNAL(triggered()), this, SIGNAL(stopServer())); connect(quit, SIGNAL(triggered()), this, SIGNAL(stopServer()));
#if QT_VERSION < 0x050000
KMenu *tray_icon_menu = new KMenu(this); KMenu *tray_icon_menu = new KMenu(this);
#else
QMenu *tray_icon_menu = new QMenu(this);
#endif
tray_icon_menu->addAction(options); tray_icon_menu->addAction(options);
tray_icon_menu->addAction(reload); tray_icon_menu->addAction(reload);
@@ -56,7 +64,7 @@ void KDENotifierTray::init()
m_notifier_item->setContextMenu(tray_icon_menu); m_notifier_item->setContextMenu(tray_icon_menu);
m_notifier_item->setTitle("Qcma"); m_notifier_item->setTitle("Qcma");
m_notifier_item->setCategory(KStatusNotifierItem::ApplicationStatus); m_notifier_item->setCategory(KStatusNotifierItem::ApplicationStatus);
m_notifier_item->setIconByPixmap(QIcon(":/main/resources/images/tray/qcma_off.png")); m_notifier_item->setIconByPixmap(QIcon(":/main/resources/images/qcma_off.png"));
m_notifier_item->setStatus(KStatusNotifierItem::Active); m_notifier_item->setStatus(KStatusNotifierItem::Active);
m_notifier_item->setToolTipTitle(tr("Qcma status")); m_notifier_item->setToolTipTitle(tr("Qcma status"));
m_notifier_item->setToolTipIconByPixmap(QIcon(":/main/resources/images/qcma.png")); m_notifier_item->setToolTipIconByPixmap(QIcon(":/main/resources/images/qcma.png"));
@@ -76,7 +84,7 @@ bool KDENotifierTray::isVisible()
void KDENotifierTray::setIcon(const QString &icon) void KDENotifierTray::setIcon(const QString &icon)
{ {
m_notifier_item->setIconByPixmap(QIcon(":/main/resources/images/tray/" + icon)); m_notifier_item->setIconByPixmap(QIcon(":/main/resources/images/" + icon));
} }
void KDENotifierTray::show() void KDENotifierTray::show()