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


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

The following commit has been merged in the master branch:
commit aa3cd064be86cc0c495487c2ee3c1d9c0adfaf56
Author: David Edmundson <kde at davidedmundson.co.uk>
Date:   Fri Dec 28 21:22:07 2012 +0000

    Don't call virtual methods in the constructor of AbstractGroupingProxyModel, as this fails
---
 KTp/Models/CMakeLists.txt                    |  5 +++++
 KTp/Models/abstract-grouping-proxy-model.cpp | 19 +++++++++++++------
 KTp/Models/abstract-grouping-proxy-model.h   |  7 +++++--
 3 files changed, 23 insertions(+), 8 deletions(-)

diff --git a/KTp/Models/CMakeLists.txt b/KTp/Models/CMakeLists.txt
index 18ceaee..312f272 100644
--- a/KTp/Models/CMakeLists.txt
+++ b/KTp/Models/CMakeLists.txt
@@ -4,8 +4,10 @@ include_directories (${CMAKE_CURRENT_BINARY_DIR}
 )
 
 set (ktp_models_private_SRCS
+    abstract-grouping-proxy-model.cpp
     accounts-list-model.cpp
     accounts-filter-model.cpp
+    accounts-tree-proxy-model.cpp
     accounts-model-item.cpp #Deprecated
     ../capabilities-hack-private.cpp #HACK, COPY INTO BOTH LIBRARIES UNTIL ContactModels IS REPLACED
     ../service-availability-checker.cpp #
@@ -14,6 +16,7 @@ set (ktp_models_private_SRCS
     contacts-model.cpp #Deprecated
     groups-model-item.cpp #Deprecated
     groups-model.cpp #Deprecated
+    #groups-tree-proxy-model.cpp
     proxy-tree-node.cpp #Deprecated
     tree-node.cpp #Deprecated
     flat-model-proxy.cpp #Deprecated
@@ -21,8 +24,10 @@ set (ktp_models_private_SRCS
 )
 
 set (ktp_models_private_HDRS
+    abstract-grouping-proxy-model.h
     accounts-list-model.h
     accounts-filter-model.h
+    accounts-tree-proxy-model.h
     accounts-model-item.h #Deprecated
     contact-model-item.h #Deprecated
     contacts-model.h #Deprecated
diff --git a/KTp/Models/abstract-grouping-proxy-model.cpp b/KTp/Models/abstract-grouping-proxy-model.cpp
index 0d10754..533d545 100644
--- a/KTp/Models/abstract-grouping-proxy-model.cpp
+++ b/KTp/Models/abstract-grouping-proxy-model.cpp
@@ -21,6 +21,7 @@
 #include "abstract-grouping-proxy-model.h"
 
 #include <QSet>
+#include <QTimer>
 
 #include <KDebug>
 
@@ -96,16 +97,18 @@ AbstractGroupingProxyModel::AbstractGroupingProxyModel(QAbstractItemModel *sourc
     QStandardItemModel(source),
     m_source(source)
 {
-    if (source->rowCount() > 0) {
-        onRowsInserted(QModelIndex(), 0, source->rowCount());
-    }
 
+    QTimer::singleShot(0, this, SLOT(onModelReset()));
     connect(m_source, SIGNAL(modelReset()), SLOT(onModelReset()));
     connect(m_source, SIGNAL(rowsInserted(QModelIndex, int,int)), SLOT(onRowsInserted(QModelIndex,int,int)));
     connect(m_source, SIGNAL(rowsAboutToBeRemoved(QModelIndex,int,int)), SLOT(onRowsRemoved(QModelIndex,int,int)));
     connect(m_source, SIGNAL(dataChanged(QModelIndex,QModelIndex)), SLOT(onDataChanged(QModelIndex,QModelIndex)));
 }
 
+AbstractGroupingProxyModel::~AbstractGroupingProxyModel()
+{
+}
+
 /* Called when source items inserts a row
  *
  * For each new row, create a proxyNode.
@@ -119,7 +122,7 @@ void AbstractGroupingProxyModel::onRowsInserted(const QModelIndex &sourceParent,
     if (!sourceParent.parent().isValid()) {
         for (int i = start; i<=end; i++) {
             QModelIndex index = m_source->index(i, 0, sourceParent);
-            foreach(const QString &group, groupsForIndex(index)) {
+            Q_FOREACH(const QString &group, groupsForIndex(index)) {
                 addProxyNode(index, itemForGroup(group));
             }
         }
@@ -197,13 +200,13 @@ void AbstractGroupingProxyModel::onDataChanged(const QModelIndex &sourceTopLeft,
                 }
 
                 //do the actual removing
-                foreach (ProxyNode *proxy, removedItems) {
+                Q_FOREACH(ProxyNode *proxy, removedItems) {
                     proxy->parent()->removeRow(proxy->row());
                     m_proxyMap.remove(index, proxy);
                 }
 
                 //remaining items in itemGroups are now the new groups
-                foreach(const QString &group, itemGroups) {
+                Q_FOREACH(const QString &group, itemGroups) {
                     ProxyNode *proxyNode = new ProxyNode(index);
                     m_proxyMap.insertMulti(index, proxyNode);
                     itemForGroup(group)->appendRow(proxyNode);
@@ -233,6 +236,10 @@ void AbstractGroupingProxyModel::onModelReset()
     m_proxyMap.clear();
     m_groupMap.clear();
     kDebug() << "reset";
+    
+    if (m_source->rowCount() > 0) {
+        onRowsInserted(QModelIndex(), 0, m_source->rowCount());
+    }
 }
 
 QStandardItem *AbstractGroupingProxyModel::itemForGroup(const QString &group)
diff --git a/KTp/Models/abstract-grouping-proxy-model.h b/KTp/Models/abstract-grouping-proxy-model.h
index 5a34d6c..4fae5d2 100644
--- a/KTp/Models/abstract-grouping-proxy-model.h
+++ b/KTp/Models/abstract-grouping-proxy-model.h
@@ -24,14 +24,17 @@
 
 #include <QStandardItemModel>
 
+#include <KTp/ktp-export.h>
+
 class ProxyNode;
 class GroupNode;
 
-class AbstractGroupingProxyModel : public QStandardItemModel
+class KTP_EXPORT AbstractGroupingProxyModel : public QStandardItemModel
 {
     Q_OBJECT
 public:
     explicit AbstractGroupingProxyModel(QAbstractItemModel *source);
+    virtual ~AbstractGroupingProxyModel();
 
 //protected:
     /** Return a list of all groups this items belongs to. Subclasses must override this*/
@@ -39,7 +42,7 @@ public:
     /** Equivalent of QAbstractItemModel::data() called for a specific group header*/
     virtual QVariant dataForGroup(const QString &group, int role) const = 0;
 
-private slots:
+private Q_SLOTS:
     void onRowsInserted(const QModelIndex &sourceParent, int start, int end);
     void onRowsRemoved(const QModelIndex &sourceParent, int start, int end);
     void onDataChanged(const QModelIndex &sourceTopLeft, const QModelIndex &sourceBottomRight);

-- 
ktp-common-internals packaging



More information about the pkg-kde-commits mailing list