diff --git a/host/abstractbrowserplugin.h b/host/abstractbrowserplugin.h --- a/host/abstractbrowserplugin.h +++ b/host/abstractbrowserplugin.h @@ -39,6 +39,13 @@ // FIXME this should not be public but we need to change it from main.cpp void setLoaded(bool loaded); + /** + * Lets the plugin add additional status information to the getSubsystemStatus request + * + * E.g. whether a library dependency or external binary is present. + */ + virtual QJsonObject status() const; + protected: /* * @arg subsystemId diff --git a/host/abstractbrowserplugin.cpp b/host/abstractbrowserplugin.cpp --- a/host/abstractbrowserplugin.cpp +++ b/host/abstractbrowserplugin.cpp @@ -86,6 +86,11 @@ Q_UNUSED(newSettings); } +QJsonObject AbstractBrowserPlugin::status() const +{ + return {}; +} + QDebug AbstractBrowserPlugin::debug() const { auto d = qDebug(); diff --git a/host/settings.cpp b/host/settings.cpp --- a/host/settings.cpp +++ b/host/settings.cpp @@ -148,10 +148,10 @@ const QStringList subsystems = PluginManager::self().knownPluginSubsystems(); for (const QString &subsystem : subsystems) { const AbstractBrowserPlugin *plugin = PluginManager::self().pluginForSubsystem(subsystem); - QJsonObject details{ - {QStringLiteral("version"), plugin->protocolVersion()}, - {QStringLiteral("loaded"), plugin->isLoaded()} - }; + + QJsonObject details = plugin->status(); + details.insert(QStringLiteral("version"), plugin->protocolVersion()); + details.insert(QStringLiteral("loaded"), plugin->isLoaded()); ret.insert(subsystem, details); } }