Skip to content

Commit 368c65d

Browse files
jonasschnelliknst
authored andcommitted
Merge bitcoin-core/gui#72: util: Log static plugins meta data and used style
957895c util: Log static plugins meta data and style (Hennadii Stepanov) Pull request description: This PR is a follow-up of bitcoin#17826, and adds additional info about the imported static plugins and the used style to the `debug.log` I found useful for testing (e.g., with `QT_QPA_PLATFORM`, `QT_QPA_PLATFORMTHEME`, `QT_STYLE_OVERRIDE` variables) and debugging issues (e.g., bitcoin#19716 (comment)). The excerpt from the log: ``` 2020-11-15T18:41:45Z [main] Bitcoin Core version v0.20.99.0-f0b933f78 (release build) 2020-11-15T18:41:45Z [main] Qt 5.9.8 (static), plugin=xcb (static) 2020-11-15T18:41:45Z [main] Static plugins: 2020-11-15T18:41:45Z [main] QXcbIntegrationPlugin, version 329992 2020-11-15T18:41:45Z [main] Style: fusion / QFusionStyle ... ``` ACKs for top commit: jarolrod: ACK 957895c, Tested on macOS 11.1 jonasschnelli: utACK 957895c Tree-SHA512: 0e46db7560f380fbda8ce5e53faa5d419a456e90ca595ce46be8e3030c99d3a113586edad1988a97e9bf0279e944f975968ed1156817bc16723ed31c64850239
1 parent 317777e commit 368c65d

File tree

1 file changed

+16
-0
lines changed

1 file changed

+16
-0
lines changed

src/qt/guiutil.cpp

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,12 +50,14 @@
5050
#include <QFontDatabase>
5151
#include <QFontMetrics>
5252
#include <QGuiApplication>
53+
#include <QJsonObject>
5354
#include <QKeyEvent>
5455
#include <QLineEdit>
5556
#include <QList>
5657
#include <QLocale>
5758
#include <QMenu>
5859
#include <QMouseEvent>
60+
#include <QPluginLoader>
5961
#include <QPointer>
6062
#include <QProgressDialog>
6163
#include <QScreen>
@@ -1814,6 +1816,20 @@ void LogQtInfo()
18141816
const std::string plugin_link{"dynamic"};
18151817
#endif
18161818
LogPrintf("Qt %s (%s), plugin=%s (%s)\n", qVersion(), qt_link, QGuiApplication::platformName().toStdString(), plugin_link);
1819+
const auto static_plugins = QPluginLoader::staticPlugins();
1820+
if (static_plugins.empty()) {
1821+
LogPrintf("No static plugins.\n");
1822+
} else {
1823+
LogPrintf("Static plugins:\n");
1824+
for (const QStaticPlugin& p : static_plugins) {
1825+
QJsonObject meta_data = p.metaData();
1826+
const std::string plugin_class = meta_data.take(QString("className")).toString().toStdString();
1827+
const int plugin_version = meta_data.take(QString("version")).toInt();
1828+
LogPrintf(" %s, version %d\n", plugin_class, plugin_version);
1829+
}
1830+
}
1831+
1832+
LogPrintf("Style: %s / %s\n", QApplication::style()->objectName().toStdString(), QApplication::style()->metaObject()->className());
18171833
LogPrintf("System: %s, %s\n", QSysInfo::prettyProductName().toStdString(), QSysInfo::buildAbi().toStdString());
18181834
for (const QScreen* s : QGuiApplication::screens()) {
18191835
LogPrintf("Screen: %s %dx%d, pixel ratio=%.1f\n", s->name().toStdString(), s->size().width(), s->size().height(), s->devicePixelRatio());

0 commit comments

Comments
 (0)