From d60ae1dbb57c14bc569bd342fa1aa0a095e626a6 Mon Sep 17 00:00:00 2001 From: Roy Marples Date: Sat, 8 Aug 2020 15:44:52 +0100 Subject: dhcpcd-qt: Add support for KDE5 Notifications --- configure | 43 +++++++++++++++++++++++++------------------ src/dhcpcd-qt/dhcpcd-qt.cpp | 8 ++++++-- 2 files changed, 31 insertions(+), 20 deletions(-) diff --git a/configure b/configure index 57b68e5..3a18019 100755 --- a/configure +++ b/configure @@ -427,28 +427,35 @@ if [ -z "$WITH_QT" -o "$WITH_QT" != no ]; then exit 1 fi fi - if $DHCPCD_QT; then - QMAKE_CONFIG="$QMAKE_CONFIG PREFIX=$PREFIX" - QMAKE_CONFIG="$QMAKE_CONFIG SYSCONFDIR=$SYSCONFDIR" - QMAKE_CONFIG="$QMAKE_CONFIG MANDIR=$MANDIR" - if (cd src/dhcpcd-qt; $QMAKE $QMAKE_CONFIG dhcpcd-qt.pro); then - UI="$UI${UI:+ }dhcpcd-qt" - else - echo "Failed to configure dhcpcd-qt" >&2 - [ -n "$WITH_QT" ] && exit 1 - DHCPCD_QT=false - fi - fi fi NOTIFY="$_NOTIFY" +if $DHCPCD_QT; then + QMAKE_CONFIG="$QMAKE_CONFIG PREFIX=$PREFIX" + QMAKE_CONFIG="$QMAKE_CONFIG SYSCONFDIR=$SYSCONFDIR" + QMAKE_CONFIG="$QMAKE_CONFIG MANDIR=$MANDIR" +fi if $DHCPCD_QT && [ -z "$NOTIFY" -o "$NOTIFY" = yes ]; then - if kde4-config --path lib --locate libkdeui.so >/dev/null 2>&3; then - QMAKE_CONFIG="$QMAKE_CONFIG CONFIG+=has_libkdeui" - echo "Building dhcpcd-qt with notification support" - elif [ "$NOTIFY" = yes ]; then - echo "$0: knotify4 not found" >&2 - exit 1 + printf "Looking for KDE Notification support ... " + QT_KNOTE="QT+=KNotifications" + if (cd src/dhcpcd-qt; $QMAKE $QMAKE_CONFIG $QT_KNOTE dhcpcd-qt.pro) 2>>config.log; then + QMAKE_CONFIG="$QMAKE_CONFIG $QT_KNOTE DEFINES+=KNOTIFY5" + echo "KDE5" + elif kde4-config --path lib --locate libkdeui.so >/dev/null 2>&3; then + QMAKE_CONFIG="$QMAKE_CONFIG CONFIG+=has_libkdeui DEFINES+=KNOTIFY4" + echo "KDE4" + else + echo "none found" + [ "$NOTIFY" = yes ] && exit 1 + fi +fi +if $DHCPCD_QT; then + if (cd src/dhcpcd-qt; $QMAKE $QMAKE_CONFIG dhcpcd-qt.pro); then + UI="$UI${UI:+ }dhcpcd-qt" + else + echo "Failed to configure dhcpcd-qt" >&2 + [ -n "$WITH_QT" ] && exit 1 + DHCPCD_QT=false fi fi diff --git a/src/dhcpcd-qt/dhcpcd-qt.cpp b/src/dhcpcd-qt/dhcpcd-qt.cpp index 3730c2a..f4d54a3 100644 --- a/src/dhcpcd-qt/dhcpcd-qt.cpp +++ b/src/dhcpcd-qt/dhcpcd-qt.cpp @@ -40,7 +40,10 @@ #include "dhcpcd-ifmenu.h" #include "dhcpcd-ssidmenu.h" -#ifdef NOTIFY + +#if defined(KNOTIFY5) +#include +#elif defined(KNOTIFY4) #include #endif @@ -538,8 +541,9 @@ void DhcpcdQt::notify(const QString &title, const QString &msg, const QString &icon) { -#ifdef NOTIFY +#if defined(KNOTIFY4) || defined(KNOTIFY5) KNotification *n = new KNotification("event", this); + n->setIconName(icon); n->setTitle(title); n->setText(msg); n->sendEvent(); -- cgit v1.2.3