[SCM] ktp-common-internals packaging branch, master, updated. debian/15.12.1-2-1839-gf0635e9

Maximiliano Curia maxy at moszumanska.debian.org
Mon May 9 09:08:11 UTC 2016


Gitweb-URL: http://git.debian.org/?p=pkg-kde/applications/ktp-common-internals.git;a=commitdiff;h=7584346

The following commit has been merged in the master branch:
commit 7584346f3a44afdf1ceabdb5233e2b39ac50e079
Author: Aleix Pol <aleixpol at kde.org>
Date:   Sun Apr 13 23:46:01 2014 +0200

    Make it possible to manage presence from QtQuick
    
    Exposes PresenceModel on QtQuick and registers the related types
    Makes it possible to interact with the PresenceModel from QtQuick by
    exposing some methods and properties.
    Makes the GlobalPresence use KTp::Presence for consistency.
    
    Reviewed by David Edmundson
---
 KTp/Declarative/qml-plugins.cpp |  9 +++++++--
 KTp/Declarative/qmldir          |  4 +++-
 KTp/Models/presence-model.cpp   | 22 ++++++++++++++++++++--
 KTp/Models/presence-model.h     | 11 ++++++++---
 KTp/global-presence.cpp         |  2 +-
 KTp/global-presence.h           |  3 ++-
 6 files changed, 41 insertions(+), 10 deletions(-)

diff --git a/KTp/Declarative/qml-plugins.cpp b/KTp/Declarative/qml-plugins.cpp
index 7b1d7ee..acac9e9 100644
--- a/KTp/Declarative/qml-plugins.cpp
+++ b/KTp/Declarative/qml-plugins.cpp
@@ -35,6 +35,7 @@
 
 #include "KTp/types.h"
 #include "KTp/global-presence.h"
+#include "KTp/Models/presence-model.h"
 #include "KTp/Models/contacts-filter-model.h"
 #include "KTp/Models/contacts-model.h"
 #include "KTp/Models/accounts-list-model.h"
@@ -58,14 +59,18 @@ void QmlPlugins::registerTypes(const char *uri)
     qmlRegisterType<PinnedContactsModel>(uri, 0, 1, "PinnedContactsModel");
     qmlRegisterType<ContactPin>(uri, 0, 1, "ContactPin");
     qmlRegisterType<FilteredPinnedContactsProxyModel>(uri, 0, 1, "FilteredPinnedContactsProxyModel");
+    qmlRegisterType<KTp::GlobalPresence> (uri, 0, 1, "GlobalPresence");
+    qmlRegisterType<KTp::PresenceModel> (uri, 0, 1, "PresenceModel");
 
     qmlRegisterUncreatableType<MessagesModel> (uri, 0, 1, "MessagesModel",
         QLatin1String("It will be created once the conversation is created"));
 
-    qmlRegisterType<KTp::GlobalPresence> (uri, 0, 1, "GlobalPresence");
-
     qmlRegisterType<TelepathyManager>();
     qmlRegisterType<ConversationsModel>();
+
+    qmlRegisterType<Tp::PendingChannelRequest>();
+    qRegisterMetaType<Tp::Presence>();
+    qRegisterMetaType<KTp::Presence>();
     qRegisterMetaType<Tp::AccountManagerPtr>();
     qRegisterMetaType<KTp::ContactPtr>();
     qRegisterMetaType<Tp::AccountPtr>();
diff --git a/KTp/Declarative/qmldir b/KTp/Declarative/qmldir
index f24d4d6..fe2ac1a 100644
--- a/KTp/Declarative/qmldir
+++ b/KTp/Declarative/qmldir
@@ -1 +1,3 @@
-plugin ktpqmlplugin
\ No newline at end of file
+module org.kde.telepathy
+
+plugin ktpqmlplugin
diff --git a/KTp/Models/presence-model.cpp b/KTp/Models/presence-model.cpp
index 4bce22b..11014dc 100644
--- a/KTp/Models/presence-model.cpp
+++ b/KTp/Models/presence-model.cpp
@@ -99,9 +99,11 @@ QVariant PresenceModel::data(const QModelIndex &index, int role) const
             return QVariant();
         }
 
-    case PresenceModel::PresenceRole:
+    case PresenceRole:
         return QVariant::fromValue<KTp::Presence>(presence);
 
+    case IconNameRole:
+        return presence.iconName();
     }
 
     return QVariant();
@@ -170,6 +172,7 @@ QModelIndex PresenceModel::addPresence(const KTp::Presence &presence)
     //and using qLowerBound does seem a good approach
     beginInsertRows(QModelIndex(), index, index);
     endInsertRows();
+    Q_EMIT countChanged();
     return createIndex(index, 0);
 }
 
@@ -179,7 +182,7 @@ void PresenceModel::removePresence(const KTp::Presence &presence)
     beginRemoveRows(QModelIndex(), row, row);
     m_presences.removeOne(presence);
     endRemoveRows();
-    QString id = QString::number(presence.type()).append(presence.statusMessage());
+    Q_EMIT countChanged();
 }
 
 int PresenceModel::updatePresenceApplet()
@@ -197,4 +200,19 @@ int PresenceModel::updatePresenceApplet()
     return 1;
 }
 
+QHash<int, QByteArray> PresenceModel::roleNames() const
+{
+    QHash<int, QByteArray> roles = QAbstractListModel::roleNames();
+    roles.insert(PresenceRole, "presence");
+    roles.insert(IconNameRole, "iconName");
+    return roles;
+}
+
+QVariant PresenceModel::get(int row, const QByteArray& role) const
+{
+    //TODO: cache roles?
+    QHash<int, QByteArray> roles = roleNames();
+    return index(row, 0).data(roles.key(role));
+}
+
 }
diff --git a/KTp/Models/presence-model.h b/KTp/Models/presence-model.h
index 666dbc4..5a5e038 100644
--- a/KTp/Models/presence-model.h
+++ b/KTp/Models/presence-model.h
@@ -33,13 +33,15 @@ namespace KTp
 class KTP_EXPORT PresenceModel : public QAbstractListModel
 {
     Q_OBJECT
+    Q_PROPERTY(int count READ rowCount NOTIFY countChanged)
 public:
     explicit PresenceModel(QObject *parent = 0);
     ~PresenceModel();
 
     enum Roles {
         //Also supplies Qt::DisplayRole and Qt::DecorationRole
-        PresenceRole = Qt::UserRole
+        PresenceRole = Qt::UserRole,
+        IconNameRole
     };
 
     /** Adds a custom presence to the model, and write value to config file.
@@ -58,13 +60,16 @@ public:
     /** Updates context menu of presence applet */
     int updatePresenceApplet();
 
-    /** Returns the index of a given presence, adding it if needed */
-    QModelIndex indexOf(const KTp::Presence &presence);
+    Q_SCRIPTABLE QVariant get(int row, const QByteArray& role) const;
 
     //protected:
     virtual QVariant data(const QModelIndex &index, int role) const;
     virtual QVariant data(int index) const;
     virtual int rowCount(const QModelIndex &parent = QModelIndex()) const;
+    virtual QHash<int, QByteArray> roleNames() const;
+
+Q_SIGNALS:
+    void countChanged();
 
 private:
 
diff --git a/KTp/global-presence.cpp b/KTp/global-presence.cpp
index 332168b..a1fa319 100644
--- a/KTp/global-presence.cpp
+++ b/KTp/global-presence.cpp
@@ -145,7 +145,7 @@ bool GlobalPresence::isChangingPresence() const
     return m_changingPresence;
 }
 
-void GlobalPresence::setPresence(const Tp::Presence &presence)
+void GlobalPresence::setPresence(const KTp::Presence &presence)
 {
     if (m_enabledAccounts.isNull()) {
         kWarning() << "Requested presence change on empty accounts set";
diff --git a/KTp/global-presence.h b/KTp/global-presence.h
index 3f0bbcf..22db090 100644
--- a/KTp/global-presence.h
+++ b/KTp/global-presence.h
@@ -46,6 +46,7 @@ class KTP_EXPORT GlobalPresence : public QObject
     Q_PROPERTY(ConnectionPresenceType presenceType READ currentPresenceType NOTIFY currentPresenceChanged)
     Q_PROPERTY(Tp::AccountManagerPtr accountManager READ accountManager WRITE addAccountManager)
     Q_PROPERTY(QIcon currentPresenceIcon READ currentPresenceIcon NOTIFY currentPresenceChanged)
+    Q_PROPERTY(KTp::Presence requestedPresence READ requestedPresence WRITE setPresence NOTIFY requestedPresenceChanged)
 public:
     explicit GlobalPresence(QObject *parent = 0);
 
@@ -100,7 +101,7 @@ Q_SIGNALS:
 
 public Q_SLOTS:
     /** Set all enabled accounts to the specified presence*/
-    void setPresence(const Tp::Presence &presence);
+    void setPresence(const KTp::Presence &presence);
     void setPresence(ConnectionPresenceType p, QString message);
 
     /**Saves the current presence to memory*/

-- 
ktp-common-internals packaging



More information about the pkg-kde-commits mailing list