summaryrefslogtreecommitdiffstats
path: root/src/datavisualization/data/abstractitemmodelhandler.cpp
diff options
context:
space:
mode:
authorMiikka Heikkinen <miikka.heikkinen@digia.com>2013-11-26 14:53:50 +0200
committerMiikka Heikkinen <miikka.heikkinen@digia.com>2013-11-27 11:29:30 +0200
commit7c942cc0f497fe7e61ce6a10fce45771c0858e09 (patch)
treeaab5d2285b8e583f3565e305e0818a49503cf95c /src/datavisualization/data/abstractitemmodelhandler.cpp
parente029d0ea1d486dd3dbbfa4519a2125da202f22e4 (diff)
Integrated item model mappings to item model proxies
Separate mapping object was redundant. Task-number: QTRD-2564 Change-Id: I6b1a23ba52dbb184f46df0fdd64184eeb145c0c3 Reviewed-by: Mika Salmela <mika.salmela@digia.com>
Diffstat (limited to 'src/datavisualization/data/abstractitemmodelhandler.cpp')
-rw-r--r--src/datavisualization/data/abstractitemmodelhandler.cpp111
1 files changed, 30 insertions, 81 deletions
diff --git a/src/datavisualization/data/abstractitemmodelhandler.cpp b/src/datavisualization/data/abstractitemmodelhandler.cpp
index 0ad0ac0b..41f520a4 100644
--- a/src/datavisualization/data/abstractitemmodelhandler.cpp
+++ b/src/datavisualization/data/abstractitemmodelhandler.cpp
@@ -17,14 +17,12 @@
****************************************************************************/
#include "abstractitemmodelhandler_p.h"
-#include "qabstractdatamapping.h"
#include <QTimer>
QT_DATAVISUALIZATION_BEGIN_NAMESPACE
AbstractItemModelHandler::AbstractItemModelHandler(QObject *parent)
: QObject(parent),
- m_activeMapping(0),
resolvePending(0)
{
m_resolveTimer.setSingleShot(true);
@@ -38,33 +36,37 @@ AbstractItemModelHandler::~AbstractItemModelHandler()
void AbstractItemModelHandler::setItemModel(const QAbstractItemModel *itemModel)
{
- if (!m_itemModel.isNull())
- QObject::disconnect(m_itemModel, 0, this, 0);
-
- m_itemModel = itemModel;
-
- if (!m_itemModel.isNull()) {
- QObject::connect(m_itemModel.data(), &QAbstractItemModel::columnsInserted,
- this, &AbstractItemModelHandler::handleColumnsInserted);
- QObject::connect(m_itemModel.data(), &QAbstractItemModel::columnsMoved,
- this, &AbstractItemModelHandler::handleColumnsMoved);
- QObject::connect(m_itemModel.data(), &QAbstractItemModel::columnsRemoved,
- this, &AbstractItemModelHandler::handleColumnsRemoved);
- QObject::connect(m_itemModel.data(), &QAbstractItemModel::dataChanged,
- this, &AbstractItemModelHandler::handleDataChanged);
- QObject::connect(m_itemModel.data(), &QAbstractItemModel::layoutChanged,
- this, &AbstractItemModelHandler::handleLayoutChanged);
- QObject::connect(m_itemModel.data(), &QAbstractItemModel::modelReset,
- this, &AbstractItemModelHandler::handleModelReset);
- QObject::connect(m_itemModel.data(), &QAbstractItemModel::rowsInserted,
- this, &AbstractItemModelHandler::handleRowsInserted);
- QObject::connect(m_itemModel.data(), &QAbstractItemModel::rowsMoved,
- this, &AbstractItemModelHandler::handleRowsMoved);
- QObject::connect(m_itemModel.data(), &QAbstractItemModel::rowsRemoved,
- this, &AbstractItemModelHandler::handleRowsRemoved);
+ if (itemModel != m_itemModel.data()) {
+ if (!m_itemModel.isNull())
+ QObject::disconnect(m_itemModel, 0, this, 0);
+
+ m_itemModel = itemModel;
+
+ if (!m_itemModel.isNull()) {
+ QObject::connect(m_itemModel.data(), &QAbstractItemModel::columnsInserted,
+ this, &AbstractItemModelHandler::handleColumnsInserted);
+ QObject::connect(m_itemModel.data(), &QAbstractItemModel::columnsMoved,
+ this, &AbstractItemModelHandler::handleColumnsMoved);
+ QObject::connect(m_itemModel.data(), &QAbstractItemModel::columnsRemoved,
+ this, &AbstractItemModelHandler::handleColumnsRemoved);
+ QObject::connect(m_itemModel.data(), &QAbstractItemModel::dataChanged,
+ this, &AbstractItemModelHandler::handleDataChanged);
+ QObject::connect(m_itemModel.data(), &QAbstractItemModel::layoutChanged,
+ this, &AbstractItemModelHandler::handleLayoutChanged);
+ QObject::connect(m_itemModel.data(), &QAbstractItemModel::modelReset,
+ this, &AbstractItemModelHandler::handleModelReset);
+ QObject::connect(m_itemModel.data(), &QAbstractItemModel::rowsInserted,
+ this, &AbstractItemModelHandler::handleRowsInserted);
+ QObject::connect(m_itemModel.data(), &QAbstractItemModel::rowsMoved,
+ this, &AbstractItemModelHandler::handleRowsMoved);
+ QObject::connect(m_itemModel.data(), &QAbstractItemModel::rowsRemoved,
+ this, &AbstractItemModelHandler::handleRowsRemoved);
+ }
+ if (!m_resolveTimer.isActive())
+ m_resolveTimer.start(0);
+
+ emit itemModelChanged(itemModel);
}
- if (!m_resolveTimer.isActive())
- m_resolveTimer.start(0);
}
const QAbstractItemModel *AbstractItemModelHandler::itemModel() const
@@ -72,59 +74,6 @@ const QAbstractItemModel *AbstractItemModelHandler::itemModel() const
return m_itemModel.data();
}
-void AbstractItemModelHandler::setActiveMapping(QAbstractDataMapping *mapping)
-{
- if (m_activeMapping)
- QObject::disconnect(m_activeMapping, 0, this, 0);
-
- if (mapping)
- addMapping(mapping);
-
- m_activeMapping = mapping;
-
- if (m_activeMapping) {
- QObject::connect(m_activeMapping, &QAbstractDataMapping::mappingChanged,
- this, &AbstractItemModelHandler::handleMappingChanged);
- }
-
- if (!m_resolveTimer.isActive())
- m_resolveTimer.start(0);
-}
-
-QAbstractDataMapping *AbstractItemModelHandler::activeMapping() const
-{
- return m_activeMapping;
-}
-
-void AbstractItemModelHandler::addMapping(QAbstractDataMapping *mapping)
-{
- Q_ASSERT(mapping);
- AbstractItemModelHandler *owner = qobject_cast<AbstractItemModelHandler *>(mapping->parent());
- if (owner != this) {
- Q_ASSERT_X(!owner, "addMapping", "Mapping already attached to a proxy.");
- mapping->setParent(this);
- }
- if (!m_mappings.contains(mapping))
- m_mappings.append(mapping);
-}
-
-void AbstractItemModelHandler::releaseMapping(QAbstractDataMapping *mapping)
-{
- if (mapping && m_mappings.contains(mapping)) {
- // If the mapping is in use, clear the existing mapping
- if (m_activeMapping == mapping)
- setActiveMapping(0);
-
- m_mappings.removeAll(mapping);
- mapping->setParent(0);
- }
-}
-
-QList<QAbstractDataMapping *> AbstractItemModelHandler::mappings() const
-{
- return m_mappings;
-}
-
void AbstractItemModelHandler::handleColumnsInserted(const QModelIndex &parent,
int start, int end)
{