QmlProfiler: Remove now-unused members from statistics

Change-Id: Ibf56f405dc51a82d0f56ab300905b1137375d5c0
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
This commit is contained in:
Ulf Hermann
2018-03-23 14:20:46 +01:00
parent 4aa432bb9a
commit b135306d9f
6 changed files with 19 additions and 136 deletions

View File

@@ -38,7 +38,6 @@ class QMLPROFILER_EXPORT QmlProfilerEventsView : public QWidget
Q_OBJECT Q_OBJECT
public: public:
QmlProfilerEventsView(QWidget *parent = 0) : QWidget(parent) {} QmlProfilerEventsView(QWidget *parent = 0) : QWidget(parent) {}
virtual void clear() {}
virtual void selectByTypeId(int typeIndex) = 0; virtual void selectByTypeId(int typeIndex) = 0;
virtual void onVisibleFeaturesChanged(quint64 features) = 0; virtual void onVisibleFeaturesChanged(quint64 features) = 0;

View File

@@ -30,15 +30,11 @@
#include <utils/algorithm.h> #include <utils/algorithm.h>
#include <utils/qtcassert.h> #include <utils/qtcassert.h>
#include <QHash>
#include <QSet>
#include <QString>
#include <functional> #include <functional>
namespace QmlProfiler { namespace QmlProfiler {
QString QmlProfilerStatisticsModel::nameForType(RangeType typeNumber) QString nameForType(RangeType typeNumber)
{ {
switch (typeNumber) { switch (typeNumber) {
case Painting: return QmlProfilerStatisticsModel::tr("Painting"); case Painting: return QmlProfilerStatisticsModel::tr("Painting");
@@ -125,22 +121,6 @@ bool QmlProfilerStatisticsModel::isRestrictedToRange() const
return m_modelManager->isRestrictedToRange(); return m_modelManager->isRestrictedToRange();
} }
const QVector<QmlProfilerStatisticsModel::QmlEventStats> &
QmlProfilerStatisticsModel::getData() const
{
return m_data;
}
const QVector<QmlEventType> &QmlProfilerStatisticsModel::getTypes() const
{
return m_modelManager->eventTypes();
}
const QHash<int, QString> &QmlProfilerStatisticsModel::getNotes() const
{
return m_notes;
}
QStringList QmlProfilerStatisticsModel::details(int typeIndex) const QStringList QmlProfilerStatisticsModel::details(int typeIndex) const
{ {
QString data; QString data;
@@ -447,8 +427,6 @@ void QmlProfilerStatisticsModel::notesChanged(int typeIndex)
emit dataChanged(index(typeIndex, 0), index(typeIndex, MainDetails), noteRoles); emit dataChanged(index(typeIndex, 0), index(typeIndex, MainDetails), noteRoles);
} }
} }
emit notesAvailable(typeIndex);
} }
void QmlProfilerStatisticsModel::loadEvent(const QmlEvent &event, const QmlEventType &type) void QmlProfilerStatisticsModel::loadEvent(const QmlEvent &event, const QmlEventType &type)
@@ -502,19 +480,11 @@ void QmlProfilerStatisticsModel::loadEvent(const QmlEvent &event, const QmlEvent
m_callersModel->loadEvent(type.rangeType(), event, isRecursive); m_callersModel->loadEvent(type.rangeType(), event, isRecursive);
} }
void QmlProfilerStatisticsModel::finalize() void QmlProfilerStatisticsModel::finalize()
{ {
for (QmlEventStats &stats : m_data) for (QmlEventStats &stats : m_data)
stats.finalize(); stats.finalize();
endResetModel(); endResetModel();
emit dataAvailable();
}
int QmlProfilerStatisticsModel::count() const
{
return m_data.count();
} }
QmlProfilerStatisticsRelativesModel::QmlProfilerStatisticsRelativesModel( QmlProfilerStatisticsRelativesModel::QmlProfilerStatisticsRelativesModel(
@@ -526,28 +496,6 @@ QmlProfilerStatisticsRelativesModel::QmlProfilerStatisticsRelativesModel(
QTC_CHECK(modelManager); QTC_CHECK(modelManager);
QTC_CHECK(statisticsModel); QTC_CHECK(statisticsModel);
statisticsModel->setRelativesModel(this, relation); statisticsModel->setRelativesModel(this, relation);
// Load the child models whenever the parent model is done to get the filtering for JS/QML
// right.
connect(statisticsModel, &QmlProfilerStatisticsModel::dataAvailable,
this, &QmlProfilerStatisticsRelativesModel::dataAvailable);
}
const QVector<QmlProfilerStatisticsRelativesModel::QmlStatisticsRelativesData> &
QmlProfilerStatisticsRelativesModel::getData(int typeId) const
{
auto it = m_data.find(typeId);
if (it != m_data.end()) {
return it.value();
} else {
static const QVector<QmlStatisticsRelativesData> emptyVector;
return emptyVector;
}
}
const QVector<QmlEventType> &QmlProfilerStatisticsRelativesModel::getTypes() const
{
return m_modelManager->eventTypes();
} }
bool operator<(const QmlProfilerStatisticsRelativesModel::QmlStatisticsRelativesData &a, bool operator<(const QmlProfilerStatisticsRelativesModel::QmlStatisticsRelativesData &a,
@@ -597,11 +545,6 @@ void QmlProfilerStatisticsRelativesModel::loadEvent(RangeType type, const QmlEve
} }
} }
QmlProfilerStatisticsRelation QmlProfilerStatisticsRelativesModel::relation() const
{
return m_relation;
}
int QmlProfilerStatisticsRelativesModel::rowCount(const QModelIndex &parent) const int QmlProfilerStatisticsRelativesModel::rowCount(const QModelIndex &parent) const
{ {
return parent.isValid() ? 0 : m_data[m_relativeTypeIndex].count(); return parent.isValid() ? 0 : m_data[m_relativeTypeIndex].count();
@@ -687,7 +630,7 @@ QVariant QmlProfilerStatisticsRelativesModel::data(const QModelIndex &index, int
case RelativeLocation: case RelativeLocation:
return type.displayName().isEmpty() ? tr("<bytecode>") : type.displayName(); return type.displayName().isEmpty() ? tr("<bytecode>") : type.displayName();
case RelativeType: case RelativeType:
return QmlProfilerStatisticsModel::nameForType(type.rangeType()); return nameForType(type.rangeType());
case RelativeTotalTime: case RelativeTotalTime:
return Timeline::formatTime(stats.duration); return Timeline::formatTime(stats.duration);
case RelativeCallCount: case RelativeCallCount:
@@ -711,7 +654,7 @@ QVariant QmlProfilerStatisticsRelativesModel::headerData(int section, Qt::Orient
switch (section) { switch (section) {
case RelativeLocation: case RelativeLocation:
return relation() == QmlProfilerStatisticsCallees ? tr("Callee") : tr("Caller"); return m_relation == QmlProfilerStatisticsCallees ? tr("Callee") : tr("Caller");
case RelativeType: case RelativeType:
return tr("Type"); return tr("Type");
case RelativeTotalTime: case RelativeTotalTime:
@@ -719,7 +662,7 @@ QVariant QmlProfilerStatisticsRelativesModel::headerData(int section, Qt::Orient
case RelativeCallCount: case RelativeCallCount:
return tr("Calls"); return tr("Calls");
case RelativeDetails: case RelativeDetails:
return relation() == QmlProfilerStatisticsCallees ? tr("Callee Description") return m_relation == QmlProfilerStatisticsCallees ? tr("Callee Description")
: tr("Caller Description"); : tr("Caller Description");
case MaxRelativeField: case MaxRelativeField:
default: default:
@@ -742,11 +685,6 @@ bool QmlProfilerStatisticsRelativesModel::setData(const QModelIndex &index, cons
} }
} }
int QmlProfilerStatisticsRelativesModel::count() const
{
return m_data.count();
}
void QmlProfilerStatisticsRelativesModel::clear() void QmlProfilerStatisticsRelativesModel::clear()
{ {
beginResetModel(); beginResetModel();

View File

@@ -27,8 +27,6 @@
#include "qmlprofilernotesmodel.h" #include "qmlprofilernotesmodel.h"
#include "qmlprofilereventtypes.h" #include "qmlprofilereventtypes.h"
#include "qmleventlocation.h"
#include "qmlprofilerconstants.h"
#include <utils/qtcassert.h> #include <utils/qtcassert.h>
@@ -85,8 +83,6 @@ class QmlProfilerStatisticsModel : public QAbstractTableModel
{ {
Q_OBJECT Q_OBJECT
public: public:
static QString nameForType(RangeType typeNumber);
struct QmlEventStats { struct QmlEventStats {
std::vector<qint64> durations; std::vector<qint64> durations;
qint64 total = 0; qint64 total = 0;
@@ -130,9 +126,6 @@ public:
} }
}; };
double durationPercent(int typeId) const;
double durationSelfPercent(int typeId) const;
QmlProfilerStatisticsModel(QmlProfilerModelManager *modelManager); QmlProfilerStatisticsModel(QmlProfilerModelManager *modelManager);
~QmlProfilerStatisticsModel() override = default; ~QmlProfilerStatisticsModel() override = default;
@@ -141,12 +134,7 @@ public:
QStringList details(int typeIndex) const; QStringList details(int typeIndex) const;
QString summary(const QVector<int> &typeIds) const; QString summary(const QVector<int> &typeIds) const;
const QVector<QmlEventStats> &getData() const;
const QVector<QmlEventType> &getTypes() const;
const QHash<int, QString> &getNotes() const;
qint64 rootDuration() const { return m_rootDuration; }
int count() const;
void clear(); void clear();
void setRelativesModel(QmlProfilerStatisticsRelativesModel *childModel, void setRelativesModel(QmlProfilerStatisticsRelativesModel *childModel,
@@ -157,10 +145,6 @@ public:
QVariant data(const QModelIndex &index, int role) const override; QVariant data(const QModelIndex &index, int role) const override;
QVariant headerData(int section, Qt::Orientation orientation, int role) const override; QVariant headerData(int section, Qt::Orientation orientation, int role) const override;
signals:
void dataAvailable();
void notesAvailable(int typeIndex);
private: private:
void loadEvent(const QmlEvent &event, const QmlEventType &type); void loadEvent(const QmlEvent &event, const QmlEventType &type);
void finalize(); void finalize();
@@ -170,6 +154,9 @@ private:
QVariant dataForMainEntry(const QModelIndex &index, int role) const; QVariant dataForMainEntry(const QModelIndex &index, int role) const;
double durationPercent(int typeId) const;
double durationSelfPercent(int typeId) const;
QVector<QmlEventStats> m_data; QVector<QmlEventStats> m_data;
QPointer<QmlProfilerStatisticsRelativesModel> m_calleesModel; QPointer<QmlProfilerStatisticsRelativesModel> m_calleesModel;
@@ -204,16 +191,9 @@ public:
QmlProfilerStatisticsModel *statisticsModel, QmlProfilerStatisticsModel *statisticsModel,
QmlProfilerStatisticsRelation relation); QmlProfilerStatisticsRelation relation);
int count() const;
void clear(); void clear();
const QVector<QmlStatisticsRelativesData> &getData(int typeId) const;
const QVector<QmlEventType> &getTypes() const;
void loadEvent(RangeType type, const QmlEvent &event, bool isRecursive); void loadEvent(RangeType type, const QmlEvent &event, bool isRecursive);
QmlProfilerStatisticsRelation relation() const;
int rowCount(const QModelIndex &parent) const override; int rowCount(const QModelIndex &parent) const override;
int columnCount(const QModelIndex &parent) const override; int columnCount(const QModelIndex &parent) const override;
QVariant data(const QModelIndex &index, int role) const override; QVariant data(const QModelIndex &index, int role) const override;
@@ -221,10 +201,7 @@ public:
bool setData(const QModelIndex &index, const QVariant &value, int role) override; bool setData(const QModelIndex &index, const QVariant &value, int role) override;
signals: private:
void dataAvailable();
protected:
QVariant dataForMainEntry(qint64 totalDuration, int role, int column) const; QVariant dataForMainEntry(qint64 totalDuration, int role, int column) const;
QHash<int, QVector<QmlStatisticsRelativesData>> m_data; QHash<int, QVector<QmlStatisticsRelativesData>> m_data;

View File

@@ -24,21 +24,16 @@
****************************************************************************/ ****************************************************************************/
#include "qmlprofilerstatisticsview.h" #include "qmlprofilerstatisticsview.h"
#include "qmlprofilerviewmanager.h"
#include "qmlprofilertool.h" #include "qmlprofilertool.h"
#include <coreplugin/minisplitter.h> #include <coreplugin/minisplitter.h>
#include <utils/qtcassert.h> #include <utils/qtcassert.h>
#include <timeline/timelineformattime.h> #include <timeline/timelineformattime.h>
#include <QUrl>
#include <QHash>
#include <QHeaderView> #include <QHeaderView>
#include <QApplication> #include <QApplication>
#include <QClipboard> #include <QClipboard>
#include <QContextMenuEvent>
#include <QVBoxLayout> #include <QVBoxLayout>
#include <QHBoxLayout>
#include <QMenu> #include <QMenu>
#include <QSortFilterProxyModel> #include <QSortFilterProxyModel>
@@ -130,11 +125,6 @@ QStringList QmlProfilerStatisticsView::details(int typeId) const
return m_mainView->details(typeId); return m_mainView->details(typeId);
} }
QModelIndex QmlProfilerStatisticsView::selectedModelIndex() const
{
return m_mainView->selectedModelIndex();
}
void QmlProfilerStatisticsView::contextMenuEvent(QContextMenuEvent *ev) void QmlProfilerStatisticsView::contextMenuEvent(QContextMenuEvent *ev)
{ {
QMenu menu; QMenu menu;
@@ -151,13 +141,13 @@ void QmlProfilerStatisticsView::contextMenuEvent(QContextMenuEvent *ev)
if (mouseOnTable(position)) { if (mouseOnTable(position)) {
menu.addSeparator(); menu.addSeparator();
if (selectedModelIndex().isValid()) if (m_mainView->selectedModelIndex().isValid())
copyRowAction = menu.addAction(tr("Copy Row")); copyRowAction = menu.addAction(tr("Copy Row"));
copyTableAction = menu.addAction(tr("Copy Table")); copyTableAction = menu.addAction(tr("Copy Table"));
showExtendedStatsAction = menu.addAction(tr("Extended Event Statistics")); showExtendedStatsAction = menu.addAction(tr("Extended Event Statistics"));
showExtendedStatsAction->setCheckable(true); showExtendedStatsAction->setCheckable(true);
showExtendedStatsAction->setChecked(showExtendedStatistics()); showExtendedStatsAction->setChecked(m_mainView->showExtendedStatistics());
} }
menu.addSeparator(); menu.addSeparator();
@@ -169,31 +159,23 @@ void QmlProfilerStatisticsView::contextMenuEvent(QContextMenuEvent *ev)
if (selectedAction) { if (selectedAction) {
if (selectedAction == copyRowAction) if (selectedAction == copyRowAction)
copyRowToClipboard(); m_mainView->copyRowToClipboard();
if (selectedAction == copyTableAction) if (selectedAction == copyTableAction)
copyTableToClipboard(); m_mainView->copyTableToClipboard();
if (selectedAction == getGlobalStatsAction) if (selectedAction == getGlobalStatsAction)
emit showFullRange(); emit showFullRange();
if (selectedAction == showExtendedStatsAction) if (selectedAction == showExtendedStatsAction)
setShowExtendedStatistics(!showExtendedStatistics()); m_mainView->setShowExtendedStatistics(m_mainView->showExtendedStatistics());
} }
} }
bool QmlProfilerStatisticsView::mouseOnTable(const QPoint &position) const bool QmlProfilerStatisticsView::mouseOnTable(const QPoint &position) const
{ {
QPoint tableTopLeft = m_mainView->mapToGlobal(QPoint(0,0)); QPoint tableTopLeft = m_mainView->mapToGlobal(QPoint(0,0));
QPoint tableBottomRight = m_mainView->mapToGlobal(QPoint(m_mainView->width(), m_mainView->height())); QPoint tableBottomRight = m_mainView->mapToGlobal(QPoint(m_mainView->width(),
return (position.x() >= tableTopLeft.x() && position.x() <= tableBottomRight.x() && position.y() >= tableTopLeft.y() && position.y() <= tableBottomRight.y()); m_mainView->height()));
} return position.x() >= tableTopLeft.x() && position.x() <= tableBottomRight.x()
&& position.y() >= tableTopLeft.y() && position.y() <= tableBottomRight.y();
void QmlProfilerStatisticsView::copyTableToClipboard() const
{
m_mainView->copyTableToClipboard();
}
void QmlProfilerStatisticsView::copyRowToClipboard() const
{
m_mainView->copyRowToClipboard();
} }
void QmlProfilerStatisticsView::selectByTypeId(int typeIndex) void QmlProfilerStatisticsView::selectByTypeId(int typeIndex)
@@ -207,16 +189,6 @@ void QmlProfilerStatisticsView::onVisibleFeaturesChanged(quint64 features)
m_mainView->restrictToFeatures(features); m_mainView->restrictToFeatures(features);
} }
void QmlProfilerStatisticsView::setShowExtendedStatistics(bool show)
{
m_mainView->setShowExtendedStatistics(show);
}
bool QmlProfilerStatisticsView::showExtendedStatistics() const
{
return m_mainView->showExtendedStatistics();
}
QmlProfilerStatisticsMainView::QmlProfilerStatisticsMainView(QmlProfilerStatisticsModel *model) : QmlProfilerStatisticsMainView::QmlProfilerStatisticsMainView(QmlProfilerStatisticsModel *model) :
m_model(model) m_model(model)
{ {

View File

@@ -30,11 +30,12 @@
#include "qmlprofilereventsview.h" #include "qmlprofilereventsview.h"
#include "qmlprofilereventtypes.h" #include "qmlprofilereventtypes.h"
#include <debugger/analyzer/analyzermanager.h>
#include <utils/itemviews.h> #include <utils/itemviews.h>
#include <QPointer> #include <QPointer>
#include <memory>
namespace QmlProfiler { namespace QmlProfiler {
namespace Internal { namespace Internal {
@@ -63,8 +64,6 @@ private:
void copyTableToClipboard() const; void copyTableToClipboard() const;
void copyRowToClipboard() const; void copyRowToClipboard() const;
bool mouseOnTable(const QPoint &position) const; bool mouseOnTable(const QPoint &position) const;
void setShowExtendedStatistics(bool show);
bool showExtendedStatistics() const;
std::unique_ptr<QmlProfilerStatisticsMainView> m_mainView; std::unique_ptr<QmlProfilerStatisticsMainView> m_mainView;
std::unique_ptr<QmlProfilerStatisticsRelativesView> m_calleesView; std::unique_ptr<QmlProfilerStatisticsRelativesView> m_calleesView;

View File

@@ -104,8 +104,6 @@ QmlProfilerViewManager::QmlProfilerViewManager(QObject *parent,
void QmlProfilerViewManager::clear() void QmlProfilerViewManager::clear()
{ {
m_traceView->clear(); m_traceView->clear();
m_flameGraphView->clear();
m_statisticsView->clear();
} }
} // namespace Internal } // namespace Internal