diff options
Diffstat (limited to 'plugins/qmlprofiler/timelinemodelaggregator.cpp')
-rw-r--r-- | plugins/qmlprofiler/timelinemodelaggregator.cpp | 380 |
1 files changed, 0 insertions, 380 deletions
diff --git a/plugins/qmlprofiler/timelinemodelaggregator.cpp b/plugins/qmlprofiler/timelinemodelaggregator.cpp deleted file mode 100644 index 6e3f4c2c35..0000000000 --- a/plugins/qmlprofiler/timelinemodelaggregator.cpp +++ /dev/null @@ -1,380 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). -** Contact: http://www.qt-project.org/legal -** -** This file is part of Qt Creator. -** -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and Digia. For licensing terms and -** conditions see http://qt.digia.com/licensing. For further information -** use the contact form at http://qt.digia.com/contact-us. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 2.1 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 2.1 requirements -** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Digia gives you certain additional -** rights. These rights are described in the Digia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -****************************************************************************/ - -#include "timelinemodelaggregator.h" -#include <QStringList> -#include "qmlprofilertimelinemodelproxy.h" -#include "qmlprofilerpainteventsmodelproxy.h" -#include <QVariant> -#include "qmlprofilerplugin.h" - -#include <QDebug> - -namespace QmlProfiler { -namespace Internal { - - -class TimelineModelAggregator::TimelineModelAggregatorPrivate { -public: - TimelineModelAggregatorPrivate(TimelineModelAggregator *qq):q(qq) {} - ~TimelineModelAggregatorPrivate() {} - - TimelineModelAggregator *q; - - int basicModelIndex; - QList <AbstractTimelineModel *> modelList; - QmlProfilerModelManager *modelManager; -}; - -TimelineModelAggregator::TimelineModelAggregator(QObject *parent) - //: AbstractTimelineModel(parent),d(new TimelineModelAggregatorPrivate(this)) - : QObject(parent), d(new TimelineModelAggregatorPrivate(this)) -{ -} - -TimelineModelAggregator::~TimelineModelAggregator() -{ - delete d; -} - -void TimelineModelAggregator::setModelManager(QmlProfilerModelManager *modelManager) -{ - //AbstractTimelineModel::setModelManager(modelManager); - d->modelManager = modelManager; - connect(modelManager,SIGNAL(stateChanged()),this,SLOT(dataChanged())); - connect(modelManager,SIGNAL(countChanged()),this,SIGNAL(countChanged())); - connect(modelManager,SIGNAL(dataAvailable()),this,SIGNAL(dataAvailable())); - - // external models pushed on top - foreach (AbstractTimelineModel *timelineModel, QmlProfilerPlugin::instance->getModels()) { - timelineModel->setModelManager(modelManager); - addModel(timelineModel); - } - - PaintEventsModelProxy *paintEventsModelProxy = new PaintEventsModelProxy(this); - paintEventsModelProxy->setModelManager(modelManager); - addModel(paintEventsModelProxy); - - BasicTimelineModel *basicTimelineModel = new BasicTimelineModel(this); - basicTimelineModel->setModelManager(modelManager); - addModel(basicTimelineModel); - // the basic model is the last one here - d->basicModelIndex = d->modelList.count() - 1; - -} - -void TimelineModelAggregator::addModel(AbstractTimelineModel *m) -{ - d->modelList << m; - connect(m,SIGNAL(countChanged()),this,SIGNAL(countChanged())); - connect(m,SIGNAL(emptyChanged()),this,SIGNAL(emptyChanged())); - connect(m,SIGNAL(expandedChanged()),this,SIGNAL(expandedChanged())); - connect(m,SIGNAL(stateChanged()),this,SIGNAL(stateChanged())); -} - -// order? -int TimelineModelAggregator::categories() const -{ - int categoryCount = 0; - foreach (const AbstractTimelineModel *modelProxy, d->modelList) - categoryCount += modelProxy->categories(); - return categoryCount; -} - -int TimelineModelAggregator::visibleCategories() const -{ - int categoryCount = 0; - foreach (const AbstractTimelineModel *modelProxy, d->modelList) { - for (int i = 0; i < modelProxy->categories(); i++) - if (modelProxy->categoryDepth(i) > 0) - categoryCount ++; - } - return categoryCount; -} - -QStringList TimelineModelAggregator::categoryTitles() const -{ - QStringList retString; - foreach (const AbstractTimelineModel *modelProxy, d->modelList) - retString += modelProxy->categoryTitles(); - return retString; -} - -QString TimelineModelAggregator::name() const -{ - return QLatin1String("TimelineModelAggregator"); -} - -int TimelineModelAggregator::count(int modelIndex) const -{ - if (modelIndex == -1) { - int totalCount = 0; - foreach (const AbstractTimelineModel *modelProxy, d->modelList) - totalCount += modelProxy->count(); - - return totalCount; - } else { - return d->modelList[modelIndex]->count(); - } -} - -bool TimelineModelAggregator::isEmpty() const -{ - foreach (const AbstractTimelineModel *modelProxy, d->modelList) - if (!modelProxy->isEmpty()) - return false; - return true; -} - -bool TimelineModelAggregator::eventAccepted(const QmlProfilerSimpleModel::QmlEventData &/*event*/) const -{ - // accept all events - return true; -} - -int TimelineModelAggregator::basicModelIndex() const -{ - return d->basicModelIndex; -} - -qint64 TimelineModelAggregator::lastTimeMark() const -{ - qint64 mark = -1; - foreach (const AbstractTimelineModel *modelProxy, d->modelList) { - if (!modelProxy->isEmpty()) { - qint64 mk = modelProxy->lastTimeMark(); - if (mark > mk) - mark = mk; - } - } - return mark; -} - -bool TimelineModelAggregator::expanded(int modelIndex, int category) const -{ - return d->modelList[modelIndex]->expanded(category); -} - -void TimelineModelAggregator::setExpanded(int modelIndex, int category, bool expanded) -{ -// int modelIndex = modelIndexForCategory(category); -// category = correctedCategoryIndexForModel(modelIndex, categoryIndex); - d->modelList[modelIndex]->setExpanded(category, expanded); -} - -int TimelineModelAggregator::categoryDepth(int modelIndex, int categoryIndex) const -{ - return d->modelList[modelIndex]->categoryDepth(categoryIndex); -} - -int TimelineModelAggregator::categoryCount(int modelIndex) const -{ - return d->modelList[modelIndex]->categoryCount(); -} - -int TimelineModelAggregator::rowCount(int modelIndex) const -{ - return d->modelList[modelIndex]->rowCount(); -} - -const QString TimelineModelAggregator::categoryLabel(int modelIndex, int categoryIndex) const -{ -// int modelIndex = modelIndexForCategory(categoryIndex); -// categoryIndex = correctedCategoryIndexForModel(modelIndex, categoryIndex); - return d->modelList[modelIndex]->categoryLabel(categoryIndex); -} - -int TimelineModelAggregator::modelIndexForCategory(int absoluteCategoryIndex) const -{ - int categoryIndex = absoluteCategoryIndex; - for (int modelIndex = 0; modelIndex < d->modelList.count(); modelIndex++) - if (categoryIndex < d->modelList[modelIndex]->categoryCount()) { - return modelIndex; - } else { - categoryIndex -= d->modelList[modelIndex]->categoryCount(); - } - - return modelCount()-1; -} - -int TimelineModelAggregator::correctedCategoryIndexForModel(int modelIndex, int absoluteCategoryIndex) const -{ - int categoryIndex = absoluteCategoryIndex; - for (int mi = 0; mi < modelIndex; mi++) - categoryIndex -= d->modelList[mi]->categoryCount(); - return categoryIndex; -} - -int TimelineModelAggregator::findFirstIndex(int modelIndex, qint64 startTime) const -{ - return d->modelList[modelIndex]->findFirstIndex(startTime); -} - -int TimelineModelAggregator::findFirstIndexNoParents(int modelIndex, qint64 startTime) const -{ - return d->modelList[modelIndex]->findFirstIndexNoParents(startTime); -} - -int TimelineModelAggregator::findLastIndex(int modelIndex, qint64 endTime) const -{ - return d->modelList[modelIndex]->findLastIndex(endTime); -} - -int TimelineModelAggregator::getEventType(int modelIndex, int index) const -{ - return d->modelList[modelIndex]->getEventType(index); -} - -int TimelineModelAggregator::getEventCategoryInModel(int modelIndex, int index) const -{ - return d->modelList[modelIndex]->getEventCategory(index); -} - -int TimelineModelAggregator::getEventRow(int modelIndex, int index) const -{ - return d->modelList[modelIndex]->getEventRow(index); -} - -qint64 TimelineModelAggregator::getDuration(int modelIndex, int index) const -{ - return d->modelList[modelIndex]->getDuration(index); -} - -qint64 TimelineModelAggregator::getStartTime(int modelIndex, int index) const -{ - return d->modelList[modelIndex]->getStartTime(index); -} - -qint64 TimelineModelAggregator::getEndTime(int modelIndex, int index) const -{ - return d->modelList[modelIndex]->getEndTime(index); -} - -int TimelineModelAggregator::getEventId(int modelIndex, int index) const -{ - return d->modelList[modelIndex]->getEventId(index); -} - -int TimelineModelAggregator::getBindingLoopDest(int modelIndex,int index) const -{ - return d->modelList[modelIndex]->getBindingLoopDest(index); -} - -QColor TimelineModelAggregator::getColor(int modelIndex, int index) const -{ - return d->modelList[modelIndex]->getColor(index); -} - -QVariantList TimelineModelAggregator::getColorRGB(int modelIndex, int itemIndex) const -{ - // return color as RGB list, for use in Qml - QColor c = getColor(modelIndex, itemIndex); - QVariantList res; - res.append(QVariant(c.red())); - res.append(QVariant(c.green())); - res.append(QVariant(c.blue())); - return res; -} - -float TimelineModelAggregator::getHeight(int modelIndex, int index) const -{ - return d->modelList[modelIndex]->getHeight(index); -} - -const QVariantList TimelineModelAggregator::getLabelsForCategory(int modelIndex, int category) const -{ -// int modelIndex = modelIndexForCategory(category); -// category = correctedCategoryIndexForModel(modelIndex, category); - return d->modelList[modelIndex]->getLabelsForCategory(category); -} - -const QVariantList TimelineModelAggregator::getEventDetails(int modelIndex, int index) const -{ - return d->modelList[modelIndex]->getEventDetails(index); -} - -const QVariantMap TimelineModelAggregator::getEventLocation(int modelIndex, int index) const -{ - return d->modelList[modelIndex]->getEventLocation(index); -} - -int TimelineModelAggregator::getEventIdForHash(const QString &hash) const -{ - foreach (const AbstractTimelineModel *model, d->modelList) { - int eventId = model->getEventIdForHash(hash); - if (eventId != -1) - return eventId; - } - return -1; -} - -int TimelineModelAggregator::getEventIdForLocation(const QString &filename, int line, int column) const -{ - foreach (const AbstractTimelineModel *model, d->modelList) { - int eventId = model->getEventIdForLocation(filename, line, column); - if (eventId != -1) - return eventId; - } - return -1; -} - -void TimelineModelAggregator::dataChanged() -{ - // this is a slot connected for every modelproxy - // nothing to do here, each model will take care of itself -} - -int TimelineModelAggregator::modelCount() const -{ - return d->modelList.count(); -} - -qint64 TimelineModelAggregator::traceStartTime() const -{ - return d->modelManager->traceTime()->startTime(); -} - -qint64 TimelineModelAggregator::traceEndTime() const -{ - return d->modelManager->traceTime()->endTime(); -} - -qint64 TimelineModelAggregator::traceDuration() const -{ - return d->modelManager->traceTime()->duration(); -} - -int TimelineModelAggregator::getState() const -{ - return (int)d->modelManager->state(); -} - - -} // namespace Internal -} // namespace QmlProfiler |