[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:06:09 UTC 2016


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

The following commit has been merged in the master branch:
commit bde938da1f6ec5a20e9c1ccd8f4a27cb205ff64c
Author: Dan Vrátil <dvratil at redhat.com>
Date:   Sun Jan 6 01:30:42 2013 +0100

    Wrap imported public classes to KTp namespace and d-pointerize them.
    
    Update CMakeLists to build the imported classes
---
 CMakeLists.txt                        |  6 +++
 KTp/CMakeLists.txt                    | 11 ++++
 KTp/abstract-message-filter.cpp       | 10 ++--
 KTp/abstract-message-filter.h         | 22 +++++---
 KTp/message-escape-filter.cpp         |  8 +--
 KTp/message-filter-config-manager.cpp | 82 ++++++++++++++++++------------
 KTp/message-filter-config-manager.h   | 29 ++++++-----
 KTp/message-filters-private.h         | 20 ++++----
 KTp/message-processor.cpp             | 94 +++++++++++++++++++++--------------
 KTp/message-processor.h               | 31 +++++++-----
 KTp/message-url-filter.cpp            |  9 ++--
 KTp/message.cpp                       | 83 +++++++++++++++++++++++--------
 KTp/message.h                         | 30 ++++++-----
 version.h.in                          |  2 +
 14 files changed, 281 insertions(+), 156 deletions(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 1b26d54..226a67f 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -8,9 +8,11 @@ set (CMAKE_MODULE_PATH
 set (KTP_VERSION "0.5.2")
 # Bump for every 0.x release, or whenever BC changes
 set (KTP_SONUMBER 4)
+set (KTP_MESSAGE_FILTER_FRAMEWORK_VERSION "2")
 
 find_package (KDE4 REQUIRED)
 find_package (TelepathyQt4 0.9.2.1 REQUIRED)
+find_package (TelepathyLoggerQt4 REQUIRED)
 
 # set some default settings
 include (KDE4Defaults)
@@ -19,6 +21,7 @@ include (KDE4Defaults)
 include (MacroLibrary)
 
 add_definitions (${KDE4_DEFINITIONS}
+                 ${TELEPATHY_LOGGER_QT4_DEFINITIONS}
                  -DQT_NO_CAST_FROM_ASCII
                  -DQT_NO_KEYWORDS
 )
@@ -27,8 +30,11 @@ include_directories (${KDE4_INCLUDES}
                      ${CMAKE_CURRENT_BINARY_DIR}
                      ${CMAKE_CURRENT_SOURCE_DIR}
                      ${TELEPATHY_QT4_INCLUDE_DIR}
+                     ${TELEPATHY_LOGGER_QT4_INCLUDE_DIRS}
 )
 
+configure_file(version.h.in ${CMAKE_CURRENT_BINARY_DIR}/version.h @ONLY)
+
 add_subdirectory(KTp)
 add_subdirectory(tools)
 add_subdirectory(data)
diff --git a/KTp/CMakeLists.txt b/KTp/CMakeLists.txt
index 64a12b2..41d09a6 100644
--- a/KTp/CMakeLists.txt
+++ b/KTp/CMakeLists.txt
@@ -2,6 +2,7 @@ include_directories (${CMAKE_CURRENT_BINARY_DIR}
                      ${CMAKE_CURRENT_SOURCE_DIR})
 
 set (ktp_common_internals_private_SRCS
+     abstract-message-filter.cpp
      actions.cpp
      circular-countdown.cpp
      debug.cpp
@@ -10,6 +11,11 @@ set (ktp_common_internals_private_SRCS
      global-presence.cpp
      logs-importer.cpp
      logs-importer-private.cpp
+     message.cpp
+     message-escape-filter.cpp
+     message-filter-config-manager.cpp
+     message-processor.cpp
+     message-url-filter.cpp
      presence.cpp
      service-availability-checker.cpp
      telepathy-handler-application.cpp
@@ -20,6 +26,7 @@ set (ktp_common_internals_private_SRCS
 )
 
 set (ktp_common_internals_private_HDRS
+     abstract-message-filter.h
      actions.h
      circular-countdown.h
      debug.h
@@ -27,6 +34,9 @@ set (ktp_common_internals_private_HDRS
      global-contact-manager.h
      global-presence.h
      logs-importer.h
+     message-filter-config-manager.h
+     message.h
+     message-processor.h
      presence.h
      service-availability-checker.h
      telepathy-handler-application.h
@@ -50,6 +60,7 @@ set_target_properties(ktpcommoninternalsprivate PROPERTIES
 target_link_libraries (ktpcommoninternalsprivate
                        ${KDE4_KDECORE_LIBS}
                        ${TELEPATHY_QT4_LIBRARIES}
+                       ${TELEPATHY_LOGGER_QT4_LIBRARIES}
                        ${KDE4_KDEUI_LIBS}
 )
 
diff --git a/KTp/abstract-message-filter.cpp b/KTp/abstract-message-filter.cpp
index 44b81c3..1119038 100644
--- a/KTp/abstract-message-filter.cpp
+++ b/KTp/abstract-message-filter.cpp
@@ -18,6 +18,8 @@
 
 #include "abstract-message-filter.h"
 
+namespace KTp {
+
 AbstractMessageFilter::AbstractMessageFilter(QObject* parent)
     : QObject(parent)
 {
@@ -27,17 +29,17 @@ AbstractMessageFilter::~AbstractMessageFilter()
 {
 }
 
-void AbstractMessageFilter::filterIncomingMessage(Message &message)
+void AbstractMessageFilter::filterIncomingMessage(KTp::Message &message)
 {
     filterMessage(message);
 }
 
-void AbstractMessageFilter::filterOutgoingMessage(Message &message)
+void AbstractMessageFilter::filterOutgoingMessage(KTp::Message &message)
 {
     filterMessage(message);
 }
 
-void AbstractMessageFilter::filterMessage(Message &message)
+void AbstractMessageFilter::filterMessage(KTp::Message &message)
 {
     Q_UNUSED(message)
 }
@@ -51,3 +53,5 @@ QStringList AbstractMessageFilter::requiredStylesheets()
 {
     return QStringList();
 }
+
+}
diff --git a/KTp/abstract-message-filter.h b/KTp/abstract-message-filter.h
index 2b159de..fe85a9a 100644
--- a/KTp/abstract-message-filter.h
+++ b/KTp/abstract-message-filter.h
@@ -19,26 +19,30 @@
 #ifndef ABSTRACTPLUGIN_H
 #define ABSTRACTPLUGIN_H
 
-#include "message.h"
-#include "ktpchat_export.h"
+#include <KTp/message.h>
+#include <KTp/ktp-export.h>
 
-class KDE_TELEPATHY_CHAT_EXPORT AbstractMessageFilter : public QObject
+namespace KTp
 {
-Q_OBJECT
-public:
+
+class KTP_EXPORT AbstractMessageFilter : public QObject
+{
+    Q_OBJECT
+
+  public:
     AbstractMessageFilter(QObject* parent = 0);
     virtual ~AbstractMessageFilter();
 
     /** Filter messages to show on the UI recieved by another contact*/
-    virtual void filterIncomingMessage(Message &message);
+    virtual void filterIncomingMessage(KTp::Message &message);
 
     /** Filter messages to show in the UI that you have sent
         This does _not_ affect the actual message sent, only the visual representation on your screen.
     */
-    virtual void filterOutgoingMessage(Message &message);
+    virtual void filterOutgoingMessage(KTp::Message &message);
 
     /** Filter messages in either direction. Base implementation calls this for messages sent/recived in either direction.*/
-    virtual void filterMessage(Message &message);
+    virtual void filterMessage(KTp::Message &message);
 
     /** Scripts that must be included in the <head> section of the html required by this message filter.*/
     virtual QStringList requiredScripts();
@@ -47,5 +51,7 @@ public:
     virtual QStringList requiredStylesheets();
 };
 
+}
+
 #endif // ABSTRACTPLUGIN_H
 
diff --git a/KTp/message-escape-filter.cpp b/KTp/message-escape-filter.cpp
index 7a43151..fe310b7 100644
--- a/KTp/message-escape-filter.cpp
+++ b/KTp/message-escape-filter.cpp
@@ -16,16 +16,16 @@
     Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
 */
 
-#include "filters.h"
+#include "message-filters-private.h"
 
 #include <QtGui/QTextDocument> //needed for Qt::escape
 
-EscapeFilter::EscapeFilter(QObject *parent)
-    : AbstractMessageFilter(parent)
+MessageEscapeFilter::MessageEscapeFilter(QObject *parent)
+    : KTp::AbstractMessageFilter(parent)
 {
 }
 
-void EscapeFilter::filterMessage(Message& message)
+void MessageEscapeFilter::filterMessage(KTp::Message& message)
 {
     QString escapedMessage = Qt::escape(message.mainMessagePart());
 
diff --git a/KTp/message-filter-config-manager.cpp b/KTp/message-filter-config-manager.cpp
index 601d74b..70c4f81 100644
--- a/KTp/message-filter-config-manager.cpp
+++ b/KTp/message-filter-config-manager.cpp
@@ -16,7 +16,7 @@
  *    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301  USA
 */
 
-#include "plugin-config-manager.h"
+#include "message-filter-config-manager.h"
 #include "version.h"
 
 #include <QMutex>
@@ -28,67 +28,87 @@
 
 typedef QSet<KPluginInfo> PluginSet;
 
-class PluginConfigManager::Private {
-public:
+using namespace KTp;
+
+class MessageFilterConfigManager::Private
+{
+  public:
+    Private(MessageFilterConfigManager *parent):
+        q(parent)
+    { }
+
     PluginSet all;
     PluginSet enabled;
-};
 
-PluginConfigManager *PluginConfigManager::self()
-{
-    static PluginConfigManager *pcm_instance;
-    static QMutex mutex;
-    mutex.lock();
-    if (!pcm_instance) {
-        pcm_instance = new PluginConfigManager;
-    }
-    mutex.unlock();
+    KService::List offers() const;
+    void generateCache();
 
-    return pcm_instance;
-}
+  private:
+    MessageFilterConfigManager *q;
+};
 
-PluginConfigManager::PluginConfigManager() :
-    d(new Private)
+KService::List MessageFilterConfigManager::Private::offers() const
 {
-    generateCache();
-}
-
-KService::List offers() {
     return KServiceTypeTrader::self()->query(QLatin1String("KTpTextUi/MessageFilter"),
-                                             QLatin1String("[X-KTp-PluginInfo-Version] == " KTP_TEXT_UI_PLUGIN_FRAMEWORK_VERSION));
+                                             QLatin1String("[X-KTp-PluginInfo-Version] == " KTP_MESSAGE_FILTER_FRAMEWORK_VERSION));
 }
 
-void PluginConfigManager::generateCache()
+
+void MessageFilterConfigManager::Private::generateCache()
 {
-    KPluginInfo::List all = KPluginInfo::fromServices(offers(), configGroup());
-    for (KPluginInfo::List::Iterator i = all.begin(); i != all.end(); i++) {
+    KPluginInfo::List pluginInfos = KPluginInfo::fromServices(offers(), q->configGroup());
+    for (KPluginInfo::List::Iterator i = pluginInfos.begin(); i != pluginInfos.end(); i++) {
         KPluginInfo &plugin = *i;
 
-        d->all.insert(plugin);
+        all.insert(plugin);
 
         plugin.load();
         if (plugin.isPluginEnabled()) {
-            d->enabled.insert(plugin);
+            enabled.insert(plugin);
         }
     }
 }
 
-KPluginInfo::List PluginConfigManager::allPlugins() const
+MessageFilterConfigManager *MessageFilterConfigManager::self()
+{
+    static MessageFilterConfigManager *mfcm_instance;
+    static QMutex mutex;
+    mutex.lock();
+    if (!mfcm_instance) {
+        mfcm_instance = new MessageFilterConfigManager;
+    }
+    mutex.unlock();
+
+    return mfcm_instance;
+}
+
+MessageFilterConfigManager::MessageFilterConfigManager() :
+    d(new Private(this))
+{
+    d->generateCache();
+}
+
+MessageFilterConfigManager::~MessageFilterConfigManager()
+{
+    delete d;
+}
+
+KPluginInfo::List MessageFilterConfigManager::allPlugins() const
 {
     return d->all.toList();
 }
 
-KPluginInfo::List PluginConfigManager::enabledPlugins() const
+KPluginInfo::List MessageFilterConfigManager::enabledPlugins() const
 {
     return d->enabled.toList();
 }
 
-KConfigGroup PluginConfigManager::configGroup() const
+KConfigGroup MessageFilterConfigManager::configGroup() const
 {
     return sharedConfig()->group("Plugins");
 }
 
-KSharedConfig::Ptr PluginConfigManager::sharedConfig() const
+KSharedConfig::Ptr MessageFilterConfigManager::sharedConfig() const
 {
     return KSharedConfig::openConfig(QLatin1String("ktelepathyrc"));
 }
diff --git a/KTp/message-filter-config-manager.h b/KTp/message-filter-config-manager.h
index 4307b55..fa7bc06 100644
--- a/KTp/message-filter-config-manager.h
+++ b/KTp/message-filter-config-manager.h
@@ -16,16 +16,20 @@
  *    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301  USA
 */
 
-#ifndef PLUGIN_CONFIG_MANAGER_H
-#define PLUGIN_CONFIG_MANAGER_H
+#ifndef MESSAGE_FILTER_CONFIG_MANAGER_H
+#define MESSAGE_FILTER_CONFIG_MANAGER_H
 
 #include <KPluginInfo>
-#include <ktpchat_export.h>
 
-class KDE_TELEPATHY_CHAT_EXPORT PluginConfigManager
+#include <KTp/ktp-export.h>
+
+namespace KTp
+{
+
+class KTP_EXPORT MessageFilterConfigManager
 {
-public:
-    static PluginConfigManager* self();
+  public:
+    static MessageFilterConfigManager* self();
 
     KPluginInfo::List allPlugins() const;
     KPluginInfo::List enabledPlugins() const;
@@ -33,14 +37,15 @@ public:
     KConfigGroup       configGroup() const;
     KSharedConfig::Ptr sharedConfig() const;
 
-protected:
-    PluginConfigManager();
+  protected:
+    MessageFilterConfigManager();
+    ~MessageFilterConfigManager();
 
-private:
+  private:
     class Private;
     Private *d;
-
-    void generateCache();
 };
 
-#endif // PLUGIN_CONFIG_MANAGER_H
+}
+
+#endif // MESSAGE_FILTER_CONFIG_MANAGER_H
diff --git a/KTp/message-filters-private.h b/KTp/message-filters-private.h
index 4e96ae0..cc3d565 100644
--- a/KTp/message-filters-private.h
+++ b/KTp/message-filters-private.h
@@ -16,25 +16,25 @@
     Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
 */
 
-#ifndef FILTERS_H
-#define FILTERS_H
+#ifndef MESSAGE_FILTERS_PRIVATE_H
+#define MESSAGE_FILTERS_PRIVATE_H
 
 #include "abstract-message-filter.h"
 
 #include <QObject>
 
-class UrlFilter : public AbstractMessageFilter
+class MessageUrlFilter : public KTp::AbstractMessageFilter
 {
-public:
-    explicit UrlFilter(QObject *parent = 0);
-    void filterMessage(Message &message);
+  public:
+    explicit MessageUrlFilter(QObject *parent = 0);
+    void filterMessage(KTp::Message &message);
 };
 
-class EscapeFilter : public AbstractMessageFilter
+class MessageEscapeFilter : public KTp::AbstractMessageFilter
 {
-public:
-    explicit EscapeFilter(QObject *parent = 0);
-    virtual void filterMessage(Message& message);
+  public:
+    explicit MessageEscapeFilter(QObject *parent = 0);
+    virtual void filterMessage(KTp::Message& message);
 };
 
 #endif
diff --git a/KTp/message-processor.cpp b/KTp/message-processor.cpp
index 44dc765..12ea12d 100644
--- a/KTp/message-processor.cpp
+++ b/KTp/message-processor.cpp
@@ -18,8 +18,8 @@
 
 
 #include "message-processor.h"
-#include "filters.h"
-#include "plugin-config-manager.h"
+#include "message-filters-private.h"
+#include "message-filter-config-manager.h"
 
 #include <QMutex>
 #include <QStringBuilder>
@@ -30,41 +30,82 @@
 #include <KPluginFactory>
 #include <KDE/KStandardDirs>
 
-MessageProcessor* MessageProcessor::s_instance = 0;
+using namespace KTp;
 
-MessageProcessor* MessageProcessor::instance()
+class MessageProcessor::Private
+{
+  public:
+    Private(MessageProcessor *parent):
+        q(parent)
+    { }
+
+    void loadFilters();
+
+    QList<KTp::AbstractMessageFilter*> filters;
+
+  private:
+    MessageProcessor *q;
+};
+
+void MessageProcessor::Private::loadFilters()
+{
+    kDebug() << "Starting loading filters...";
+
+    Q_FOREACH (const KPluginInfo &plugin, MessageFilterConfigManager::self()->enabledPlugins()) {
+        KService::Ptr service = plugin.service();
+
+        KPluginFactory *factory = KPluginLoader(service->library()).factory();
+        if(factory) {
+            kDebug() << "loaded factory :" << factory;
+            AbstractMessageFilter *filter = factory->create<AbstractMessageFilter>(q);
+
+            if(filter) {
+                kDebug() << "loaded message filter : " << filter;
+                filters.append(filter);
+            }
+        } else {
+            kError() << "error loading plugin :" << service->library();
+        }
+    }
+}
+
+
+KTp::MessageProcessor* MessageProcessor::instance()
 {
     kDebug();
 
+    static KTp::MessageProcessor *mp_instance;
     static QMutex mutex;
     mutex.lock();
-    if (!s_instance) {
-        s_instance = new MessageProcessor;
+    if (!mp_instance) {
+        mp_instance= new MessageProcessor;
     }
     mutex.unlock();
 
-    return s_instance;
+    return mp_instance;
 }
 
 
-MessageProcessor::MessageProcessor()
+MessageProcessor::MessageProcessor():
+    d(new MessageProcessor::Private(this))
 {
-    m_filters.append(new EscapeFilter(this));
-    m_filters.append(new UrlFilter(this));
+    d->filters.append(new MessageEscapeFilter(this));
+    d->filters.append(new MessageUrlFilter(this));
 
-    loadFilters();
+    d->loadFilters();
 }
 
 
 MessageProcessor::~MessageProcessor()
 {
+    delete d;
 }
 
 QString MessageProcessor::header()
 {
     QStringList scripts;
     QStringList stylesheets;
-    Q_FOREACH (AbstractMessageFilter *filter, MessageProcessor::m_filters) {
+    Q_FOREACH (AbstractMessageFilter *filter, d->filters) {
         Q_FOREACH (const QString &script, filter->requiredScripts()) {
             // Avoid duplicates
             if (!scripts.contains(script)) {
@@ -96,40 +137,19 @@ QString MessageProcessor::header()
     return out;
 }
 
-Message MessageProcessor::processIncomingMessage(Message receivedMessage)
+KTp::Message MessageProcessor::processIncomingMessage(KTp::Message receivedMessage)
 {
-    Q_FOREACH (AbstractMessageFilter *filter, MessageProcessor::m_filters) {
+    Q_FOREACH (AbstractMessageFilter *filter, d->filters) {
         kDebug() << "running filter :" << filter->metaObject()->className();
         filter->filterIncomingMessage(receivedMessage);
     }
     return receivedMessage;
 }
 
-Message MessageProcessor::processOutgoingMessage(Message sentMessage)
+KTp::Message MessageProcessor::processOutgoingMessage(KTp::Message sentMessage)
 {
-    Q_FOREACH  (AbstractMessageFilter *filter, MessageProcessor::m_filters) {
+    Q_FOREACH  (AbstractMessageFilter *filter, d->filters) {
         filter->filterOutgoingMessage(sentMessage);
     }
     return sentMessage;
 }
-
-void MessageProcessor::loadFilters() {
-    kDebug() << "Starting loading filters...";
-
-    Q_FOREACH (const KPluginInfo &plugin, PluginConfigManager::self()->enabledPlugins()) {
-        KService::Ptr service = plugin.service();
-
-        KPluginFactory *factory = KPluginLoader(service->library()).factory();
-        if(factory) {
-            kDebug() << "loaded factory :" << factory;
-            AbstractMessageFilter *filter = factory->create<AbstractMessageFilter>(this);
-
-            if(filter) {
-                kDebug() << "loaded message filter : " << filter;
-                m_filters.append(filter);
-            }
-        } else {
-            kError() << "error loading plugin :" << service->library();
-        }
-    }
-}
diff --git a/KTp/message-processor.h b/KTp/message-processor.h
index c6183f6..47f66e9 100644
--- a/KTp/message-processor.h
+++ b/KTp/message-processor.h
@@ -24,9 +24,9 @@
 #include <QList>
 #include <KPluginInfo>
 
-#include "message.h"
+#include <KTp/message.h>
+#include <KTp/ktp-export.h>
 
-#include <ktpchat_export.h>
 
 namespace Tp
 {
@@ -34,14 +34,18 @@ class ReceivedMessage;
 class Message;
 }
 
+
+namespace KTp
+{
+
 class AbstractMessageFilter;
 
 //each thing that displays message will have an instance of this
-class KDE_TELEPATHY_CHAT_EXPORT MessageProcessor : public QObject
+class KTP_EXPORT MessageProcessor : public QObject
 {
-Q_OBJECT
+    Q_OBJECT
 
-public:
+  public:
     static MessageProcessor* instance();
     ~MessageProcessor();
 
@@ -49,17 +53,18 @@ public:
     QString header();
 
     //text-ui will call this somewhere in handleIncommingMessage just before displaying it
-    Message processIncomingMessage(Message message);
-    Message processOutgoingMessage(Message message);
+    KTp::Message processIncomingMessage(KTp::Message message);
+    KTp::Message processOutgoingMessage(KTp::Message message);
 
-protected:
+  protected:
     explicit MessageProcessor();
 
-private:
-    // TODO Move in a private class
-    void loadFilters();
-    static MessageProcessor* s_instance;
-    QList<AbstractMessageFilter*> m_filters;
+  private:
+    class Private;
+    Private * const d;
+
 };
 
+}
+
 #endif // MESSAGE_PROCESSOR_H
diff --git a/KTp/message-url-filter.cpp b/KTp/message-url-filter.cpp
index 162f992..24b6522 100644
--- a/KTp/message-url-filter.cpp
+++ b/KTp/message-url-filter.cpp
@@ -18,7 +18,7 @@
     Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
 */
 
-#include "filters.h"
+#include "message-filters-private.h"
 
 #include <QImageReader>
 
@@ -27,12 +27,13 @@
 #include <KDebug>
 #include <KTp/text-parser.h>
 
-UrlFilter::UrlFilter(QObject *parent)
-    : AbstractMessageFilter(parent)
+MessageUrlFilter::MessageUrlFilter(QObject *parent)
+    : KTp::AbstractMessageFilter(parent)
 {
 }
 
-void UrlFilter::filterMessage(Message &info) {
+void MessageUrlFilter::filterMessage(KTp::Message &info)
+{
     QString message = info.mainMessagePart();
     //FIXME: make "Urls" into a constant
     QVariantList urls = info.property("Urls").toList();
diff --git a/KTp/message.cpp b/KTp/message.cpp
index aa7de9d..d814a99 100644
--- a/KTp/message.cpp
+++ b/KTp/message.cpp
@@ -20,50 +20,91 @@
 #include "message.h"
 #include <KDebug>
 
+using namespace KTp;
+
+class Message::Private {
+
+  public:
+    Private()
+    { }
+
+    Private(const Private &other):
+        sentTime(other.sentTime),
+        token(other.token),
+        messageType(other.messageType),
+        properties(other.properties),
+        mainPart(other.mainPart),
+        parts(other.parts),
+        scripts(other.scripts)
+    { }
+
+    QDateTime   sentTime;
+    QString     token;
+    Tp::ChannelTextMessageType messageType;
+    QVariantMap properties;
+    QString     mainPart;
+    QStringList parts;
+    QStringList scripts;
+};
+
 Message::Message(const Tp::Message &original) :
-      m_sentTime(original.sent()),
-      m_token(original.messageToken()),
-      m_messageType(original.messageType())
+    d(new Private())
 {
+    d->sentTime = original.sent();
+    d->token = original.messageToken();
+    d->messageType = original.messageType();
+
     setMainMessagePart(original.text());
 }
 
 Message::Message(const Tpl::TextEventPtr &original) :
-    m_sentTime(original->timestamp()),
-    m_token(original->messageToken()),
-    m_messageType(original->messageType())
+    d(new Private())
 {
+    d->sentTime = original->timestamp();
+    d->token = original->messageToken();
+    d->messageType = original->messageType();
+
     setMainMessagePart(original->message());
 }
 
+Message::Message(const Message& other):
+    d(new Private(*(other.d)))
+{
+}
+
+Message::~Message()
+{
+    delete d;
+}
+
 QString Message::mainMessagePart() const
 {
-    return m_mainPart;
+    return d->mainPart;
 }
 
 void Message::setMainMessagePart(const QString& message)
 {
-    m_mainPart = message;
+    d->mainPart = message;
 }
 
 void Message::appendMessagePart(const QString& part)
 {
-    m_parts << part;
+    d->parts << part;
 }
 
 void Message::appendScript(const QString& script)
 {
     // Append the script only if it is not already appended to avoid multiple
     // execution of the scripts.
-    if (!m_scripts.contains(script)) {
-        m_scripts << script;
+    if (!d->scripts.contains(script)) {
+        d->scripts << script;
     }
 }
 
 QString Message::finalizedMessage() const
 {
-    QString msg = m_mainPart + QLatin1String("
") +
-        m_parts.join(QLatin1String("
"));
+    QString msg = d->mainPart + QLatin1String("
") +
+        d->parts.join(QLatin1String("
"));
 
 //     kDebug() << msg;
     return msg;
@@ -71,11 +112,11 @@ QString Message::finalizedMessage() const
 
 QString Message::finalizedScript() const
 {
-    if (m_scripts.empty()) {
+    if (d->scripts.empty()) {
         return QString();
     }
 
-    QString finalScript = m_scripts.join(QLatin1String(""));
+    QString finalScript = d->scripts.join(QLatin1String(""));
 
     if (!finalScript.isEmpty()) {
         finalScript.append(QLatin1String("false;"));
@@ -87,30 +128,30 @@ QString Message::finalizedScript() const
 
 QVariant Message::property(const char *name) const
 {
-    return m_properties[QLatin1String(name)];
+    return d->properties[QLatin1String(name)];
 }
 
 void Message::setProperty(const char *name, const QVariant& value)
 {
-    m_properties[QLatin1String(name)] = value;
+    d->properties[QLatin1String(name)] = value;
 }
 
 QDateTime Message::time() const
 {
-    return m_sentTime;
+    return d->sentTime;
 }
 
 QString Message::token() const
 {
-    return m_token;
+    return d->token;
 }
 
 Tp::ChannelTextMessageType Message::type() const
 {
-    return m_messageType;
+    return d->messageType;
 }
 
 int Message::partsSize() const
 {
-    return m_parts.size();
+    return d->parts.size();
 }
diff --git a/KTp/message.h b/KTp/message.h
index 1928fcd..581a2e2 100644
--- a/KTp/message.h
+++ b/KTp/message.h
@@ -25,7 +25,11 @@
 #include <TelepathyLoggerQt4/Types>
 #include <TelepathyLoggerQt4/TextEvent>
 
-#include <ktpchat_export.h>
+#include <KTp/ktp-export.h>
+
+
+namespace KTp
+{
 
 /*!
  * \par
@@ -42,11 +46,14 @@
  *
  * uthor Lasath Fernando <kde at lasath.org>
  */
-class KDE_TELEPATHY_CHAT_EXPORT Message {
+class KTP_EXPORT Message
+{
 
-public:
-    Message(const Tp::Message& original);
+  public:
+    Message(const Tp::Message &original);
     Message(const Tpl::TextEventPtr &original);
+    Message(const KTp::Message &other);
+    virtual ~Message();
 
     /*! rief The body of the message
      * 
eturn the contents of the body of the message, as HTML
@@ -57,7 +64,7 @@ public:
      *
      * \param message the string to replace the body with. Must be correct HTML
      */
-    void setMainMessagePart(const QString& message);
+    void setMainMessagePart(const QString &message);
 
     /*! rief Add new visual content to the end of the message
      *
@@ -126,15 +133,12 @@ public:
     /*! 
eturn the number of appended parts */
     int partsSize() const;
 
-private:
-    QDateTime   m_sentTime;
-    QString     m_token;
-    Tp::ChannelTextMessageType m_messageType;
-    QVariantMap m_properties;
-    QString     m_mainPart;
-    QStringList m_parts;
-    QStringList m_scripts;
+  private:
+    class Private;
+    Private * const d;
 };
 
+}
+
 
 #endif // MESSAGE_H
diff --git a/version.h.in b/version.h.in
new file mode 100644
index 0000000..84dc49b
--- /dev/null
+++ b/version.h.in
@@ -0,0 +1,2 @@
+#define KTP_VERSION "@KTP_VERSION@"
+#define KTP_MESSAGE_FILTER_FRAMEWORK_VERSION "@KTP_MESSAGE_FILTER_FRAMEWORK_VERSION@"

-- 
ktp-common-internals packaging



More information about the pkg-kde-commits mailing list