[SCM] kdeconnect packaging branch, master, updated. debian/0.9g-1-1183-g9d69498
Maximiliano Curia
maxy at moszumanska.debian.org
Fri Oct 14 14:26:50 UTC 2016
Gitweb-URL: http://git.debian.org/?p=pkg-kde/kde-extras/kdeconnect.git;a=commitdiff;h=1cb1b26
The following commit has been merged in the master branch:
commit 1cb1b264154b5117714347318dbd70adac77cfe4
Author: Albert Vaca <albertvaka at gmail.com>
Date: Wed Aug 21 18:25:44 2013 +0200
Moved DevicesModel and DBusInterfaces to libkdeconnect
Added NotificationsModel to libkdeconnect
---
CMakeLists.txt | 4 +
.../notifications/notificationsdbusinterface.h | 4 +-
kcm/CMakeLists.txt | 28 ++--
kcm/devicessortproxymodel.cpp | 4 +-
kcm/kcm.cpp | 2 +-
kcm/kcm.h | 2 +-
kcm/wizard.h | 4 +-
libkdeconnect/CMakeLists.txt | 53 ++++++++
{kcm => libkdeconnect}/dbusinterfaces.cpp | 19 +++
{kcm => libkdeconnect}/dbusinterfaces.h | 47 ++++++-
{kcm => libkdeconnect}/devicesmodel.cpp | 34 ++---
{kcm => libkdeconnect}/devicesmodel.h | 6 +-
.../kdeconnect_export.h | 12 +-
libkdeconnect/notificationsmodel.cpp | 145 +++++++++++++++++++++
.../notificationsmodel.h | 42 +++---
15 files changed, 324 insertions(+), 82 deletions(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index e0feb63..85de77d 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,4 +1,5 @@
project(kdeconnect)
+
cmake_minimum_required(VERSION 2.6)
find_package(KDE4 REQUIRED)
@@ -12,6 +13,9 @@ include_directories(${KDE4_INCLUDES})
include_directories(${CMAKE_CURRENT_BINARY_DIR})
add_subdirectory(daemon)
+add_subdirectory(libkdeconnect)
add_subdirectory(kcm)
+#add_subdirectory(kioslave)
+add_subdirectory(plasmoid)
add_subdirectory(test)
diff --git a/daemon/plugins/notifications/notificationsdbusinterface.h b/daemon/plugins/notifications/notificationsdbusinterface.h
index cd722ab..38e42fb 100644
--- a/daemon/plugins/notifications/notificationsdbusinterface.h
+++ b/daemon/plugins/notifications/notificationsdbusinterface.h
@@ -46,8 +46,8 @@ public Q_SLOTS:
void dismissRequested(Notification* notification);
Q_SIGNALS:
- void notificationPosted(const QString& publicId);
- void notificationRemoved(const QString& publicId);
+ Q_SCRIPTABLE void notificationPosted(const QString& publicId);
+ Q_SCRIPTABLE void notificationRemoved(const QString& publicId);
private /*methods*/:
void addNotification(Notification* noti);
diff --git a/kcm/CMakeLists.txt b/kcm/CMakeLists.txt
index 7796122..1afe7e2 100644
--- a/kcm/CMakeLists.txt
+++ b/kcm/CMakeLists.txt
@@ -1,36 +1,26 @@
-set(kcm_SRCS devicessortproxymodel.cpp devicesmodel.cpp
+include_directories(${CMAKE_CURRENT_BINARY_DIR}
+ ${CMAKE_CURRENT_SOURCE_DIR}
+ ${CMAKE_SOURCE_DIR}
+ ${CMAKE_BINARY_DIR})
+
+set(kcm_SRCS devicessortproxymodel.cpp
kcm.cpp
#wizard.cpp
- dbusinterfaces.cpp
-)
-
-qt4_add_dbus_interface(
- kcm_SRCS
- ${CMAKE_BINARY_DIR}/daemon/org.kde.kdeconnect.daemon.xml
- daemoninterface
-)
-
-qt4_add_dbus_interface(
- kcm_SRCS
- ${CMAKE_BINARY_DIR}/daemon/org.kde.kdeconnect.device.xml
- deviceinterface
)
kde4_add_ui_files(kcm_SRCS kcm.ui wizard.ui)
kde4_add_plugin(kcm_kdeconnect ${kcm_SRCS})
+add_dependencies(kcm_kdeconnect libkdeconnect)
+
target_link_libraries(kcm_kdeconnect
${QT_QTCORE_LIBRARY}
${QT_QTGUI_LIBRARY}
${KDE4_KDEUI_LIBRARY}
${KDE4_KCMUTILS_LIBS}
-)
-
-add_dependencies(kcm_kdeconnect
- org.kde.kdeconnect.daemon.xml
- org.kde.kdeconnect.device.xml
+ kdeconnect
)
install(TARGETS kcm_kdeconnect DESTINATION ${PLUGIN_INSTALL_DIR})
diff --git a/kcm/devicessortproxymodel.cpp b/kcm/devicessortproxymodel.cpp
index d1d5cea..d1041ce 100644
--- a/kcm/devicessortproxymodel.cpp
+++ b/kcm/devicessortproxymodel.cpp
@@ -19,7 +19,9 @@
*/
#include "devicessortproxymodel.h"
-#include "devicesmodel.h"
+
+#include "libkdeconnect/dbusinterfaces.h"
+#include "libkdeconnect/devicesmodel.h"
#include <QDebug>
diff --git a/kcm/kcm.cpp b/kcm/kcm.cpp
index 983cbdf..8d97e0e 100644
--- a/kcm/kcm.cpp
+++ b/kcm/kcm.cpp
@@ -21,7 +21,7 @@
#include "kcm.h"
#include "ui_kcm.h"
#include "ui_wizard.h"
-#include "dbusinterfaces.h"
+#include "libkdeconnect/dbusinterfaces.h"
#include <QtGui/QLabel>
#include <QtGui/QMenu>
diff --git a/kcm/kcm.h b/kcm/kcm.h
index 81a46aa..2fc8fd1 100644
--- a/kcm/kcm.h
+++ b/kcm/kcm.h
@@ -28,7 +28,7 @@
#include <ksharedconfig.h>
#include "wizard.h"
-#include "devicesmodel.h"
+#include "libkdeconnect/devicesmodel.h"
class QModelIndex;
class AccountsModel;
diff --git a/kcm/wizard.h b/kcm/wizard.h
index 6f559aa..41db776 100644
--- a/kcm/wizard.h
+++ b/kcm/wizard.h
@@ -24,8 +24,8 @@
#include <QWizard>
#include <QObject>
-#include "dbusinterfaces.h"
-#include "devicesmodel.h"
+#include "../libkdeconnect/dbusinterfaces.h"
+#include "../libkdeconnect/devicesmodel.h"
namespace Ui {
class Wizard;
diff --git a/libkdeconnect/CMakeLists.txt b/libkdeconnect/CMakeLists.txt
new file mode 100644
index 0000000..3710fb2
--- /dev/null
+++ b/libkdeconnect/CMakeLists.txt
@@ -0,0 +1,53 @@
+set(likdeconnect_VERSION_MAJOR 1)
+set(likdeconnect_VERSION_MINOR 0)
+set(likdeconnect_VERSION_RELEASE 1)
+set(likdeconnect_VERSION "${likdeconnect_VERSION_MAJOR}.${likdeconnect_VERSION_MINOR}.${likdeconnect_VERSION_RELEASE}")
+
+include_directories(${CMAKE_CURRENT_BINARY_DIR}
+ ${CMAKE_CURRENT_SOURCE_DIR}
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR})
+
+set(libkdeconnect_SRC
+ dbusinterfaces.cpp
+ devicesmodel.cpp
+ notificationsmodel.cpp
+)
+
+set_source_files_properties(
+ ${CMAKE_BINARY_DIR}/daemon/org.kde.kdeconnect.daemon.xml
+ ${CMAKE_BINARY_DIR}/daemon/org.kde.kdeconnect.device.xml
+ ${CMAKE_BINARY_DIR}/daemon/plugins/battery/org.kde.kdeconnect.device.battery.xml
+ ${CMAKE_BINARY_DIR}/daemon/plugins/notifications/org.kde.kdeconnect.device.notifications.xml
+ ${CMAKE_BINARY_DIR}/daemon/plugins/notifications/org.kde.kdeconnect.device.notifications.notification.xml
+ PROPERTIES NO_NAMESPACE true
+)
+qt4_add_dbus_interface(libkdeconnect_SRC ${CMAKE_BINARY_DIR}/daemon/org.kde.kdeconnect.daemon.xml daemoninterface)
+qt4_add_dbus_interface(libkdeconnect_SRC ${CMAKE_BINARY_DIR}/daemon/org.kde.kdeconnect.device.xml deviceinterface)
+qt4_add_dbus_interface(libkdeconnect_SRC ${CMAKE_BINARY_DIR}/daemon/plugins/battery/org.kde.kdeconnect.device.battery.xml devicebatteryinterface )
+qt4_add_dbus_interface(libkdeconnect_SRC ${CMAKE_BINARY_DIR}/daemon/plugins/notifications/org.kde.kdeconnect.device.notifications.xml devicenotificationsinterface )
+qt4_add_dbus_interface(libkdeconnect_SRC ${CMAKE_BINARY_DIR}/daemon/plugins/notifications/org.kde.kdeconnect.device.notifications.notification.xml notificationinterface )
+
+kde4_add_library(kdeconnect SHARED ${libkdeconnect_SRC})
+set_target_properties(kdeconnect PROPERTIES
+ VERSION ${likdeconnect_VERSION}
+ SOVERSION ${likdeconnect_VERSION_MAJOR}
+)
+
+add_dependencies(kdeconnect
+ org.kde.kdeconnect.daemon.xml
+ org.kde.kdeconnect.device.xml
+ org.kde.kdeconnect.device.battery.xml
+ org.kde.kdeconnect.device.notifications.xml
+ org.kde.kdeconnect.device.notifications.notification.xml
+)
+
+target_link_libraries(kdeconnect
+ ${KDE4_KDEUI_LIBS}
+ ${QT_QTCORE_LIBRARY}
+ ${QT_QTDBUS_LIBRARY}
+ ${KDE4_KDECORE_LIBS}
+ ${QJSON_LIBRARIES}
+)
+
+install(TARGETS kdeconnect EXPORT kdeconnectLibraryTargets ${INSTALL_TARGETS_DEFAULT_ARGS})
diff --git a/kcm/dbusinterfaces.cpp b/libkdeconnect/dbusinterfaces.cpp
similarity index 61%
rename from kcm/dbusinterfaces.cpp
rename to libkdeconnect/dbusinterfaces.cpp
index 70b6df4..14ab9f0 100644
--- a/kcm/dbusinterfaces.cpp
+++ b/libkdeconnect/dbusinterfaces.cpp
@@ -18,6 +18,7 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
+
#include "dbusinterfaces.h"
DaemonDbusInterface::DaemonDbusInterface(QObject* parent)
@@ -30,4 +31,22 @@ DeviceDbusInterface::DeviceDbusInterface(const QString& id, QObject* parent)
: OrgKdeKdeconnectDeviceInterface("org.kde.kdeconnect", "/modules/kdeconnect/devices/"+id, QDBusConnection::sessionBus(), parent)
{
+}
+
+DeviceBatteryDbusInterface::DeviceBatteryDbusInterface(const QString& id, QObject* parent)
+ : OrgKdeKdeconnectDeviceBatteryInterface("org.kde.kdeconnect", "/modules/kdeconnect/devices/"+id, QDBusConnection::sessionBus(), parent)
+{
+
+}
+
+DeviceNotificationsDbusInterface::DeviceNotificationsDbusInterface(const QString& id, QObject* parent)
+ : OrgKdeKdeconnectDeviceNotificationsInterface("org.kde.kdeconnect", "/modules/kdeconnect/devices/"+id, QDBusConnection::sessionBus(), parent)
+{
+
+}
+
+NotificationDbusInterface::NotificationDbusInterface(const QString& deviceId, const QString& notificationId, QObject* parent)
+ : OrgKdeKdeconnectDeviceNotificationsNotificationInterface("org.kde.kdeconnect", "/modules/kdeconnect/devices/"+deviceId+"/notifications/"+notificationId, QDBusConnection::sessionBus(), parent)
+{
+
}
\ No newline at end of file
diff --git a/kcm/dbusinterfaces.h b/libkdeconnect/dbusinterfaces.h
similarity index 53%
rename from kcm/dbusinterfaces.h
rename to libkdeconnect/dbusinterfaces.h
index 1a9fd33..31472b0 100644
--- a/kcm/dbusinterfaces.h
+++ b/libkdeconnect/dbusinterfaces.h
@@ -18,17 +18,22 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-#include "daemoninterface.h"
-#include "deviceinterface.h"
+#ifndef DBUSINTERFACES_H
+#define DBUSINTERFACES_H
-#ifndef DbusInterfaces_H_
-#define DbusInterfaces_H_
+#include "kdeconnect_export.h"
+
+#include "libkdeconnect/daemoninterface.h"
+#include "libkdeconnect/deviceinterface.h"
+#include "libkdeconnect/devicebatteryinterface.h"
+#include "libkdeconnect/devicenotificationsinterface.h"
+#include "libkdeconnect/notificationinterface.h"
/**
* Using these "proxy" classes just in case we need to rename the
* interface, so we can change the class name in a single place.
*/
-class DaemonDbusInterface
+class KDECONNECT_EXPORT DaemonDbusInterface
: public OrgKdeKdeconnectDaemonInterface
{
Q_OBJECT
@@ -37,7 +42,7 @@ public:
};
-class DeviceDbusInterface
+class KDECONNECT_EXPORT DeviceDbusInterface
: public OrgKdeKdeconnectDeviceInterface
{
Q_OBJECT
@@ -46,4 +51,32 @@ public:
};
-#endif
\ No newline at end of file
+class KDECONNECT_EXPORT DeviceBatteryDbusInterface
+ : public OrgKdeKdeconnectDeviceBatteryInterface
+{
+ Q_OBJECT
+public:
+ DeviceBatteryDbusInterface(const QString& id, QObject* parent);
+
+};
+
+class KDECONNECT_EXPORT DeviceNotificationsDbusInterface
+ : public OrgKdeKdeconnectDeviceNotificationsInterface
+{
+ Q_OBJECT
+public:
+ DeviceNotificationsDbusInterface(const QString& id, QObject* parent);
+
+};
+
+class KDECONNECT_EXPORT NotificationDbusInterface
+ : public OrgKdeKdeconnectDeviceNotificationsNotificationInterface
+{
+ Q_OBJECT
+public:
+ NotificationDbusInterface(const QString& deviceId, const QString& notificationId, QObject* parent);
+
+};
+
+
+#endif // DEVICEINTERFACE_H
diff --git a/kcm/devicesmodel.cpp b/libkdeconnect/devicesmodel.cpp
similarity index 88%
rename from kcm/devicesmodel.cpp
rename to libkdeconnect/devicesmodel.cpp
index dc01bea..a1f08d6 100644
--- a/kcm/devicesmodel.cpp
+++ b/libkdeconnect/devicesmodel.cpp
@@ -22,18 +22,17 @@
#include <ksharedconfig.h>
#include <QDebug>
-#include <qdbusinterface.h>
+#include <QDBusInterface>
+
#include <KConfigGroup>
-#include <kicon.h>
+#include <KIcon>
+
+bool fetchNotifications = true;
DevicesModel::DevicesModel(QObject *parent)
: QAbstractListModel(parent)
, m_dbusInterface(new DaemonDbusInterface(this))
{
- QList<QString> deviceIds = m_dbusInterface->devices();
- Q_FOREACH(const QString& id, deviceIds) {
- deviceAdded(id);
- }
connect(m_dbusInterface, SIGNAL(deviceAdded(QString)),
this, SLOT(deviceAdded(QString)));
@@ -41,6 +40,9 @@ DevicesModel::DevicesModel(QObject *parent)
this, SLOT(deviceStatusChanged(QString)));
connect(m_dbusInterface, SIGNAL(deviceRemoved(QString)),
this, SLOT(deviceRemoved(QString)));
+
+ refreshDeviceList();
+
}
DevicesModel::~DevicesModel()
@@ -49,18 +51,14 @@ DevicesModel::~DevicesModel()
void DevicesModel::deviceAdded(const QString& id)
{
- /*
- beginInsertRows(QModelIndex(), rowCount(), rowCount() + 1);
- m_deviceList.append(new DeviceDbusInterface(id,this));
- endInsertRows();
- */
-
+ //TODO: Actually add instead of refresh
Q_UNUSED(id);
refreshDeviceList();
}
void DevicesModel::deviceRemoved(const QString& id)
{
+ //TODO: Actually remove instead of refresh
Q_UNUSED(id);
refreshDeviceList();
}
@@ -77,17 +75,19 @@ void DevicesModel::refreshDeviceList()
{
if (m_deviceList.count() > 0) {
- beginRemoveRows(QModelIndex(), 0, m_deviceList.count() - 1);
+ beginRemoveRows(QModelIndex(), 0, m_deviceList.size() - 1);
m_deviceList.clear();
endRemoveRows();
}
QList<QString> deviceIds = m_dbusInterface->devices();
+ beginInsertRows(QModelIndex(), 0, deviceIds.size()-1);
Q_FOREACH(const QString& id, deviceIds) {
- beginInsertRows(QModelIndex(), rowCount(), rowCount());
- m_deviceList.append(new DeviceDbusInterface(id,this));
- endInsertRows();
+ DeviceDbusInterface* deviceDbusInterface = new DeviceDbusInterface(id,this);
+ m_deviceList.append(deviceDbusInterface);
}
+ endInsertRows();
+
Q_EMIT dataChanged(index(0), index(deviceIds.count()));
@@ -128,6 +128,8 @@ QVariant DevicesModel::data(const QModelIndex &index, int role) const
return QString(device->id());
case NameModelRole:
return QString(device->name());
+ case Qt::ToolTipRole:
+ return QVariant(); //To implement
case StatusModelRole: {
int status = StatusUnknown;
if (device->reachable()) {
diff --git a/kcm/devicesmodel.h b/libkdeconnect/devicesmodel.h
similarity index 96%
copy from kcm/devicesmodel.h
copy to libkdeconnect/devicesmodel.h
index 3271a73..189c2ff 100644
--- a/kcm/devicesmodel.h
+++ b/libkdeconnect/devicesmodel.h
@@ -26,9 +26,10 @@
#include <QAbstractListModel>
#include <QPixmap>
#include <QList>
-#include "dbusinterfaces.h"
-class DevicesModel
+#include "libkdeconnect/dbusinterfaces.h"
+
+class KDECONNECT_EXPORT DevicesModel
: public QAbstractListModel
{
Q_OBJECT
@@ -43,7 +44,6 @@ public:
StatusUnknown = 0x00,
StatusPaired = 0x01,
StatusReachable = 0x10,
-
};
DevicesModel(QObject *parent = 0);
diff --git a/daemon/linkproviders/linkprovider.cpp b/libkdeconnect/kdeconnect_export.h
similarity index 85%
copy from daemon/linkproviders/linkprovider.cpp
copy to libkdeconnect/kdeconnect_export.h
index 2ca4dba..56c2459 100644
--- a/daemon/linkproviders/linkprovider.cpp
+++ b/libkdeconnect/kdeconnect_export.h
@@ -18,9 +18,11 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-#include "linkprovider.h"
+#ifndef KDECONNECT_EXPORT_H
+#define KDECONNECT_EXPORT_H
-LinkProvider::LinkProvider()
-{
- //gcc complains if we don't add something to compile on a class with virtual functions
-}
\ No newline at end of file
+#include <QtCore/QtGlobal>
+
+#define KDECONNECT_EXPORT Q_DECL_EXPORT
+
+#endif
diff --git a/libkdeconnect/notificationsmodel.cpp b/libkdeconnect/notificationsmodel.cpp
new file mode 100644
index 0000000..0f946d1
--- /dev/null
+++ b/libkdeconnect/notificationsmodel.cpp
@@ -0,0 +1,145 @@
+/**
+ * Copyright 2013 Albert Vaca <albertvaka at gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License or (at your option) version 3 or any later version
+ * accepted by the membership of KDE e.V. (or its successor approved
+ * by the membership of KDE e.V.), which shall act as a proxy
+ * defined in Section 14 of version 3 of the license.
+ *
+ * This program 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 General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include "notificationsmodel.h"
+#include <ksharedconfig.h>
+
+#include <QDebug>
+#include <QDBusInterface>
+
+#include <KConfigGroup>
+#include <KIcon>
+
+NotificationsModel::NotificationsModel(const QString& deviceId, QObject *parent)
+ : QAbstractListModel(parent)
+ , m_dbusInterface(new DeviceNotificationsDbusInterface(deviceId, this))
+ , m_deviceId(deviceId)
+{
+
+ connect(m_dbusInterface, SIGNAL(notificationPosted(QString)),
+ this, SLOT(notificationAdded(QString)));
+ connect(m_dbusInterface, SIGNAL(notificationRemoved(QString)),
+ this, SLOT(notificationRemoved(QString)));
+
+ refreshNotificationList();
+
+}
+
+NotificationsModel::~NotificationsModel()
+{
+}
+
+void NotificationsModel::notificationAdded(const QString& id)
+{
+ //TODO: Actually add instead of refresh
+ Q_UNUSED(id);
+ refreshNotificationList();
+}
+
+void NotificationsModel::notificationRemoved(const QString& id)
+{
+ //TODO: Actually remove instead of refresh
+ Q_UNUSED(id);
+ refreshNotificationList();
+}
+
+void NotificationsModel::refreshNotificationList()
+{
+ if (m_notificationList.count() > 0) {
+ beginRemoveRows(QModelIndex(), 0, m_notificationList.size() - 1);
+ m_notificationList.clear();
+ endRemoveRows();
+ }
+
+ QList<QString> notificationIds = m_dbusInterface->activeNotifications();
+ beginInsertRows(QModelIndex(), 0, notificationIds.size()-1);
+ Q_FOREACH(const QString& notificationId, notificationIds) {
+ NotificationDbusInterface* dbusInterface = new NotificationDbusInterface(m_deviceId,notificationId,this);
+ m_notificationList.append(dbusInterface);
+ }
+ endInsertRows();
+
+
+ Q_EMIT dataChanged(index(0), index(notificationIds.count()));
+
+}
+
+QVariant NotificationsModel::data(const QModelIndex &index, int role) const
+{
+ if (!m_dbusInterface->isValid()) {
+ switch (role) {
+ case IconModelRole:
+ return KIcon("dialog-close").pixmap(32, 32);
+ case NameModelRole:
+ return QString("KDED not running");
+ default:
+ return QVariant();
+ }
+ }
+
+ if (!index.isValid()
+ || index.row() < 0
+ || index.row() >= m_notificationList.count()
+ || !m_notificationList[index.row()]->isValid())
+ {
+ return QVariant();
+ }
+
+ NotificationDbusInterface* notification = m_notificationList[index.row()];
+
+ //FIXME: This function gets called lots of times, producing lots of dbus calls. Add a cache.
+ switch (role) {
+ case IconModelRole:
+ return KIcon("device-notifier").pixmap(32, 32);
+ case IdModelRole:
+ return QString(notification->internalId());
+ case NameModelRole:
+ return QString(notification->ticker());
+ case Qt::ToolTipRole:
+ return QVariant(); //To implement
+ case ContentModelRole: {
+ return QString("AAAAAA"); //To implement
+ }
+ default:
+ return QVariant();
+ }
+}
+
+NotificationDbusInterface* NotificationsModel::getNotification(const QModelIndex& index)
+{
+ if (!index.isValid()) {
+ return NULL;
+ }
+
+ int row = index.row();
+ if (row < 0 || row >= m_notificationList.size()) {
+ return NULL;
+ }
+
+ return m_notificationList[row];
+}
+
+int NotificationsModel::rowCount(const QModelIndex &parent) const
+{
+ Q_UNUSED(parent);
+
+ return m_notificationList.count();
+}
+
diff --git a/kcm/devicesmodel.h b/libkdeconnect/notificationsmodel.h
similarity index 66%
rename from kcm/devicesmodel.h
rename to libkdeconnect/notificationsmodel.h
index 3271a73..0b47cf6 100644
--- a/kcm/devicesmodel.h
+++ b/libkdeconnect/notificationsmodel.h
@@ -18,53 +18,45 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-#ifndef DEVICESMODEL_H
-#define DEVICESMODEL_H
-
+#ifndef NOTIFICATIONSMODEL_H
+#define NOTIFICATIONSMODEL_H
#include <QAbstractItemModel>
#include <QAbstractListModel>
#include <QPixmap>
#include <QList>
-#include "dbusinterfaces.h"
-class DevicesModel
+#include "libkdeconnect/dbusinterfaces.h"
+
+class KDECONNECT_EXPORT NotificationsModel
: public QAbstractListModel
{
Q_OBJECT
public:
enum ModelRoles {
- NameModelRole = Qt::DisplayRole,
IconModelRole = Qt::DecorationRole,
- StatusModelRole = Qt::InitialSortOrderRole,
- IdModelRole = Qt::UserRole,
- };
- enum StatusFlags {
- StatusUnknown = 0x00,
- StatusPaired = 0x01,
- StatusReachable = 0x10,
-
+ NameModelRole = Qt::DisplayRole,
+ ContentModelRole = Qt::UserRole,
+ IdModelRole = Qt::UserRole + 1,
};
- DevicesModel(QObject *parent = 0);
- virtual ~DevicesModel();
+ NotificationsModel(const QString& deviceId = "", QObject *parent = 0);
+ virtual ~NotificationsModel();
virtual QVariant data(const QModelIndex &index, int role) const;
virtual int rowCount(const QModelIndex &parent = QModelIndex()) const;
- DeviceDbusInterface* getDevice(const QModelIndex& index);
-
-public Q_SLOTS:
- void deviceStatusChanged(const QString& id);
+ NotificationDbusInterface* getNotification(const QModelIndex&);
private Q_SLOTS:
- void deviceAdded(const QString& id);
- void deviceRemoved(const QString& id);
- void refreshDeviceList();
+ void notificationAdded(const QString& id);
+ void notificationRemoved(const QString& id);
+ void refreshNotificationList();
private:
- DaemonDbusInterface* m_dbusInterface;
- QList<DeviceDbusInterface*> m_deviceList;
+ DeviceNotificationsDbusInterface* m_dbusInterface;
+ QList<NotificationDbusInterface*> m_notificationList;
+ QString m_deviceId;
};
#endif // DEVICESMODEL_H
--
kdeconnect packaging
More information about the pkg-kde-commits
mailing list