Browse Source
Mainly cleanups: Gets rid of isTestNet everywhere, by keeping track of network-specific theming in a central place. Also makes GUI no longer dependent on the network ID enumeration, which alleviates concerns about #4802.0.10
Wladimir J. van der Laan
10 years ago
committed by
jtimon
8 changed files with 125 additions and 75 deletions
@ -0,0 +1,47 @@
@@ -0,0 +1,47 @@
|
||||
// Copyright (c) 2014 The Bitcoin developers
|
||||
// Distributed under the MIT software license, see the accompanying
|
||||
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
||||
|
||||
#include "networkstyle.h" |
||||
|
||||
#include "guiconstants.h" |
||||
|
||||
#include <QApplication> |
||||
|
||||
static const struct { |
||||
const char *networkId; |
||||
const char *appName; |
||||
const char *appIcon; |
||||
const char *titleAddText; |
||||
const char *splashImage; |
||||
} network_styles[] = { |
||||
{"main", QAPP_APP_NAME_DEFAULT, ":/icons/bitcoin", "", ":/images/splash"}, |
||||
{"test", QAPP_APP_NAME_TESTNET, ":/icons/bitcoin_testnet", QT_TRANSLATE_NOOP("SplashScreen", "[testnet]"), ":/images/splash_testnet"}, |
||||
{"regtest", QAPP_APP_NAME_TESTNET, ":/icons/bitcoin_testnet", "[regtest]", ":/images/splash_testnet"} |
||||
}; |
||||
static const unsigned network_styles_count = sizeof(network_styles)/sizeof(*network_styles); |
||||
|
||||
// titleAddText needs to be const char* for tr()
|
||||
NetworkStyle::NetworkStyle(const QString &appName, const QString &appIcon, const char *titleAddText, const QString &splashImage): |
||||
appName(appName), |
||||
appIcon(appIcon), |
||||
titleAddText(qApp->translate("SplashScreen", titleAddText)), |
||||
splashImage(splashImage) |
||||
{ |
||||
} |
||||
|
||||
const NetworkStyle *NetworkStyle::instantiate(const QString &networkId) |
||||
{ |
||||
for (unsigned x=0; x<network_styles_count; ++x) |
||||
{ |
||||
if (networkId == network_styles[x].networkId) |
||||
{ |
||||
return new NetworkStyle( |
||||
network_styles[x].appName, |
||||
network_styles[x].appIcon, |
||||
network_styles[x].titleAddText, |
||||
network_styles[x].splashImage); |
||||
} |
||||
} |
||||
return 0; |
||||
} |
@ -0,0 +1,33 @@
@@ -0,0 +1,33 @@
|
||||
// Copyright (c) 2014 The Bitcoin developers
|
||||
// Distributed under the MIT software license, see the accompanying
|
||||
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
||||
|
||||
#ifndef H_NETWORKSTYLE |
||||
#define H_NETWORKSTYLE |
||||
|
||||
#include <QIcon> |
||||
#include <QPixmap> |
||||
#include <QString> |
||||
|
||||
/* Coin network-specific GUI style information */ |
||||
class NetworkStyle |
||||
{ |
||||
public: |
||||
/** Get style associated with provided BIP70 network id, or 0 if not known */ |
||||
static const NetworkStyle *instantiate(const QString &networkId); |
||||
|
||||
const QString &getAppName() const { return appName; } |
||||
const QIcon &getAppIcon() const { return appIcon; } |
||||
const QString &getTitleAddText() const { return titleAddText; } |
||||
const QPixmap &getSplashImage() const { return splashImage; } |
||||
|
||||
private: |
||||
NetworkStyle(const QString &appName, const QString &appIcon, const char *titleAddText, const QString &splashImage); |
||||
|
||||
QString appName; |
||||
QIcon appIcon; |
||||
QString titleAddText; |
||||
QPixmap splashImage; |
||||
}; |
||||
|
||||
#endif // H_NETWORKSTYLE
|
Loading…
Reference in new issue