qt: Introduce PlatformStyle
Introduce a PlatformStyle to handle platform-specific customization of the UI. This replaces 'scicon', as well as #ifdefs to determine whether to place icons on buttons. The selected PlatformStyle defaults to the platform that the application was compiled on, but can be overridden from the command line with `-uiplatform=<x>`. Also fixes the warning from #6328.
This commit is contained in:
parent
1369d699b6
commit
eec7757445
37 changed files with 462 additions and 318 deletions
|
@ -185,13 +185,13 @@ BITCOIN_QT_H = \
|
||||||
qt/paymentrequestplus.h \
|
qt/paymentrequestplus.h \
|
||||||
qt/paymentserver.h \
|
qt/paymentserver.h \
|
||||||
qt/peertablemodel.h \
|
qt/peertablemodel.h \
|
||||||
|
qt/platformstyle.h \
|
||||||
qt/qvalidatedlineedit.h \
|
qt/qvalidatedlineedit.h \
|
||||||
qt/qvaluecombobox.h \
|
qt/qvaluecombobox.h \
|
||||||
qt/receivecoinsdialog.h \
|
qt/receivecoinsdialog.h \
|
||||||
qt/receiverequestdialog.h \
|
qt/receiverequestdialog.h \
|
||||||
qt/recentrequeststablemodel.h \
|
qt/recentrequeststablemodel.h \
|
||||||
qt/rpcconsole.h \
|
qt/rpcconsole.h \
|
||||||
qt/scicon.h \
|
|
||||||
qt/sendcoinsdialog.h \
|
qt/sendcoinsdialog.h \
|
||||||
qt/sendcoinsentry.h \
|
qt/sendcoinsentry.h \
|
||||||
qt/signverifymessagedialog.h \
|
qt/signverifymessagedialog.h \
|
||||||
|
@ -273,10 +273,10 @@ BITCOIN_QT_CPP = \
|
||||||
qt/optionsdialog.cpp \
|
qt/optionsdialog.cpp \
|
||||||
qt/optionsmodel.cpp \
|
qt/optionsmodel.cpp \
|
||||||
qt/peertablemodel.cpp \
|
qt/peertablemodel.cpp \
|
||||||
|
qt/platformstyle.cpp \
|
||||||
qt/qvalidatedlineedit.cpp \
|
qt/qvalidatedlineedit.cpp \
|
||||||
qt/qvaluecombobox.cpp \
|
qt/qvaluecombobox.cpp \
|
||||||
qt/rpcconsole.cpp \
|
qt/rpcconsole.cpp \
|
||||||
qt/scicon.cpp \
|
|
||||||
qt/splashscreen.cpp \
|
qt/splashscreen.cpp \
|
||||||
qt/trafficgraphwidget.cpp \
|
qt/trafficgraphwidget.cpp \
|
||||||
qt/utilitydialog.cpp
|
qt/utilitydialog.cpp
|
||||||
|
|
|
@ -441,6 +441,9 @@ std::string HelpMessage(HelpMessageMode mode)
|
||||||
strUsage += HelpMessageOpt("-min", _("Start minimized"));
|
strUsage += HelpMessageOpt("-min", _("Start minimized"));
|
||||||
strUsage += HelpMessageOpt("-rootcertificates=<file>", _("Set SSL root certificates for payment request (default: -system-)"));
|
strUsage += HelpMessageOpt("-rootcertificates=<file>", _("Set SSL root certificates for payment request (default: -system-)"));
|
||||||
strUsage += HelpMessageOpt("-splash", _("Show splash screen on startup (default: 1)"));
|
strUsage += HelpMessageOpt("-splash", _("Show splash screen on startup (default: 1)"));
|
||||||
|
if (showDebug) {
|
||||||
|
strUsage += HelpMessageOpt("-uiplatform", "Select platform to customize UI for (one of windows, macosx, other; default: platform compiled on)");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return strUsage;
|
return strUsage;
|
||||||
|
|
|
@ -14,14 +14,14 @@
|
||||||
#include "csvmodelwriter.h"
|
#include "csvmodelwriter.h"
|
||||||
#include "editaddressdialog.h"
|
#include "editaddressdialog.h"
|
||||||
#include "guiutil.h"
|
#include "guiutil.h"
|
||||||
#include "scicon.h"
|
#include "platformstyle.h"
|
||||||
|
|
||||||
#include <QIcon>
|
#include <QIcon>
|
||||||
#include <QMenu>
|
#include <QMenu>
|
||||||
#include <QMessageBox>
|
#include <QMessageBox>
|
||||||
#include <QSortFilterProxyModel>
|
#include <QSortFilterProxyModel>
|
||||||
|
|
||||||
AddressBookPage::AddressBookPage(Mode mode, Tabs tab, QWidget *parent) :
|
AddressBookPage::AddressBookPage(const PlatformStyle *platformStyle, Mode mode, Tabs tab, QWidget *parent) :
|
||||||
QDialog(parent),
|
QDialog(parent),
|
||||||
ui(new Ui::AddressBookPage),
|
ui(new Ui::AddressBookPage),
|
||||||
model(0),
|
model(0),
|
||||||
|
@ -30,17 +30,17 @@ AddressBookPage::AddressBookPage(Mode mode, Tabs tab, QWidget *parent) :
|
||||||
{
|
{
|
||||||
ui->setupUi(this);
|
ui->setupUi(this);
|
||||||
|
|
||||||
#ifdef Q_OS_MAC // Icons on push buttons are very uncommon on Mac
|
if (!platformStyle->getImagesOnButtons()) {
|
||||||
ui->newAddress->setIcon(QIcon());
|
ui->newAddress->setIcon(QIcon());
|
||||||
ui->copyAddress->setIcon(QIcon());
|
ui->copyAddress->setIcon(QIcon());
|
||||||
ui->deleteAddress->setIcon(QIcon());
|
ui->deleteAddress->setIcon(QIcon());
|
||||||
ui->exportButton->setIcon(QIcon());
|
ui->exportButton->setIcon(QIcon());
|
||||||
#else
|
} else {
|
||||||
ui->newAddress->setIcon(SingleColorIcon(":/icons/add"));
|
ui->newAddress->setIcon(platformStyle->SingleColorIcon(":/icons/add"));
|
||||||
ui->copyAddress->setIcon(SingleColorIcon(":/icons/editcopy"));
|
ui->copyAddress->setIcon(platformStyle->SingleColorIcon(":/icons/editcopy"));
|
||||||
ui->deleteAddress->setIcon(SingleColorIcon(":/icons/remove"));
|
ui->deleteAddress->setIcon(platformStyle->SingleColorIcon(":/icons/remove"));
|
||||||
ui->exportButton->setIcon(SingleColorIcon(":/icons/export"));
|
ui->exportButton->setIcon(platformStyle->SingleColorIcon(":/icons/export"));
|
||||||
#endif
|
}
|
||||||
|
|
||||||
switch(mode)
|
switch(mode)
|
||||||
{
|
{
|
||||||
|
|
|
@ -9,6 +9,7 @@
|
||||||
|
|
||||||
class AddressTableModel;
|
class AddressTableModel;
|
||||||
class OptionsModel;
|
class OptionsModel;
|
||||||
|
class PlatformStyle;
|
||||||
|
|
||||||
namespace Ui {
|
namespace Ui {
|
||||||
class AddressBookPage;
|
class AddressBookPage;
|
||||||
|
@ -39,7 +40,7 @@ public:
|
||||||
ForEditing /**< Open address book for editing */
|
ForEditing /**< Open address book for editing */
|
||||||
};
|
};
|
||||||
|
|
||||||
explicit AddressBookPage(Mode mode, Tabs tab, QWidget *parent);
|
explicit AddressBookPage(const PlatformStyle *platformStyle, Mode mode, Tabs tab, QWidget *parent);
|
||||||
~AddressBookPage();
|
~AddressBookPage();
|
||||||
|
|
||||||
void setModel(AddressTableModel *model);
|
void setModel(AddressTableModel *model);
|
||||||
|
|
|
@ -15,6 +15,7 @@
|
||||||
#include "intro.h"
|
#include "intro.h"
|
||||||
#include "networkstyle.h"
|
#include "networkstyle.h"
|
||||||
#include "optionsmodel.h"
|
#include "optionsmodel.h"
|
||||||
|
#include "platformstyle.h"
|
||||||
#include "splashscreen.h"
|
#include "splashscreen.h"
|
||||||
#include "utilitydialog.h"
|
#include "utilitydialog.h"
|
||||||
#include "winshutdownmonitor.h"
|
#include "winshutdownmonitor.h"
|
||||||
|
@ -241,6 +242,7 @@ private:
|
||||||
WalletModel *walletModel;
|
WalletModel *walletModel;
|
||||||
#endif
|
#endif
|
||||||
int returnValue;
|
int returnValue;
|
||||||
|
const PlatformStyle *platformStyle;
|
||||||
|
|
||||||
void startThread();
|
void startThread();
|
||||||
};
|
};
|
||||||
|
@ -310,6 +312,22 @@ BitcoinApplication::BitcoinApplication(int &argc, char **argv):
|
||||||
returnValue(0)
|
returnValue(0)
|
||||||
{
|
{
|
||||||
setQuitOnLastWindowClosed(false);
|
setQuitOnLastWindowClosed(false);
|
||||||
|
|
||||||
|
// UI per-platform customization
|
||||||
|
// This must be done inside the BitcoinApplication constructor, or after it, because
|
||||||
|
// PlatformStyle::instantiate requires a QApplication
|
||||||
|
#if defined(Q_OS_MAC)
|
||||||
|
std::string platformName = "macosx";
|
||||||
|
#elif defined(Q_OS_WIN)
|
||||||
|
std::string platformName = "windows";
|
||||||
|
#else
|
||||||
|
std::string platformName = "other";
|
||||||
|
#endif
|
||||||
|
platformName = GetArg("-uiplatform", platformName);
|
||||||
|
platformStyle = PlatformStyle::instantiate(QString::fromStdString(platformName));
|
||||||
|
if (!platformStyle) // Fall back to "other" if specified name not found
|
||||||
|
platformStyle = PlatformStyle::instantiate("other");
|
||||||
|
assert(platformStyle);
|
||||||
}
|
}
|
||||||
|
|
||||||
BitcoinApplication::~BitcoinApplication()
|
BitcoinApplication::~BitcoinApplication()
|
||||||
|
@ -330,6 +348,8 @@ BitcoinApplication::~BitcoinApplication()
|
||||||
#endif
|
#endif
|
||||||
delete optionsModel;
|
delete optionsModel;
|
||||||
optionsModel = 0;
|
optionsModel = 0;
|
||||||
|
delete platformStyle;
|
||||||
|
platformStyle = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef ENABLE_WALLET
|
#ifdef ENABLE_WALLET
|
||||||
|
@ -346,7 +366,7 @@ void BitcoinApplication::createOptionsModel()
|
||||||
|
|
||||||
void BitcoinApplication::createWindow(const NetworkStyle *networkStyle)
|
void BitcoinApplication::createWindow(const NetworkStyle *networkStyle)
|
||||||
{
|
{
|
||||||
window = new BitcoinGUI(networkStyle, 0);
|
window = new BitcoinGUI(platformStyle, networkStyle, 0);
|
||||||
|
|
||||||
pollShutdownTimer = new QTimer(window);
|
pollShutdownTimer = new QTimer(window);
|
||||||
connect(pollShutdownTimer, SIGNAL(timeout()), window, SLOT(detectShutdown()));
|
connect(pollShutdownTimer, SIGNAL(timeout()), window, SLOT(detectShutdown()));
|
||||||
|
@ -421,6 +441,8 @@ void BitcoinApplication::initializeResult(int retval)
|
||||||
returnValue = retval ? 0 : 1;
|
returnValue = retval ? 0 : 1;
|
||||||
if(retval)
|
if(retval)
|
||||||
{
|
{
|
||||||
|
// Log this only after AppInit2 finishes, as then logging setup is guaranteed complete
|
||||||
|
qWarning() << "Platform customization:" << platformStyle->getName();
|
||||||
#ifdef ENABLE_WALLET
|
#ifdef ENABLE_WALLET
|
||||||
PaymentServer::LoadRootCAs();
|
PaymentServer::LoadRootCAs();
|
||||||
paymentServer->setOptionsModel(optionsModel);
|
paymentServer->setOptionsModel(optionsModel);
|
||||||
|
@ -432,7 +454,7 @@ void BitcoinApplication::initializeResult(int retval)
|
||||||
#ifdef ENABLE_WALLET
|
#ifdef ENABLE_WALLET
|
||||||
if(pwalletMain)
|
if(pwalletMain)
|
||||||
{
|
{
|
||||||
walletModel = new WalletModel(pwalletMain, optionsModel);
|
walletModel = new WalletModel(platformStyle, pwalletMain, optionsModel);
|
||||||
|
|
||||||
window->addWallet(BitcoinGUI::DEFAULT_WALLET, walletModel);
|
window->addWallet(BitcoinGUI::DEFAULT_WALLET, walletModel);
|
||||||
window->setCurrentWallet(BitcoinGUI::DEFAULT_WALLET);
|
window->setCurrentWallet(BitcoinGUI::DEFAULT_WALLET);
|
||||||
|
|
|
@ -13,8 +13,8 @@
|
||||||
#include "openuridialog.h"
|
#include "openuridialog.h"
|
||||||
#include "optionsdialog.h"
|
#include "optionsdialog.h"
|
||||||
#include "optionsmodel.h"
|
#include "optionsmodel.h"
|
||||||
|
#include "platformstyle.h"
|
||||||
#include "rpcconsole.h"
|
#include "rpcconsole.h"
|
||||||
#include "scicon.h"
|
|
||||||
#include "utilitydialog.h"
|
#include "utilitydialog.h"
|
||||||
|
|
||||||
#ifdef ENABLE_WALLET
|
#ifdef ENABLE_WALLET
|
||||||
|
@ -60,7 +60,7 @@
|
||||||
|
|
||||||
const QString BitcoinGUI::DEFAULT_WALLET = "~Default";
|
const QString BitcoinGUI::DEFAULT_WALLET = "~Default";
|
||||||
|
|
||||||
BitcoinGUI::BitcoinGUI(const NetworkStyle *networkStyle, QWidget *parent) :
|
BitcoinGUI::BitcoinGUI(const PlatformStyle *platformStyle, const NetworkStyle *networkStyle, QWidget *parent) :
|
||||||
QMainWindow(parent),
|
QMainWindow(parent),
|
||||||
clientModel(0),
|
clientModel(0),
|
||||||
walletFrame(0),
|
walletFrame(0),
|
||||||
|
@ -98,7 +98,8 @@ BitcoinGUI::BitcoinGUI(const NetworkStyle *networkStyle, QWidget *parent) :
|
||||||
notificator(0),
|
notificator(0),
|
||||||
rpcConsole(0),
|
rpcConsole(0),
|
||||||
prevBlocks(0),
|
prevBlocks(0),
|
||||||
spinnerFrame(0)
|
spinnerFrame(0),
|
||||||
|
platformStyle(platformStyle)
|
||||||
{
|
{
|
||||||
GUIUtil::restoreWindowGeometry("nWindow", QSize(850, 550), this);
|
GUIUtil::restoreWindowGeometry("nWindow", QSize(850, 550), this);
|
||||||
|
|
||||||
|
@ -130,12 +131,12 @@ BitcoinGUI::BitcoinGUI(const NetworkStyle *networkStyle, QWidget *parent) :
|
||||||
setUnifiedTitleAndToolBarOnMac(true);
|
setUnifiedTitleAndToolBarOnMac(true);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
rpcConsole = new RPCConsole(0);
|
rpcConsole = new RPCConsole(platformStyle, 0);
|
||||||
#ifdef ENABLE_WALLET
|
#ifdef ENABLE_WALLET
|
||||||
if(enableWallet)
|
if(enableWallet)
|
||||||
{
|
{
|
||||||
/** Create wallet frame and make it the central widget */
|
/** Create wallet frame and make it the central widget */
|
||||||
walletFrame = new WalletFrame(this);
|
walletFrame = new WalletFrame(platformStyle, this);
|
||||||
setCentralWidget(walletFrame);
|
setCentralWidget(walletFrame);
|
||||||
} else
|
} else
|
||||||
#endif // ENABLE_WALLET
|
#endif // ENABLE_WALLET
|
||||||
|
@ -175,7 +176,7 @@ BitcoinGUI::BitcoinGUI(const NetworkStyle *networkStyle, QWidget *parent) :
|
||||||
QHBoxLayout *frameBlocksLayout = new QHBoxLayout(frameBlocks);
|
QHBoxLayout *frameBlocksLayout = new QHBoxLayout(frameBlocks);
|
||||||
frameBlocksLayout->setContentsMargins(3,0,3,0);
|
frameBlocksLayout->setContentsMargins(3,0,3,0);
|
||||||
frameBlocksLayout->setSpacing(3);
|
frameBlocksLayout->setSpacing(3);
|
||||||
unitDisplayControl = new UnitDisplayStatusBarControl();
|
unitDisplayControl = new UnitDisplayStatusBarControl(platformStyle);
|
||||||
labelEncryptionIcon = new QLabel();
|
labelEncryptionIcon = new QLabel();
|
||||||
labelConnectionsIcon = new QLabel();
|
labelConnectionsIcon = new QLabel();
|
||||||
labelBlocksIcon = new QLabel();
|
labelBlocksIcon = new QLabel();
|
||||||
|
@ -247,36 +248,36 @@ void BitcoinGUI::createActions()
|
||||||
{
|
{
|
||||||
QActionGroup *tabGroup = new QActionGroup(this);
|
QActionGroup *tabGroup = new QActionGroup(this);
|
||||||
|
|
||||||
overviewAction = new QAction(SingleColorIcon(":/icons/overview"), tr("&Overview"), this);
|
overviewAction = new QAction(platformStyle->SingleColorIcon(":/icons/overview"), tr("&Overview"), this);
|
||||||
overviewAction->setStatusTip(tr("Show general overview of wallet"));
|
overviewAction->setStatusTip(tr("Show general overview of wallet"));
|
||||||
overviewAction->setToolTip(overviewAction->statusTip());
|
overviewAction->setToolTip(overviewAction->statusTip());
|
||||||
overviewAction->setCheckable(true);
|
overviewAction->setCheckable(true);
|
||||||
overviewAction->setShortcut(QKeySequence(Qt::ALT + Qt::Key_1));
|
overviewAction->setShortcut(QKeySequence(Qt::ALT + Qt::Key_1));
|
||||||
tabGroup->addAction(overviewAction);
|
tabGroup->addAction(overviewAction);
|
||||||
|
|
||||||
sendCoinsAction = new QAction(SingleColorIcon(":/icons/send"), tr("&Send"), this);
|
sendCoinsAction = new QAction(platformStyle->SingleColorIcon(":/icons/send"), tr("&Send"), this);
|
||||||
sendCoinsAction->setStatusTip(tr("Send coins to a Bitcoin address"));
|
sendCoinsAction->setStatusTip(tr("Send coins to a Bitcoin address"));
|
||||||
sendCoinsAction->setToolTip(sendCoinsAction->statusTip());
|
sendCoinsAction->setToolTip(sendCoinsAction->statusTip());
|
||||||
sendCoinsAction->setCheckable(true);
|
sendCoinsAction->setCheckable(true);
|
||||||
sendCoinsAction->setShortcut(QKeySequence(Qt::ALT + Qt::Key_2));
|
sendCoinsAction->setShortcut(QKeySequence(Qt::ALT + Qt::Key_2));
|
||||||
tabGroup->addAction(sendCoinsAction);
|
tabGroup->addAction(sendCoinsAction);
|
||||||
|
|
||||||
sendCoinsMenuAction = new QAction(TextColorIcon(":/icons/send"), sendCoinsAction->text(), this);
|
sendCoinsMenuAction = new QAction(platformStyle->TextColorIcon(":/icons/send"), sendCoinsAction->text(), this);
|
||||||
sendCoinsMenuAction->setStatusTip(sendCoinsAction->statusTip());
|
sendCoinsMenuAction->setStatusTip(sendCoinsAction->statusTip());
|
||||||
sendCoinsMenuAction->setToolTip(sendCoinsMenuAction->statusTip());
|
sendCoinsMenuAction->setToolTip(sendCoinsMenuAction->statusTip());
|
||||||
|
|
||||||
receiveCoinsAction = new QAction(SingleColorIcon(":/icons/receiving_addresses"), tr("&Receive"), this);
|
receiveCoinsAction = new QAction(platformStyle->SingleColorIcon(":/icons/receiving_addresses"), tr("&Receive"), this);
|
||||||
receiveCoinsAction->setStatusTip(tr("Request payments (generates QR codes and bitcoin: URIs)"));
|
receiveCoinsAction->setStatusTip(tr("Request payments (generates QR codes and bitcoin: URIs)"));
|
||||||
receiveCoinsAction->setToolTip(receiveCoinsAction->statusTip());
|
receiveCoinsAction->setToolTip(receiveCoinsAction->statusTip());
|
||||||
receiveCoinsAction->setCheckable(true);
|
receiveCoinsAction->setCheckable(true);
|
||||||
receiveCoinsAction->setShortcut(QKeySequence(Qt::ALT + Qt::Key_3));
|
receiveCoinsAction->setShortcut(QKeySequence(Qt::ALT + Qt::Key_3));
|
||||||
tabGroup->addAction(receiveCoinsAction);
|
tabGroup->addAction(receiveCoinsAction);
|
||||||
|
|
||||||
receiveCoinsMenuAction = new QAction(TextColorIcon(":/icons/receiving_addresses"), receiveCoinsAction->text(), this);
|
receiveCoinsMenuAction = new QAction(platformStyle->TextColorIcon(":/icons/receiving_addresses"), receiveCoinsAction->text(), this);
|
||||||
receiveCoinsMenuAction->setStatusTip(receiveCoinsAction->statusTip());
|
receiveCoinsMenuAction->setStatusTip(receiveCoinsAction->statusTip());
|
||||||
receiveCoinsMenuAction->setToolTip(receiveCoinsMenuAction->statusTip());
|
receiveCoinsMenuAction->setToolTip(receiveCoinsMenuAction->statusTip());
|
||||||
|
|
||||||
historyAction = new QAction(SingleColorIcon(":/icons/history"), tr("&Transactions"), this);
|
historyAction = new QAction(platformStyle->SingleColorIcon(":/icons/history"), tr("&Transactions"), this);
|
||||||
historyAction->setStatusTip(tr("Browse transaction history"));
|
historyAction->setStatusTip(tr("Browse transaction history"));
|
||||||
historyAction->setToolTip(historyAction->statusTip());
|
historyAction->setToolTip(historyAction->statusTip());
|
||||||
historyAction->setCheckable(true);
|
historyAction->setCheckable(true);
|
||||||
|
@ -300,46 +301,46 @@ void BitcoinGUI::createActions()
|
||||||
connect(historyAction, SIGNAL(triggered()), this, SLOT(gotoHistoryPage()));
|
connect(historyAction, SIGNAL(triggered()), this, SLOT(gotoHistoryPage()));
|
||||||
#endif // ENABLE_WALLET
|
#endif // ENABLE_WALLET
|
||||||
|
|
||||||
quitAction = new QAction(TextColorIcon(":/icons/quit"), tr("E&xit"), this);
|
quitAction = new QAction(platformStyle->TextColorIcon(":/icons/quit"), tr("E&xit"), this);
|
||||||
quitAction->setStatusTip(tr("Quit application"));
|
quitAction->setStatusTip(tr("Quit application"));
|
||||||
quitAction->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_Q));
|
quitAction->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_Q));
|
||||||
quitAction->setMenuRole(QAction::QuitRole);
|
quitAction->setMenuRole(QAction::QuitRole);
|
||||||
aboutAction = new QAction(TextColorIcon(":/icons/about"), tr("&About Bitcoin Core"), this);
|
aboutAction = new QAction(platformStyle->TextColorIcon(":/icons/about"), tr("&About Bitcoin Core"), this);
|
||||||
aboutAction->setStatusTip(tr("Show information about Bitcoin Core"));
|
aboutAction->setStatusTip(tr("Show information about Bitcoin Core"));
|
||||||
aboutAction->setMenuRole(QAction::AboutRole);
|
aboutAction->setMenuRole(QAction::AboutRole);
|
||||||
aboutQtAction = new QAction(TextColorIcon(":/icons/about_qt"), tr("About &Qt"), this);
|
aboutQtAction = new QAction(platformStyle->TextColorIcon(":/icons/about_qt"), tr("About &Qt"), this);
|
||||||
aboutQtAction->setStatusTip(tr("Show information about Qt"));
|
aboutQtAction->setStatusTip(tr("Show information about Qt"));
|
||||||
aboutQtAction->setMenuRole(QAction::AboutQtRole);
|
aboutQtAction->setMenuRole(QAction::AboutQtRole);
|
||||||
optionsAction = new QAction(TextColorIcon(":/icons/options"), tr("&Options..."), this);
|
optionsAction = new QAction(platformStyle->TextColorIcon(":/icons/options"), tr("&Options..."), this);
|
||||||
optionsAction->setStatusTip(tr("Modify configuration options for Bitcoin Core"));
|
optionsAction->setStatusTip(tr("Modify configuration options for Bitcoin Core"));
|
||||||
optionsAction->setMenuRole(QAction::PreferencesRole);
|
optionsAction->setMenuRole(QAction::PreferencesRole);
|
||||||
toggleHideAction = new QAction(TextColorIcon(":/icons/about"), tr("&Show / Hide"), this);
|
toggleHideAction = new QAction(platformStyle->TextColorIcon(":/icons/about"), tr("&Show / Hide"), this);
|
||||||
toggleHideAction->setStatusTip(tr("Show or hide the main Window"));
|
toggleHideAction->setStatusTip(tr("Show or hide the main Window"));
|
||||||
|
|
||||||
encryptWalletAction = new QAction(TextColorIcon(":/icons/lock_closed"), tr("&Encrypt Wallet..."), this);
|
encryptWalletAction = new QAction(platformStyle->TextColorIcon(":/icons/lock_closed"), tr("&Encrypt Wallet..."), this);
|
||||||
encryptWalletAction->setStatusTip(tr("Encrypt the private keys that belong to your wallet"));
|
encryptWalletAction->setStatusTip(tr("Encrypt the private keys that belong to your wallet"));
|
||||||
encryptWalletAction->setCheckable(true);
|
encryptWalletAction->setCheckable(true);
|
||||||
backupWalletAction = new QAction(TextColorIcon(":/icons/filesave"), tr("&Backup Wallet..."), this);
|
backupWalletAction = new QAction(platformStyle->TextColorIcon(":/icons/filesave"), tr("&Backup Wallet..."), this);
|
||||||
backupWalletAction->setStatusTip(tr("Backup wallet to another location"));
|
backupWalletAction->setStatusTip(tr("Backup wallet to another location"));
|
||||||
changePassphraseAction = new QAction(TextColorIcon(":/icons/key"), tr("&Change Passphrase..."), this);
|
changePassphraseAction = new QAction(platformStyle->TextColorIcon(":/icons/key"), tr("&Change Passphrase..."), this);
|
||||||
changePassphraseAction->setStatusTip(tr("Change the passphrase used for wallet encryption"));
|
changePassphraseAction->setStatusTip(tr("Change the passphrase used for wallet encryption"));
|
||||||
signMessageAction = new QAction(TextColorIcon(":/icons/edit"), tr("Sign &message..."), this);
|
signMessageAction = new QAction(platformStyle->TextColorIcon(":/icons/edit"), tr("Sign &message..."), this);
|
||||||
signMessageAction->setStatusTip(tr("Sign messages with your Bitcoin addresses to prove you own them"));
|
signMessageAction->setStatusTip(tr("Sign messages with your Bitcoin addresses to prove you own them"));
|
||||||
verifyMessageAction = new QAction(TextColorIcon(":/icons/verify"), tr("&Verify message..."), this);
|
verifyMessageAction = new QAction(platformStyle->TextColorIcon(":/icons/verify"), tr("&Verify message..."), this);
|
||||||
verifyMessageAction->setStatusTip(tr("Verify messages to ensure they were signed with specified Bitcoin addresses"));
|
verifyMessageAction->setStatusTip(tr("Verify messages to ensure they were signed with specified Bitcoin addresses"));
|
||||||
|
|
||||||
openRPCConsoleAction = new QAction(TextColorIcon(":/icons/debugwindow"), tr("&Debug window"), this);
|
openRPCConsoleAction = new QAction(platformStyle->TextColorIcon(":/icons/debugwindow"), tr("&Debug window"), this);
|
||||||
openRPCConsoleAction->setStatusTip(tr("Open debugging and diagnostic console"));
|
openRPCConsoleAction->setStatusTip(tr("Open debugging and diagnostic console"));
|
||||||
|
|
||||||
usedSendingAddressesAction = new QAction(TextColorIcon(":/icons/address-book"), tr("&Sending addresses..."), this);
|
usedSendingAddressesAction = new QAction(platformStyle->TextColorIcon(":/icons/address-book"), tr("&Sending addresses..."), this);
|
||||||
usedSendingAddressesAction->setStatusTip(tr("Show the list of used sending addresses and labels"));
|
usedSendingAddressesAction->setStatusTip(tr("Show the list of used sending addresses and labels"));
|
||||||
usedReceivingAddressesAction = new QAction(TextColorIcon(":/icons/address-book"), tr("&Receiving addresses..."), this);
|
usedReceivingAddressesAction = new QAction(platformStyle->TextColorIcon(":/icons/address-book"), tr("&Receiving addresses..."), this);
|
||||||
usedReceivingAddressesAction->setStatusTip(tr("Show the list of used receiving addresses and labels"));
|
usedReceivingAddressesAction->setStatusTip(tr("Show the list of used receiving addresses and labels"));
|
||||||
|
|
||||||
openAction = new QAction(TextColorIcon(":/icons/open"), tr("Open &URI..."), this);
|
openAction = new QAction(platformStyle->TextColorIcon(":/icons/open"), tr("Open &URI..."), this);
|
||||||
openAction->setStatusTip(tr("Open a bitcoin: URI or payment request"));
|
openAction->setStatusTip(tr("Open a bitcoin: URI or payment request"));
|
||||||
|
|
||||||
showHelpMessageAction = new QAction(TextColorIcon(":/icons/info"), tr("&Command-line options"), this);
|
showHelpMessageAction = new QAction(platformStyle->TextColorIcon(":/icons/info"), tr("&Command-line options"), this);
|
||||||
showHelpMessageAction->setMenuRole(QAction::NoRole);
|
showHelpMessageAction->setMenuRole(QAction::NoRole);
|
||||||
showHelpMessageAction->setStatusTip(tr("Show the Bitcoin Core help message to get a list with possible Bitcoin command-line options"));
|
showHelpMessageAction->setStatusTip(tr("Show the Bitcoin Core help message to get a list with possible Bitcoin command-line options"));
|
||||||
|
|
||||||
|
@ -650,7 +651,7 @@ void BitcoinGUI::setNumConnections(int count)
|
||||||
case 7: case 8: case 9: icon = ":/icons/connect_3"; break;
|
case 7: case 8: case 9: icon = ":/icons/connect_3"; break;
|
||||||
default: icon = ":/icons/connect_4"; break;
|
default: icon = ":/icons/connect_4"; break;
|
||||||
}
|
}
|
||||||
labelConnectionsIcon->setPixmap(SingleColorIcon(icon).pixmap(STATUSBAR_ICONSIZE,STATUSBAR_ICONSIZE));
|
labelConnectionsIcon->setPixmap(platformStyle->SingleColorIcon(icon).pixmap(STATUSBAR_ICONSIZE,STATUSBAR_ICONSIZE));
|
||||||
labelConnectionsIcon->setToolTip(tr("%n active connection(s) to Bitcoin network", "", count));
|
labelConnectionsIcon->setToolTip(tr("%n active connection(s) to Bitcoin network", "", count));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -691,7 +692,7 @@ void BitcoinGUI::setNumBlocks(int count, const QDateTime& blockDate)
|
||||||
if(secs < 90*60)
|
if(secs < 90*60)
|
||||||
{
|
{
|
||||||
tooltip = tr("Up to date") + QString(".<br>") + tooltip;
|
tooltip = tr("Up to date") + QString(".<br>") + tooltip;
|
||||||
labelBlocksIcon->setPixmap(SingleColorIcon(":/icons/synced").pixmap(STATUSBAR_ICONSIZE, STATUSBAR_ICONSIZE));
|
labelBlocksIcon->setPixmap(platformStyle->SingleColorIcon(":/icons/synced").pixmap(STATUSBAR_ICONSIZE, STATUSBAR_ICONSIZE));
|
||||||
|
|
||||||
#ifdef ENABLE_WALLET
|
#ifdef ENABLE_WALLET
|
||||||
if(walletFrame)
|
if(walletFrame)
|
||||||
|
@ -737,7 +738,7 @@ void BitcoinGUI::setNumBlocks(int count, const QDateTime& blockDate)
|
||||||
tooltip = tr("Catching up...") + QString("<br>") + tooltip;
|
tooltip = tr("Catching up...") + QString("<br>") + tooltip;
|
||||||
if(count != prevBlocks)
|
if(count != prevBlocks)
|
||||||
{
|
{
|
||||||
labelBlocksIcon->setPixmap(SingleColorIcon(QString(
|
labelBlocksIcon->setPixmap(platformStyle->SingleColorIcon(QString(
|
||||||
":/movies/spinner-%1").arg(spinnerFrame, 3, 10, QChar('0')))
|
":/movies/spinner-%1").arg(spinnerFrame, 3, 10, QChar('0')))
|
||||||
.pixmap(STATUSBAR_ICONSIZE, STATUSBAR_ICONSIZE));
|
.pixmap(STATUSBAR_ICONSIZE, STATUSBAR_ICONSIZE));
|
||||||
spinnerFrame = (spinnerFrame + 1) % SPINNER_FRAMES;
|
spinnerFrame = (spinnerFrame + 1) % SPINNER_FRAMES;
|
||||||
|
@ -931,7 +932,7 @@ void BitcoinGUI::setEncryptionStatus(int status)
|
||||||
break;
|
break;
|
||||||
case WalletModel::Unlocked:
|
case WalletModel::Unlocked:
|
||||||
labelEncryptionIcon->show();
|
labelEncryptionIcon->show();
|
||||||
labelEncryptionIcon->setPixmap(SingleColorIcon(":/icons/lock_open").pixmap(STATUSBAR_ICONSIZE,STATUSBAR_ICONSIZE));
|
labelEncryptionIcon->setPixmap(platformStyle->SingleColorIcon(":/icons/lock_open").pixmap(STATUSBAR_ICONSIZE,STATUSBAR_ICONSIZE));
|
||||||
labelEncryptionIcon->setToolTip(tr("Wallet is <b>encrypted</b> and currently <b>unlocked</b>"));
|
labelEncryptionIcon->setToolTip(tr("Wallet is <b>encrypted</b> and currently <b>unlocked</b>"));
|
||||||
encryptWalletAction->setChecked(true);
|
encryptWalletAction->setChecked(true);
|
||||||
changePassphraseAction->setEnabled(true);
|
changePassphraseAction->setEnabled(true);
|
||||||
|
@ -939,7 +940,7 @@ void BitcoinGUI::setEncryptionStatus(int status)
|
||||||
break;
|
break;
|
||||||
case WalletModel::Locked:
|
case WalletModel::Locked:
|
||||||
labelEncryptionIcon->show();
|
labelEncryptionIcon->show();
|
||||||
labelEncryptionIcon->setPixmap(SingleColorIcon(":/icons/lock_closed").pixmap(STATUSBAR_ICONSIZE,STATUSBAR_ICONSIZE));
|
labelEncryptionIcon->setPixmap(platformStyle->SingleColorIcon(":/icons/lock_closed").pixmap(STATUSBAR_ICONSIZE,STATUSBAR_ICONSIZE));
|
||||||
labelEncryptionIcon->setToolTip(tr("Wallet is <b>encrypted</b> and currently <b>locked</b>"));
|
labelEncryptionIcon->setToolTip(tr("Wallet is <b>encrypted</b> and currently <b>locked</b>"));
|
||||||
encryptWalletAction->setChecked(true);
|
encryptWalletAction->setChecked(true);
|
||||||
changePassphraseAction->setEnabled(true);
|
changePassphraseAction->setEnabled(true);
|
||||||
|
@ -1041,7 +1042,7 @@ void BitcoinGUI::unsubscribeFromCoreSignals()
|
||||||
uiInterface.ThreadSafeMessageBox.disconnect(boost::bind(ThreadSafeMessageBox, this, _1, _2, _3));
|
uiInterface.ThreadSafeMessageBox.disconnect(boost::bind(ThreadSafeMessageBox, this, _1, _2, _3));
|
||||||
}
|
}
|
||||||
|
|
||||||
UnitDisplayStatusBarControl::UnitDisplayStatusBarControl() :
|
UnitDisplayStatusBarControl::UnitDisplayStatusBarControl(const PlatformStyle *platformStyle) :
|
||||||
optionsModel(0),
|
optionsModel(0),
|
||||||
menu(0)
|
menu(0)
|
||||||
{
|
{
|
||||||
|
@ -1056,7 +1057,7 @@ UnitDisplayStatusBarControl::UnitDisplayStatusBarControl() :
|
||||||
}
|
}
|
||||||
setMinimumSize(max_width, 0);
|
setMinimumSize(max_width, 0);
|
||||||
setAlignment(Qt::AlignRight | Qt::AlignVCenter);
|
setAlignment(Qt::AlignRight | Qt::AlignVCenter);
|
||||||
setStyleSheet(QString("QLabel { color : %1 }").arg(SingleColor().name()));
|
setStyleSheet(QString("QLabel { color : %1 }").arg(platformStyle->SingleColor().name()));
|
||||||
}
|
}
|
||||||
|
|
||||||
/** So that it responds to button clicks */
|
/** So that it responds to button clicks */
|
||||||
|
|
|
@ -22,6 +22,7 @@ class ClientModel;
|
||||||
class NetworkStyle;
|
class NetworkStyle;
|
||||||
class Notificator;
|
class Notificator;
|
||||||
class OptionsModel;
|
class OptionsModel;
|
||||||
|
class PlatformStyle;
|
||||||
class RPCConsole;
|
class RPCConsole;
|
||||||
class SendCoinsRecipient;
|
class SendCoinsRecipient;
|
||||||
class UnitDisplayStatusBarControl;
|
class UnitDisplayStatusBarControl;
|
||||||
|
@ -47,7 +48,7 @@ class BitcoinGUI : public QMainWindow
|
||||||
public:
|
public:
|
||||||
static const QString DEFAULT_WALLET;
|
static const QString DEFAULT_WALLET;
|
||||||
|
|
||||||
explicit BitcoinGUI(const NetworkStyle *networkStyle, QWidget *parent = 0);
|
explicit BitcoinGUI(const PlatformStyle *platformStyle, const NetworkStyle *networkStyle, QWidget *parent = 0);
|
||||||
~BitcoinGUI();
|
~BitcoinGUI();
|
||||||
|
|
||||||
/** Set the client model.
|
/** Set the client model.
|
||||||
|
@ -117,6 +118,8 @@ private:
|
||||||
int prevBlocks;
|
int prevBlocks;
|
||||||
int spinnerFrame;
|
int spinnerFrame;
|
||||||
|
|
||||||
|
const PlatformStyle *platformStyle;
|
||||||
|
|
||||||
/** Create the main UI actions. */
|
/** Create the main UI actions. */
|
||||||
void createActions();
|
void createActions();
|
||||||
/** Create the menu bar and sub-menus. */
|
/** Create the menu bar and sub-menus. */
|
||||||
|
@ -215,7 +218,7 @@ class UnitDisplayStatusBarControl : public QLabel
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
|
||||||
public:
|
public:
|
||||||
explicit UnitDisplayStatusBarControl();
|
explicit UnitDisplayStatusBarControl(const PlatformStyle *platformStyle);
|
||||||
/** Lets the control know about the Options Model (and its signals) */
|
/** Lets the control know about the Options Model (and its signals) */
|
||||||
void setOptionsModel(OptionsModel *optionsModel);
|
void setOptionsModel(OptionsModel *optionsModel);
|
||||||
|
|
||||||
|
|
|
@ -9,7 +9,7 @@
|
||||||
#include "bitcoinunits.h"
|
#include "bitcoinunits.h"
|
||||||
#include "guiutil.h"
|
#include "guiutil.h"
|
||||||
#include "optionsmodel.h"
|
#include "optionsmodel.h"
|
||||||
#include "scicon.h"
|
#include "platformstyle.h"
|
||||||
#include "txmempool.h"
|
#include "txmempool.h"
|
||||||
#include "walletmodel.h"
|
#include "walletmodel.h"
|
||||||
|
|
||||||
|
@ -35,10 +35,11 @@ QList<CAmount> CoinControlDialog::payAmounts;
|
||||||
CCoinControl* CoinControlDialog::coinControl = new CCoinControl();
|
CCoinControl* CoinControlDialog::coinControl = new CCoinControl();
|
||||||
bool CoinControlDialog::fSubtractFeeFromAmount = false;
|
bool CoinControlDialog::fSubtractFeeFromAmount = false;
|
||||||
|
|
||||||
CoinControlDialog::CoinControlDialog(QWidget *parent) :
|
CoinControlDialog::CoinControlDialog(const PlatformStyle *platformStyle, QWidget *parent) :
|
||||||
QDialog(parent),
|
QDialog(parent),
|
||||||
ui(new Ui::CoinControlDialog),
|
ui(new Ui::CoinControlDialog),
|
||||||
model(0)
|
model(0),
|
||||||
|
platformStyle(platformStyle)
|
||||||
{
|
{
|
||||||
ui->setupUi(this);
|
ui->setupUi(this);
|
||||||
|
|
||||||
|
@ -280,7 +281,7 @@ void CoinControlDialog::lockCoin()
|
||||||
COutPoint outpt(uint256S(contextMenuItem->text(COLUMN_TXHASH).toStdString()), contextMenuItem->text(COLUMN_VOUT_INDEX).toUInt());
|
COutPoint outpt(uint256S(contextMenuItem->text(COLUMN_TXHASH).toStdString()), contextMenuItem->text(COLUMN_VOUT_INDEX).toUInt());
|
||||||
model->lockCoin(outpt);
|
model->lockCoin(outpt);
|
||||||
contextMenuItem->setDisabled(true);
|
contextMenuItem->setDisabled(true);
|
||||||
contextMenuItem->setIcon(COLUMN_CHECKBOX, SingleColorIcon(":/icons/lock_closed"));
|
contextMenuItem->setIcon(COLUMN_CHECKBOX, platformStyle->SingleColorIcon(":/icons/lock_closed"));
|
||||||
updateLabelLocked();
|
updateLabelLocked();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -791,7 +792,7 @@ void CoinControlDialog::updateView()
|
||||||
COutPoint outpt(txhash, out.i);
|
COutPoint outpt(txhash, out.i);
|
||||||
coinControl->UnSelect(outpt); // just to be sure
|
coinControl->UnSelect(outpt); // just to be sure
|
||||||
itemOutput->setDisabled(true);
|
itemOutput->setDisabled(true);
|
||||||
itemOutput->setIcon(COLUMN_CHECKBOX, SingleColorIcon(":/icons/lock_closed"));
|
itemOutput->setIcon(COLUMN_CHECKBOX, platformStyle->SingleColorIcon(":/icons/lock_closed"));
|
||||||
}
|
}
|
||||||
|
|
||||||
// set checkbox
|
// set checkbox
|
||||||
|
|
|
@ -16,6 +16,7 @@
|
||||||
#include <QString>
|
#include <QString>
|
||||||
#include <QTreeWidgetItem>
|
#include <QTreeWidgetItem>
|
||||||
|
|
||||||
|
class PlatformStyle;
|
||||||
class WalletModel;
|
class WalletModel;
|
||||||
|
|
||||||
class CCoinControl;
|
class CCoinControl;
|
||||||
|
@ -32,7 +33,7 @@ class CoinControlDialog : public QDialog
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
|
||||||
public:
|
public:
|
||||||
explicit CoinControlDialog(QWidget *parent = 0);
|
explicit CoinControlDialog(const PlatformStyle *platformStyle, QWidget *parent = 0);
|
||||||
~CoinControlDialog();
|
~CoinControlDialog();
|
||||||
|
|
||||||
void setModel(WalletModel *model);
|
void setModel(WalletModel *model);
|
||||||
|
@ -57,6 +58,8 @@ private:
|
||||||
QAction *lockAction;
|
QAction *lockAction;
|
||||||
QAction *unlockAction;
|
QAction *unlockAction;
|
||||||
|
|
||||||
|
const PlatformStyle *platformStyle;
|
||||||
|
|
||||||
QString strPad(QString, int, QString);
|
QString strPad(QString, int, QString);
|
||||||
void sortView(int, Qt::SortOrder);
|
void sortView(int, Qt::SortOrder);
|
||||||
void updateView();
|
void updateView();
|
||||||
|
|
|
@ -6,7 +6,6 @@
|
||||||
#include "ui_intro.h"
|
#include "ui_intro.h"
|
||||||
|
|
||||||
#include "guiutil.h"
|
#include "guiutil.h"
|
||||||
#include "scicon.h"
|
|
||||||
|
|
||||||
#include "util.h"
|
#include "util.h"
|
||||||
|
|
||||||
|
@ -168,7 +167,7 @@ void Intro::pickDataDirectory()
|
||||||
/* If current default data directory does not exist, let the user choose one */
|
/* If current default data directory does not exist, let the user choose one */
|
||||||
Intro intro;
|
Intro intro;
|
||||||
intro.setDataDirectory(dataDir);
|
intro.setDataDirectory(dataDir);
|
||||||
intro.setWindowIcon(SingleColorIcon(":icons/bitcoin"));
|
intro.setWindowIcon(QIcon(":icons/bitcoin"));
|
||||||
|
|
||||||
while(true)
|
while(true)
|
||||||
{
|
{
|
||||||
|
|
|
@ -5,7 +5,6 @@
|
||||||
#include "networkstyle.h"
|
#include "networkstyle.h"
|
||||||
|
|
||||||
#include "guiconstants.h"
|
#include "guiconstants.h"
|
||||||
#include "scicon.h"
|
|
||||||
|
|
||||||
#include <QApplication>
|
#include <QApplication>
|
||||||
|
|
||||||
|
|
|
@ -10,7 +10,7 @@
|
||||||
#include "guiconstants.h"
|
#include "guiconstants.h"
|
||||||
#include "guiutil.h"
|
#include "guiutil.h"
|
||||||
#include "optionsmodel.h"
|
#include "optionsmodel.h"
|
||||||
#include "scicon.h"
|
#include "platformstyle.h"
|
||||||
#include "transactionfilterproxy.h"
|
#include "transactionfilterproxy.h"
|
||||||
#include "transactiontablemodel.h"
|
#include "transactiontablemodel.h"
|
||||||
#include "walletmodel.h"
|
#include "walletmodel.h"
|
||||||
|
@ -25,7 +25,9 @@ class TxViewDelegate : public QAbstractItemDelegate
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
public:
|
public:
|
||||||
TxViewDelegate(): QAbstractItemDelegate(), unit(BitcoinUnits::BTC)
|
TxViewDelegate(const PlatformStyle *platformStyle):
|
||||||
|
QAbstractItemDelegate(), unit(BitcoinUnits::BTC),
|
||||||
|
platformStyle(platformStyle)
|
||||||
{
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -43,7 +45,7 @@ public:
|
||||||
int halfheight = (mainRect.height() - 2*ypad)/2;
|
int halfheight = (mainRect.height() - 2*ypad)/2;
|
||||||
QRect amountRect(mainRect.left() + xspace, mainRect.top()+ypad, mainRect.width() - xspace, halfheight);
|
QRect amountRect(mainRect.left() + xspace, mainRect.top()+ypad, mainRect.width() - xspace, halfheight);
|
||||||
QRect addressRect(mainRect.left() + xspace, mainRect.top()+ypad+halfheight, mainRect.width() - xspace, halfheight);
|
QRect addressRect(mainRect.left() + xspace, mainRect.top()+ypad+halfheight, mainRect.width() - xspace, halfheight);
|
||||||
icon = SingleColorIcon(icon, SingleColor());
|
icon = platformStyle->SingleColorIcon(icon);
|
||||||
icon.paint(painter, decorationRect);
|
icon.paint(painter, decorationRect);
|
||||||
|
|
||||||
QDateTime date = index.data(TransactionTableModel::DateRole).toDateTime();
|
QDateTime date = index.data(TransactionTableModel::DateRole).toDateTime();
|
||||||
|
@ -101,11 +103,12 @@ public:
|
||||||
}
|
}
|
||||||
|
|
||||||
int unit;
|
int unit;
|
||||||
|
const PlatformStyle *platformStyle;
|
||||||
|
|
||||||
};
|
};
|
||||||
#include "overviewpage.moc"
|
#include "overviewpage.moc"
|
||||||
|
|
||||||
OverviewPage::OverviewPage(QWidget *parent) :
|
OverviewPage::OverviewPage(const PlatformStyle *platformStyle, QWidget *parent) :
|
||||||
QWidget(parent),
|
QWidget(parent),
|
||||||
ui(new Ui::OverviewPage),
|
ui(new Ui::OverviewPage),
|
||||||
clientModel(0),
|
clientModel(0),
|
||||||
|
@ -116,13 +119,13 @@ OverviewPage::OverviewPage(QWidget *parent) :
|
||||||
currentWatchOnlyBalance(-1),
|
currentWatchOnlyBalance(-1),
|
||||||
currentWatchUnconfBalance(-1),
|
currentWatchUnconfBalance(-1),
|
||||||
currentWatchImmatureBalance(-1),
|
currentWatchImmatureBalance(-1),
|
||||||
txdelegate(new TxViewDelegate()),
|
txdelegate(new TxViewDelegate(platformStyle)),
|
||||||
filter(0)
|
filter(0)
|
||||||
{
|
{
|
||||||
ui->setupUi(this);
|
ui->setupUi(this);
|
||||||
|
|
||||||
// use a SingleColorIcon for the "out of sync warning" icon
|
// use a SingleColorIcon for the "out of sync warning" icon
|
||||||
QIcon icon = SingleColorIcon(":/icons/warning");
|
QIcon icon = platformStyle->SingleColorIcon(":/icons/warning");
|
||||||
icon.addPixmap(icon.pixmap(QSize(64,64), QIcon::Normal), QIcon::Disabled); // also set the disabled icon because we are using a disabled QPushButton to work around missing HiDPI support of QLabel (https://bugreports.qt.io/browse/QTBUG-42503)
|
icon.addPixmap(icon.pixmap(QSize(64,64), QIcon::Normal), QIcon::Disabled); // also set the disabled icon because we are using a disabled QPushButton to work around missing HiDPI support of QLabel (https://bugreports.qt.io/browse/QTBUG-42503)
|
||||||
ui->labelTransactionsStatus->setIcon(icon);
|
ui->labelTransactionsStatus->setIcon(icon);
|
||||||
ui->labelWalletStatus->setIcon(icon);
|
ui->labelWalletStatus->setIcon(icon);
|
||||||
|
|
|
@ -12,6 +12,7 @@
|
||||||
class ClientModel;
|
class ClientModel;
|
||||||
class TransactionFilterProxy;
|
class TransactionFilterProxy;
|
||||||
class TxViewDelegate;
|
class TxViewDelegate;
|
||||||
|
class PlatformStyle;
|
||||||
class WalletModel;
|
class WalletModel;
|
||||||
|
|
||||||
namespace Ui {
|
namespace Ui {
|
||||||
|
@ -28,7 +29,7 @@ class OverviewPage : public QWidget
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
|
||||||
public:
|
public:
|
||||||
explicit OverviewPage(QWidget *parent = 0);
|
explicit OverviewPage(const PlatformStyle *platformStyle, QWidget *parent = 0);
|
||||||
~OverviewPage();
|
~OverviewPage();
|
||||||
|
|
||||||
void setClientModel(ClientModel *clientModel);
|
void setClientModel(ClientModel *clientModel);
|
||||||
|
|
147
src/qt/platformstyle.cpp
Normal file
147
src/qt/platformstyle.cpp
Normal file
|
@ -0,0 +1,147 @@
|
||||||
|
// Copyright (c) 2015 The Bitcoin Core developers
|
||||||
|
// Distributed under the MIT software license, see the accompanying
|
||||||
|
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
||||||
|
|
||||||
|
#include "platformstyle.h"
|
||||||
|
|
||||||
|
#include "guiconstants.h"
|
||||||
|
|
||||||
|
#include <QApplication>
|
||||||
|
#include <QColor>
|
||||||
|
#include <QIcon>
|
||||||
|
#include <QImage>
|
||||||
|
#include <QPalette>
|
||||||
|
#include <QPixmap>
|
||||||
|
|
||||||
|
static const struct {
|
||||||
|
const char *platformId;
|
||||||
|
/** Show images on push buttons */
|
||||||
|
const bool imagesOnButtons;
|
||||||
|
/** Colorize single-color icons */
|
||||||
|
const bool colorizeIcons;
|
||||||
|
/** Extra padding/spacing in transactionview */
|
||||||
|
const bool useExtraSpacing;
|
||||||
|
} platform_styles[] = {
|
||||||
|
{"macosx", false, false, true},
|
||||||
|
{"windows", true, false, false},
|
||||||
|
/* Other: linux, unix, ... */
|
||||||
|
{"other", true, true, false}
|
||||||
|
};
|
||||||
|
static const unsigned platform_styles_count = sizeof(platform_styles)/sizeof(*platform_styles);
|
||||||
|
|
||||||
|
namespace {
|
||||||
|
/* Local functions for colorizing single-color images */
|
||||||
|
|
||||||
|
void MakeSingleColorImage(QImage& img, const QColor& colorbase)
|
||||||
|
{
|
||||||
|
img = img.convertToFormat(QImage::Format_ARGB32);
|
||||||
|
for (int x = img.width(); x--; )
|
||||||
|
{
|
||||||
|
for (int y = img.height(); y--; )
|
||||||
|
{
|
||||||
|
const QRgb rgb = img.pixel(x, y);
|
||||||
|
img.setPixel(x, y, qRgba(colorbase.red(), colorbase.green(), colorbase.blue(), qAlpha(rgb)));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
QIcon ColorizeIcon(const QIcon& ico, const QColor& colorbase)
|
||||||
|
{
|
||||||
|
QIcon new_ico;
|
||||||
|
QSize sz;
|
||||||
|
Q_FOREACH(sz, ico.availableSizes())
|
||||||
|
{
|
||||||
|
QImage img(ico.pixmap(sz).toImage());
|
||||||
|
MakeSingleColorImage(img, colorbase);
|
||||||
|
new_ico.addPixmap(QPixmap::fromImage(img));
|
||||||
|
}
|
||||||
|
return new_ico;
|
||||||
|
}
|
||||||
|
|
||||||
|
QImage ColorizeImage(const QString& filename, const QColor& colorbase)
|
||||||
|
{
|
||||||
|
QImage img(filename);
|
||||||
|
MakeSingleColorImage(img, colorbase);
|
||||||
|
return img;
|
||||||
|
}
|
||||||
|
|
||||||
|
QIcon ColorizeIcon(const QString& filename, const QColor& colorbase)
|
||||||
|
{
|
||||||
|
return QIcon(QPixmap::fromImage(ColorizeImage(filename, colorbase)));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
PlatformStyle::PlatformStyle(const QString &name, bool imagesOnButtons, bool colorizeIcons, bool useExtraSpacing):
|
||||||
|
name(name),
|
||||||
|
imagesOnButtons(imagesOnButtons),
|
||||||
|
colorizeIcons(colorizeIcons),
|
||||||
|
useExtraSpacing(useExtraSpacing),
|
||||||
|
singleColor(0,0,0),
|
||||||
|
textColor(0,0,0)
|
||||||
|
{
|
||||||
|
// Determine icon highlighting color
|
||||||
|
if (colorizeIcons) {
|
||||||
|
const QColor colorHighlightBg(QApplication::palette().color(QPalette::Highlight));
|
||||||
|
const QColor colorHighlightFg(QApplication::palette().color(QPalette::HighlightedText));
|
||||||
|
const QColor colorText(QApplication::palette().color(QPalette::WindowText));
|
||||||
|
const int colorTextLightness = colorText.lightness();
|
||||||
|
QColor colorbase;
|
||||||
|
if (abs(colorHighlightBg.lightness() - colorTextLightness) < abs(colorHighlightFg.lightness() - colorTextLightness))
|
||||||
|
colorbase = colorHighlightBg;
|
||||||
|
else
|
||||||
|
colorbase = colorHighlightFg;
|
||||||
|
singleColor = colorbase;
|
||||||
|
}
|
||||||
|
// Determine text color
|
||||||
|
textColor = QColor(QApplication::palette().color(QPalette::WindowText));
|
||||||
|
}
|
||||||
|
|
||||||
|
QImage PlatformStyle::SingleColorImage(const QString& filename) const
|
||||||
|
{
|
||||||
|
if (!colorizeIcons)
|
||||||
|
return QImage(filename);
|
||||||
|
return ColorizeImage(filename, SingleColor());
|
||||||
|
}
|
||||||
|
|
||||||
|
QIcon PlatformStyle::SingleColorIcon(const QString& filename) const
|
||||||
|
{
|
||||||
|
if (!colorizeIcons)
|
||||||
|
return QIcon(filename);
|
||||||
|
return ColorizeIcon(filename, SingleColor());
|
||||||
|
}
|
||||||
|
|
||||||
|
QIcon PlatformStyle::SingleColorIcon(const QIcon& icon) const
|
||||||
|
{
|
||||||
|
if (!colorizeIcons)
|
||||||
|
return icon;
|
||||||
|
return ColorizeIcon(icon, SingleColor());
|
||||||
|
}
|
||||||
|
|
||||||
|
QIcon PlatformStyle::TextColorIcon(const QString& filename) const
|
||||||
|
{
|
||||||
|
return ColorizeIcon(filename, TextColor());
|
||||||
|
}
|
||||||
|
|
||||||
|
QIcon PlatformStyle::TextColorIcon(const QIcon& icon) const
|
||||||
|
{
|
||||||
|
return ColorizeIcon(icon, TextColor());
|
||||||
|
}
|
||||||
|
|
||||||
|
const PlatformStyle *PlatformStyle::instantiate(const QString &platformId)
|
||||||
|
{
|
||||||
|
for (unsigned x=0; x<platform_styles_count; ++x)
|
||||||
|
{
|
||||||
|
if (platformId == platform_styles[x].platformId)
|
||||||
|
{
|
||||||
|
return new PlatformStyle(
|
||||||
|
platform_styles[x].platformId,
|
||||||
|
platform_styles[x].imagesOnButtons,
|
||||||
|
platform_styles[x].colorizeIcons,
|
||||||
|
platform_styles[x].useExtraSpacing);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
55
src/qt/platformstyle.h
Normal file
55
src/qt/platformstyle.h
Normal file
|
@ -0,0 +1,55 @@
|
||||||
|
// Copyright (c) 2015 The Bitcoin Core developers
|
||||||
|
// Distributed under the MIT software license, see the accompanying
|
||||||
|
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
||||||
|
|
||||||
|
#ifndef BITCOIN_QT_PLATFORMSTYLE_H
|
||||||
|
#define BITCOIN_QT_PLATFORMSTYLE_H
|
||||||
|
|
||||||
|
#include <QIcon>
|
||||||
|
#include <QPixmap>
|
||||||
|
#include <QString>
|
||||||
|
|
||||||
|
/* Coin network-specific GUI style information */
|
||||||
|
class PlatformStyle
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
/** Get style associated with provided platform name, or 0 if not known */
|
||||||
|
static const PlatformStyle *instantiate(const QString &platformId);
|
||||||
|
|
||||||
|
const QString &getName() const { return name; }
|
||||||
|
|
||||||
|
bool getImagesOnButtons() const { return imagesOnButtons; }
|
||||||
|
bool getUseExtraSpacing() const { return useExtraSpacing; }
|
||||||
|
|
||||||
|
QColor TextColor() const { return textColor; }
|
||||||
|
QColor SingleColor() const { return singleColor; }
|
||||||
|
|
||||||
|
/** Colorize an image (given filename) with the icon color */
|
||||||
|
QImage SingleColorImage(const QString& filename) const;
|
||||||
|
|
||||||
|
/** Colorize an icon (given filename) with the icon color */
|
||||||
|
QIcon SingleColorIcon(const QString& filename) const;
|
||||||
|
|
||||||
|
/** Colorize an icon (given object) with the icon color */
|
||||||
|
QIcon SingleColorIcon(const QIcon& icon) const;
|
||||||
|
|
||||||
|
/** Colorize an icon (given filename) with the text color */
|
||||||
|
QIcon TextColorIcon(const QString& filename) const;
|
||||||
|
|
||||||
|
/** Colorize an icon (given object) with the text color */
|
||||||
|
QIcon TextColorIcon(const QIcon& icon) const;
|
||||||
|
|
||||||
|
private:
|
||||||
|
PlatformStyle(const QString &name, bool imagesOnButtons, bool colorizeIcons, bool useExtraSpacing);
|
||||||
|
|
||||||
|
QString name;
|
||||||
|
bool imagesOnButtons;
|
||||||
|
bool colorizeIcons;
|
||||||
|
bool useExtraSpacing;
|
||||||
|
QColor singleColor;
|
||||||
|
QColor textColor;
|
||||||
|
/* ... more to come later */
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // BITCOIN_QT_PLATFORMSTYLE_H
|
||||||
|
|
|
@ -10,9 +10,9 @@
|
||||||
#include "bitcoinunits.h"
|
#include "bitcoinunits.h"
|
||||||
#include "guiutil.h"
|
#include "guiutil.h"
|
||||||
#include "optionsmodel.h"
|
#include "optionsmodel.h"
|
||||||
|
#include "platformstyle.h"
|
||||||
#include "receiverequestdialog.h"
|
#include "receiverequestdialog.h"
|
||||||
#include "recentrequeststablemodel.h"
|
#include "recentrequeststablemodel.h"
|
||||||
#include "scicon.h"
|
|
||||||
#include "walletmodel.h"
|
#include "walletmodel.h"
|
||||||
|
|
||||||
#include <QAction>
|
#include <QAction>
|
||||||
|
@ -22,24 +22,25 @@
|
||||||
#include <QScrollBar>
|
#include <QScrollBar>
|
||||||
#include <QTextDocument>
|
#include <QTextDocument>
|
||||||
|
|
||||||
ReceiveCoinsDialog::ReceiveCoinsDialog(QWidget *parent) :
|
ReceiveCoinsDialog::ReceiveCoinsDialog(const PlatformStyle *platformStyle, QWidget *parent) :
|
||||||
QDialog(parent),
|
QDialog(parent),
|
||||||
ui(new Ui::ReceiveCoinsDialog),
|
ui(new Ui::ReceiveCoinsDialog),
|
||||||
model(0)
|
model(0),
|
||||||
|
platformStyle(platformStyle)
|
||||||
{
|
{
|
||||||
ui->setupUi(this);
|
ui->setupUi(this);
|
||||||
|
|
||||||
#ifdef Q_OS_MAC // Icons on push buttons are very uncommon on Mac
|
if (!platformStyle->getImagesOnButtons()) {
|
||||||
ui->clearButton->setIcon(QIcon());
|
ui->clearButton->setIcon(QIcon());
|
||||||
ui->receiveButton->setIcon(QIcon());
|
ui->receiveButton->setIcon(QIcon());
|
||||||
ui->showRequestButton->setIcon(QIcon());
|
ui->showRequestButton->setIcon(QIcon());
|
||||||
ui->removeRequestButton->setIcon(QIcon());
|
ui->removeRequestButton->setIcon(QIcon());
|
||||||
#else
|
} else {
|
||||||
ui->clearButton->setIcon(SingleColorIcon(":/icons/remove"));
|
ui->clearButton->setIcon(platformStyle->SingleColorIcon(":/icons/remove"));
|
||||||
ui->receiveButton->setIcon(SingleColorIcon(":/icons/receiving_addresses"));
|
ui->receiveButton->setIcon(platformStyle->SingleColorIcon(":/icons/receiving_addresses"));
|
||||||
ui->showRequestButton->setIcon(SingleColorIcon(":/icons/edit"));
|
ui->showRequestButton->setIcon(platformStyle->SingleColorIcon(":/icons/edit"));
|
||||||
ui->removeRequestButton->setIcon(SingleColorIcon(":/icons/remove"));
|
ui->removeRequestButton->setIcon(platformStyle->SingleColorIcon(":/icons/remove"));
|
||||||
#endif
|
}
|
||||||
|
|
||||||
// context menu actions
|
// context menu actions
|
||||||
QAction *copyLabelAction = new QAction(tr("Copy label"), this);
|
QAction *copyLabelAction = new QAction(tr("Copy label"), this);
|
||||||
|
@ -132,7 +133,7 @@ void ReceiveCoinsDialog::on_receiveButton_clicked()
|
||||||
if(ui->reuseAddress->isChecked())
|
if(ui->reuseAddress->isChecked())
|
||||||
{
|
{
|
||||||
/* Choose existing receiving address */
|
/* Choose existing receiving address */
|
||||||
AddressBookPage dlg(AddressBookPage::ForSelection, AddressBookPage::ReceivingTab, this);
|
AddressBookPage dlg(platformStyle, AddressBookPage::ForSelection, AddressBookPage::ReceivingTab, this);
|
||||||
dlg.setModel(model->getAddressTableModel());
|
dlg.setModel(model->getAddressTableModel());
|
||||||
if(dlg.exec())
|
if(dlg.exec())
|
||||||
{
|
{
|
||||||
|
|
|
@ -16,6 +16,7 @@
|
||||||
#include <QVariant>
|
#include <QVariant>
|
||||||
|
|
||||||
class OptionsModel;
|
class OptionsModel;
|
||||||
|
class PlatformStyle;
|
||||||
class WalletModel;
|
class WalletModel;
|
||||||
|
|
||||||
namespace Ui {
|
namespace Ui {
|
||||||
|
@ -39,7 +40,7 @@ public:
|
||||||
MINIMUM_COLUMN_WIDTH = 130
|
MINIMUM_COLUMN_WIDTH = 130
|
||||||
};
|
};
|
||||||
|
|
||||||
explicit ReceiveCoinsDialog(QWidget *parent = 0);
|
explicit ReceiveCoinsDialog(const PlatformStyle *platformStyle, QWidget *parent = 0);
|
||||||
~ReceiveCoinsDialog();
|
~ReceiveCoinsDialog();
|
||||||
|
|
||||||
void setModel(WalletModel *model);
|
void setModel(WalletModel *model);
|
||||||
|
@ -57,6 +58,8 @@ private:
|
||||||
GUIUtil::TableViewLastColumnResizingFixer *columnResizingFixer;
|
GUIUtil::TableViewLastColumnResizingFixer *columnResizingFixer;
|
||||||
WalletModel *model;
|
WalletModel *model;
|
||||||
QMenu *contextMenu;
|
QMenu *contextMenu;
|
||||||
|
const PlatformStyle *platformStyle;
|
||||||
|
|
||||||
void copyColumnToClipboard(int column);
|
void copyColumnToClipboard(int column);
|
||||||
virtual void resizeEvent(QResizeEvent *event);
|
virtual void resizeEvent(QResizeEvent *event);
|
||||||
|
|
||||||
|
|
|
@ -8,7 +8,7 @@
|
||||||
#include "clientmodel.h"
|
#include "clientmodel.h"
|
||||||
#include "guiutil.h"
|
#include "guiutil.h"
|
||||||
#include "peertablemodel.h"
|
#include "peertablemodel.h"
|
||||||
#include "scicon.h"
|
#include "platformstyle.h"
|
||||||
|
|
||||||
#include "chainparams.h"
|
#include "chainparams.h"
|
||||||
#include "rpcserver.h"
|
#include "rpcserver.h"
|
||||||
|
@ -200,21 +200,22 @@ void RPCExecutor::request(const QString &command)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
RPCConsole::RPCConsole(QWidget *parent) :
|
RPCConsole::RPCConsole(const PlatformStyle *platformStyle, QWidget *parent) :
|
||||||
QWidget(parent),
|
QWidget(parent),
|
||||||
ui(new Ui::RPCConsole),
|
ui(new Ui::RPCConsole),
|
||||||
clientModel(0),
|
clientModel(0),
|
||||||
historyPtr(0),
|
historyPtr(0),
|
||||||
cachedNodeid(-1),
|
cachedNodeid(-1),
|
||||||
contextMenu(0)
|
contextMenu(0),
|
||||||
|
platformStyle(platformStyle)
|
||||||
{
|
{
|
||||||
ui->setupUi(this);
|
ui->setupUi(this);
|
||||||
GUIUtil::restoreWindowGeometry("nRPCConsoleWindow", this->size(), this);
|
GUIUtil::restoreWindowGeometry("nRPCConsoleWindow", this->size(), this);
|
||||||
|
|
||||||
#ifndef Q_OS_MAC
|
if (platformStyle->getImagesOnButtons()) {
|
||||||
ui->openDebugLogfileButton->setIcon(SingleColorIcon(":/icons/export"));
|
ui->openDebugLogfileButton->setIcon(platformStyle->SingleColorIcon(":/icons/export"));
|
||||||
#endif
|
}
|
||||||
ui->clearButton->setIcon(SingleColorIcon(":/icons/remove"));
|
ui->clearButton->setIcon(platformStyle->SingleColorIcon(":/icons/remove"));
|
||||||
|
|
||||||
// Install event filter for up and down arrow
|
// Install event filter for up and down arrow
|
||||||
ui->lineEdit->installEventFilter(this);
|
ui->lineEdit->installEventFilter(this);
|
||||||
|
@ -363,7 +364,7 @@ void RPCConsole::clear()
|
||||||
ui->messagesWidget->document()->addResource(
|
ui->messagesWidget->document()->addResource(
|
||||||
QTextDocument::ImageResource,
|
QTextDocument::ImageResource,
|
||||||
QUrl(ICON_MAPPING[i].url),
|
QUrl(ICON_MAPPING[i].url),
|
||||||
SingleColorImage(ICON_MAPPING[i].source, SingleColor()).scaled(ICON_SIZE, Qt::IgnoreAspectRatio, Qt::SmoothTransformation));
|
platformStyle->SingleColorImage(ICON_MAPPING[i].source).scaled(ICON_SIZE, Qt::IgnoreAspectRatio, Qt::SmoothTransformation));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Set default style sheet
|
// Set default style sheet
|
||||||
|
|
|
@ -13,6 +13,7 @@
|
||||||
#include <QWidget>
|
#include <QWidget>
|
||||||
|
|
||||||
class ClientModel;
|
class ClientModel;
|
||||||
|
class PlatformStyle;
|
||||||
|
|
||||||
namespace Ui {
|
namespace Ui {
|
||||||
class RPCConsole;
|
class RPCConsole;
|
||||||
|
@ -29,7 +30,7 @@ class RPCConsole: public QWidget
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
|
||||||
public:
|
public:
|
||||||
explicit RPCConsole(QWidget *parent);
|
explicit RPCConsole(const PlatformStyle *platformStyle, QWidget *parent);
|
||||||
~RPCConsole();
|
~RPCConsole();
|
||||||
|
|
||||||
void setClientModel(ClientModel *model);
|
void setClientModel(ClientModel *model);
|
||||||
|
@ -106,6 +107,7 @@ private:
|
||||||
int historyPtr;
|
int historyPtr;
|
||||||
NodeId cachedNodeid;
|
NodeId cachedNodeid;
|
||||||
QMenu *contextMenu;
|
QMenu *contextMenu;
|
||||||
|
const PlatformStyle *platformStyle;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // BITCOIN_QT_RPCCONSOLE_H
|
#endif // BITCOIN_QT_RPCCONSOLE_H
|
||||||
|
|
|
@ -1,98 +0,0 @@
|
||||||
// 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 "scicon.h"
|
|
||||||
|
|
||||||
#include <QApplication>
|
|
||||||
#include <QColor>
|
|
||||||
#include <QIcon>
|
|
||||||
#include <QImage>
|
|
||||||
#include <QPalette>
|
|
||||||
#include <QPixmap>
|
|
||||||
|
|
||||||
namespace {
|
|
||||||
|
|
||||||
void MakeSingleColorImage(QImage& img, const QColor& colorbase)
|
|
||||||
{
|
|
||||||
img = img.convertToFormat(QImage::Format_ARGB32);
|
|
||||||
for (int x = img.width(); x--; )
|
|
||||||
{
|
|
||||||
for (int y = img.height(); y--; )
|
|
||||||
{
|
|
||||||
const QRgb rgb = img.pixel(x, y);
|
|
||||||
img.setPixel(x, y, qRgba(colorbase.red(), colorbase.green(), colorbase.blue(), qAlpha(rgb)));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
QImage SingleColorImage(const QString& filename, const QColor& colorbase)
|
|
||||||
{
|
|
||||||
QImage img(filename);
|
|
||||||
#if !defined(WIN32) && !defined(MAC_OSX)
|
|
||||||
MakeSingleColorImage(img, colorbase);
|
|
||||||
#endif
|
|
||||||
return img;
|
|
||||||
}
|
|
||||||
|
|
||||||
QIcon SingleColorIcon(const QIcon& ico, const QColor& colorbase)
|
|
||||||
{
|
|
||||||
#if defined(WIN32) || defined(MAC_OSX)
|
|
||||||
return ico;
|
|
||||||
#else
|
|
||||||
QIcon new_ico;
|
|
||||||
QSize sz;
|
|
||||||
Q_FOREACH(sz, ico.availableSizes())
|
|
||||||
{
|
|
||||||
QImage img(ico.pixmap(sz).toImage());
|
|
||||||
MakeSingleColorImage(img, colorbase);
|
|
||||||
new_ico.addPixmap(QPixmap::fromImage(img));
|
|
||||||
}
|
|
||||||
return new_ico;
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
QIcon SingleColorIcon(const QString& filename, const QColor& colorbase)
|
|
||||||
{
|
|
||||||
return QIcon(QPixmap::fromImage(SingleColorImage(filename, colorbase)));
|
|
||||||
}
|
|
||||||
|
|
||||||
QColor SingleColor()
|
|
||||||
{
|
|
||||||
#if defined(WIN32) || defined(MAC_OSX)
|
|
||||||
return QColor(0,0,0);
|
|
||||||
#else
|
|
||||||
const QColor colorHighlightBg(QApplication::palette().color(QPalette::Highlight));
|
|
||||||
const QColor colorHighlightFg(QApplication::palette().color(QPalette::HighlightedText));
|
|
||||||
const QColor colorText(QApplication::palette().color(QPalette::WindowText));
|
|
||||||
const int colorTextLightness = colorText.lightness();
|
|
||||||
QColor colorbase;
|
|
||||||
if (abs(colorHighlightBg.lightness() - colorTextLightness) < abs(colorHighlightFg.lightness() - colorTextLightness))
|
|
||||||
colorbase = colorHighlightBg;
|
|
||||||
else
|
|
||||||
colorbase = colorHighlightFg;
|
|
||||||
return colorbase;
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
QIcon SingleColorIcon(const QString& filename)
|
|
||||||
{
|
|
||||||
return SingleColorIcon(filename, SingleColor());
|
|
||||||
}
|
|
||||||
|
|
||||||
static QColor TextColor()
|
|
||||||
{
|
|
||||||
return QColor(QApplication::palette().color(QPalette::WindowText));
|
|
||||||
}
|
|
||||||
|
|
||||||
QIcon TextColorIcon(const QString& filename)
|
|
||||||
{
|
|
||||||
return SingleColorIcon(filename, TextColor());
|
|
||||||
}
|
|
||||||
|
|
||||||
QIcon TextColorIcon(const QIcon& ico)
|
|
||||||
{
|
|
||||||
return SingleColorIcon(ico, TextColor());
|
|
||||||
}
|
|
|
@ -1,24 +0,0 @@
|
||||||
// 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 BITCOIN_QT_SCICON_H
|
|
||||||
#define BITCOIN_QT_SCICON_H
|
|
||||||
|
|
||||||
#include <QtCore>
|
|
||||||
|
|
||||||
QT_BEGIN_NAMESPACE
|
|
||||||
class QColor;
|
|
||||||
class QIcon;
|
|
||||||
class QString;
|
|
||||||
QT_END_NAMESPACE
|
|
||||||
|
|
||||||
QImage SingleColorImage(const QString& filename, const QColor&);
|
|
||||||
QIcon SingleColorIcon(const QIcon&, const QColor&);
|
|
||||||
QIcon SingleColorIcon(const QString& filename, const QColor&);
|
|
||||||
QColor SingleColor();
|
|
||||||
QIcon SingleColorIcon(const QString& filename);
|
|
||||||
QIcon TextColorIcon(const QIcon&);
|
|
||||||
QIcon TextColorIcon(const QString& filename);
|
|
||||||
|
|
||||||
#endif // BITCOIN_QT_SCICON_H
|
|
|
@ -11,7 +11,7 @@
|
||||||
#include "coincontroldialog.h"
|
#include "coincontroldialog.h"
|
||||||
#include "guiutil.h"
|
#include "guiutil.h"
|
||||||
#include "optionsmodel.h"
|
#include "optionsmodel.h"
|
||||||
#include "scicon.h"
|
#include "platformstyle.h"
|
||||||
#include "sendcoinsentry.h"
|
#include "sendcoinsentry.h"
|
||||||
#include "walletmodel.h"
|
#include "walletmodel.h"
|
||||||
|
|
||||||
|
@ -27,25 +27,26 @@
|
||||||
#include <QSettings>
|
#include <QSettings>
|
||||||
#include <QTextDocument>
|
#include <QTextDocument>
|
||||||
|
|
||||||
SendCoinsDialog::SendCoinsDialog(QWidget *parent) :
|
SendCoinsDialog::SendCoinsDialog(const PlatformStyle *platformStyle, QWidget *parent) :
|
||||||
QDialog(parent),
|
QDialog(parent),
|
||||||
ui(new Ui::SendCoinsDialog),
|
ui(new Ui::SendCoinsDialog),
|
||||||
clientModel(0),
|
clientModel(0),
|
||||||
model(0),
|
model(0),
|
||||||
fNewRecipientAllowed(true),
|
fNewRecipientAllowed(true),
|
||||||
fFeeMinimized(true)
|
fFeeMinimized(true),
|
||||||
|
platformStyle(platformStyle)
|
||||||
{
|
{
|
||||||
ui->setupUi(this);
|
ui->setupUi(this);
|
||||||
|
|
||||||
#ifdef Q_OS_MAC // Icons on push buttons are very uncommon on Mac
|
if (!platformStyle->getImagesOnButtons()) {
|
||||||
ui->addButton->setIcon(QIcon());
|
ui->addButton->setIcon(QIcon());
|
||||||
ui->clearButton->setIcon(QIcon());
|
ui->clearButton->setIcon(QIcon());
|
||||||
ui->sendButton->setIcon(QIcon());
|
ui->sendButton->setIcon(QIcon());
|
||||||
#else
|
} else {
|
||||||
ui->addButton->setIcon(SingleColorIcon(":/icons/add"));
|
ui->addButton->setIcon(platformStyle->SingleColorIcon(":/icons/add"));
|
||||||
ui->clearButton->setIcon(SingleColorIcon(":/icons/remove"));
|
ui->clearButton->setIcon(platformStyle->SingleColorIcon(":/icons/remove"));
|
||||||
ui->sendButton->setIcon(SingleColorIcon(":/icons/send"));
|
ui->sendButton->setIcon(platformStyle->SingleColorIcon(":/icons/send"));
|
||||||
#endif
|
}
|
||||||
|
|
||||||
GUIUtil::setupAddressWidget(ui->lineEditCoinControlChange, this);
|
GUIUtil::setupAddressWidget(ui->lineEditCoinControlChange, this);
|
||||||
|
|
||||||
|
@ -364,7 +365,7 @@ void SendCoinsDialog::accept()
|
||||||
|
|
||||||
SendCoinsEntry *SendCoinsDialog::addEntry()
|
SendCoinsEntry *SendCoinsDialog::addEntry()
|
||||||
{
|
{
|
||||||
SendCoinsEntry *entry = new SendCoinsEntry(this);
|
SendCoinsEntry *entry = new SendCoinsEntry(platformStyle, this);
|
||||||
entry->setModel(model);
|
entry->setModel(model);
|
||||||
ui->entries->addWidget(entry);
|
ui->entries->addWidget(entry);
|
||||||
connect(entry, SIGNAL(removeEntry(SendCoinsEntry*)), this, SLOT(removeEntry(SendCoinsEntry*)));
|
connect(entry, SIGNAL(removeEntry(SendCoinsEntry*)), this, SLOT(removeEntry(SendCoinsEntry*)));
|
||||||
|
@ -711,7 +712,7 @@ void SendCoinsDialog::coinControlFeatureChanged(bool checked)
|
||||||
// Coin Control: button inputs -> show actual coin control dialog
|
// Coin Control: button inputs -> show actual coin control dialog
|
||||||
void SendCoinsDialog::coinControlButtonClicked()
|
void SendCoinsDialog::coinControlButtonClicked()
|
||||||
{
|
{
|
||||||
CoinControlDialog dlg;
|
CoinControlDialog dlg(platformStyle);
|
||||||
dlg.setModel(model);
|
dlg.setModel(model);
|
||||||
dlg.exec();
|
dlg.exec();
|
||||||
coinControlUpdateLabels();
|
coinControlUpdateLabels();
|
||||||
|
|
|
@ -12,6 +12,7 @@
|
||||||
|
|
||||||
class ClientModel;
|
class ClientModel;
|
||||||
class OptionsModel;
|
class OptionsModel;
|
||||||
|
class PlatformStyle;
|
||||||
class SendCoinsEntry;
|
class SendCoinsEntry;
|
||||||
class SendCoinsRecipient;
|
class SendCoinsRecipient;
|
||||||
|
|
||||||
|
@ -31,7 +32,7 @@ class SendCoinsDialog : public QDialog
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
|
||||||
public:
|
public:
|
||||||
explicit SendCoinsDialog(QWidget *parent = 0);
|
explicit SendCoinsDialog(const PlatformStyle *platformStyle, QWidget *parent = 0);
|
||||||
~SendCoinsDialog();
|
~SendCoinsDialog();
|
||||||
|
|
||||||
void setClientModel(ClientModel *clientModel);
|
void setClientModel(ClientModel *clientModel);
|
||||||
|
@ -60,6 +61,7 @@ private:
|
||||||
WalletModel *model;
|
WalletModel *model;
|
||||||
bool fNewRecipientAllowed;
|
bool fNewRecipientAllowed;
|
||||||
bool fFeeMinimized;
|
bool fFeeMinimized;
|
||||||
|
const PlatformStyle *platformStyle;
|
||||||
|
|
||||||
// Process WalletModel::SendCoinsReturn and generate a pair consisting
|
// Process WalletModel::SendCoinsReturn and generate a pair consisting
|
||||||
// of a message and message flags for use in Q_EMIT message().
|
// of a message and message flags for use in Q_EMIT message().
|
||||||
|
|
|
@ -9,30 +9,30 @@
|
||||||
#include "addresstablemodel.h"
|
#include "addresstablemodel.h"
|
||||||
#include "guiutil.h"
|
#include "guiutil.h"
|
||||||
#include "optionsmodel.h"
|
#include "optionsmodel.h"
|
||||||
#include "scicon.h"
|
#include "platformstyle.h"
|
||||||
#include "walletmodel.h"
|
#include "walletmodel.h"
|
||||||
|
|
||||||
#include <QApplication>
|
#include <QApplication>
|
||||||
#include <QClipboard>
|
#include <QClipboard>
|
||||||
|
|
||||||
SendCoinsEntry::SendCoinsEntry(QWidget *parent) :
|
SendCoinsEntry::SendCoinsEntry(const PlatformStyle *platformStyle, QWidget *parent) :
|
||||||
QStackedWidget(parent),
|
QStackedWidget(parent),
|
||||||
ui(new Ui::SendCoinsEntry),
|
ui(new Ui::SendCoinsEntry),
|
||||||
model(0)
|
model(0),
|
||||||
|
platformStyle(platformStyle)
|
||||||
{
|
{
|
||||||
ui->setupUi(this);
|
ui->setupUi(this);
|
||||||
|
|
||||||
ui->addressBookButton->setIcon(SingleColorIcon(":/icons/address-book"));
|
ui->addressBookButton->setIcon(platformStyle->SingleColorIcon(":/icons/address-book"));
|
||||||
ui->pasteButton->setIcon(SingleColorIcon(":/icons/editpaste"));
|
ui->pasteButton->setIcon(platformStyle->SingleColorIcon(":/icons/editpaste"));
|
||||||
ui->deleteButton->setIcon(SingleColorIcon(":/icons/remove"));
|
ui->deleteButton->setIcon(platformStyle->SingleColorIcon(":/icons/remove"));
|
||||||
ui->deleteButton_is->setIcon(SingleColorIcon(":/icons/remove"));
|
ui->deleteButton_is->setIcon(platformStyle->SingleColorIcon(":/icons/remove"));
|
||||||
ui->deleteButton_s->setIcon(SingleColorIcon(":/icons/remove"));
|
ui->deleteButton_s->setIcon(platformStyle->SingleColorIcon(":/icons/remove"));
|
||||||
|
|
||||||
setCurrentWidget(ui->SendCoins);
|
setCurrentWidget(ui->SendCoins);
|
||||||
|
|
||||||
#ifdef Q_OS_MAC
|
if (platformStyle->getUseExtraSpacing())
|
||||||
ui->payToLayout->setSpacing(4);
|
ui->payToLayout->setSpacing(4);
|
||||||
#endif
|
|
||||||
#if QT_VERSION >= 0x040700
|
#if QT_VERSION >= 0x040700
|
||||||
ui->addAsLabel->setPlaceholderText(tr("Enter a label for this address to add it to your address book"));
|
ui->addAsLabel->setPlaceholderText(tr("Enter a label for this address to add it to your address book"));
|
||||||
#endif
|
#endif
|
||||||
|
@ -65,7 +65,7 @@ void SendCoinsEntry::on_addressBookButton_clicked()
|
||||||
{
|
{
|
||||||
if(!model)
|
if(!model)
|
||||||
return;
|
return;
|
||||||
AddressBookPage dlg(AddressBookPage::ForSelection, AddressBookPage::SendingTab, this);
|
AddressBookPage dlg(platformStyle, AddressBookPage::ForSelection, AddressBookPage::SendingTab, this);
|
||||||
dlg.setModel(model->getAddressTableModel());
|
dlg.setModel(model->getAddressTableModel());
|
||||||
if(dlg.exec())
|
if(dlg.exec())
|
||||||
{
|
{
|
||||||
|
|
|
@ -10,6 +10,7 @@
|
||||||
#include <QStackedWidget>
|
#include <QStackedWidget>
|
||||||
|
|
||||||
class WalletModel;
|
class WalletModel;
|
||||||
|
class PlatformStyle;
|
||||||
|
|
||||||
namespace Ui {
|
namespace Ui {
|
||||||
class SendCoinsEntry;
|
class SendCoinsEntry;
|
||||||
|
@ -25,7 +26,7 @@ class SendCoinsEntry : public QStackedWidget
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
|
||||||
public:
|
public:
|
||||||
explicit SendCoinsEntry(QWidget *parent = 0);
|
explicit SendCoinsEntry(const PlatformStyle *platformStyle, QWidget *parent = 0);
|
||||||
~SendCoinsEntry();
|
~SendCoinsEntry();
|
||||||
|
|
||||||
void setModel(WalletModel *model);
|
void setModel(WalletModel *model);
|
||||||
|
@ -64,6 +65,7 @@ private:
|
||||||
SendCoinsRecipient recipient;
|
SendCoinsRecipient recipient;
|
||||||
Ui::SendCoinsEntry *ui;
|
Ui::SendCoinsEntry *ui;
|
||||||
WalletModel *model;
|
WalletModel *model;
|
||||||
|
const PlatformStyle *platformStyle;
|
||||||
|
|
||||||
bool updateLabel(const QString &address);
|
bool updateLabel(const QString &address);
|
||||||
};
|
};
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
|
|
||||||
#include "addressbookpage.h"
|
#include "addressbookpage.h"
|
||||||
#include "guiutil.h"
|
#include "guiutil.h"
|
||||||
#include "scicon.h"
|
#include "platformstyle.h"
|
||||||
#include "walletmodel.h"
|
#include "walletmodel.h"
|
||||||
|
|
||||||
#include "base58.h"
|
#include "base58.h"
|
||||||
|
@ -20,21 +20,22 @@
|
||||||
|
|
||||||
#include <QClipboard>
|
#include <QClipboard>
|
||||||
|
|
||||||
SignVerifyMessageDialog::SignVerifyMessageDialog(QWidget *parent) :
|
SignVerifyMessageDialog::SignVerifyMessageDialog(const PlatformStyle *platformStyle, QWidget *parent) :
|
||||||
QDialog(parent),
|
QDialog(parent),
|
||||||
ui(new Ui::SignVerifyMessageDialog),
|
ui(new Ui::SignVerifyMessageDialog),
|
||||||
model(0)
|
model(0),
|
||||||
|
platformStyle(platformStyle)
|
||||||
{
|
{
|
||||||
ui->setupUi(this);
|
ui->setupUi(this);
|
||||||
|
|
||||||
ui->addressBookButton_SM->setIcon(SingleColorIcon(":/icons/address-book"));
|
ui->addressBookButton_SM->setIcon(platformStyle->SingleColorIcon(":/icons/address-book"));
|
||||||
ui->pasteButton_SM->setIcon(SingleColorIcon(":/icons/editpaste"));
|
ui->pasteButton_SM->setIcon(platformStyle->SingleColorIcon(":/icons/editpaste"));
|
||||||
ui->copySignatureButton_SM->setIcon(SingleColorIcon(":/icons/editcopy"));
|
ui->copySignatureButton_SM->setIcon(platformStyle->SingleColorIcon(":/icons/editcopy"));
|
||||||
ui->signMessageButton_SM->setIcon(SingleColorIcon(":/icons/edit"));
|
ui->signMessageButton_SM->setIcon(platformStyle->SingleColorIcon(":/icons/edit"));
|
||||||
ui->clearButton_SM->setIcon(SingleColorIcon(":/icons/remove"));
|
ui->clearButton_SM->setIcon(platformStyle->SingleColorIcon(":/icons/remove"));
|
||||||
ui->addressBookButton_VM->setIcon(SingleColorIcon(":/icons/address-book"));
|
ui->addressBookButton_VM->setIcon(platformStyle->SingleColorIcon(":/icons/address-book"));
|
||||||
ui->verifyMessageButton_VM->setIcon(SingleColorIcon(":/icons/transaction_0"));
|
ui->verifyMessageButton_VM->setIcon(platformStyle->SingleColorIcon(":/icons/transaction_0"));
|
||||||
ui->clearButton_VM->setIcon(SingleColorIcon(":/icons/remove"));
|
ui->clearButton_VM->setIcon(platformStyle->SingleColorIcon(":/icons/remove"));
|
||||||
|
|
||||||
#if QT_VERSION >= 0x040700
|
#if QT_VERSION >= 0x040700
|
||||||
ui->signatureOut_SM->setPlaceholderText(tr("Click \"Sign Message\" to generate signature"));
|
ui->signatureOut_SM->setPlaceholderText(tr("Click \"Sign Message\" to generate signature"));
|
||||||
|
@ -94,7 +95,7 @@ void SignVerifyMessageDialog::on_addressBookButton_SM_clicked()
|
||||||
{
|
{
|
||||||
if (model && model->getAddressTableModel())
|
if (model && model->getAddressTableModel())
|
||||||
{
|
{
|
||||||
AddressBookPage dlg(AddressBookPage::ForSelection, AddressBookPage::ReceivingTab, this);
|
AddressBookPage dlg(platformStyle, AddressBookPage::ForSelection, AddressBookPage::ReceivingTab, this);
|
||||||
dlg.setModel(model->getAddressTableModel());
|
dlg.setModel(model->getAddressTableModel());
|
||||||
if (dlg.exec())
|
if (dlg.exec())
|
||||||
{
|
{
|
||||||
|
@ -185,7 +186,7 @@ void SignVerifyMessageDialog::on_addressBookButton_VM_clicked()
|
||||||
{
|
{
|
||||||
if (model && model->getAddressTableModel())
|
if (model && model->getAddressTableModel())
|
||||||
{
|
{
|
||||||
AddressBookPage dlg(AddressBookPage::ForSelection, AddressBookPage::SendingTab, this);
|
AddressBookPage dlg(platformStyle, AddressBookPage::ForSelection, AddressBookPage::SendingTab, this);
|
||||||
dlg.setModel(model->getAddressTableModel());
|
dlg.setModel(model->getAddressTableModel());
|
||||||
if (dlg.exec())
|
if (dlg.exec())
|
||||||
{
|
{
|
||||||
|
|
|
@ -7,6 +7,7 @@
|
||||||
|
|
||||||
#include <QDialog>
|
#include <QDialog>
|
||||||
|
|
||||||
|
class PlatformStyle;
|
||||||
class WalletModel;
|
class WalletModel;
|
||||||
|
|
||||||
namespace Ui {
|
namespace Ui {
|
||||||
|
@ -18,7 +19,7 @@ class SignVerifyMessageDialog : public QDialog
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
|
||||||
public:
|
public:
|
||||||
explicit SignVerifyMessageDialog(QWidget *parent);
|
explicit SignVerifyMessageDialog(const PlatformStyle *platformStyle, QWidget *parent);
|
||||||
~SignVerifyMessageDialog();
|
~SignVerifyMessageDialog();
|
||||||
|
|
||||||
void setModel(WalletModel *model);
|
void setModel(WalletModel *model);
|
||||||
|
@ -34,6 +35,7 @@ protected:
|
||||||
private:
|
private:
|
||||||
Ui::SignVerifyMessageDialog *ui;
|
Ui::SignVerifyMessageDialog *ui;
|
||||||
WalletModel *model;
|
WalletModel *model;
|
||||||
|
const PlatformStyle *platformStyle;
|
||||||
|
|
||||||
private Q_SLOTS:
|
private Q_SLOTS:
|
||||||
/* sign message */
|
/* sign message */
|
||||||
|
|
|
@ -8,7 +8,7 @@
|
||||||
#include "guiconstants.h"
|
#include "guiconstants.h"
|
||||||
#include "guiutil.h"
|
#include "guiutil.h"
|
||||||
#include "optionsmodel.h"
|
#include "optionsmodel.h"
|
||||||
#include "scicon.h"
|
#include "platformstyle.h"
|
||||||
#include "transactiondesc.h"
|
#include "transactiondesc.h"
|
||||||
#include "transactionrecord.h"
|
#include "transactionrecord.h"
|
||||||
#include "walletmodel.h"
|
#include "walletmodel.h"
|
||||||
|
@ -222,12 +222,13 @@ public:
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
TransactionTableModel::TransactionTableModel(CWallet* wallet, WalletModel *parent):
|
TransactionTableModel::TransactionTableModel(const PlatformStyle *platformStyle, CWallet* wallet, WalletModel *parent):
|
||||||
QAbstractTableModel(parent),
|
QAbstractTableModel(parent),
|
||||||
wallet(wallet),
|
wallet(wallet),
|
||||||
walletModel(parent),
|
walletModel(parent),
|
||||||
priv(new TransactionTablePriv(wallet, this)),
|
priv(new TransactionTablePriv(wallet, this)),
|
||||||
fProcessingQueuedTransactions(false)
|
fProcessingQueuedTransactions(false),
|
||||||
|
platformStyle(platformStyle)
|
||||||
{
|
{
|
||||||
columns << QString() << QString() << tr("Date") << tr("Type") << tr("Label") << BitcoinUnits::getAmountColumnTitle(walletModel->getOptionsModel()->getDisplayUnit());
|
columns << QString() << QString() << tr("Date") << tr("Type") << tr("Label") << BitcoinUnits::getAmountColumnTitle(walletModel->getOptionsModel()->getDisplayUnit());
|
||||||
priv->refreshWallet();
|
priv->refreshWallet();
|
||||||
|
@ -521,7 +522,7 @@ QVariant TransactionTableModel::data(const QModelIndex &index, int role) const
|
||||||
case Qt::DecorationRole:
|
case Qt::DecorationRole:
|
||||||
{
|
{
|
||||||
QIcon icon = qvariant_cast<QIcon>(index.data(RawDecorationRole));
|
QIcon icon = qvariant_cast<QIcon>(index.data(RawDecorationRole));
|
||||||
return TextColorIcon(icon);
|
return platformStyle->TextColorIcon(icon);
|
||||||
}
|
}
|
||||||
case Qt::DisplayRole:
|
case Qt::DisplayRole:
|
||||||
switch(index.column())
|
switch(index.column())
|
||||||
|
|
|
@ -10,6 +10,7 @@
|
||||||
#include <QAbstractTableModel>
|
#include <QAbstractTableModel>
|
||||||
#include <QStringList>
|
#include <QStringList>
|
||||||
|
|
||||||
|
class PlatformStyle;
|
||||||
class TransactionRecord;
|
class TransactionRecord;
|
||||||
class TransactionTablePriv;
|
class TransactionTablePriv;
|
||||||
class WalletModel;
|
class WalletModel;
|
||||||
|
@ -23,7 +24,7 @@ class TransactionTableModel : public QAbstractTableModel
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
|
||||||
public:
|
public:
|
||||||
explicit TransactionTableModel(CWallet* wallet, WalletModel *parent = 0);
|
explicit TransactionTableModel(const PlatformStyle *platformStyle, CWallet* wallet, WalletModel *parent = 0);
|
||||||
~TransactionTableModel();
|
~TransactionTableModel();
|
||||||
|
|
||||||
enum ColumnIndex {
|
enum ColumnIndex {
|
||||||
|
@ -82,6 +83,7 @@ private:
|
||||||
QStringList columns;
|
QStringList columns;
|
||||||
TransactionTablePriv *priv;
|
TransactionTablePriv *priv;
|
||||||
bool fProcessingQueuedTransactions;
|
bool fProcessingQueuedTransactions;
|
||||||
|
const PlatformStyle *platformStyle;
|
||||||
|
|
||||||
void subscribeToCoreSignals();
|
void subscribeToCoreSignals();
|
||||||
void unsubscribeFromCoreSignals();
|
void unsubscribeFromCoreSignals();
|
||||||
|
|
|
@ -10,7 +10,7 @@
|
||||||
#include "editaddressdialog.h"
|
#include "editaddressdialog.h"
|
||||||
#include "guiutil.h"
|
#include "guiutil.h"
|
||||||
#include "optionsmodel.h"
|
#include "optionsmodel.h"
|
||||||
#include "scicon.h"
|
#include "platformstyle.h"
|
||||||
#include "transactiondescdialog.h"
|
#include "transactiondescdialog.h"
|
||||||
#include "transactionfilterproxy.h"
|
#include "transactionfilterproxy.h"
|
||||||
#include "transactionrecord.h"
|
#include "transactionrecord.h"
|
||||||
|
@ -35,7 +35,7 @@
|
||||||
#include <QUrl>
|
#include <QUrl>
|
||||||
#include <QVBoxLayout>
|
#include <QVBoxLayout>
|
||||||
|
|
||||||
TransactionView::TransactionView(QWidget *parent) :
|
TransactionView::TransactionView(const PlatformStyle *platformStyle, QWidget *parent) :
|
||||||
QWidget(parent), model(0), transactionProxyModel(0),
|
QWidget(parent), model(0), transactionProxyModel(0),
|
||||||
transactionView(0)
|
transactionView(0)
|
||||||
{
|
{
|
||||||
|
@ -44,27 +44,28 @@ TransactionView::TransactionView(QWidget *parent) :
|
||||||
|
|
||||||
QHBoxLayout *hlayout = new QHBoxLayout();
|
QHBoxLayout *hlayout = new QHBoxLayout();
|
||||||
hlayout->setContentsMargins(0,0,0,0);
|
hlayout->setContentsMargins(0,0,0,0);
|
||||||
#ifdef Q_OS_MAC
|
|
||||||
hlayout->setSpacing(5);
|
if (platformStyle->getUseExtraSpacing()) {
|
||||||
hlayout->addSpacing(26);
|
hlayout->setSpacing(5);
|
||||||
#else
|
hlayout->addSpacing(26);
|
||||||
hlayout->setSpacing(0);
|
} else {
|
||||||
hlayout->addSpacing(23);
|
hlayout->setSpacing(0);
|
||||||
#endif
|
hlayout->addSpacing(23);
|
||||||
|
}
|
||||||
|
|
||||||
watchOnlyWidget = new QComboBox(this);
|
watchOnlyWidget = new QComboBox(this);
|
||||||
watchOnlyWidget->setFixedWidth(24);
|
watchOnlyWidget->setFixedWidth(24);
|
||||||
watchOnlyWidget->addItem("", TransactionFilterProxy::WatchOnlyFilter_All);
|
watchOnlyWidget->addItem("", TransactionFilterProxy::WatchOnlyFilter_All);
|
||||||
watchOnlyWidget->addItem(SingleColorIcon(":/icons/eye_plus"), "", TransactionFilterProxy::WatchOnlyFilter_Yes);
|
watchOnlyWidget->addItem(platformStyle->SingleColorIcon(":/icons/eye_plus"), "", TransactionFilterProxy::WatchOnlyFilter_Yes);
|
||||||
watchOnlyWidget->addItem(SingleColorIcon(":/icons/eye_minus"), "", TransactionFilterProxy::WatchOnlyFilter_No);
|
watchOnlyWidget->addItem(platformStyle->SingleColorIcon(":/icons/eye_minus"), "", TransactionFilterProxy::WatchOnlyFilter_No);
|
||||||
hlayout->addWidget(watchOnlyWidget);
|
hlayout->addWidget(watchOnlyWidget);
|
||||||
|
|
||||||
dateWidget = new QComboBox(this);
|
dateWidget = new QComboBox(this);
|
||||||
#ifdef Q_OS_MAC
|
if (platformStyle->getUseExtraSpacing()) {
|
||||||
dateWidget->setFixedWidth(121);
|
dateWidget->setFixedWidth(121);
|
||||||
#else
|
} else {
|
||||||
dateWidget->setFixedWidth(120);
|
dateWidget->setFixedWidth(120);
|
||||||
#endif
|
}
|
||||||
dateWidget->addItem(tr("All"), All);
|
dateWidget->addItem(tr("All"), All);
|
||||||
dateWidget->addItem(tr("Today"), Today);
|
dateWidget->addItem(tr("Today"), Today);
|
||||||
dateWidget->addItem(tr("This week"), ThisWeek);
|
dateWidget->addItem(tr("This week"), ThisWeek);
|
||||||
|
@ -75,11 +76,11 @@ TransactionView::TransactionView(QWidget *parent) :
|
||||||
hlayout->addWidget(dateWidget);
|
hlayout->addWidget(dateWidget);
|
||||||
|
|
||||||
typeWidget = new QComboBox(this);
|
typeWidget = new QComboBox(this);
|
||||||
#ifdef Q_OS_MAC
|
if (platformStyle->getUseExtraSpacing()) {
|
||||||
typeWidget->setFixedWidth(121);
|
typeWidget->setFixedWidth(121);
|
||||||
#else
|
} else {
|
||||||
typeWidget->setFixedWidth(120);
|
typeWidget->setFixedWidth(120);
|
||||||
#endif
|
}
|
||||||
|
|
||||||
typeWidget->addItem(tr("All"), TransactionFilterProxy::ALL_TYPES);
|
typeWidget->addItem(tr("All"), TransactionFilterProxy::ALL_TYPES);
|
||||||
typeWidget->addItem(tr("Received with"), TransactionFilterProxy::TYPE(TransactionRecord::RecvWithAddress) |
|
typeWidget->addItem(tr("Received with"), TransactionFilterProxy::TYPE(TransactionRecord::RecvWithAddress) |
|
||||||
|
@ -102,11 +103,11 @@ TransactionView::TransactionView(QWidget *parent) :
|
||||||
#if QT_VERSION >= 0x040700
|
#if QT_VERSION >= 0x040700
|
||||||
amountWidget->setPlaceholderText(tr("Min amount"));
|
amountWidget->setPlaceholderText(tr("Min amount"));
|
||||||
#endif
|
#endif
|
||||||
#ifdef Q_OS_MAC
|
if (platformStyle->getUseExtraSpacing()) {
|
||||||
amountWidget->setFixedWidth(97);
|
amountWidget->setFixedWidth(97);
|
||||||
#else
|
} else {
|
||||||
amountWidget->setFixedWidth(100);
|
amountWidget->setFixedWidth(100);
|
||||||
#endif
|
}
|
||||||
amountWidget->setValidator(new QDoubleValidator(0, 1e20, 8, this));
|
amountWidget->setValidator(new QDoubleValidator(0, 1e20, 8, this));
|
||||||
hlayout->addWidget(amountWidget);
|
hlayout->addWidget(amountWidget);
|
||||||
|
|
||||||
|
@ -121,11 +122,11 @@ TransactionView::TransactionView(QWidget *parent) :
|
||||||
vlayout->setSpacing(0);
|
vlayout->setSpacing(0);
|
||||||
int width = view->verticalScrollBar()->sizeHint().width();
|
int width = view->verticalScrollBar()->sizeHint().width();
|
||||||
// Cover scroll bar width with spacing
|
// Cover scroll bar width with spacing
|
||||||
#ifdef Q_OS_MAC
|
if (platformStyle->getUseExtraSpacing()) {
|
||||||
hlayout->addSpacing(width+2);
|
hlayout->addSpacing(width+2);
|
||||||
#else
|
} else {
|
||||||
hlayout->addSpacing(width);
|
hlayout->addSpacing(width);
|
||||||
#endif
|
}
|
||||||
// Always show scroll bar
|
// Always show scroll bar
|
||||||
view->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOn);
|
view->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOn);
|
||||||
view->setTabKeyNavigation(false);
|
view->setTabKeyNavigation(false);
|
||||||
|
|
|
@ -10,6 +10,7 @@
|
||||||
#include <QWidget>
|
#include <QWidget>
|
||||||
#include <QKeyEvent>
|
#include <QKeyEvent>
|
||||||
|
|
||||||
|
class PlatformStyle;
|
||||||
class TransactionFilterProxy;
|
class TransactionFilterProxy;
|
||||||
class WalletModel;
|
class WalletModel;
|
||||||
|
|
||||||
|
@ -32,7 +33,7 @@ class TransactionView : public QWidget
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
|
||||||
public:
|
public:
|
||||||
explicit TransactionView(QWidget *parent = 0);
|
explicit TransactionView(const PlatformStyle *platformStyle, QWidget *parent = 0);
|
||||||
|
|
||||||
void setModel(WalletModel *model);
|
void setModel(WalletModel *model);
|
||||||
|
|
||||||
|
|
|
@ -12,9 +12,10 @@
|
||||||
#include <QHBoxLayout>
|
#include <QHBoxLayout>
|
||||||
#include <QLabel>
|
#include <QLabel>
|
||||||
|
|
||||||
WalletFrame::WalletFrame(BitcoinGUI *_gui) :
|
WalletFrame::WalletFrame(const PlatformStyle *platformStyle, BitcoinGUI *_gui) :
|
||||||
QFrame(_gui),
|
QFrame(_gui),
|
||||||
gui(_gui)
|
gui(_gui),
|
||||||
|
platformStyle(platformStyle)
|
||||||
{
|
{
|
||||||
// Leave HBox hook for adding a list view later
|
// Leave HBox hook for adding a list view later
|
||||||
QHBoxLayout *walletFrameLayout = new QHBoxLayout(this);
|
QHBoxLayout *walletFrameLayout = new QHBoxLayout(this);
|
||||||
|
@ -42,7 +43,7 @@ bool WalletFrame::addWallet(const QString& name, WalletModel *walletModel)
|
||||||
if (!gui || !clientModel || !walletModel || mapWalletViews.count(name) > 0)
|
if (!gui || !clientModel || !walletModel || mapWalletViews.count(name) > 0)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
WalletView *walletView = new WalletView(this);
|
WalletView *walletView = new WalletView(platformStyle, this);
|
||||||
walletView->setBitcoinGUI(gui);
|
walletView->setBitcoinGUI(gui);
|
||||||
walletView->setClientModel(clientModel);
|
walletView->setClientModel(clientModel);
|
||||||
walletView->setWalletModel(walletModel);
|
walletView->setWalletModel(walletModel);
|
||||||
|
|
|
@ -10,6 +10,7 @@
|
||||||
|
|
||||||
class BitcoinGUI;
|
class BitcoinGUI;
|
||||||
class ClientModel;
|
class ClientModel;
|
||||||
|
class PlatformStyle;
|
||||||
class SendCoinsRecipient;
|
class SendCoinsRecipient;
|
||||||
class WalletModel;
|
class WalletModel;
|
||||||
class WalletView;
|
class WalletView;
|
||||||
|
@ -23,7 +24,7 @@ class WalletFrame : public QFrame
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
|
||||||
public:
|
public:
|
||||||
explicit WalletFrame(BitcoinGUI *_gui = 0);
|
explicit WalletFrame(const PlatformStyle *platformStyle, BitcoinGUI *_gui = 0);
|
||||||
~WalletFrame();
|
~WalletFrame();
|
||||||
|
|
||||||
void setClientModel(ClientModel *clientModel);
|
void setClientModel(ClientModel *clientModel);
|
||||||
|
@ -45,6 +46,8 @@ private:
|
||||||
|
|
||||||
bool bOutOfSync;
|
bool bOutOfSync;
|
||||||
|
|
||||||
|
const PlatformStyle *platformStyle;
|
||||||
|
|
||||||
WalletView *currentWalletView();
|
WalletView *currentWalletView();
|
||||||
|
|
||||||
public Q_SLOTS:
|
public Q_SLOTS:
|
||||||
|
|
|
@ -27,7 +27,7 @@
|
||||||
|
|
||||||
#include <boost/foreach.hpp>
|
#include <boost/foreach.hpp>
|
||||||
|
|
||||||
WalletModel::WalletModel(CWallet *wallet, OptionsModel *optionsModel, QObject *parent) :
|
WalletModel::WalletModel(const PlatformStyle *platformStyle, CWallet *wallet, OptionsModel *optionsModel, QObject *parent) :
|
||||||
QObject(parent), wallet(wallet), optionsModel(optionsModel), addressTableModel(0),
|
QObject(parent), wallet(wallet), optionsModel(optionsModel), addressTableModel(0),
|
||||||
transactionTableModel(0),
|
transactionTableModel(0),
|
||||||
recentRequestsTableModel(0),
|
recentRequestsTableModel(0),
|
||||||
|
@ -39,7 +39,7 @@ WalletModel::WalletModel(CWallet *wallet, OptionsModel *optionsModel, QObject *p
|
||||||
fForceCheckBalanceChanged = false;
|
fForceCheckBalanceChanged = false;
|
||||||
|
|
||||||
addressTableModel = new AddressTableModel(wallet, this);
|
addressTableModel = new AddressTableModel(wallet, this);
|
||||||
transactionTableModel = new TransactionTableModel(wallet, this);
|
transactionTableModel = new TransactionTableModel(platformStyle, wallet, this);
|
||||||
recentRequestsTableModel = new RecentRequestsTableModel(wallet, this);
|
recentRequestsTableModel = new RecentRequestsTableModel(wallet, this);
|
||||||
|
|
||||||
// This timer will be fired repeatedly to update the balance
|
// This timer will be fired repeatedly to update the balance
|
||||||
|
|
|
@ -17,6 +17,7 @@
|
||||||
|
|
||||||
class AddressTableModel;
|
class AddressTableModel;
|
||||||
class OptionsModel;
|
class OptionsModel;
|
||||||
|
class PlatformStyle;
|
||||||
class RecentRequestsTableModel;
|
class RecentRequestsTableModel;
|
||||||
class TransactionTableModel;
|
class TransactionTableModel;
|
||||||
class WalletModelTransaction;
|
class WalletModelTransaction;
|
||||||
|
@ -100,7 +101,7 @@ class WalletModel : public QObject
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
|
||||||
public:
|
public:
|
||||||
explicit WalletModel(CWallet *wallet, OptionsModel *optionsModel, QObject *parent = 0);
|
explicit WalletModel(const PlatformStyle *platformStyle, CWallet *wallet, OptionsModel *optionsModel, QObject *parent = 0);
|
||||||
~WalletModel();
|
~WalletModel();
|
||||||
|
|
||||||
enum StatusCode // Returned by sendCoins
|
enum StatusCode // Returned by sendCoins
|
||||||
|
|
|
@ -11,8 +11,8 @@
|
||||||
#include "guiutil.h"
|
#include "guiutil.h"
|
||||||
#include "optionsmodel.h"
|
#include "optionsmodel.h"
|
||||||
#include "overviewpage.h"
|
#include "overviewpage.h"
|
||||||
|
#include "platformstyle.h"
|
||||||
#include "receivecoinsdialog.h"
|
#include "receivecoinsdialog.h"
|
||||||
#include "scicon.h"
|
|
||||||
#include "sendcoinsdialog.h"
|
#include "sendcoinsdialog.h"
|
||||||
#include "signverifymessagedialog.h"
|
#include "signverifymessagedialog.h"
|
||||||
#include "transactiontablemodel.h"
|
#include "transactiontablemodel.h"
|
||||||
|
@ -29,31 +29,32 @@
|
||||||
#include <QPushButton>
|
#include <QPushButton>
|
||||||
#include <QVBoxLayout>
|
#include <QVBoxLayout>
|
||||||
|
|
||||||
WalletView::WalletView(QWidget *parent):
|
WalletView::WalletView(const PlatformStyle *platformStyle, QWidget *parent):
|
||||||
QStackedWidget(parent),
|
QStackedWidget(parent),
|
||||||
clientModel(0),
|
clientModel(0),
|
||||||
walletModel(0)
|
walletModel(0),
|
||||||
|
platformStyle(platformStyle)
|
||||||
{
|
{
|
||||||
// Create tabs
|
// Create tabs
|
||||||
overviewPage = new OverviewPage();
|
overviewPage = new OverviewPage(platformStyle);
|
||||||
|
|
||||||
transactionsPage = new QWidget(this);
|
transactionsPage = new QWidget(this);
|
||||||
QVBoxLayout *vbox = new QVBoxLayout();
|
QVBoxLayout *vbox = new QVBoxLayout();
|
||||||
QHBoxLayout *hbox_buttons = new QHBoxLayout();
|
QHBoxLayout *hbox_buttons = new QHBoxLayout();
|
||||||
transactionView = new TransactionView(this);
|
transactionView = new TransactionView(platformStyle, this);
|
||||||
vbox->addWidget(transactionView);
|
vbox->addWidget(transactionView);
|
||||||
QPushButton *exportButton = new QPushButton(tr("&Export"), this);
|
QPushButton *exportButton = new QPushButton(tr("&Export"), this);
|
||||||
exportButton->setToolTip(tr("Export the data in the current tab to a file"));
|
exportButton->setToolTip(tr("Export the data in the current tab to a file"));
|
||||||
#ifndef Q_OS_MAC // Icons on push buttons are very uncommon on Mac
|
if (platformStyle->getImagesOnButtons()) {
|
||||||
exportButton->setIcon(SingleColorIcon(":/icons/export"));
|
exportButton->setIcon(platformStyle->SingleColorIcon(":/icons/export"));
|
||||||
#endif
|
}
|
||||||
hbox_buttons->addStretch();
|
hbox_buttons->addStretch();
|
||||||
hbox_buttons->addWidget(exportButton);
|
hbox_buttons->addWidget(exportButton);
|
||||||
vbox->addLayout(hbox_buttons);
|
vbox->addLayout(hbox_buttons);
|
||||||
transactionsPage->setLayout(vbox);
|
transactionsPage->setLayout(vbox);
|
||||||
|
|
||||||
receiveCoinsPage = new ReceiveCoinsDialog();
|
receiveCoinsPage = new ReceiveCoinsDialog(platformStyle);
|
||||||
sendCoinsPage = new SendCoinsDialog();
|
sendCoinsPage = new SendCoinsDialog(platformStyle);
|
||||||
|
|
||||||
addWidget(overviewPage);
|
addWidget(overviewPage);
|
||||||
addWidget(transactionsPage);
|
addWidget(transactionsPage);
|
||||||
|
@ -182,7 +183,7 @@ void WalletView::gotoSendCoinsPage(QString addr)
|
||||||
void WalletView::gotoSignMessageTab(QString addr)
|
void WalletView::gotoSignMessageTab(QString addr)
|
||||||
{
|
{
|
||||||
// calls show() in showTab_SM()
|
// calls show() in showTab_SM()
|
||||||
SignVerifyMessageDialog *signVerifyMessageDialog = new SignVerifyMessageDialog(this);
|
SignVerifyMessageDialog *signVerifyMessageDialog = new SignVerifyMessageDialog(platformStyle, this);
|
||||||
signVerifyMessageDialog->setAttribute(Qt::WA_DeleteOnClose);
|
signVerifyMessageDialog->setAttribute(Qt::WA_DeleteOnClose);
|
||||||
signVerifyMessageDialog->setModel(walletModel);
|
signVerifyMessageDialog->setModel(walletModel);
|
||||||
signVerifyMessageDialog->showTab_SM(true);
|
signVerifyMessageDialog->showTab_SM(true);
|
||||||
|
@ -194,7 +195,7 @@ void WalletView::gotoSignMessageTab(QString addr)
|
||||||
void WalletView::gotoVerifyMessageTab(QString addr)
|
void WalletView::gotoVerifyMessageTab(QString addr)
|
||||||
{
|
{
|
||||||
// calls show() in showTab_VM()
|
// calls show() in showTab_VM()
|
||||||
SignVerifyMessageDialog *signVerifyMessageDialog = new SignVerifyMessageDialog(this);
|
SignVerifyMessageDialog *signVerifyMessageDialog = new SignVerifyMessageDialog(platformStyle, this);
|
||||||
signVerifyMessageDialog->setAttribute(Qt::WA_DeleteOnClose);
|
signVerifyMessageDialog->setAttribute(Qt::WA_DeleteOnClose);
|
||||||
signVerifyMessageDialog->setModel(walletModel);
|
signVerifyMessageDialog->setModel(walletModel);
|
||||||
signVerifyMessageDialog->showTab_VM(true);
|
signVerifyMessageDialog->showTab_VM(true);
|
||||||
|
@ -272,7 +273,7 @@ void WalletView::usedSendingAddresses()
|
||||||
{
|
{
|
||||||
if(!walletModel)
|
if(!walletModel)
|
||||||
return;
|
return;
|
||||||
AddressBookPage *dlg = new AddressBookPage(AddressBookPage::ForEditing, AddressBookPage::SendingTab, this);
|
AddressBookPage *dlg = new AddressBookPage(platformStyle, AddressBookPage::ForEditing, AddressBookPage::SendingTab, this);
|
||||||
dlg->setAttribute(Qt::WA_DeleteOnClose);
|
dlg->setAttribute(Qt::WA_DeleteOnClose);
|
||||||
dlg->setModel(walletModel->getAddressTableModel());
|
dlg->setModel(walletModel->getAddressTableModel());
|
||||||
dlg->show();
|
dlg->show();
|
||||||
|
@ -282,7 +283,7 @@ void WalletView::usedReceivingAddresses()
|
||||||
{
|
{
|
||||||
if(!walletModel)
|
if(!walletModel)
|
||||||
return;
|
return;
|
||||||
AddressBookPage *dlg = new AddressBookPage(AddressBookPage::ForEditing, AddressBookPage::ReceivingTab, this);
|
AddressBookPage *dlg = new AddressBookPage(platformStyle, AddressBookPage::ForEditing, AddressBookPage::ReceivingTab, this);
|
||||||
dlg->setAttribute(Qt::WA_DeleteOnClose);
|
dlg->setAttribute(Qt::WA_DeleteOnClose);
|
||||||
dlg->setModel(walletModel->getAddressTableModel());
|
dlg->setModel(walletModel->getAddressTableModel());
|
||||||
dlg->show();
|
dlg->show();
|
||||||
|
|
|
@ -12,6 +12,7 @@
|
||||||
class BitcoinGUI;
|
class BitcoinGUI;
|
||||||
class ClientModel;
|
class ClientModel;
|
||||||
class OverviewPage;
|
class OverviewPage;
|
||||||
|
class PlatformStyle;
|
||||||
class ReceiveCoinsDialog;
|
class ReceiveCoinsDialog;
|
||||||
class SendCoinsDialog;
|
class SendCoinsDialog;
|
||||||
class SendCoinsRecipient;
|
class SendCoinsRecipient;
|
||||||
|
@ -34,7 +35,7 @@ class WalletView : public QStackedWidget
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
|
||||||
public:
|
public:
|
||||||
explicit WalletView(QWidget *parent);
|
explicit WalletView(const PlatformStyle *platformStyle, QWidget *parent);
|
||||||
~WalletView();
|
~WalletView();
|
||||||
|
|
||||||
void setBitcoinGUI(BitcoinGUI *gui);
|
void setBitcoinGUI(BitcoinGUI *gui);
|
||||||
|
@ -64,6 +65,7 @@ private:
|
||||||
TransactionView *transactionView;
|
TransactionView *transactionView;
|
||||||
|
|
||||||
QProgressDialog *progressDialog;
|
QProgressDialog *progressDialog;
|
||||||
|
const PlatformStyle *platformStyle;
|
||||||
|
|
||||||
public Q_SLOTS:
|
public Q_SLOTS:
|
||||||
/** Switch to overview (home) page */
|
/** Switch to overview (home) page */
|
||||||
|
|
Loading…
Reference in a new issue