diff --git a/src/provider/core/abstractdatasource.cpp b/src/provider/core/abstractdatasource.cpp
index d6e1ef9834f2b4a00a11f14bf6f5da667f271d55..70dba3b41f4a096b43994d844791907d0c7cc5e3 100644
--- a/src/provider/core/abstractdatasource.cpp
+++ b/src/provider/core/abstractdatasource.cpp
@@ -47,6 +47,11 @@ QString AbstractDataSource::id() const
     return d_ptr->id;
 }
 
+QString AbstractDataSource::name() const
+{
+    return {};
+}
+
 void AbstractDataSource::setId(const QString& id)
 {
     d_ptr->id = id;
diff --git a/src/provider/core/abstractdatasource.h b/src/provider/core/abstractdatasource.h
index 133de97d68986a83caf5388f7d0531a4571a4d04..cdf80aaf8c50faa8b97eec136f8663ff274d1f64 100644
--- a/src/provider/core/abstractdatasource.h
+++ b/src/provider/core/abstractdatasource.h
@@ -45,6 +45,12 @@ public:
      */
     QString id() const;
 
+    /*! Returns a short name of this data source.
+     *  Can be empty if short name is meaningless for this data source.
+     *  @returns A translated, human-readable string.
+     */
+    virtual QString name() const;
+
     /*! Returns a human-readable, translated description of what
      *  this source provides.
      *  @see id()
diff --git a/src/provider/core/applicationversionsource.cpp b/src/provider/core/applicationversionsource.cpp
index 6f1dd942bcec06c43062b987b1eaf09379a835a7..2f85498630ac59986e9ec40bce12c1332847287f 100644
--- a/src/provider/core/applicationversionsource.cpp
+++ b/src/provider/core/applicationversionsource.cpp
@@ -41,3 +41,8 @@ QVariant ApplicationVersionSource::data()
     m.insert(QStringLiteral("value"), QCoreApplication::applicationVersion());
     return m;
 }
+
+QString ApplicationVersionSource::name() const
+{
+    return tr("Application version");
+}
diff --git a/src/provider/core/applicationversionsource.h b/src/provider/core/applicationversionsource.h
index 574bbee4b76821f123730c43e3d642803f917824..eb4e081dfe7a89ec02d0dfeca1690a5076adc473 100644
--- a/src/provider/core/applicationversionsource.h
+++ b/src/provider/core/applicationversionsource.h
@@ -34,7 +34,10 @@ class KUSERFEEDBACKCORE_EXPORT ApplicationVersionSource : public AbstractDataSou
 public:
     /*! Create a new application version source. */
     ApplicationVersionSource();
+
+    QString name() const override;
     QString description() const override;
+
     QVariant data() override;
 };
 
diff --git a/src/provider/core/compilerinfosource.cpp b/src/provider/core/compilerinfosource.cpp
index 6b537a83242623204ed58b5427558b1c61f7b197..869a51bfa05d262f1c9ccf695089cf717f45a628 100644
--- a/src/provider/core/compilerinfosource.cpp
+++ b/src/provider/core/compilerinfosource.cpp
@@ -59,5 +59,10 @@ QVariant CompilerInfoSource::data()
     return m;
 }
 
+QString CompilerInfoSource::name() const
+{
+    return tr("Compiler information");
+}
+
 #undef STRINGIFY
 #undef INT2STR
diff --git a/src/provider/core/compilerinfosource.h b/src/provider/core/compilerinfosource.h
index 7caf70aaadc1437905edc00b54bebaee576612e3..43c3765cb343447e448016317aa086e239bc0b05 100644
--- a/src/provider/core/compilerinfosource.h
+++ b/src/provider/core/compilerinfosource.h
@@ -37,7 +37,10 @@ public:
     Q_DECLARE_TR_FUNCTIONS(KUserFeedback::CompilerInfoSource)
 public:
     CompilerInfoSource();
+
+    QString name() const override;
     QString description() const override;
+
     QVariant data() override;
 };
 
diff --git a/src/provider/core/cpuinfosource.cpp b/src/provider/core/cpuinfosource.cpp
index a4aeae48f1b21383ee306d00050b3e95c9baf53b..cc9edca23e59437314572c8f647b4ced3b731d8b 100644
--- a/src/provider/core/cpuinfosource.cpp
+++ b/src/provider/core/cpuinfosource.cpp
@@ -40,3 +40,8 @@ QVariant CpuInfoSource::data()
     m.insert(QStringLiteral("count"), QThread::idealThreadCount());
     return m;
 }
+
+QString CpuInfoSource::name() const
+{
+    return tr("CPU information");
+}
diff --git a/src/provider/core/cpuinfosource.h b/src/provider/core/cpuinfosource.h
index 9f9ece3d67cee90af141f30336e53e230664e22f..0b3fdde1deb213f9d22822129a10ce890b764dff 100644
--- a/src/provider/core/cpuinfosource.h
+++ b/src/provider/core/cpuinfosource.h
@@ -32,7 +32,10 @@ class KUSERFEEDBACKCORE_EXPORT CpuInfoSource : public AbstractDataSource
     Q_DECLARE_TR_FUNCTIONS(KUserFeedback::CpuInfoSource)
 public:
     CpuInfoSource();
+
+    QString name() const override;
     QString description() const override;
+
     QVariant data() override;
 };
 
diff --git a/src/provider/core/localeinfosource.cpp b/src/provider/core/localeinfosource.cpp
index 0d9854a099da487d99e483504d868c48a6e0c8b2..525d42fcc467bb291ca64615c9dcab206715d50e 100644
--- a/src/provider/core/localeinfosource.cpp
+++ b/src/provider/core/localeinfosource.cpp
@@ -40,3 +40,8 @@ QVariant LocaleInfoSource::data()
     m.insert(QStringLiteral("language"), QLocale::languageToString(l.language()));
     return m;
 }
+
+QString LocaleInfoSource::name() const
+{
+    return tr("Locale information");
+}
diff --git a/src/provider/core/localeinfosource.h b/src/provider/core/localeinfosource.h
index 4e7e8d100f063bb7d745a23c011648b0b74cf988..9ba7ce09ba6a4f24a06c1e0aa690cc66ccdfa024 100644
--- a/src/provider/core/localeinfosource.h
+++ b/src/provider/core/localeinfosource.h
@@ -32,7 +32,10 @@ class KUSERFEEDBACKCORE_EXPORT LocaleInfoSource : public AbstractDataSource
     Q_DECLARE_TR_FUNCTIONS(KUserFeedback::LocaleInfoSource)
 public:
     LocaleInfoSource();
+
+    QString name() const override;
     QString description() const override;
+
     QVariant data() override;
 };
 
diff --git a/src/provider/core/openglinfosource.cpp b/src/provider/core/openglinfosource.cpp
index 8d9cd78dfd6a4d56d80b7fbe8293df1027c5d470..bd0b0a3c7f0dada3fcd4106e812d61f2dd0a3156 100644
--- a/src/provider/core/openglinfosource.cpp
+++ b/src/provider/core/openglinfosource.cpp
@@ -94,3 +94,8 @@ QVariant OpenGLInfoSource::data()
     m.insert(QStringLiteral("type"), QStringLiteral("none"));
     return m;
 }
+
+QString OpenGLInfoSource::name() const
+{
+    return tr("OpenGL information");
+}
diff --git a/src/provider/core/openglinfosource.h b/src/provider/core/openglinfosource.h
index db5a9a987dbd53ef2e53a0f74251613ba1de0152..b2b417a7acc252eb458a1908f1812937a68eddbd 100644
--- a/src/provider/core/openglinfosource.h
+++ b/src/provider/core/openglinfosource.h
@@ -32,7 +32,10 @@ public:
     Q_DECLARE_TR_FUNCTIONS(KUserFeedback::OpenGLInfoSource)
 public:
     OpenGLInfoSource();
+
+    QString name() const override;
     QString description() const override;
+
     QVariant data() override;
 };
 
diff --git a/src/provider/core/platforminfosource.cpp b/src/provider/core/platforminfosource.cpp
index dee536e770c3b9d3b356f973d9dd089ef5be835b..e70a498c23a54eabf333ed35ea533c2e66757d44 100644
--- a/src/provider/core/platforminfosource.cpp
+++ b/src/provider/core/platforminfosource.cpp
@@ -63,3 +63,8 @@ QVariant PlatformInfoSource::data()
 #endif
     return m;
 }
+
+QString PlatformInfoSource::name() const
+{
+    return tr("Platform information");
+}
diff --git a/src/provider/core/platforminfosource.h b/src/provider/core/platforminfosource.h
index 6ec045dbde2ec0568839e6be4378ee8aa671c582..573397018b584ef743cba11c8e3c193c76d112b9 100644
--- a/src/provider/core/platforminfosource.h
+++ b/src/provider/core/platforminfosource.h
@@ -35,7 +35,10 @@ class KUSERFEEDBACKCORE_EXPORT PlatformInfoSource : public AbstractDataSource
 public:
     /*! Create a new platform information source. */
     PlatformInfoSource();
+
+    QString name() const override;
     QString description() const override;
+
     QVariant data() override;
 };
 
diff --git a/src/provider/core/qpainfosource.cpp b/src/provider/core/qpainfosource.cpp
index 1b4d874e6632cad354a34cf2a75cee8819b0f80b..7ab137f03b8dfc02101eadfb7eb6b38168d51636 100644
--- a/src/provider/core/qpainfosource.cpp
+++ b/src/provider/core/qpainfosource.cpp
@@ -38,3 +38,8 @@ QVariant QPAInfoSource::data()
     m.insert(QStringLiteral("name"), QGuiApplication::platformName());
     return m;
 }
+
+QString QPAInfoSource::name() const
+{
+    return tr("QPA information");
+}
diff --git a/src/provider/core/qpainfosource.h b/src/provider/core/qpainfosource.h
index f9aeb0bb52d10870d92d9aa123f45819497135af..b86e2046f3564aa4f468226ad86164d6e6ca9561 100644
--- a/src/provider/core/qpainfosource.h
+++ b/src/provider/core/qpainfosource.h
@@ -33,7 +33,10 @@ class KUSERFEEDBACKCORE_EXPORT QPAInfoSource : public AbstractDataSource
     Q_DECLARE_TR_FUNCTIONS(KUserFeedback::QPAInfoSource)
 public:
     QPAInfoSource();
+
+    QString name() const override;
     QString description() const override;
+
     QVariant data() override;
 };
 
diff --git a/src/provider/core/qtversionsource.cpp b/src/provider/core/qtversionsource.cpp
index 8acf5c9cf246cca352e6c976ad7c449c24c2be09..36dcd412152507d2a3be961c87af0e0c34040587 100644
--- a/src/provider/core/qtversionsource.cpp
+++ b/src/provider/core/qtversionsource.cpp
@@ -37,3 +37,8 @@ QVariant QtVersionSource::data()
     m.insert(QStringLiteral("value"), QString::fromLatin1(qVersion()));
     return m;
 }
+
+QString QtVersionSource::name() const
+{
+    return tr("Qt version information");
+}
diff --git a/src/provider/core/qtversionsource.h b/src/provider/core/qtversionsource.h
index 98ef5e3c70366c9a3861b03c6d231afa8b378dcb..ad281ed040c8a1f590f58bcc97b52002b7ed3b9c 100644
--- a/src/provider/core/qtversionsource.h
+++ b/src/provider/core/qtversionsource.h
@@ -32,7 +32,10 @@ class KUSERFEEDBACKCORE_EXPORT QtVersionSource : public AbstractDataSource
     Q_DECLARE_TR_FUNCTIONS(KUserFeedback::QtVersionSource)
 public:
     QtVersionSource();
+
+    QString name() const override;
     QString description() const override;
+
     QVariant data() override;
 };
 }
diff --git a/src/provider/core/screeninfosource.cpp b/src/provider/core/screeninfosource.cpp
index 4ec6df3eab30b9ada87df0a5ad95020f9ad7c79e..d312079bd857809190e2f719fb2e9d7b6cf58dee 100644
--- a/src/provider/core/screeninfosource.cpp
+++ b/src/provider/core/screeninfosource.cpp
@@ -45,3 +45,8 @@ QVariant ScreenInfoSource::data()
     }
     return l;
 }
+
+QString ScreenInfoSource::name() const
+{
+    return tr("Screen parameters");
+}
diff --git a/src/provider/core/screeninfosource.h b/src/provider/core/screeninfosource.h
index b6c5a23570cc79dae95b0ba1b78a9e78d6bebae3..17c1e966b2d9d2eec7371eba57be028202682e29 100644
--- a/src/provider/core/screeninfosource.h
+++ b/src/provider/core/screeninfosource.h
@@ -37,7 +37,10 @@ class KUSERFEEDBACKCORE_EXPORT ScreenInfoSource :  public AbstractDataSource
 public:
     /*! Create a new screen information source. */
     ScreenInfoSource();
+
+    QString name() const override;
     QString description() const override;
+
     QVariant data() override;
 };
 
diff --git a/src/provider/core/startcountsource.cpp b/src/provider/core/startcountsource.cpp
index 584b55d1c7f241e5077ceebb19782d5324391c1b..868ce92ac834b4f945a26552c80bc8b2d0d1c4da 100644
--- a/src/provider/core/startcountsource.cpp
+++ b/src/provider/core/startcountsource.cpp
@@ -52,6 +52,11 @@ QVariant StartCountSource::data()
     return m;
 }
 
+QString StartCountSource::name() const
+{
+    return tr("Launches count");
+}
+
 void StartCountSource::setProvider(ProviderPrivate *p)
 {
     Q_D(StartCountSource);
diff --git a/src/provider/core/startcountsource.h b/src/provider/core/startcountsource.h
index 85c587135603a6f0e736ab102cb8377df4a01825..75f3f5648e6426aade7e8779304029b0ff1f0672 100644
--- a/src/provider/core/startcountsource.h
+++ b/src/provider/core/startcountsource.h
@@ -37,7 +37,10 @@ class KUSERFEEDBACKCORE_EXPORT StartCountSource :  public AbstractDataSource
 public:
     /*! Create a new start count data source. */
     StartCountSource();
+
+    QString name() const override;
     QString description() const override;
+
     QVariant data() override;
 
 private:
diff --git a/src/provider/core/usagetimesource.cpp b/src/provider/core/usagetimesource.cpp
index 336cac349fdca88e970a2969587a3ec50f3cd238..6e1d458d5d268629c28aa406a3fbca93a3587d0d 100644
--- a/src/provider/core/usagetimesource.cpp
+++ b/src/provider/core/usagetimesource.cpp
@@ -52,6 +52,11 @@ QVariant UsageTimeSource::data()
     return m;
 }
 
+QString UsageTimeSource::name() const
+{
+    return tr("Usage time");
+}
+
 void UsageTimeSource::setProvider(ProviderPrivate* p)
 {
     Q_D(UsageTimeSource);
diff --git a/src/provider/core/usagetimesource.h b/src/provider/core/usagetimesource.h
index bf94df8cfcc7d54c8d714fec9656dac33b48d131..f28c73232aad4bf7868cbfdd60eef7b63b99c1eb 100644
--- a/src/provider/core/usagetimesource.h
+++ b/src/provider/core/usagetimesource.h
@@ -38,7 +38,10 @@ public:
 public:
     /*! Create a new usage time data source. */
     UsageTimeSource();
+
+    QString name() const override;
     QString description() const override;
+
     QVariant data() override;
 
 private:
diff --git a/src/provider/widgets/styleinfosource.cpp b/src/provider/widgets/styleinfosource.cpp
index f2377a399836dc286cefc2c95b17461f8b72c1c0..9f07664d24514493cc4a50e9d188bf5e25bd0526 100644
--- a/src/provider/widgets/styleinfosource.cpp
+++ b/src/provider/widgets/styleinfosource.cpp
@@ -42,3 +42,8 @@ QVariant StyleInfoSource::data()
     m.insert(QStringLiteral("dark"), qApp->palette().color(QPalette::Background).lightness() < 128);
     return m;
 }
+
+QString StyleInfoSource::name() const
+{
+    return tr("Application style");
+}
diff --git a/src/provider/widgets/styleinfosource.h b/src/provider/widgets/styleinfosource.h
index 5dfd815f07700870631ce87342aadee51c8586ef..3a133d00a7dd462a1a0242303bb5200c1bd52323 100644
--- a/src/provider/widgets/styleinfosource.h
+++ b/src/provider/widgets/styleinfosource.h
@@ -31,7 +31,10 @@ public:
     Q_DECLARE_TR_FUNCTIONS(KUserFeedback::StyleInfoSource)
 public:
     StyleInfoSource();
+
+    QString name() const override;
     QString description() const override;
+
     QVariant data() override;
 };