Skip to content

Commit 96ac317

Browse files
jonasschnelliPastaPastaPasta
authored andcommitted
Merge bitcoin#19104: gui, refactor: Register Qt meta types in application constructor
4f49d52 gui, refactor: Register Qt meta types in application constructor (João Barbosa) Pull request description: Removes a warning when running `QT_QPA_PLATFORM=cocoa src/qt/test/test_bitcoin-qt`. ACKs for top commit: jonasschnelli: Re utACK 4f49d52 hebasto: ACK 4f49d52, tested on macOS 10.15.5. Tree-SHA512: e931a022ba83cb0ef04d82544ebd9b18242f8fc2b41443afce4d5c4222f222e8b3517bdb484a1a4f61377c5dceca067d8ccf250da3a727299448e54bec33ed6e
1 parent 32f717c commit 96ac317

File tree

1 file changed

+19
-15
lines changed

1 file changed

+19
-15
lines changed

src/qt/bitcoin.cpp

Lines changed: 19 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,24 @@ Q_DECLARE_METATYPE(CAmount)
7474
Q_DECLARE_METATYPE(SynchronizationState)
7575
Q_DECLARE_METATYPE(uint256)
7676

77+
static void RegisterMetaTypes()
78+
{
79+
// Register meta types used for QMetaObject::invokeMethod and Qt::QueuedConnection
80+
qRegisterMetaType<bool*>();
81+
qRegisterMetaType<SynchronizationState>();
82+
#ifdef ENABLE_WALLET
83+
qRegisterMetaType<WalletModel*>();
84+
#endif
85+
// Register typedefs (see http://qt-project.org/doc/qt-5/qmetatype.html#qRegisterMetaType)
86+
// IMPORTANT: if CAmount is no longer a typedef use the normal variant above (see https://doc.qt.io/qt-5/qmetatype.html#qRegisterMetaType-1)
87+
qRegisterMetaType<CAmount>("CAmount");
88+
qRegisterMetaType<size_t>("size_t");
89+
90+
qRegisterMetaType<std::function<void()>>("std::function<void()>");
91+
qRegisterMetaType<QMessageBox::Icon>("QMessageBox::Icon");
92+
qRegisterMetaType<interfaces::BlockAndHeaderTipInfo>("interfaces::BlockAndHeaderTipInfo");
93+
}
94+
7795
static QString GetLangTerritory()
7896
{
7997
QSettings settings;
@@ -262,6 +280,7 @@ BitcoinApplication::BitcoinApplication():
262280
pollShutdownTimer(nullptr),
263281
returnValue(0)
264282
{
283+
RegisterMetaTypes();
265284
// Qt runs setlocale(LC_ALL, "") on initialization.
266285
setQuitOnLastWindowClosed(false);
267286
}
@@ -543,21 +562,6 @@ int GuiMain(int argc, char* argv[])
543562

544563
BitcoinApplication app;
545564

546-
// Register meta types used for QMetaObject::invokeMethod and Qt::QueuedConnection
547-
qRegisterMetaType<bool*>();
548-
qRegisterMetaType<SynchronizationState>();
549-
#ifdef ENABLE_WALLET
550-
qRegisterMetaType<WalletModel*>();
551-
#endif
552-
// Register typedefs (see http://qt-project.org/doc/qt-5/qmetatype.html#qRegisterMetaType)
553-
// IMPORTANT: if CAmount is no longer a typedef use the normal variant above (see https://doc.qt.io/qt-5/qmetatype.html#qRegisterMetaType-1)
554-
qRegisterMetaType<CAmount>("CAmount");
555-
qRegisterMetaType<size_t>("size_t");
556-
557-
qRegisterMetaType<std::function<void()>>("std::function<void()>");
558-
qRegisterMetaType<QMessageBox::Icon>("QMessageBox::Icon");
559-
qRegisterMetaType<interfaces::BlockAndHeaderTipInfo>("interfaces::BlockAndHeaderTipInfo");
560-
561565
/// 2. Parse command-line options. We do this after qt in order to show an error if there are problems parsing these
562566
// Command-line options take precedence:
563567
SetupServerArgs(node_context);

0 commit comments

Comments
 (0)