From 7b8ddda8ea784f764e8790a27d7133251aec3ac5 Mon Sep 17 00:00:00 2001 From: fanquake Date: Thu, 15 Aug 2019 15:03:41 +0800 Subject: [PATCH] Merge #16578: Do not pass in command line arguments to QApplication a2714a5c69f0b0506689af04c3e785f71ee0915d Give QApplication dummy arguments (Andrew Chow) Pull request description: QApplication takes the command line arguments and parses them itself for some [built in command line arguments](https://doc.qt.io/qt-5/qapplication.html#QApplication) that it has. We don't want any of those built in arguments, so instead give it dummy arguments. To test, you can use the `-reverse` option. Without this patch, everything will appear right-to-left; things that were on the left side will be on the right and everything is right aligned. After this patch, `-reverse` will now give a startup error since we do not support this argument. ACKs for top commit: laanwj: ACK a2714a5c69f0b0506689af04c3e785f71ee0915d hebasto: ACK a2714a5c69f0b0506689af04c3e785f71ee0915d fanquake: ACK a2714a5c69f0b0506689af04c3e785f71ee0915d - Have tested that arguments like `-reverse` are no longer being passed through and result in an error. Tree-SHA512: 983bd948ca6999f895b6662b58c37e33af7ed61fdd600c6b4623febb87ec06a92c66e3b3300783530110cc711902793ef82d751d7f563696c4c3a8416b2b1f51 --- src/qt/dash.cpp | 9 ++++++--- src/qt/dash.h | 2 +- src/qt/test/test_main.cpp | 2 +- 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/src/qt/dash.cpp b/src/qt/dash.cpp index 764e33192e..bd95dd9c27 100644 --- a/src/qt/dash.cpp +++ b/src/qt/dash.cpp @@ -195,8 +195,11 @@ void BitcoinCore::shutdown() } } -BitcoinApplication::BitcoinApplication(interfaces::Node& node, int &argc, char **argv): - QApplication(argc, argv), +static int qt_argc = 1; +static const char* qt_argv = "dash-qt"; + +BitcoinApplication::BitcoinApplication(interfaces::Node& node): + QApplication(qt_argc, const_cast(&qt_argv)), coreThread(nullptr), m_node(node), optionsModel(nullptr), @@ -468,7 +471,7 @@ int GuiMain(int argc, char* argv[]) QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling); #endif - BitcoinApplication app(*node, argc, argv); + BitcoinApplication app(*node); // Register meta types used for QMetaObject::invokeMethod and Qt::QueuedConnection qRegisterMetaType(); diff --git a/src/qt/dash.h b/src/qt/dash.h index 276b0e794d..b018c3a8c5 100644 --- a/src/qt/dash.h +++ b/src/qt/dash.h @@ -57,7 +57,7 @@ class BitcoinApplication: public QApplication { Q_OBJECT public: - explicit BitcoinApplication(interfaces::Node& node, int &argc, char **argv); + explicit BitcoinApplication(interfaces::Node& node); ~BitcoinApplication(); #ifdef ENABLE_WALLET diff --git a/src/qt/test/test_main.cpp b/src/qt/test/test_main.cpp index 1d5fb6991e..b63121ef78 100644 --- a/src/qt/test/test_main.cpp +++ b/src/qt/test/test_main.cpp @@ -67,7 +67,7 @@ int main(int argc, char *argv[]) // Don't remove this, it's needed to access // QApplication:: and QCoreApplication:: in the tests - BitcoinApplication app(*node, argc, argv); + BitcoinApplication app(*node); app.setApplicationName("Dash-Qt-test"); SSL_library_init();