diff --git a/src/plugins/qmlprofiler/abstracttimelinemodel.cpp b/src/plugins/qmlprofiler/abstracttimelinemodel.cpp
index 75806312855772574aab3c3339e3290b5e900599..4449f1f245672ac49bbb685b105e7f9296396f86 100644
--- a/src/plugins/qmlprofiler/abstracttimelinemodel.cpp
+++ b/src/plugins/qmlprofiler/abstracttimelinemodel.cpp
@@ -58,6 +58,11 @@ QString AbstractTimelineModel::name() const
     return m_name;
 }
 
+bool AbstractTimelineModel::isEmpty() const
+{
+    return count() == 0;
+}
+
 qint64 AbstractTimelineModel::traceStartTime() const
 {
     return m_modelManager->traceTime()->startTime();
diff --git a/src/plugins/qmlprofiler/abstracttimelinemodel.h b/src/plugins/qmlprofiler/abstracttimelinemodel.h
index 83ea50c5dc980908ba921bb0d46cfffda1b1c1ba..9414378cd4bc95a00baef9486107f0f6c109b3b3 100644
--- a/src/plugins/qmlprofiler/abstracttimelinemodel.h
+++ b/src/plugins/qmlprofiler/abstracttimelinemodel.h
@@ -54,7 +54,7 @@ public:
     QString name() const;
     virtual int count() const = 0;
 
-    virtual bool isEmpty() const = 0;
+    bool isEmpty() const;
 
     virtual bool eventAccepted(const QmlProfilerSimpleModel::QmlEventData &event) const = 0;
 
diff --git a/src/plugins/qmlprofiler/qmlprofilerpainteventsmodelproxy.cpp b/src/plugins/qmlprofiler/qmlprofilerpainteventsmodelproxy.cpp
index 3486f7ba3e8bac6bfe4f990e9399ac5b49d17161..cc92e9d5390c33bf5f02cf9f8dffdce78138ed6a 100644
--- a/src/plugins/qmlprofiler/qmlprofilerpainteventsmodelproxy.cpp
+++ b/src/plugins/qmlprofiler/qmlprofilerpainteventsmodelproxy.cpp
@@ -145,11 +145,6 @@ void PaintEventsModelProxy::loadData()
 
 /////////////////// QML interface
 
-bool PaintEventsModelProxy::isEmpty() const
-{
-    return count() == 0;
-}
-
 int PaintEventsModelProxy::count() const
 {
     return d->count();
diff --git a/src/plugins/qmlprofiler/qmlprofilerpainteventsmodelproxy.h b/src/plugins/qmlprofiler/qmlprofilerpainteventsmodelproxy.h
index ce7b593cc86d744708b6bbc07abc5ff1cb059a6c..a9671c2abc08ff01a04b4607f6489a2286e9c53e 100644
--- a/src/plugins/qmlprofiler/qmlprofilerpainteventsmodelproxy.h
+++ b/src/plugins/qmlprofiler/qmlprofilerpainteventsmodelproxy.h
@@ -67,8 +67,6 @@ public:
     Q_INVOKABLE int count() const;
     void clear();
 
-    bool isEmpty() const;
-
     Q_INVOKABLE qint64 lastTimeMark() const;
 
     Q_INVOKABLE bool expanded(int category) const;
diff --git a/src/plugins/qmlprofiler/qmlprofilertimelinemodelproxy.cpp b/src/plugins/qmlprofiler/qmlprofilertimelinemodelproxy.cpp
index 1174375a734f9d69d3c6a6fbf3e26386da7add3d..5096a58749e0c665cb95bb86155ebfce88f9a82c 100644
--- a/src/plugins/qmlprofiler/qmlprofilertimelinemodelproxy.cpp
+++ b/src/plugins/qmlprofiler/qmlprofilertimelinemodelproxy.cpp
@@ -289,11 +289,6 @@ void BasicTimelineModel::BasicTimelineModelPrivate::computeRowStarts()
 
 /////////////////// QML interface
 
-bool BasicTimelineModel::isEmpty() const
-{
-    return count() == 0;
-}
-
 int BasicTimelineModel::count() const
 {
     return d->count();
diff --git a/src/plugins/qmlprofiler/qmlprofilertimelinemodelproxy.h b/src/plugins/qmlprofiler/qmlprofilertimelinemodelproxy.h
index 890c975275e5bdf4618cb34968f5bdb0629e0e1b..4bdb69f75cec6c29d43a1754c326a05656e0a931 100644
--- a/src/plugins/qmlprofiler/qmlprofilertimelinemodelproxy.h
+++ b/src/plugins/qmlprofiler/qmlprofilertimelinemodelproxy.h
@@ -88,8 +88,6 @@ public:
 
 
 // QML interface
-    bool isEmpty() const;
-
     Q_INVOKABLE qint64 lastTimeMark() const;
 
     Q_INVOKABLE bool expanded(int category) const;