[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