Skip to content

Commit 7595183

Browse files
committed
Merge bitcoin-core#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/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/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
2 parents 02b0165 + 957895c commit 7595183

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
@@ -40,12 +40,14 @@
4040
#include <QFontDatabase>
4141
#include <QFontMetrics>
4242
#include <QGuiApplication>
43+
#include <QJsonObject>
4344
#include <QKeyEvent>
4445
#include <QLineEdit>
4546
#include <QList>
4647
#include <QLocale>
4748
#include <QMenu>
4849
#include <QMouseEvent>
50+
#include <QPluginLoader>
4951
#include <QProgressDialog>
5052
#include <QScreen>
5153
#include <QSettings>
@@ -936,6 +938,20 @@ void LogQtInfo()
936938
const std::string plugin_link{"dynamic"};
937939
#endif
938940
LogPrintf("Qt %s (%s), plugin=%s (%s)\n", qVersion(), qt_link, QGuiApplication::platformName().toStdString(), plugin_link);
941+
const auto static_plugins = QPluginLoader::staticPlugins();
942+
if (static_plugins.empty()) {
943+
LogPrintf("No static plugins.\n");
944+
} else {
945+
LogPrintf("Static plugins:\n");
946+
for (const QStaticPlugin& p : static_plugins) {
947+
QJsonObject meta_data = p.metaData();
948+
const std::string plugin_class = meta_data.take(QString("className")).toString().toStdString();
949+
const int plugin_version = meta_data.take(QString("version")).toInt();
950+
LogPrintf(" %s, version %d\n", plugin_class, plugin_version);
951+
}
952+
}
953+
954+
LogPrintf("Style: %s / %s\n", QApplication::style()->objectName().toStdString(), QApplication::style()->metaObject()->className());
939955
LogPrintf("System: %s, %s\n", QSysInfo::prettyProductName().toStdString(), QSysInfo::buildAbi().toStdString());
940956
for (const QScreen* s : QGuiApplication::screens()) {
941957
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)