[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:04:51 UTC 2016


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

The following commit has been merged in the master branch:
commit 0e5931b7c9e831b2ec935bc7a93d9b2a789d8d6a
Author: Lasath Fernando <kde at lasath.org>
Date:   Wed Jan 4 20:01:57 2012 +1100

    Made ConversationQueManager use d-pointers. Made MessagesModel Queable instead of Conversation, and updated the ui accordingly.
---
 KTp/Declarative/conversation-que-manager.cpp | 57 +++++++++++++++++++++-------
 KTp/Declarative/conversation-que-manager.h   | 35 ++++++++++-------
 KTp/Declarative/conversation.cpp             | 21 +++++-----
 KTp/Declarative/conversation.h               | 10 ++---
 KTp/Declarative/messages-model.cpp           |  7 ++++
 KTp/Declarative/messages-model.h             |  6 ++-
 6 files changed, 90 insertions(+), 46 deletions(-)

diff --git a/KTp/Declarative/conversation-que-manager.cpp b/KTp/Declarative/conversation-que-manager.cpp
index 8ac5083..dfec82f 100644
--- a/KTp/Declarative/conversation-que-manager.cpp
+++ b/KTp/Declarative/conversation-que-manager.cpp
@@ -20,16 +20,24 @@
 #include "conversation-que-manager.h"
 #include <KDebug>
 
-void Queable::push()
+class ConversationQueManager::ConversationQueManagerPrivate {
+public:
+    QList<Queable*> que;
+    KAction* gloablAction;
+};
+
+void Queable::enqueSelf()
 {
-    if(!m_queManager->que.contains(this)) {
-        m_queManager->que.append(this);
-    }
+    m_queManager->enque(this);
 }
 
-Queable::~Queable()
+void Queable::removeSelfFromQue()
 {
+    m_queManager->remove(this);
+}
 
+Queable::~Queable()
+{
 }
 
 Queable::Queable(ConversationQueManager* que)
@@ -51,23 +59,44 @@ ConversationQueManager* ConversationQueManager::instance()
     return m_instance;
 }
 
-ConversationQueManager::ConversationQueManager(QObject* parent): QObject(parent)
+ConversationQueManager::ConversationQueManager(QObject* parent):
+    QObject(parent),
+    d(new ConversationQueManagerPrivate)
 {
     kDebug();
 
     //FIXME: think of a good name for this. What did Kopete call it?
-    m_gloablAction = new KAction(this);
-    m_gloablAction->setObjectName(QLatin1String("next-unread-conversation"));
-    m_gloablAction->setGlobalShortcut(KShortcut(Qt::CTRL + Qt::SHIFT + Qt::Key_J), KAction::ActiveShortcut | KAction::DefaultShortcut, KAction::NoAutoloading);
+    d->gloablAction = new KAction(this);
+    d->gloablAction->setObjectName(QLatin1String("next-unread-conversation"));
+    d->gloablAction->setGlobalShortcut(KShortcut(Qt::CTRL + Qt::SHIFT + Qt::Key_I)/*, KAction::ActiveShortcut | KAction::DefaultShortcut, KAction::NoAutoloading*/);
 
-    connect(m_gloablAction, SIGNAL(triggered(Qt::MouseButtons,Qt::KeyboardModifiers)), SLOT(popConversation()));
+    connect(d->gloablAction, SIGNAL(triggered(Qt::MouseButtons,Qt::KeyboardModifiers)), SLOT(dequeNext()));
 }
 
-void ConversationQueManager::popConversation()
+void ConversationQueManager::dequeNext()
 {
     kDebug();
 
-    if(!que.isEmpty()) {
-        que.takeLast()->pop();
+    if(!d->que.isEmpty()) {
+        d->que.takeLast()->selfDequed();
+    }
+}
+
+void ConversationQueManager::enque(Queable* item)
+{
+    if(!d->que.contains(item)) {
+        d->que.append(item);
+    }
+}
+
+void ConversationQueManager::remove(Queable* item)
+{
+    if(d->que.contains(item)) {
+        d->que.removeAll(item);
     }
-}
\ No newline at end of file
+}
+
+ConversationQueManager::~ConversationQueManager()
+{
+    delete d;
+}
diff --git a/KTp/Declarative/conversation-que-manager.h b/KTp/Declarative/conversation-que-manager.h
index dc8243f..b5d97ee 100644
--- a/KTp/Declarative/conversation-que-manager.h
+++ b/KTp/Declarative/conversation-que-manager.h
@@ -24,32 +24,41 @@
 #include <KAction>
 
 class ConversationQueManager;
-class Queable {
-    friend class ConversationQueManager;
-public:
-    Queable(ConversationQueManager* que = 0);
-private:
-    ConversationQueManager* m_queManager;
+class Queable
+{
+friend class ConversationQueManager;
 
 protected:
+    Queable(ConversationQueManager* que = 0);
     virtual ~Queable();
 
-    void push();
-    virtual void pop() = 0;
+    void enqueSelf();
+    void removeSelfFromQue();
+    virtual void selfDequed() = 0;
+
+private:
+    ConversationQueManager* m_queManager;
 };
 
+
 class ConversationQueManager : public QObject
 {
 Q_OBJECT
-    friend class Queable;
+
 public:
     static ConversationQueManager* instance();
+    void enque(Queable* item);
+    void remove(Queable* item);
+
+public Q_SLOTS:
+    void dequeNext();
+
 private:
-    QList<Queable*> que;
-    KAction* m_gloablAction;
     explicit ConversationQueManager(QObject* parent = 0);
-private Q_SLOTS:
-    void popConversation();
+    virtual ~ConversationQueManager();
+
+    class ConversationQueManagerPrivate;
+    ConversationQueManagerPrivate *d;
 };
 
 #endif // CONVERSATION_QUE_MANAGER_H
diff --git a/KTp/Declarative/conversation.cpp b/KTp/Declarative/conversation.cpp
index 8eb40a2..99a77e1 100644
--- a/KTp/Declarative/conversation.cpp
+++ b/KTp/Declarative/conversation.cpp
@@ -33,7 +33,6 @@ public:
 };
 
 Conversation::Conversation(Tp::TextChannelPtr channel, Tp::AccountPtr account) :
-        Queable(),
         d (new ConversationPrivate)
 {
     kDebug();
@@ -43,7 +42,7 @@ Conversation::Conversation(Tp::TextChannelPtr channel, Tp::AccountPtr account) :
 
     d->target = new ConversationTarget(channel->targetContact());
 
-    connect(model(), SIGNAL(unreadCountChanged(int)), SLOT(onUnreadMessagesChanged()));
+//     connect(model(), SIGNAL(unreadCountChanged(int)), SLOT(onUnreadMessagesChanged()));
 //     d->account = account;
 }
 
@@ -63,15 +62,15 @@ ConversationTarget* Conversation::target() const
     return d->target;
 }
 
-void Conversation::onUnreadMessagesChanged()
-{
-    push();
-}
-
-void Conversation::pop()
-{
-    Q_EMIT popoutRequested();
-}
+// void Conversation::onUnreadMessagesChanged()
+// {
+//     enqueSelf();
+// }
+// 
+// void Conversation::selfDequed()
+// {
+//     Q_EMIT popoutRequested();
+// }
 
 Conversation::~Conversation()
 {
diff --git a/KTp/Declarative/conversation.h b/KTp/Declarative/conversation.h
index f07c81c..1db0f5b 100644
--- a/KTp/Declarative/conversation.h
+++ b/KTp/Declarative/conversation.h
@@ -31,12 +31,13 @@
 
 class ConversationTarget;
 class MessagesModel;
-class KDE_TELEPATHY_CHAT_EXPORT Conversation : public QObject, public Queable
+class KDE_TELEPATHY_CHAT_EXPORT Conversation : public QObject
 {
 Q_OBJECT
 
-Q_PROPERTY(MessagesModel* model READ model NOTIFY modelChanged);
 Q_PROPERTY(ConversationTarget* target READ target NOTIFY targetChanged);
+//TODO: rename this to messages
+Q_PROPERTY(MessagesModel* model READ model NOTIFY modelChanged);
 
 public:
     Conversation(Tp::TextChannelPtr channel, Tp::AccountPtr account);
@@ -50,11 +51,6 @@ public:
 Q_SIGNALS:
     void modelChanged(MessagesModel* newModel);
     void targetChanged(ConversationTarget* target);
-    void popoutRequested();
-
-private Q_SLOTS:
-    virtual void pop();
-    void onUnreadMessagesChanged();
 
 private:
     class ConversationPrivate;
diff --git a/KTp/Declarative/messages-model.cpp b/KTp/Declarative/messages-model.cpp
index 35b1e6d..d2244de 100644
--- a/KTp/Declarative/messages-model.cpp
+++ b/KTp/Declarative/messages-model.cpp
@@ -142,6 +142,7 @@ void MessagesModel::onMessageReceived(Tp::ReceivedMessage message)
         if(d->visible) {
             acknowledgeAllMessages();
         } else {
+            enqueSelf();
             Q_EMIT unreadCountChanged(unreadCount);
         }
     }
@@ -243,9 +244,15 @@ void MessagesModel::acknowledgeAllMessages()
     kDebug() << "Conversation Visible, Acknowledging " << que.size() << " messages.";
 
     d->textChannel->acknowledge(que);
+    removeSelfFromQue();
     Q_EMIT unreadCountChanged(que.size());
 }
 
+void MessagesModel::selfDequed()
+{
+    Q_EMIT popoutRequested();
+}
+
 void MessagesModel::setVisibleToUser(bool visible)
 {
     kDebug() << visible;
diff --git a/KTp/Declarative/messages-model.h b/KTp/Declarative/messages-model.h
index 3328f31..39bedb3 100644
--- a/KTp/Declarative/messages-model.h
+++ b/KTp/Declarative/messages-model.h
@@ -24,9 +24,10 @@
 
 #include <QAbstractItemModel>
 #include <TelepathyQt/TextChannel>
+#include "conversation-que-manager.h"
 
 
-class KDE_TELEPATHY_CHAT_EXPORT MessagesModel : public QAbstractListModel
+class KDE_TELEPATHY_CHAT_EXPORT MessagesModel : public QAbstractListModel, public Queable
 {
 Q_OBJECT
 Q_PROPERTY(bool visibleToUser READ isVisibleToUser WRITE setVisibleToUser NOTIFY visibleToUserChanged);
@@ -65,7 +66,9 @@ public:
 Q_SIGNALS:
     void textChannelChanged(Tp::TextChannelPtr newChannel);
     void visibleToUserChanged(bool visible);
+    //TODO: figure out how to check if unread messages have been acknowledged by something else 
     void unreadCountChanged(int unreadMesssagesCount);
+    void popoutRequested();
 
 public Q_SLOTS:
     Tp::PendingSendMessage* sendNewMessage(QString message);
@@ -78,6 +81,7 @@ private Q_SLOTS:
 private:
 	void setupChannelSignals(Tp::TextChannelPtr channel);
 	void removeChannelSignals(Tp::TextChannelPtr channel);
+    virtual void selfDequed();
 
 	class ConversationModelPrivate;
 	ConversationModelPrivate *d;

-- 
ktp-common-internals packaging



More information about the pkg-kde-commits mailing list