diff --git a/src/qt/bitcoin.cpp b/src/qt/bitcoin.cpp index bad4e727943..a472ba64630 100644 --- a/src/qt/bitcoin.cpp +++ b/src/qt/bitcoin.cpp @@ -539,11 +539,17 @@ int GuiMain(int argc, char* argv[]) SetupUIArgs(gArgs); std::string error; if (!gArgs.ParseParameters(argc, argv, error)) { + int nMBoxIcon = QMessageBox::Critical; InitError(strprintf(Untranslated("Error parsing command line arguments: %s"), error)); // Create a message box, because the gui has neither been created nor has subscribed to core signals - QMessageBox::critical(nullptr, PACKAGE_NAME, + QMessageBox mBox(static_cast(nMBoxIcon), PACKAGE_NAME, // message cannot be translated because translations have not been initialized QString::fromStdString("Error parsing command line arguments: %1.").arg(QString::fromStdString(error))); + mBox.setTextFormat(Qt::PlainText); + if (gArgs.GetChainTypeString() != "main") { + mBox.setWindowIcon(NetworkStyle::instantiate(gArgs.GetChainType())->getTrayAndWindowIcon()); + } + mBox.exec(); return EXIT_FAILURE; } diff --git a/src/qt/bitcoingui.cpp b/src/qt/bitcoingui.cpp index 2862dddb56a..bfefcca4e72 100644 --- a/src/qt/bitcoingui.cpp +++ b/src/qt/bitcoingui.cpp @@ -103,7 +103,7 @@ BitcoinGUI::BitcoinGUI(interfaces::Node& node, const PlatformStyle *_platformSty updateWindowTitle(); rpcConsole = new RPCConsole(node, _platformStyle, nullptr); - helpMessageDialog = new HelpMessageDialog(this, false); + helpMessageDialog = new HelpMessageDialog(this, false, m_network_style); #ifdef ENABLE_WALLET if(enableWallet) { @@ -920,7 +920,7 @@ void BitcoinGUI::aboutClicked() if(!clientModel) return; - auto dlg = new HelpMessageDialog(this, /*about=*/true); + auto dlg = new HelpMessageDialog(this, /*about=*/true, m_network_style); GUIUtil::ShowModalDialogAsynchronously(dlg); } diff --git a/src/qt/utilitydialog.cpp b/src/qt/utilitydialog.cpp index f43b9936284..8955cfeb0f4 100644 --- a/src/qt/utilitydialog.cpp +++ b/src/qt/utilitydialog.cpp @@ -12,6 +12,8 @@ #include +#include + #include #include #include @@ -29,7 +31,7 @@ #include /** "Help message" or "About" dialog box */ -HelpMessageDialog::HelpMessageDialog(QWidget *parent, bool about) : +HelpMessageDialog::HelpMessageDialog(QWidget* parent, bool about, const NetworkStyle* networkStyle) : QDialog(parent, GUIUtil::dialog_flags), ui(new Ui::HelpMessageDialog) { @@ -39,8 +41,8 @@ HelpMessageDialog::HelpMessageDialog(QWidget *parent, bool about) : if (about) { - setWindowTitle(tr("About %1").arg(PACKAGE_NAME)); - + this->setAboutWindowTitle(networkStyle); + this->setChainTypeIconOnAboutLogo(networkStyle); std::string licenseInfo = LicenseInfo(); /// HTML-format the license message from the core QString licenseInfoHTML = QString::fromStdString(LicenseInfo()); @@ -135,6 +137,21 @@ void HelpMessageDialog::on_okButton_accepted() close(); } +void HelpMessageDialog::setAboutWindowTitle(const NetworkStyle* networkStyle) +{ + QString aboutTitle = tr("About %1").arg(PACKAGE_NAME); + if (networkStyle && Params().GetChainType() != ChainType::MAIN) { + aboutTitle.append(" " + networkStyle->getTitleAddText()); + } + setWindowTitle(aboutTitle); +} + +void HelpMessageDialog::setChainTypeIconOnAboutLogo(const NetworkStyle* networkStyle) +{ + const QSize requiredSize(1024, 1024); + if (networkStyle) ui->aboutLogo->setPixmap(networkStyle->getAppIcon().pixmap(requiredSize)); +} + /** "Shutdown" window */ ShutdownWindow::ShutdownWindow(QWidget *parent, Qt::WindowFlags f): diff --git a/src/qt/utilitydialog.h b/src/qt/utilitydialog.h index d2a5d5f67f2..3aca4f114f6 100644 --- a/src/qt/utilitydialog.h +++ b/src/qt/utilitydialog.h @@ -8,6 +8,8 @@ #include #include +class NetworkStyle; + QT_BEGIN_NAMESPACE class QMainWindow; QT_END_NAMESPACE @@ -22,7 +24,7 @@ class HelpMessageDialog : public QDialog Q_OBJECT public: - explicit HelpMessageDialog(QWidget *parent, bool about); + explicit HelpMessageDialog(QWidget* parent, bool about, const NetworkStyle* networkStyle = nullptr); ~HelpMessageDialog(); void printToConsole(); @@ -31,6 +33,8 @@ class HelpMessageDialog : public QDialog private: Ui::HelpMessageDialog *ui; QString text; + void setAboutWindowTitle(const NetworkStyle* networkStyle = nullptr); + void setChainTypeIconOnAboutLogo(const NetworkStyle* networkStyle = nullptr); private Q_SLOTS: void on_okButton_accepted();