Commit 9a8f1b48 authored by Adam Pigg's avatar Adam Pigg

Build kdeconnect on sailfish and port some simple plugins

Summary:
Below is a lost of the commits, but, in summary
Port the build system for Sailfish, which means selectively building only the bits we need/can, and only against the KF5 libs that are available.
Allow to build on Qt 5.6
Switch from knotification to nemo notification (not complete!)
Add a very simple example sailfish app.

Note, there is still much missing functionality.  Notifications dont work, pairing sort of works but not really, but when it is paired you can send a ping to the desktop client

Dont build kio for Sailfish

Port core build system

Port daemon buld system

Require CoreAddons on Sailfish

Port plugins build for sailfish and include the ping plugin for now

Final build changes for sailfish.

Disable tests and other not needed parts

Add includes for QCA

Fix build errors on sailfish

Get core/ to build on sailfish

Get interfaces/ to build on sailfish

Build daemon on sailfish

On sailfish, dont install the kcm file

Start port plugin to sailfish

Fixup installed files

Add sfos app

Hack declarative plugin to give a public interface

Build sfos app

Compile declarativeplugin into the sfos app for now

Redefine qAsConst for qt 5.6

Packaging fixes

Use official icon

Package .desktop

Reviewers: #kde_connect, apol, nicolasfella, albertvaka

Reviewed By: #kde_connect, apol, nicolasfella, albertvaka

Subscribers: kdeconnect, andyholmes, albertvaka, kossebau, mtijink, vonreth, apol, #kde_connect, nicolasfella

Tags: #kde_connect

Differential Revision: https://phabricator.kde.org/D10703
parent 76ea0dd1
...@@ -7,19 +7,38 @@ set(KDECONNECT_VERSION_MINOR 3) ...@@ -7,19 +7,38 @@ set(KDECONNECT_VERSION_MINOR 3)
set(KDECONNECT_VERSION_PATCH 0) set(KDECONNECT_VERSION_PATCH 0)
set(KDECONNECT_VERSION "${KDECONNECT_VERSION_MAJOR}.${KDECONNECT_VERSION_MINOR}.${KDECONNECT_VERSION_PATCH}") set(KDECONNECT_VERSION "${KDECONNECT_VERSION_MAJOR}.${KDECONNECT_VERSION_MINOR}.${KDECONNECT_VERSION_PATCH}")
set(QT_MIN_VERSION "5.7.0") find_package(PkgConfig)
set(KF5_MIN_VERSION "5.42.0")
if (SAILFISHOS)
set(KF5_MIN_VERSION "5.31.0")
set(QT_MIN_VERSION "5.6.0")
set(KF5_REQUIRED_COMPONENTS I18n DBusAddons CoreAddons IconThemes Config)
set(KF5_OPTIONAL_COMPONENTS)
set(QCA_MIN_VERSION 2.0.0)
pkg_search_module(SFOS REQUIRED sailfishapp)
pkg_check_modules(QCA2 qca2-qt5>=${QCA_MIN_VERSION} REQUIRED)
add_definitions(-DSAILFISHOS)
include_directories(${QCA2_INCLUDEDIR})
add_definitions(-DQT_NO_URL_CAST_FROM_STRING)
else()
set(KF5_MIN_VERSION "5.42.0")
set(QT_MIN_VERSION "5.7.0")
set(KF5_REQUIRED_COMPONENTS I18n ConfigWidgets DBusAddons IconThemes Notifications KIO KCMUtils)
set(KF5_OPTIONAL_COMPONENTS DocTools PulseAudioQt)
set(QCA_MIN_VERSION "2.1.0")
find_package(Qca-qt5 ${QCA_MIN_VERSION} REQUIRED)
add_definitions(-DQT_NO_URL_CAST_FROM_STRING -DQT_NO_KEYWORDS)
endif()
find_package(ECM ${KF5_MIN_VERSION} REQUIRED NO_MODULE) find_package(ECM ${KF5_MIN_VERSION} REQUIRED NO_MODULE)
set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH} ${ECM_KDE_MODULE_DIR} ${CMAKE_SOURCE_DIR}/cmake) set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH} ${ECM_KDE_MODULE_DIR} ${CMAKE_SOURCE_DIR}/cmake)
find_package(Qt5 ${QT_MIN_VERSION} REQUIRED COMPONENTS Quick Network) find_package(Qt5 ${QT_MIN_VERSION} REQUIRED COMPONENTS Quick Network)
find_package(KF5 ${KF5_MIN_VERSION} REQUIRED COMPONENTS ${KF5_REQUIRED_COMPONENTS})
if (KF5_OPTIONAL_COMPONENTS)
find_package(KF5 ${KF5_MIN_VERSION} COMPONENTS ${KF5_OPTIONAL_COMPONENTS})
endif()
find_package(KF5 ${KF5_MIN_VERSION}
REQUIRED COMPONENTS I18n ConfigWidgets DBusAddons IconThemes Notifications KIO KCMUtils
OPTIONAL_COMPONENTS DocTools PulseAudioQt
)
find_package(Qca-qt5 2.1.0 REQUIRED)
find_package(Phonon4Qt5 4.9.0 NO_MODULE) find_package(Phonon4Qt5 4.9.0 NO_MODULE)
set_package_properties(Phonon4Qt5 PROPERTIES set_package_properties(Phonon4Qt5 PROPERTIES
DESCRIPTION "Qt-based audio library" DESCRIPTION "Qt-based audio library"
...@@ -41,18 +60,23 @@ include(FeatureSummary) ...@@ -41,18 +60,23 @@ include(FeatureSummary)
include(KDEConnectMacros.cmake) include(KDEConnectMacros.cmake)
add_definitions(-DQT_NO_URL_CAST_FROM_STRING -DQT_NO_KEYWORDS)
include(GenerateExportHeader) include(GenerateExportHeader)
include_directories(${CMAKE_CURRENT_BINARY_DIR}) include_directories(${CMAKE_CURRENT_BINARY_DIR})
add_subdirectory(core) add_subdirectory(core)
add_subdirectory(kcm) if(NOT SAILFISHOS)
add_subdirectory(kcmplugin) add_subdirectory(kcm)
add_subdirectory(kcmplugin)
add_subdirectory(daemon)
endif()
if(NOT WIN32) if(NOT WIN32)
add_subdirectory(kio) if (NOT SAILFISHOS)
add_subdirectory(kio)
endif()
add_subdirectory(plasmoid) add_subdirectory(plasmoid)
endif() endif()
add_subdirectory(icon) add_subdirectory(icon)
add_subdirectory(interfaces) add_subdirectory(interfaces)
...@@ -60,25 +84,32 @@ option(EXPERIMENTALAPP_ENABLED OFF) ...@@ -60,25 +84,32 @@ option(EXPERIMENTALAPP_ENABLED OFF)
if(EXPERIMENTALAPP_ENABLED) if(EXPERIMENTALAPP_ENABLED)
add_subdirectory(app) add_subdirectory(app)
endif() endif()
add_subdirectory(daemon)
add_subdirectory(plugins) add_subdirectory(plugins)
add_subdirectory(cli) add_subdirectory(cli)
add_subdirectory(indicator)
add_subdirectory(urlhandler) if (NOT SAILFISHOS)
add_subdirectory(nautilus-extension) add_subdirectory(indicator)
add_subdirectory(urlhandler)
add_subdirectory(nautilus-extension)
else()
add_subdirectory(sfos)
endif()
option(SMSAPP_ENABLED OFF) option(SMSAPP_ENABLED OFF)
if(SMSAPP_ENABLED) if(SMSAPP_ENABLED)
find_package(KF5People REQUIRED) find_package(KF5People REQUIRED)
add_subdirectory(smsapp) add_subdirectory(smsapp)
endif() endif()
if(KF5DocTools_FOUND) if(KF5DocTools_FOUND)
add_subdirectory(doc) add_subdirectory(doc)
endif() endif()
if(BUILD_TESTING) if(BUILD_TESTING AND NOT SAILFISHOS)
add_subdirectory(tests) add_subdirectory(tests)
endif() endif()
install(FILES org.kde.kdeconnect.kcm.appdata.xml DESTINATION ${KDE_INSTALL_METAINFODIR}) if(NOT SAILFISHOS)
install(FILES org.kde.kdeconnect.kcm.appdata.xml DESTINATION ${KDE_INSTALL_METAINFODIR})
endif()
feature_summary(WHAT ALL INCLUDE_QUIET_PACKAGES FATAL_ON_MISSING_REQUIRED_PACKAGES) feature_summary(WHAT ALL INCLUDE_QUIET_PACKAGES FATAL_ON_MISSING_REQUIRED_PACKAGES)
...@@ -22,6 +22,7 @@ ...@@ -22,6 +22,7 @@
#define DEVICELINK_H #define DEVICELINK_H
#include <QObject> #include <QObject>
#include <QIODevice> //Fix build on older QCA
#include <QtCrypto> #include <QtCrypto>
#include "core/networkpacket.h" #include "core/networkpacket.h"
......
...@@ -40,6 +40,9 @@ ...@@ -40,6 +40,9 @@
#include "backends/devicelink.h" #include "backends/devicelink.h"
#include "backends/linkprovider.h" #include "backends/linkprovider.h"
//In older Qt released, qAsConst isnt available
#include "qtcompat_p.h"
static Daemon* s_instance = nullptr; static Daemon* s_instance = nullptr;
struct DaemonPrivate struct DaemonPrivate
......
...@@ -39,6 +39,9 @@ ...@@ -39,6 +39,9 @@
#include "kdeconnectconfig.h" #include "kdeconnectconfig.h"
#include "daemon.h" #include "daemon.h"
//In older Qt released, qAsConst isnt available
#include "qtcompat_p.h"
class Device::DevicePrivate class Device::DevicePrivate
{ {
public: public:
......
...@@ -28,6 +28,9 @@ ...@@ -28,6 +28,9 @@
#include "device.h" #include "device.h"
#include "kdeconnectplugin.h" #include "kdeconnectplugin.h"
//In older Qt released, qAsConst isnt available
#include "qtcompat_p.h"
PluginLoader* PluginLoader::instance() PluginLoader* PluginLoader::instance()
{ {
static PluginLoader* instance = new PluginLoader(); static PluginLoader* instance = new PluginLoader();
......
/*
Copyright (c) 2017 Kevin Funk <kfunk@.kde.org
This library is free software; you can redistribute it and/or modify it
under the terms of the GNU Library General Public License as published by
the Free Software Foundation; either version 2 of the License, or (at your
option) any later version.
This library is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public
License for more details.
You should have received a copy of the GNU Library General Public License
along with this library; see the file COPYING.LIB. If not, write to the
Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
02110-1301, USA.
*/
#ifndef KDEVELOP_QTCOMPAT_P_H
#define KDEVELOP_QTCOMPAT_P_H
#include <qglobal.h>
#include <QDir>
#if QT_VERSION < QT_VERSION_CHECK(5,7,0)
namespace QtPrivate
{
template <typename T> struct QAddConst {
typedef const T Type;
};
}
// this adds const to non-const objects (like std::as_const)
template <typename T>
Q_DECL_CONSTEXPR typename QtPrivate::QAddConst<T>::Type &qAsConst(T &t) Q_DECL_NOTHROW { return t; }
// prevent rvalue arguments:
template <typename T>
void qAsConst(const T &&) Q_DECL_EQ_DELETE;
#endif
// compat for Q_FALLTHROUGH
#if QT_VERSION < QT_VERSION_CHECK(5,8,0)
#if defined(__has_cpp_attribute)
# if __has_cpp_attribute(fallthrough)
# define Q_FALLTHROUGH() [[fallthrough]]
# elif __has_cpp_attribute(clang::fallthrough)
# define Q_FALLTHROUGH() [[clang::fallthrough]]
# elif __has_cpp_attribute(gnu::fallthrough)
# define Q_FALLTHROUGH() [[gnu::fallthrough]]
# endif
#endif
#ifndef Q_FALLTHROUGH
# if defined(__GNUC__) && !defined(__INTEL_COMPILER) && (((__GNUC__ * 100) + __GNUC_MINOR__) >= 700)
# define Q_FALLTHROUGH() __attribute__((fallthrough))
# else
# define Q_FALLTHROUGH() (void)0
# endif
#endif
#endif
namespace QtCompat {
// TODO: Just use QDir::listSeparator once we depend on Qt 5.6
Q_DECL_CONSTEXPR inline QChar listSeparator() Q_DECL_NOTHROW
{
#if QT_VERSION < QT_VERSION_CHECK(5,6,0)
#ifdef Q_OS_WIN
return QLatin1Char(';');
#else
return QLatin1Char(':');
#endif
#else
return QDir::listSeparator();
#endif
}
}
#endif
...@@ -29,6 +29,9 @@ ...@@ -29,6 +29,9 @@
//#include "modeltest.h" //#include "modeltest.h"
//In older Qt released, qAsConst isnt available
#include "core/qtcompat_p.h"
NotificationsModel::NotificationsModel(QObject* parent) NotificationsModel::NotificationsModel(QObject* parent)
: QAbstractListModel(parent) : QAbstractListModel(parent)
, m_dbusInterface(nullptr) , m_dbusInterface(nullptr)
......
add_subdirectory(declarativeplugin) add_subdirectory(declarativeplugin)
if (NOT SAILFISHOS)
install(DIRECTORY package/ install(DIRECTORY package/
DESTINATION ${DATA_INSTALL_DIR}/plasma/plasmoids/org.kde.kdeconnect) DESTINATION ${DATA_INSTALL_DIR}/plasma/plasmoids/org.kde.kdeconnect)
install(FILES package/metadata.desktop install(FILES package/metadata.desktop
DESTINATION ${SERVICES_INSTALL_DIR} DESTINATION ${SERVICES_INSTALL_DIR}
RENAME plasma-kdeconnect.desktop) RENAME plasma-kdeconnect.desktop)
endif()
...@@ -5,6 +5,9 @@ ...@@ -5,6 +5,9 @@
#include <QDebug> #include <QDebug>
#include <QCoreApplication> #include <QCoreApplication>
//In older Qt released, qAsConst isnt available
#include "core/qtcompat_p.h"
Q_DECLARE_METATYPE(QDBusPendingReply<>) Q_DECLARE_METATYPE(QDBusPendingReply<>)
Q_DECLARE_METATYPE(QDBusPendingReply<QVariant>) Q_DECLARE_METATYPE(QDBusPendingReply<QVariant>)
Q_DECLARE_METATYPE(QDBusPendingReply<bool>) Q_DECLARE_METATYPE(QDBusPendingReply<bool>)
...@@ -29,7 +32,7 @@ DBusResponseWaiter::DBusResponseWaiter() ...@@ -29,7 +32,7 @@ DBusResponseWaiter::DBusResponseWaiter()
<< qRegisterMetaType<QDBusPendingReply<> >("QDBusPendingReply<>") << qRegisterMetaType<QDBusPendingReply<> >("QDBusPendingReply<>")
<< qRegisterMetaType<QDBusPendingReply<QVariant> >("QDBusPendingReply<QVariant>") << qRegisterMetaType<QDBusPendingReply<QVariant> >("QDBusPendingReply<QVariant>")
<< qRegisterMetaType<QDBusPendingReply<bool> >("QDBusPendingReply<bool>") << qRegisterMetaType<QDBusPendingReply<bool> >("QDBusPendingReply<bool>")
<< qRegisterMetaType<QDBusPendingReply<int> >("QDBusPendingReply<int>") << qRegisterMetaType<QDBusPendingReply<int> >("QDBusPendingReply<int>")
<< qRegisterMetaType<QDBusPendingReply<QString> >("QDBusPendingReply<QString>") << qRegisterMetaType<QDBusPendingReply<QString> >("QDBusPendingReply<QString>")
; ;
} }
...@@ -39,13 +42,13 @@ QVariant DBusResponseWaiter::waitForReply(QVariant variant) const ...@@ -39,13 +42,13 @@ QVariant DBusResponseWaiter::waitForReply(QVariant variant) const
if (QDBusPendingCall* call = const_cast<QDBusPendingCall*>(extractPendingCall(variant))) if (QDBusPendingCall* call = const_cast<QDBusPendingCall*>(extractPendingCall(variant)))
{ {
call->waitForFinished(); call->waitForFinished();
if (call->isError()) if (call->isError())
{ {
qWarning() << "error:" << call->error(); qWarning() << "error:" << call->error();
return QVariant("error"); return QVariant("error");
} }
QDBusMessage reply = call->reply(); QDBusMessage reply = call->reply();
if (reply.arguments().count() > 0) if (reply.arguments().count() > 0)
...@@ -69,7 +72,7 @@ DBusAsyncResponse::DBusAsyncResponse(QObject* parent) ...@@ -69,7 +72,7 @@ DBusAsyncResponse::DBusAsyncResponse(QObject* parent)
void DBusAsyncResponse::setPendingCall(QVariant variant) void DBusAsyncResponse::setPendingCall(QVariant variant)
{ {
if (QDBusPendingCall* call = const_cast<QDBusPendingCall*>(DBusResponseWaiter::instance()->extractPendingCall(variant))) if (QDBusPendingCall* call = const_cast<QDBusPendingCall*>(DBusResponseWaiter::instance()->extractPendingCall(variant)))
{ {
QDBusPendingCallWatcher* watcher = new QDBusPendingCallWatcher(*call); QDBusPendingCallWatcher* watcher = new QDBusPendingCallWatcher(*call);
watcher->setProperty("pengingCallVariant", variant); watcher->setProperty("pengingCallVariant", variant);
connect(watcher, &QDBusPendingCallWatcher::finished, this, &DBusAsyncResponse::onCallFinished); connect(watcher, &QDBusPendingCallWatcher::finished, this, &DBusAsyncResponse::onCallFinished);
...@@ -83,7 +86,7 @@ void DBusAsyncResponse::onCallFinished(QDBusPendingCallWatcher* watcher) ...@@ -83,7 +86,7 @@ void DBusAsyncResponse::onCallFinished(QDBusPendingCallWatcher* watcher)
{ {
m_timeout.stop(); m_timeout.stop();
QVariant variant = watcher->property("pengingCallVariant"); QVariant variant = watcher->property("pengingCallVariant");
if (QDBusPendingCall* call = const_cast<QDBusPendingCall*>(DBusResponseWaiter::instance()->extractPendingCall(variant))) if (QDBusPendingCall* call = const_cast<QDBusPendingCall*>(DBusResponseWaiter::instance()->extractPendingCall(variant)))
{ {
if (call->isError()) if (call->isError())
...@@ -121,10 +124,10 @@ const QDBusPendingCall* DBusResponseWaiter::extractPendingCall(QVariant& variant ...@@ -121,10 +124,10 @@ const QDBusPendingCall* DBusResponseWaiter::extractPendingCall(QVariant& variant
{ {
if (variant.canConvert(QVariant::Type(type))) if (variant.canConvert(QVariant::Type(type)))
{ {
return reinterpret_cast<const QDBusPendingCall*>(variant.constData()); return reinterpret_cast<const QDBusPendingCall*>(variant.constData());
} }
} }
return nullptr; return nullptr;
} }
......
...@@ -3,27 +3,35 @@ add_definitions(-DTRANSLATION_DOMAIN=\"kdeconnect-plugins\") ...@@ -3,27 +3,35 @@ add_definitions(-DTRANSLATION_DOMAIN=\"kdeconnect-plugins\")
install(FILES kdeconnect_plugin.desktop DESTINATION ${SERVICETYPES_INSTALL_DIR}) install(FILES kdeconnect_plugin.desktop DESTINATION ${SERVICETYPES_INSTALL_DIR})
add_subdirectory(ping) add_subdirectory(ping)
add_subdirectory(clipboard)
add_subdirectory(contacts)
add_subdirectory(telephony)
add_subdirectory(share)
add_subdirectory(notifications)
add_subdirectory(battery) add_subdirectory(battery)
add_subdirectory(findmyphone) add_subdirectory(sendnotifications)
if(Phonon4Qt5_FOUND) add_subdirectory(clipboard)
add_subdirectory(findthisdevice)
endif() if(NOT SAILFISHOS)
add_subdirectory(remotekeyboard) add_subdirectory(contacts)
add_subdirectory(mousepad) add_subdirectory(share)
if(NOT WIN32) add_subdirectory(remotekeyboard)
add_subdirectory(runcommand) add_subdirectory(notifications)
add_subdirectory(sendnotifications) add_subdirectory(findmyphone)
add_subdirectory(pausemusic) add_subdirectory(telephony)
add_subdirectory(mpriscontrol)
add_subdirectory(screensaver-inhibit) if(WIN32)
add_subdirectory(sftp) add_subdirectory(mousepad_windows)
else()
add_subdirectory(runcommand)
add_subdirectory(pausemusic)
add_subdirectory(mpriscontrol)
add_subdirectory(mousepad)
add_subdirectory(screensaver-inhibit)
add_subdirectory(sftp)
endif()
if(Phonon4Qt5_FOUND)
add_subdirectory(findthisdevice)
endif()
endif() endif()
if(EXPERIMENTALAPP_ENABLED)
if(SAILFISHOS OR EXPERIMENTALAPP_ENABLED)
add_subdirectory(remotecommands) add_subdirectory(remotecommands)
add_subdirectory(mprisremote) add_subdirectory(mprisremote)
add_subdirectory(remotecontrol) add_subdirectory(remotecontrol)
......
...@@ -21,6 +21,7 @@ ...@@ -21,6 +21,7 @@
#include "batteryplugin.h" #include "batteryplugin.h"
#include <QIcon> #include <QIcon>
#include <KLocalizedString> #include <KLocalizedString>
#include <KPluginFactory> #include <KPluginFactory>
...@@ -73,7 +74,6 @@ bool BatteryPlugin::receivePacket(const NetworkPacket& np) ...@@ -73,7 +74,6 @@ bool BatteryPlugin::receivePacket(const NetworkPacket& np)
if ( thresholdEvent == ThresholdBatteryLow && !isCharging ) { if ( thresholdEvent == ThresholdBatteryLow && !isCharging ) {
Daemon::instance()->sendSimpleNotification(QStringLiteral("batteryLow"), i18nc("device name: low battery", "%1: Low Battery", device()->name()), i18n("Battery at %1%", currentCharge), QStringLiteral("battery-040")); Daemon::instance()->sendSimpleNotification(QStringLiteral("batteryLow"), i18nc("device name: low battery", "%1: Low Battery", device()->name()), i18n("Battery at %1%", currentCharge), QStringLiteral("battery-040"));
} }
return true; return true;
......
...@@ -30,6 +30,9 @@ ...@@ -30,6 +30,9 @@
#include "notificationsplugin.h" #include "notificationsplugin.h"
#include "sendreplydialog.h" #include "sendreplydialog.h"
//In older Qt released, qAsConst isnt available
#include "qtcompat_p.h"
NotificationsDbusInterface::NotificationsDbusInterface(KdeConnectPlugin* plugin) NotificationsDbusInterface::NotificationsDbusInterface(KdeConnectPlugin* plugin)
: QDBusAbstractAdaptor(const_cast<Device*>(plugin->device())) : QDBusAbstractAdaptor(const_cast<Device*>(plugin->device()))
, m_device(plugin->device()) , m_device(plugin->device())
...@@ -114,9 +117,9 @@ void NotificationsDbusInterface::addNotification(Notification* noti) ...@@ -114,9 +117,9 @@ void NotificationsDbusInterface::addNotification(Notification* noti)
connect(noti, &Notification::dismissRequested, connect(noti, &Notification::dismissRequested,
this, &NotificationsDbusInterface::dismissRequested); this, &NotificationsDbusInterface::dismissRequested);
connect(noti, &Notification::replyRequested, this, [this,noti]{ connect(noti, &Notification::replyRequested, this, [this,noti]{
replyRequested(noti); replyRequested(noti);
}); });
const QString& publicId = newId(); const QString& publicId = newId();
......
...@@ -30,6 +30,9 @@ ...@@ -30,6 +30,9 @@
#include <KPluginFactory> #include <KPluginFactory>
//In older Qt released, qAsConst isnt available
#include "qtcompat_p.h"
K_PLUGIN_FACTORY_WITH_JSON( KdeConnectPluginFactory, "kdeconnect_pausemusic.json", registerPlugin< PauseMusicPlugin >(); ) K_PLUGIN_FACTORY_WITH_JSON( KdeConnectPluginFactory, "kdeconnect_pausemusic.json", registerPlugin< PauseMusicPlugin >(); )
Q_LOGGING_CATEGORY(KDECONNECT_PLUGIN_PAUSEMUSIC, "kdeconnect.plugin.pausemusic") Q_LOGGING_CATEGORY(KDECONNECT_PLUGIN_PAUSEMUSIC, "kdeconnect.plugin.pausemusic")
......
if (SAILFISHOS)
set(SN_PLUGIN_ENABLED_BY_DEFAULT "true")
else()
set(SN_PLUGIN_ENABLED_BY_DEFAULT "false")
endif()
configure_file(kdeconnect_sendnotifications.json.in kdeconnect_sendnotifications.json)
set(kdeconnect_sendnotifications_SRCS set(kdeconnect_sendnotifications_SRCS
sendnotificationsplugin.cpp sendnotificationsplugin.cpp
notificationslistener.cpp notificationslistener.cpp
notifyingapplication.cpp notifyingapplication.cpp
kdeconnect_sendnotifications.json
) )
kdeconnect_add_plugin(kdeconnect_sendnotifications JSON kdeconnect_sendnotifications.json SOURCES ${kdeconnect_sendnotifications_SRCS}) kdeconnect_add_plugin(kdeconnect_sendnotifications JSON "${CMAKE_CURRENT_BINARY_DIR}/kdeconnect_sendnotifications.json" SOURCES ${kdeconnect_sendnotifications_SRCS})
target_link_libraries(kdeconnect_sendnotifications target_link_libraries(kdeconnect_sendnotifications
kdeconnectcore kdeconnectcore
Qt5::DBus Qt5::DBus
KF5::Notifications ${NOTIFICATION_LIB}
KF5::I18n KF5::I18n
Qt5::Gui
KF5::IconThemes KF5::IconThemes
KF5::ConfigCore KF5::ConfigCore
) )
####################################### #######################################
# Config # Config
if (NOT SAILFISHOS)
set( kdeconnect_sendnotifications_config_SRCS set( kdeconnect_sendnotifications_config_SRCS
sendnotifications_config.cpp sendnotifications_config.cpp
notifyingapplication.cpp notifyingapplication.cpp
...@@ -35,3 +45,4 @@ target_link_libraries( kdeconnect_sendnotifications_config ...@@ -35,3 +45,4 @@ target_link_libraries( kdeconnect_sendnotifications_config
install( TARGETS kdeconnect_sendnotifications_config DESTINATION ${PLUGIN_INSTALL_DIR} ) install( TARGETS kdeconnect_sendnotifications_config DESTINATION ${PLUGIN_INSTALL_DIR} )
install( FILES kdeconnect_sendnotifications_config.desktop DESTINATION ${SERVICES_INSTALL_DIR} ) install( FILES kdeconnect_sendnotifications_config.desktop DESTINATION ${SERVICES_INSTALL_DIR} )
endif()
...@@ -45,7 +45,7 @@ ...@@ -45,7 +45,7 @@
"Description[x-test]": "xxBroadcast this computer's notifications, so they can be shown on other devices.xx", "Description[x-test]": "xxBroadcast this computer's notifications, so they can be shown on other devices.xx",
"Description[zh_CN]": "广播此计算机的通知,以被其他设备显示。", "Description[zh_CN]": "广播此计算机的通知,以被其他设备显示。",
"Description[zh_TW]": "廣播此電腦的通知,這樣可以顯示在其他裝置上。", "Description[zh_TW]": "廣播此電腦的通知,這樣可以顯示在其他裝置上。",
"EnabledByDefault": false, "EnabledByDefault": ${SN_PLUGIN_ENABLED_BY_DEFAULT},
"Icon": "preferences-desktop-notification", "Icon": "preferences-desktop-notification",
"Id": "kdeconnect_sendnotifications", "Id": "kdeconnect_sendnotifications",
"License": "GPL", "License": "GPL",
......
...@@ -27,7 +27,6 @@ ...@@ -27,7 +27,6 @@
#include <QImage> #include <QImage>
#include <KConfig> #include <KConfig>
#include <KConfigGroup> #include <KConfigGroup>
#include <kiconloader.h> #include <kiconloader.h>
#include <kicontheme.h> #include <kicontheme.h>