diff --git a/platform.h b/platform.h --- a/platform.h +++ b/platform.h @@ -383,6 +383,15 @@ **/ virtual QVector supportedCompositors() const = 0; + /* + * A string of information to include in kwin debug output + * It should not be translated. + * + * The base implementation prints the name. + * @since 5.12 + */ + virtual QString supportInformation() const; + public Q_SLOTS: void pointerMotion(const QPointF &position, quint32 time); void pointerButtonPressed(quint32 button, quint32 time); diff --git a/platform.cpp b/platform.cpp --- a/platform.cpp +++ b/platform.cpp @@ -477,4 +477,9 @@ new EffectsHandlerImpl(compositor, scene); } +QString Platform::supportInformation() const +{ + return QStringLiteral("Name: %1\n").arg(metaObject()->className()); +} + } diff --git a/plugins/platforms/drm/drm_backend.h b/plugins/platforms/drm/drm_backend.h --- a/plugins/platforms/drm/drm_backend.h +++ b/plugins/platforms/drm/drm_backend.h @@ -120,6 +120,8 @@ QVector supportedCompositors() const override; + QString supportInformation() const override; + public Q_SLOTS: void turnOutputsOn(); diff --git a/plugins/platforms/drm/drm_backend.cpp b/plugins/platforms/drm/drm_backend.cpp --- a/plugins/platforms/drm/drm_backend.cpp +++ b/plugins/platforms/drm/drm_backend.cpp @@ -727,4 +727,15 @@ #endif } +QString DrmBackend::supportInformation() const +{ + QString supportInfo; + QDebug s(&supportInfo); + s.nospace(); + s << "Name: " << "DRM" << endl; + s << "Active: " << m_active << endl; + s << "Atomic Mode Setting: " << m_atomicModeSetting << endl; + return supportInfo; +} + } diff --git a/workspace.cpp b/workspace.cpp --- a/workspace.cpp +++ b/workspace.cpp @@ -46,6 +46,7 @@ #include "rules.h" #include "screenedge.h" #include "screens.h" +#include "platform.h" #include "scripting/scripting.h" #ifdef KWIN_BUILD_TABBOX #include "tabbox.h" @@ -1425,6 +1426,11 @@ support.append(bridge->supportInformation()); support.append(QStringLiteral("\n")); } + support.append(QStringLiteral("Platform\n")); + support.append(QStringLiteral("==========\n")); + support.append(kwinApp()->platform()->supportInformation()); + support.append(QStringLiteral("\n")); + support.append(QStringLiteral("Options\n")); support.append(QStringLiteral("=======\n")); const QMetaObject *metaOptions = options->metaObject();