[SCM] ktp-text-ui packaging branch, master, updated. debian/15.12.1-1-1918-gdf4b0ec

Maximiliano Curia maxy at moszumanska.debian.org
Sat May 28 00:21:04 UTC 2016


Gitweb-URL: http://git.debian.org/?p=pkg-kde/applications/ktp-text-ui.git;a=commitdiff;h=547ef0b

The following commit has been merged in the master branch:
commit 547ef0b2f1be63e99c54029c21e0181c4943de1f
Author: David Edmundson <kde at davidedmundson.co.uk>
Date:   Wed Feb 1 23:25:32 2012 +0000

    Make message processor a proper singleton
---
 lib/chat-widget.cpp       |  6 +-----
 lib/message-processor.cpp | 17 +++++++++++++++--
 lib/message-processor.h   | 12 ++++++++++--
 3 files changed, 26 insertions(+), 9 deletions(-)

diff --git a/lib/chat-widget.cpp b/lib/chat-widget.cpp
index b860ff7..bfbd1b9 100644
--- a/lib/chat-widget.cpp
+++ b/lib/chat-widget.cpp
@@ -69,7 +69,6 @@ public:
     Ui::ChatWidget ui;
     ChannelContactModel *contactModel;
     LogManager *logManager;
-    MessageProcessor *messageProcessor;
 
     KComponentData telepathyComponentData();
 };
@@ -195,9 +194,6 @@ ChatWidget::ChatWidget(const Tp::TextChannelPtr & channel, const Tp::AccountPtr
         d->logManager->setFetchAmount(3);
         d->logManager->setTextChannel(d->account, d->channel);
     }
-
-    //initialise message processor
-    d->messageProcessor = new MessageProcessor(this);
 }
 
 ChatWidget::~ChatWidget()
@@ -543,7 +539,7 @@ void ChatWidget::handleIncomingMessage(const Tp::ReceivedMessage &message)
         } else {
             AdiumThemeContentInfo messageInfo(AdiumThemeMessageInfo::RemoteToLocal);
 
-            messageInfo.setMessage(d->messageProcessor->processIncommingMessage(message).finalizedMessage());
+            messageInfo.setMessage(MessageProcessor::instance()->processIncommingMessage(message).finalizedMessage());
 
             QDateTime time = message.sent();
             if (!time.isValid()) {
diff --git a/lib/message-processor.cpp b/lib/message-processor.cpp
index 3bb0353..06857c3 100644
--- a/lib/message-processor.cpp
+++ b/lib/message-processor.cpp
@@ -20,15 +20,28 @@
 #include "message-processor.h"
 #include "filters.h"
 
-QList<AbstractMessageFilter*> MessageProcessor::m_filters;
+MessageProcessor* MessageProcessor::s_instance = 0;
 
 AbstractMessageFilter::~AbstractMessageFilter()
 {
+}
 
+MessageProcessor* MessageProcessor::instance()
+{
+    static QMutex mutex;
+    if (!s_instance)
+    {
+        mutex.lock();
+        if (!s_instance) {
+            s_instance = new MessageProcessor;
+        }
+        mutex.unlock();
+    }
+    return s_instance;
 }
 
 
-MessageProcessor::MessageProcessor(QObject* parent): QObject(parent)
+MessageProcessor::MessageProcessor()
 {
     m_filters << new UrlFilter();
 }
diff --git a/lib/message-processor.h b/lib/message-processor.h
index 50cacec..380a510 100644
--- a/lib/message-processor.h
+++ b/lib/message-processor.h
@@ -34,13 +34,21 @@ class MessageProcessor : public QObject
 {
 
 public:
-    explicit MessageProcessor(QObject* parent = 0);
+    static MessageProcessor* instance();
+
     ~MessageProcessor();
 
     //text-ui will call this somewhere in handleIncommingMessage just before displaying it
     KTp::Message processIncommingMessage(Tp::ReceivedMessage);
+
+protected:
+    explicit MessageProcessor();
+
+
 private:
-    static QList<AbstractMessageFilter*> m_filters;
+    static MessageProcessor* s_instance;
+    QList<AbstractMessageFilter*> m_filters;
+
 };
 
 #endif // MESSAGE_PROCESSOR_H

-- 
ktp-text-ui packaging



More information about the pkg-kde-commits mailing list