diff --git a/src/Makefile.qt.include b/src/Makefile.qt.include old mode 100755 new mode 100644 index cedce007abdc4..eb499f4b0e660 --- a/src/Makefile.qt.include +++ b/src/Makefile.qt.include @@ -157,63 +157,122 @@ BITCOIN_QT_H = \ qt/winshutdownmonitor.h RES_ICONS = \ - qt/res/icons/add.png \ - qt/res/icons/address-book.png \ qt/res/icons/bitcoin.ico \ - qt/res/icons/bitcoin.png \ qt/res/icons/bitcoin_testnet.ico \ - qt/res/icons/bitcoin_testnet.png \ - qt/res/icons/browse.png \ - qt/res/icons/clock1.png \ - qt/res/icons/clock2.png \ - qt/res/icons/clock3.png \ - qt/res/icons/clock4.png \ - qt/res/icons/clock5.png \ - qt/res/icons/configure.png \ - qt/res/icons/connect0_16.png \ - qt/res/icons/connect1_16.png \ - qt/res/icons/connect2_16.png \ - qt/res/icons/connect3_16.png \ - qt/res/icons/connect4_16.png \ - qt/res/icons/debugwindow.png \ - qt/res/icons/drkblue_editpaste.png \ - qt/res/icons/drkblue_address-book.png \ - qt/res/icons/drkblue_editcopy.png \ - qt/res/icons/drkblue_remove.png \ - qt/res/icons/edit.png \ - qt/res/icons/editcopy.png \ - qt/res/icons/editpaste.png \ - qt/res/icons/export.png \ - qt/res/icons/eye.png \ - qt/res/icons/eye_minus.png \ - qt/res/icons/eye_plus.png \ - qt/res/icons/filesave.png \ - qt/res/icons/history.png \ - qt/res/icons/key.png \ - qt/res/icons/lock_closed.png \ - qt/res/icons/lock_open.png \ - qt/res/icons/overview.png \ - qt/res/icons/qrcode.png \ - qt/res/icons/quit.png \ - qt/res/icons/receive.png \ - qt/res/icons/remove.png \ - qt/res/icons/send.png \ - qt/res/icons/synced.png \ - qt/res/icons/transaction0.png \ - qt/res/icons/transaction2.png \ - qt/res/icons/transaction_conflicted.png \ - qt/res/icons/tx_inout.png \ - qt/res/icons/tx_input.png \ - qt/res/icons/tx_output.png \ - qt/res/icons/tx_mined.png \ - qt/res/icons/unit_dash.png \ - qt/res/icons/unit_mdash.png \ - qt/res/icons/unit_udash.png \ - qt/res/icons/unit_duffs.png \ - qt/res/icons/unit_tdash.png \ - qt/res/icons/unit_tmdash.png \ - qt/res/icons/unit_tudash.png \ - qt/res/icons/unit_tduffs.png + qt/res/icons/drkblue/add.png \ + qt/res/icons/drkblue/address-book.png \ + qt/res/icons/drkblue/bitcoin.ico \ + qt/res/icons/drkblue/bitcoin.png \ + qt/res/icons/drkblue/bitcoin_testnet.ico \ + qt/res/icons/drkblue/bitcoin_testnet.png \ + qt/res/icons/drkblue/browse.png \ + qt/res/icons/drkblue/clock1.png \ + qt/res/icons/drkblue/clock2.png \ + qt/res/icons/drkblue/clock3.png \ + qt/res/icons/drkblue/clock4.png \ + qt/res/icons/drkblue/clock5.png \ + qt/res/icons/drkblue/configure.png \ + qt/res/icons/drkblue/connect0_16.png \ + qt/res/icons/drkblue/connect1_16.png \ + qt/res/icons/drkblue/connect2_16.png \ + qt/res/icons/drkblue/connect3_16.png \ + qt/res/icons/drkblue/connect4_16.png \ + qt/res/icons/drkblue/debugwindow.png \ + qt/res/icons/drkblue/drkblue_editpaste.png \ + qt/res/icons/drkblue/drkblue_address-book.png \ + qt/res/icons/drkblue/drkblue_editcopy.png \ + qt/res/icons/drkblue/drkblue_remove.png \ + qt/res/icons/drkblue/edit.png \ + qt/res/icons/drkblue/editcopy.png \ + qt/res/icons/drkblue/editpaste.png \ + qt/res/icons/drkblue/export.png \ + qt/res/icons/drkblue/eye.png \ + qt/res/icons/drkblue/eye_minus.png \ + qt/res/icons/drkblue/eye_plus.png \ + qt/res/icons/drkblue/filesave.png \ + qt/res/icons/drkblue/history.png \ + qt/res/icons/drkblue/key.png \ + qt/res/icons/drkblue/lock_closed.png \ + qt/res/icons/drkblue/lock_open.png \ + qt/res/icons/drkblue/overview.png \ + qt/res/icons/drkblue/qrcode.png \ + qt/res/icons/drkblue/quit.png \ + qt/res/icons/drkblue/receive.png \ + qt/res/icons/drkblue/remove.png \ + qt/res/icons/drkblue/send.png \ + qt/res/icons/drkblue/synced.png \ + qt/res/icons/drkblue/transaction0.png \ + qt/res/icons/drkblue/transaction2.png \ + qt/res/icons/drkblue/transaction_conflicted.png \ + qt/res/icons/drkblue/tx_inout.png \ + qt/res/icons/drkblue/tx_input.png \ + qt/res/icons/drkblue/tx_output.png \ + qt/res/icons/drkblue/tx_mined.png \ + qt/res/icons/drkblue/unit_dash.png \ + qt/res/icons/drkblue/unit_mdash.png \ + qt/res/icons/drkblue/unit_udash.png \ + qt/res/icons/drkblue/unit_duffs.png \ + qt/res/icons/drkblue/unit_tdash.png \ + qt/res/icons/drkblue/unit_tmdash.png \ + qt/res/icons/drkblue/unit_tudash.png \ + qt/res/icons/drkblue/unit_tduffs.png \ + qt/res/icons/trad/add.png \ + qt/res/icons/trad/address-book.png \ + qt/res/icons/trad/bitcoin.ico \ + qt/res/icons/trad/bitcoin.png \ + qt/res/icons/trad/bitcoin_testnet.ico \ + qt/res/icons/trad/bitcoin_testnet.png \ + qt/res/icons/trad/browse.png \ + qt/res/icons/trad/clock1.png \ + qt/res/icons/trad/clock2.png \ + qt/res/icons/trad/clock3.png \ + qt/res/icons/trad/clock4.png \ + qt/res/icons/trad/clock5.png \ + qt/res/icons/trad/configure.png \ + qt/res/icons/trad/connect0_16.png \ + qt/res/icons/trad/connect1_16.png \ + qt/res/icons/trad/connect2_16.png \ + qt/res/icons/trad/connect3_16.png \ + qt/res/icons/trad/connect4_16.png \ + qt/res/icons/trad/debugwindow.png \ + qt/res/icons/trad/drkblue_editpaste.png \ + qt/res/icons/trad/drkblue_address-book.png \ + qt/res/icons/trad/drkblue_editcopy.png \ + qt/res/icons/trad/drkblue_remove.png \ + qt/res/icons/trad/edit.png \ + qt/res/icons/trad/editcopy.png \ + qt/res/icons/trad/editpaste.png \ + qt/res/icons/trad/export.png \ + qt/res/icons/trad/eye.png \ + qt/res/icons/trad/eye_minus.png \ + qt/res/icons/trad/eye_plus.png \ + qt/res/icons/trad/filesave.png \ + qt/res/icons/trad/history.png \ + qt/res/icons/trad/key.png \ + qt/res/icons/trad/lock_closed.png \ + qt/res/icons/trad/lock_open.png \ + qt/res/icons/trad/overview.png \ + qt/res/icons/trad/qrcode.png \ + qt/res/icons/trad/quit.png \ + qt/res/icons/trad/receive.png \ + qt/res/icons/trad/remove.png \ + qt/res/icons/trad/send.png \ + qt/res/icons/trad/synced.png \ + qt/res/icons/trad/transaction0.png \ + qt/res/icons/trad/transaction2.png \ + qt/res/icons/trad/transaction_conflicted.png \ + qt/res/icons/trad/tx_inout.png \ + qt/res/icons/trad/tx_input.png \ + qt/res/icons/trad/tx_output.png \ + qt/res/icons/trad/tx_mined.png \ + qt/res/icons/trad/unit_dash.png \ + qt/res/icons/trad/unit_mdash.png \ + qt/res/icons/trad/unit_udash.png \ + qt/res/icons/trad/unit_duffs.png \ + qt/res/icons/trad/unit_tdash.png \ + qt/res/icons/trad/unit_tmdash.png \ + qt/res/icons/trad/unit_tudash.png \ + qt/res/icons/trad/unit_tduffs.png BITCOIN_QT_CPP = \ qt/bitcoinaddressvalidator.cpp \ @@ -269,18 +328,30 @@ BITCOIN_QT_CPP += \ endif RES_IMAGES = \ - qt/res/images/about.png \ - qt/res/images/splash.png \ - qt/res/images/splash_testnet.png \ - qt/res/images/dash_logo_horizontal.png \ - qt/res/images/drkblue_downArrow.png \ - qt/res/images/drkblue_downArrow_small.png \ - qt/res/images/drkblue_upArrow_small.png \ - qt/res/images/drkblue_leftArrow_small.png \ - qt/res/images/drkblue_rightArrow_small.png \ - qt/res/images/drkblue_qtreeview_selected.png \ - qt/res/images/drkblue_walletFrame_bg.png \ - qt/res/images/drkblue_walletFrame.png + qt/res/images/drkblue/about.png \ + qt/res/images/drkblue/splash.png \ + qt/res/images/drkblue/splash_testnet.png \ + qt/res/images/drkblue/dash_logo_horizontal.png \ + qt/res/images/drkblue/drkblue_downArrow.png \ + qt/res/images/drkblue/drkblue_downArrow_small.png \ + qt/res/images/drkblue/drkblue_upArrow_small.png \ + qt/res/images/drkblue/drkblue_leftArrow_small.png \ + qt/res/images/drkblue/drkblue_rightArrow_small.png \ + qt/res/images/drkblue/drkblue_qtreeview_selected.png \ + qt/res/images/drkblue/drkblue_walletFrame_bg.png \ + qt/res/images/drkblue/drkblue_walletFrame.png \ + qt/res/images/trad/about.png \ + qt/res/images/trad/splash.png \ + qt/res/images/trad/splash_testnet.png \ + qt/res/images/trad/dash_logo_horizontal.png \ + qt/res/images/trad/drkblue_downArrow.png \ + qt/res/images/trad/drkblue_downArrow_small.png \ + qt/res/images/trad/drkblue_upArrow_small.png \ + qt/res/images/trad/drkblue_leftArrow_small.png \ + qt/res/images/trad/drkblue_rightArrow_small.png \ + qt/res/images/trad/drkblue_qtreeview_selected.png \ + qt/res/images/trad/drkblue_walletFrame_bg.png \ + qt/res/images/trad/drkblue_walletFrame.png RES_CSS = \ qt/res/css/drkblue.css diff --git a/src/qt/addressbookpage.cpp b/src/qt/addressbookpage.cpp index 69866600ccb59..f395d4e999d1e 100644 --- a/src/qt/addressbookpage.cpp +++ b/src/qt/addressbookpage.cpp @@ -29,17 +29,18 @@ AddressBookPage::AddressBookPage(Mode mode, Tabs tab, QWidget *parent) : tab(tab) { ui->setupUi(this); - + QString theme = GUIUtil::getThemeName(); + #ifdef Q_OS_MAC // Icons on push buttons are very uncommon on Mac ui->newAddress->setIcon(QIcon()); ui->copyAddress->setIcon(QIcon()); ui->deleteAddress->setIcon(QIcon()); ui->exportButton->setIcon(QIcon()); #else - ui->newAddress->setIcon(QIcon(":/icons/add")); - ui->copyAddress->setIcon(QIcon(":/icons/editcopy")); - ui->deleteAddress->setIcon(QIcon(":/icons/remove")); - ui->exportButton->setIcon(QIcon(":/icons/export")); + ui->newAddress->setIcon(QIcon(":/icons/" + theme + "/add")); + ui->copyAddress->setIcon(QIcon(":/icons/" + theme + "/editcopy")); + ui->deleteAddress->setIcon(QIcon(":/icons/" + theme + "/remove")); + ui->exportButton->setIcon(QIcon(":/icons/" + theme + "/export")); #endif switch(mode) diff --git a/src/qt/bitcoingui.cpp b/src/qt/bitcoingui.cpp index 754a6604236ac..9bc5ef10ad483 100644 --- a/src/qt/bitcoingui.cpp +++ b/src/qt/bitcoingui.cpp @@ -259,7 +259,8 @@ void BitcoinGUI::createActions(const NetworkStyle *networkStyle) { QActionGroup *tabGroup = new QActionGroup(this); - overviewAction = new QAction(QIcon(":/icons/overview"), tr("&Overview"), this); + QString theme = GUIUtil::getThemeName(); + overviewAction = new QAction(QIcon(":/icons/" + theme + "/overview"), tr("&Overview"), this); overviewAction->setStatusTip(tr("Show general overview of wallet")); overviewAction->setToolTip(overviewAction->statusTip()); overviewAction->setCheckable(true); @@ -270,7 +271,7 @@ void BitcoinGUI::createActions(const NetworkStyle *networkStyle) #endif tabGroup->addAction(overviewAction); - sendCoinsAction = new QAction(QIcon(":/icons/send"), tr("&Send"), this); + sendCoinsAction = new QAction(QIcon(":/icons/" + theme + "/send"), tr("&Send"), this); sendCoinsAction->setStatusTip(tr("Send coins to a Dash address")); sendCoinsAction->setToolTip(sendCoinsAction->statusTip()); sendCoinsAction->setCheckable(true); @@ -281,7 +282,7 @@ void BitcoinGUI::createActions(const NetworkStyle *networkStyle) #endif tabGroup->addAction(sendCoinsAction); - receiveCoinsAction = new QAction(QIcon(":/icons/receiving_addresses"), tr("&Receive"), this); + receiveCoinsAction = new QAction(QIcon(":/icons/" + theme + "/receiving_addresses"), tr("&Receive"), this); receiveCoinsAction->setStatusTip(tr("Request payments (generates QR codes and dash: URIs)")); receiveCoinsAction->setToolTip(receiveCoinsAction->statusTip()); receiveCoinsAction->setCheckable(true); @@ -292,7 +293,7 @@ void BitcoinGUI::createActions(const NetworkStyle *networkStyle) #endif tabGroup->addAction(receiveCoinsAction); - historyAction = new QAction(QIcon(":/icons/history"), tr("&Transactions"), this); + historyAction = new QAction(QIcon(":/icons/" + theme + "/history"), tr("&Transactions"), this); historyAction->setStatusTip(tr("Browse transaction history")); historyAction->setToolTip(historyAction->statusTip()); historyAction->setCheckable(true); @@ -316,7 +317,7 @@ void BitcoinGUI::createActions(const NetworkStyle *networkStyle) connect(historyAction, SIGNAL(triggered()), this, SLOT(gotoHistoryPage())); #endif // ENABLE_WALLET - quitAction = new QAction(QIcon(":/icons/quit"), tr("E&xit"), this); + quitAction = new QAction(QIcon(":/icons/" + theme + "/quit"), tr("E&xit"), this); quitAction->setStatusTip(tr("Quit application")); quitAction->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_Q)); quitAction->setMenuRole(QAction::QuitRole); @@ -330,45 +331,45 @@ void BitcoinGUI::createActions(const NetworkStyle *networkStyle) #endif aboutQtAction->setStatusTip(tr("Show information about Qt")); aboutQtAction->setMenuRole(QAction::AboutQtRole); - optionsAction = new QAction(QIcon(":/icons/options"), tr("&Options..."), this); + optionsAction = new QAction(QIcon(":/icons/" + theme + "/options"), tr("&Options..."), this); optionsAction->setStatusTip(tr("Modify configuration options for Dash")); optionsAction->setMenuRole(QAction::PreferencesRole); toggleHideAction = new QAction(networkStyle->getAppIcon(), tr("&Show / Hide"), this); toggleHideAction->setStatusTip(tr("Show or hide the main Window")); - encryptWalletAction = new QAction(QIcon(":/icons/lock_closed"), tr("&Encrypt Wallet..."), this); + encryptWalletAction = new QAction(QIcon(":/icons/" + theme + "/lock_closed"), tr("&Encrypt Wallet..."), this); encryptWalletAction->setStatusTip(tr("Encrypt the private keys that belong to your wallet")); encryptWalletAction->setCheckable(true); - backupWalletAction = new QAction(QIcon(":/icons/filesave"), tr("&Backup Wallet..."), this); + backupWalletAction = new QAction(QIcon(":/icons/" + theme + "/filesave"), tr("&Backup Wallet..."), this); backupWalletAction->setStatusTip(tr("Backup wallet to another location")); - changePassphraseAction = new QAction(QIcon(":/icons/key"), tr("&Change Passphrase..."), this); + changePassphraseAction = new QAction(QIcon(":/icons/" + theme + "/key"), tr("&Change Passphrase..."), this); changePassphraseAction->setStatusTip(tr("Change the passphrase used for wallet encryption")); unlockWalletAction = new QAction(tr("&Unlock Wallet..."), this); unlockWalletAction->setToolTip(tr("Unlock wallet")); lockWalletAction = new QAction(tr("&Lock Wallet"), this); - signMessageAction = new QAction(QIcon(":/icons/edit"), tr("Sign &message..."), this); + signMessageAction = new QAction(QIcon(":/icons/" + theme + "/edit"), tr("Sign &message..."), this); signMessageAction->setStatusTip(tr("Sign messages with your Dash addresses to prove you own them")); - verifyMessageAction = new QAction(QIcon(":/icons/transaction_0"), tr("&Verify message..."), this); + verifyMessageAction = new QAction(QIcon(":/icons/" + theme + "/transaction_0"), tr("&Verify message..."), this); verifyMessageAction->setStatusTip(tr("Verify messages to ensure they were signed with specified Dash addresses")); openInfoAction = new QAction(QApplication::style()->standardIcon(QStyle::SP_MessageBoxInformation), tr("&Information"), this); openInfoAction->setStatusTip(tr("Show diagnostic information")); - openRPCConsoleAction = new QAction(QIcon(":/icons/debugwindow"), tr("&Debug console"), this); + openRPCConsoleAction = new QAction(QIcon(":/icons/" + theme + "/debugwindow"), tr("&Debug console"), this); openRPCConsoleAction->setStatusTip(tr("Open debugging console")); - openNetworkAction = new QAction(QIcon(":/icons/connect_4"), tr("&Network Monitor"), this); + openNetworkAction = new QAction(QIcon(":/icons/" + theme + "/connect_4"), tr("&Network Monitor"), this); openNetworkAction->setStatusTip(tr("Show network monitor")); - openPeersAction = new QAction(QIcon(":/icons/connect_4"), tr("&Peers list"), this); + openPeersAction = new QAction(QIcon(":/icons/" + theme + "/connect_4"), tr("&Peers list"), this); openPeersAction->setStatusTip(tr("Show peers info")); - openRepairAction = new QAction(QIcon(":/icons/options"), tr("Wallet &Repair"), this); + openRepairAction = new QAction(QIcon(":/icons/" + theme + "/options"), tr("Wallet &Repair"), this); openRepairAction->setStatusTip(tr("Show wallet repair options")); - openConfEditorAction = new QAction(QIcon(":/icons/edit"), tr("Open &Configuration File"), this); + openConfEditorAction = new QAction(QIcon(":/icons/" + theme + "/edit"), tr("Open &Configuration File"), this); openConfEditorAction->setStatusTip(tr("Open configuration file")); - showBackupsAction = new QAction(QIcon(":/icons/browse"), tr("Show Automatic &Backups"), this); + showBackupsAction = new QAction(QIcon(":/icons/" + theme + "/browse"), tr("Show Automatic &Backups"), this); showBackupsAction->setStatusTip(tr("Show automatically created wallet backups")); - usedSendingAddressesAction = new QAction(QIcon(":/icons/address-book"), tr("&Sending addresses..."), this); + usedSendingAddressesAction = new QAction(QIcon(":/icons/" + theme + "/address-book"), tr("&Sending addresses..."), this); usedSendingAddressesAction->setStatusTip(tr("Show the list of used sending addresses and labels")); - usedReceivingAddressesAction = new QAction(QIcon(":/icons/address-book"), tr("&Receiving addresses..."), this); + usedReceivingAddressesAction = new QAction(QIcon(":/icons/" + theme + "/address-book"), tr("&Receiving addresses..."), this); usedReceivingAddressesAction->setStatusTip(tr("Show the list of used receiving addresses and labels")); openAction = new QAction(QApplication::style()->standardIcon(QStyle::SP_FileIcon), tr("Open &URI..."), this); @@ -707,13 +708,14 @@ void BitcoinGUI::gotoVerifyMessageTab(QString addr) void BitcoinGUI::setNumConnections(int count) { QString icon; + QString theme = GUIUtil::getThemeName(); switch(count) { - case 0: icon = ":/icons/connect_0"; break; - case 1: case 2: case 3: icon = ":/icons/connect_1"; break; - case 4: case 5: case 6: icon = ":/icons/connect_2"; break; - case 7: case 8: case 9: icon = ":/icons/connect_3"; break; - default: icon = ":/icons/connect_4"; break; + case 0: icon = ":/icons/" + theme + "/connect_0"; break; + case 1: case 2: case 3: icon = ":/icons/" + theme + "/connect_1"; break; + case 4: case 5: case 6: icon = ":/icons/" + theme + "/connect_2"; break; + case 7: case 8: case 9: icon = ":/icons/" + theme + "/connect_3"; break; + default: icon = ":/icons/" + theme + "/connect_4"; break; } QIcon connectionItem = QIcon(icon).pixmap(STATUSBAR_ICONSIZE,STATUSBAR_ICONSIZE); labelConnectionsIcon->setIcon(connectionItem); @@ -755,7 +757,8 @@ void BitcoinGUI::setNumBlocks(int count) tooltip = tr("Processed %n blocks of transaction history.", "", count); // Set icon state: spinning if catching up, tick otherwise -// if(secs < 25*60) // 90*60 for bitcoin but we are 4x times faster + QString theme = GUIUtil::getThemeName(); + // if(secs < 25*60) // 90*60 for bitcoin but we are 4x times faster if(masternodeSync.IsBlockchainSynced()) { QString strSyncStatus; @@ -764,7 +767,7 @@ void BitcoinGUI::setNumBlocks(int count) if(masternodeSync.IsSynced()) { progressBarLabel->setVisible(false); progressBar->setVisible(false); - labelBlocksIcon->setPixmap(QIcon(":/icons/synced").pixmap(STATUSBAR_ICONSIZE, STATUSBAR_ICONSIZE)); + labelBlocksIcon->setPixmap(QIcon(":/icons/" + theme + "/synced").pixmap(STATUSBAR_ICONSIZE, STATUSBAR_ICONSIZE)); } else { int nAttempt; @@ -1008,6 +1011,7 @@ bool BitcoinGUI::handlePaymentRequest(const SendCoinsRecipient& recipient) void BitcoinGUI::setEncryptionStatus(int status) { + QString theme = GUIUtil::getThemeName(); switch(status) { case WalletModel::Unencrypted: @@ -1020,7 +1024,7 @@ void BitcoinGUI::setEncryptionStatus(int status) break; case WalletModel::Unlocked: labelEncryptionIcon->show(); - labelEncryptionIcon->setPixmap(QIcon(":/icons/lock_open").pixmap(STATUSBAR_ICONSIZE,STATUSBAR_ICONSIZE)); + labelEncryptionIcon->setPixmap(QIcon(":/icons/" + theme + "/lock_open").pixmap(STATUSBAR_ICONSIZE,STATUSBAR_ICONSIZE)); labelEncryptionIcon->setToolTip(tr("Wallet is encrypted and currently unlocked")); encryptWalletAction->setChecked(true); changePassphraseAction->setEnabled(true); @@ -1030,7 +1034,7 @@ void BitcoinGUI::setEncryptionStatus(int status) break; case WalletModel::UnlockedForAnonymizationOnly: labelEncryptionIcon->show(); - labelEncryptionIcon->setPixmap(QIcon(":/icons/lock_open").pixmap(STATUSBAR_ICONSIZE,STATUSBAR_ICONSIZE)); + labelEncryptionIcon->setPixmap(QIcon(":/icons/" + theme + "/lock_open").pixmap(STATUSBAR_ICONSIZE,STATUSBAR_ICONSIZE)); labelEncryptionIcon->setToolTip(tr("Wallet is encrypted and currently unlocked for anonimization only")); encryptWalletAction->setChecked(true); changePassphraseAction->setEnabled(true); @@ -1040,7 +1044,7 @@ void BitcoinGUI::setEncryptionStatus(int status) break; case WalletModel::Locked: labelEncryptionIcon->show(); - labelEncryptionIcon->setPixmap(QIcon(":/icons/lock_closed").pixmap(STATUSBAR_ICONSIZE,STATUSBAR_ICONSIZE)); + labelEncryptionIcon->setPixmap(QIcon(":/icons/" + theme + "/lock_closed").pixmap(STATUSBAR_ICONSIZE,STATUSBAR_ICONSIZE)); labelEncryptionIcon->setToolTip(tr("Wallet is encrypted and currently locked")); encryptWalletAction->setChecked(true); changePassphraseAction->setEnabled(true); @@ -1196,11 +1200,12 @@ void UnitDisplayStatusBarControl::setOptionsModel(OptionsModel *optionsModel) /** When Display Units are changed on OptionsModel it will refresh the display text of the control on the status bar */ void UnitDisplayStatusBarControl::updateDisplayUnit(int newUnits) { + QString theme = GUIUtil::getThemeName(); if(Params().NetworkID() == CBaseChainParams::MAIN){ - setPixmap(QIcon(":/icons/unit_" + BitcoinUnits::id(newUnits)).pixmap(39,STATUSBAR_ICONSIZE)); + setPixmap(QIcon(":/icons/" + theme + "/unit_" + BitcoinUnits::id(newUnits)).pixmap(39,STATUSBAR_ICONSIZE)); } else{ - setPixmap(QIcon(":/icons/unit_t" + BitcoinUnits::id(newUnits)).pixmap(39,STATUSBAR_ICONSIZE)); + setPixmap(QIcon(":/icons/" + theme + "/unit_t" + BitcoinUnits::id(newUnits)).pixmap(39,STATUSBAR_ICONSIZE)); } } diff --git a/src/qt/coincontroldialog.cpp b/src/qt/coincontroldialog.cpp index f21483759f21e..992bb4a5a5bc2 100644 --- a/src/qt/coincontroldialog.cpp +++ b/src/qt/coincontroldialog.cpp @@ -217,6 +217,7 @@ void CoinControlDialog::buttonSelectAllClicked() void CoinControlDialog::buttonToggleLockClicked() { QTreeWidgetItem *item; + QString theme = GUIUtil::getThemeName(); // Works in list-mode only if(ui->radioListMode->isChecked()){ ui->treeWidget->setEnabled(false); @@ -231,7 +232,7 @@ void CoinControlDialog::buttonToggleLockClicked() else{ model->lockCoin(outpt); item->setDisabled(true); - item->setIcon(COLUMN_CHECKBOX, QIcon(":/icons/lock_closed")); + item->setIcon(COLUMN_CHECKBOX, QIcon(":/icons/" + theme + "/lock_closed")); } updateLabelLocked(); } @@ -315,13 +316,14 @@ void CoinControlDialog::copyTransactionHash() // context menu action: lock coin void CoinControlDialog::lockCoin() { + QString theme = GUIUtil::getThemeName(); if (contextMenuItem->checkState(COLUMN_CHECKBOX) == Qt::Checked) contextMenuItem->setCheckState(COLUMN_CHECKBOX, Qt::Unchecked); COutPoint outpt(uint256(contextMenuItem->text(COLUMN_TXHASH).toStdString()), contextMenuItem->text(COLUMN_VOUT_INDEX).toUInt()); model->lockCoin(outpt); contextMenuItem->setDisabled(true); - contextMenuItem->setIcon(COLUMN_CHECKBOX, QIcon(":/icons/lock_closed")); + contextMenuItem->setIcon(COLUMN_CHECKBOX, QIcon(":/icons/" + theme + "/lock_closed")); updateLabelLocked(); } @@ -724,7 +726,8 @@ void CoinControlDialog::updateView() return; bool treeMode = ui->radioTreeMode->isChecked(); - + QString theme = GUIUtil::getThemeName(); + ui->treeWidget->clear(); ui->treeWidget->setEnabled(false); // performance, otherwise updateLabels would be called for every checked checkbox ui->treeWidget->setAlternatingRowColors(!treeMode); @@ -855,7 +858,7 @@ void CoinControlDialog::updateView() COutPoint outpt(txhash, out.i); coinControl->UnSelect(outpt); // just to be sure itemOutput->setDisabled(true); - itemOutput->setIcon(COLUMN_CHECKBOX, QIcon(":/icons/lock_closed")); + itemOutput->setIcon(COLUMN_CHECKBOX, QIcon(":/icons/" + theme + "/lock_closed")); } // set checkbox diff --git a/src/qt/dash.qrc b/src/qt/dash.qrc index 9e4fa270f4035..450a8a3280c32 100644 --- a/src/qt/dash.qrc +++ b/src/qt/dash.qrc @@ -1,77 +1,148 @@ - - res/icons/bitcoin.png - res/icons/address-book.png - res/icons/quit.png - res/icons/send.png - res/icons/connect0_16.png - res/icons/connect1_16.png - res/icons/connect2_16.png - res/icons/connect3_16.png - res/icons/connect4_16.png - res/icons/transaction0.png - res/icons/transaction2.png - res/icons/transaction_conflicted.png - res/icons/clock1.png - res/icons/clock2.png - res/icons/clock3.png - res/icons/clock4.png - res/icons/clock5.png - res/icons/eye.png - res/icons/eye_minus.png - res/icons/eye_plus.png - res/icons/configure.png - res/icons/receive.png - res/icons/editpaste.png - res/icons/editcopy.png - res/icons/add.png - res/icons/bitcoin_testnet.png - res/icons/edit.png - res/icons/history.png - res/icons/overview.png - res/icons/export.png - res/icons/synced.png - res/icons/remove.png - res/icons/tx_mined.png - res/icons/tx_input.png - res/icons/tx_output.png - res/icons/tx_inout.png - res/icons/unit_dash.png - res/icons/unit_mdash.png - res/icons/unit_udash.png - res/icons/unit_duffs.png - res/icons/unit_tdash.png - res/icons/unit_tmdash.png - res/icons/unit_tudash.png - res/icons/unit_tduffs.png - res/icons/lock_closed.png - res/icons/lock_open.png - res/icons/key.png - res/icons/filesave.png - res/icons/qrcode.png - res/icons/debugwindow.png - res/icons/drkblue_editpaste.png - res/icons/drkblue_address-book.png - res/icons/drkblue_editcopy.png - res/icons/drkblue_remove.png - res/icons/browse.png + + res/icons/drkblue/bitcoin.png + res/icons/drkblue/address-book.png + res/icons/drkblue/quit.png + res/icons/drkblue/send.png + res/icons/drkblue/connect0_16.png + res/icons/drkblue/connect1_16.png + res/icons/drkblue/connect2_16.png + res/icons/drkblue/connect3_16.png + res/icons/drkblue/connect4_16.png + res/icons/drkblue/transaction0.png + res/icons/drkblue/transaction2.png + res/icons/drkblue/transaction_conflicted.png + res/icons/drkblue/clock1.png + res/icons/drkblue/clock2.png + res/icons/drkblue/clock3.png + res/icons/drkblue/clock4.png + res/icons/drkblue/clock5.png + res/icons/drkblue/eye.png + res/icons/drkblue/eye_minus.png + res/icons/drkblue/eye_plus.png + res/icons/drkblue/configure.png + res/icons/drkblue/receive.png + res/icons/drkblue/editpaste.png + res/icons/drkblue/editcopy.png + res/icons/drkblue/add.png + res/icons/drkblue/bitcoin_testnet.png + res/icons/drkblue/edit.png + res/icons/drkblue/history.png + res/icons/drkblue/overview.png + res/icons/drkblue/export.png + res/icons/drkblue/synced.png + res/icons/drkblue/remove.png + res/icons/drkblue/tx_mined.png + res/icons/drkblue/tx_input.png + res/icons/drkblue/tx_output.png + res/icons/drkblue/tx_inout.png + res/icons/drkblue/unit_dash.png + res/icons/drkblue/unit_mdash.png + res/icons/drkblue/unit_udash.png + res/icons/drkblue/unit_duffs.png + res/icons/drkblue/unit_tdash.png + res/icons/drkblue/unit_tmdash.png + res/icons/drkblue/unit_tudash.png + res/icons/drkblue/unit_tduffs.png + res/icons/drkblue/lock_closed.png + res/icons/drkblue/lock_open.png + res/icons/drkblue/key.png + res/icons/drkblue/filesave.png + res/icons/drkblue/qrcode.png + res/icons/drkblue/debugwindow.png + res/icons/drkblue/drkblue_editpaste.png + res/icons/drkblue/drkblue_address-book.png + res/icons/drkblue/drkblue_editcopy.png + res/icons/drkblue/drkblue_remove.png + res/icons/drkblue/browse.png + + + res/icons/trad/bitcoin.png + res/icons/trad/address-book.png + res/icons/trad/quit.png + res/icons/trad/send.png + res/icons/trad/connect0_16.png + res/icons/trad/connect1_16.png + res/icons/trad/connect2_16.png + res/icons/trad/connect3_16.png + res/icons/trad/connect4_16.png + res/icons/trad/transaction0.png + res/icons/trad/transaction2.png + res/icons/trad/transaction_conflicted.png + res/icons/trad/clock1.png + res/icons/trad/clock2.png + res/icons/trad/clock3.png + res/icons/trad/clock4.png + res/icons/trad/clock5.png + res/icons/trad/eye.png + res/icons/trad/eye_minus.png + res/icons/trad/eye_plus.png + res/icons/trad/configure.png + res/icons/trad/receive.png + res/icons/trad/editpaste.png + res/icons/trad/editcopy.png + res/icons/trad/add.png + res/icons/trad/bitcoin_testnet.png + res/icons/trad/edit.png + res/icons/trad/history.png + res/icons/trad/overview.png + res/icons/trad/export.png + res/icons/trad/synced.png + res/icons/trad/remove.png + res/icons/trad/tx_mined.png + res/icons/trad/tx_input.png + res/icons/trad/tx_output.png + res/icons/trad/tx_inout.png + res/icons/trad/unit_dash.png + res/icons/trad/unit_mdash.png + res/icons/trad/unit_udash.png + res/icons/trad/unit_duffs.png + res/icons/trad/unit_tdash.png + res/icons/trad/unit_tmdash.png + res/icons/trad/unit_tudash.png + res/icons/trad/unit_tduffs.png + res/icons/trad/lock_closed.png + res/icons/trad/lock_open.png + res/icons/trad/key.png + res/icons/trad/filesave.png + res/icons/trad/qrcode.png + res/icons/trad/debugwindow.png + res/icons/trad/drkblue_editpaste.png + res/icons/trad/drkblue_address-book.png + res/icons/trad/drkblue_editcopy.png + res/icons/trad/drkblue_remove.png + res/icons/trad/browse.png res/css/drkblue.css - - res/images/about.png - res/images/dash_logo_horizontal.png - res/images/drkblue_downArrow.png - res/images/drkblue_downArrow_small.png - res/images/drkblue_upArrow_small.png - res/images/drkblue_leftArrow_small.png - res/images/drkblue_rightArrow_small.png - res/images/drkblue_qtreeview_selected.png - res/images/drkblue_walletFrame_bg.png - res/images/drkblue_walletFrame.png - res/images/splash.png - res/images/splash_testnet.png + + res/images/drkblue/about.png + res/images/drkblue/dash_logo_horizontal.png + res/images/drkblue/drkblue_downArrow.png + res/images/drkblue/drkblue_downArrow_small.png + res/images/drkblue/drkblue_upArrow_small.png + res/images/drkblue/drkblue_leftArrow_small.png + res/images/drkblue/drkblue_rightArrow_small.png + res/images/drkblue/drkblue_qtreeview_selected.png + res/images/drkblue/drkblue_walletFrame_bg.png + res/images/drkblue/drkblue_walletFrame.png + res/images/drkblue/splash.png + res/images/drkblue/splash_testnet.png + + + res/images/trad/about.png + res/images/trad/dash_logo_horizontal.png + res/images/trad/drkblue_downArrow.png + res/images/trad/drkblue_downArrow_small.png + res/images/trad/drkblue_upArrow_small.png + res/images/trad/drkblue_leftArrow_small.png + res/images/trad/drkblue_rightArrow_small.png + res/images/trad/drkblue_qtreeview_selected.png + res/images/trad/drkblue_walletFrame_bg.png + res/images/trad/drkblue_walletFrame.png + res/images/trad/splash.png + res/images/trad/splash_testnet.png res/movies/spinner-000.png diff --git a/src/qt/forms/helpmessagedialog.ui b/src/qt/forms/helpmessagedialog.ui index e1edf58916850..bf1a781c34fd8 100644 --- a/src/qt/forms/helpmessagedialog.ui +++ b/src/qt/forms/helpmessagedialog.ui @@ -28,7 +28,7 @@ - :/images/about + :/images/drkblue/about @@ -47,8 +47,8 @@ 0 0 - 659 - 348 + 658 + 342 diff --git a/src/qt/guiutil.cpp b/src/qt/guiutil.cpp index 6f495230b65de..fcb449ee35766 100644 --- a/src/qt/guiutil.cpp +++ b/src/qt/guiutil.cpp @@ -805,6 +805,18 @@ void restoreWindowGeometry(const QString& strSetting, const QSize& defaultSize, parent->move(pos); } +// Return name of current UI-theme or default theme if no theme was found +QString getThemeName() +{ + QSettings settings; + QString theme = settings.value("theme", "").toString(); + + if(!theme.isEmpty()){ + return theme; + } + return QString("drkblue"); +} + // Open CSS when configured QString loadStyleSheet() { diff --git a/src/qt/guiutil.h b/src/qt/guiutil.h index 4dd6ca2f6c5a3..8882ee74d45f6 100644 --- a/src/qt/guiutil.h +++ b/src/qt/guiutil.h @@ -182,6 +182,9 @@ namespace GUIUtil /** Load global CSS theme */ QString loadStyleSheet(); + + /** Return name of current CSS theme */ + QString getThemeName(); /* Convert QString to OS specific boost path through UTF-8 */ boost::filesystem::path qstringToBoostPath(const QString &path); diff --git a/src/qt/networkstyle.cpp b/src/qt/networkstyle.cpp index 62c44703f470c..858cd2aa4b55b 100644 --- a/src/qt/networkstyle.cpp +++ b/src/qt/networkstyle.cpp @@ -15,9 +15,9 @@ static const struct { const char *titleAddText; const char *splashImage; } network_styles[] = { - {"main", QAPP_APP_NAME_DEFAULT, ":/icons/bitcoin", "", ":/images/splash"}, - {"test", QAPP_APP_NAME_TESTNET, ":/icons/bitcoin_testnet", QT_TRANSLATE_NOOP("SplashScreen", "[testnet]"), ":/images/splash_testnet"}, - {"regtest", QAPP_APP_NAME_TESTNET, ":/icons/bitcoin_testnet", "[regtest]", ":/images/splash_testnet"} + {"main", QAPP_APP_NAME_DEFAULT, ":/icons/drkblue/bitcoin", "", ":/images/drkblue/splash"}, + {"test", QAPP_APP_NAME_TESTNET, ":/icons/drkblue/bitcoin_testnet", QT_TRANSLATE_NOOP("SplashScreen", "[testnet]"), ":/images/drkblue/splash_testnet"}, + {"regtest", QAPP_APP_NAME_TESTNET, ":/icons/drkblue/bitcoin_testnet", "[regtest]", ":/images/drkblue/splash_testnet"} }; static const unsigned network_styles_count = sizeof(network_styles)/sizeof(*network_styles); diff --git a/src/qt/receivecoinsdialog.cpp b/src/qt/receivecoinsdialog.cpp index b2aac9350d123..3f05459a21453 100644 --- a/src/qt/receivecoinsdialog.cpp +++ b/src/qt/receivecoinsdialog.cpp @@ -27,17 +27,18 @@ ReceiveCoinsDialog::ReceiveCoinsDialog(QWidget *parent) : model(0) { ui->setupUi(this); - + QString theme = GUIUtil::getThemeName(); + #ifdef Q_OS_MAC // Icons on push buttons are very uncommon on Mac ui->clearButton->setIcon(QIcon()); ui->receiveButton->setIcon(QIcon()); ui->showRequestButton->setIcon(QIcon()); ui->removeRequestButton->setIcon(QIcon()); #else - ui->clearButton->setIcon(QIcon(":/icons/remove")); - ui->receiveButton->setIcon(QIcon(":/icons/receiving_addresses")); - ui->showRequestButton->setIcon(QIcon(":/icons/edit")); - ui->removeRequestButton->setIcon(QIcon(":/icons/remove")); + ui->clearButton->setIcon(QIcon(":/icons/" + theme + "/remove")); + ui->receiveButton->setIcon(QIcon(":/icons/" + theme + "/receiving_addresses")); + ui->showRequestButton->setIcon(QIcon(":/icons/" + theme + "/edit")); + ui->removeRequestButton->setIcon(QIcon(":/icons/" + theme + "/remove")); #endif // context menu actions diff --git a/src/qt/res/css/drkblue.css b/src/qt/res/css/drkblue.css index 965ef42a395c6..a2a405688d758 100644 --- a/src/qt/res/css/drkblue.css +++ b/src/qt/res/css/drkblue.css @@ -1,5 +1,5 @@ WalletFrame { -border-image: url(':/images/drkblue_walletFrame_bg') 0 0 0 0 stretch stretch; +border-image: url(':/images/drkblue/drkblue_walletFrame_bg') 0 0 0 0 stretch stretch; border-top:0px solid #000; margin:0; padding:0; @@ -150,7 +150,7 @@ border:0px; } QComboBox::down-arrow { -border-image: url(':/images/drkblue_downArrow') 0 0 0 0 stretch stretch; +border-image: url(':/images/drkblue/drkblue_downArrow') 0 0 0 0 stretch stretch; } QComboBox QListView { @@ -205,7 +205,7 @@ padding-top:2px; } QAbstractSpinBox::up-arrow { -image:url(':/images/drkblue_upArrow_small'); +image:url(':/images/drkblue/drkblue_upArrow_small'); } QAbstractSpinBox::down-button { @@ -223,7 +223,7 @@ padding-bottom:2px; } QAbstractSpinBox::down-arrow { -image:url(':/images/drkblue_downArrow_small'); +image:url(':/images/drkblue/drkblue_downArrow_small'); } /*******************************************************/ @@ -342,19 +342,19 @@ height:10px; } QScrollBar:up-arrow { -background-image: url(':/images/drkblue_upArrow_small'); +background-image: url(':/images/drkblue/drkblue_upArrow_small'); } QScrollBar:down-arrow { -background-image: url(':/images/drkblue_downArrow_small'); +background-image: url(':/images/drkblue/drkblue_downArrow_small'); } QScrollBar:left-arrow { -background-image: url(':/images/drkblue_leftArrow_small'); +background-image: url(':/images/drkblue/drkblue_leftArrow_small'); } QScrollBar:right-arrow { -background-image: url(':/images/drkblue_rightArrow_small'); +background-image: url(':/images/drkblue/drkblue_rightArrow_small'); } @@ -464,7 +464,7 @@ background-color:#fff; } QDialog#SignVerifyMessageDialog QPushButton#pasteButton_SM { /* Paste Button */ -/* qproperty-icon: url(":/icons/drkblue_editpaste"); */ +/* qproperty-icon: url(":/icons/drkblue/drkblue_editpaste"); */ background-color:transparent; padding-left:15px; } @@ -474,7 +474,7 @@ font-size:10px; } QDialog#SignVerifyMessageDialog QPushButton#copySignatureButton_SM { /* Copy Button */ -/* qproperty-icon: url(":/icons/drkblue_editcopy"); */ +/* qproperty-icon: url(":/icons/drkblue/drkblue_editcopy"); */ background-color:transparent; padding-left:10px; padding-right:10px; @@ -1042,7 +1042,7 @@ min-width:410px; margin-right:20px; margin-left:0; margin-top:0; -background-image: url(':/images/dash_logo_horizontal'); +background-image: url(':/images/drkblue/dash_logo_horizontal'); background-repeat:none; } @@ -1371,7 +1371,7 @@ color:#333; } QDialog#CoinControlDialog .CoinControlTreeWidget#treeWidget::branch:selected { /* Coin Control Branch Icon */ -background-image: url(':/images/drkblue_qtreeview_selected'); +background-image: url(':/images/drkblue/drkblue_qtreeview_selected'); background-repeat:no-repeat; background-position:center; background-color:#f7f7f7; @@ -1379,7 +1379,7 @@ color:#333; } QDialog#CoinControlDialog .CoinControlTreeWidget#treeWidget::branch:checked { /* Coin Control Branch Icon */ -background-image: url(':/images/drkblue_qtreeview_selected'); +background-image: url(':/images/drkblue/drkblue_qtreeview_selected'); background-repeat:no-repeat; background-position:center; background-color:#f7f7f7; diff --git a/src/qt/res/icons/bitcoin.ico b/src/qt/res/icons/bitcoin.ico old mode 100755 new mode 100644 diff --git a/src/qt/res/icons/bitcoin_testnet.ico b/src/qt/res/icons/bitcoin_testnet.ico old mode 100755 new mode 100644 diff --git a/src/qt/res/icons/add.png b/src/qt/res/icons/drkblue/add.png similarity index 100% rename from src/qt/res/icons/add.png rename to src/qt/res/icons/drkblue/add.png diff --git a/src/qt/res/icons/address-book.png b/src/qt/res/icons/drkblue/address-book.png similarity index 100% rename from src/qt/res/icons/address-book.png rename to src/qt/res/icons/drkblue/address-book.png diff --git a/src/qt/res/icons/drkblue/bitcoin.icns b/src/qt/res/icons/drkblue/bitcoin.icns new file mode 100644 index 0000000000000..c17b56351de61 Binary files /dev/null and b/src/qt/res/icons/drkblue/bitcoin.icns differ diff --git a/src/qt/res/icons/drkblue/bitcoin.ico b/src/qt/res/icons/drkblue/bitcoin.ico new file mode 100644 index 0000000000000..9ae1ba55b6d8e Binary files /dev/null and b/src/qt/res/icons/drkblue/bitcoin.ico differ diff --git a/src/qt/res/icons/drkblue/bitcoin.png b/src/qt/res/icons/drkblue/bitcoin.png new file mode 100644 index 0000000000000..257ff1419a7b1 Binary files /dev/null and b/src/qt/res/icons/drkblue/bitcoin.png differ diff --git a/src/qt/res/icons/drkblue/bitcoin_testnet.ico b/src/qt/res/icons/drkblue/bitcoin_testnet.ico new file mode 100644 index 0000000000000..b86e2a7039463 Binary files /dev/null and b/src/qt/res/icons/drkblue/bitcoin_testnet.ico differ diff --git a/src/qt/res/icons/drkblue/bitcoin_testnet.png b/src/qt/res/icons/drkblue/bitcoin_testnet.png new file mode 100644 index 0000000000000..5e044d34083c6 Binary files /dev/null and b/src/qt/res/icons/drkblue/bitcoin_testnet.png differ diff --git a/src/qt/res/icons/browse.png b/src/qt/res/icons/drkblue/browse.png similarity index 100% rename from src/qt/res/icons/browse.png rename to src/qt/res/icons/drkblue/browse.png diff --git a/src/qt/res/icons/clock1.png b/src/qt/res/icons/drkblue/clock1.png similarity index 100% rename from src/qt/res/icons/clock1.png rename to src/qt/res/icons/drkblue/clock1.png diff --git a/src/qt/res/icons/clock2.png b/src/qt/res/icons/drkblue/clock2.png similarity index 100% rename from src/qt/res/icons/clock2.png rename to src/qt/res/icons/drkblue/clock2.png diff --git a/src/qt/res/icons/clock3.png b/src/qt/res/icons/drkblue/clock3.png similarity index 100% rename from src/qt/res/icons/clock3.png rename to src/qt/res/icons/drkblue/clock3.png diff --git a/src/qt/res/icons/clock4.png b/src/qt/res/icons/drkblue/clock4.png similarity index 100% rename from src/qt/res/icons/clock4.png rename to src/qt/res/icons/drkblue/clock4.png diff --git a/src/qt/res/icons/clock5.png b/src/qt/res/icons/drkblue/clock5.png similarity index 100% rename from src/qt/res/icons/clock5.png rename to src/qt/res/icons/drkblue/clock5.png diff --git a/src/qt/res/icons/configure.png b/src/qt/res/icons/drkblue/configure.png similarity index 100% rename from src/qt/res/icons/configure.png rename to src/qt/res/icons/drkblue/configure.png diff --git a/src/qt/res/icons/connect0_16.png b/src/qt/res/icons/drkblue/connect0_16.png similarity index 100% rename from src/qt/res/icons/connect0_16.png rename to src/qt/res/icons/drkblue/connect0_16.png diff --git a/src/qt/res/icons/connect1_16.png b/src/qt/res/icons/drkblue/connect1_16.png similarity index 100% rename from src/qt/res/icons/connect1_16.png rename to src/qt/res/icons/drkblue/connect1_16.png diff --git a/src/qt/res/icons/connect2_16.png b/src/qt/res/icons/drkblue/connect2_16.png similarity index 100% rename from src/qt/res/icons/connect2_16.png rename to src/qt/res/icons/drkblue/connect2_16.png diff --git a/src/qt/res/icons/connect3_16.png b/src/qt/res/icons/drkblue/connect3_16.png similarity index 100% rename from src/qt/res/icons/connect3_16.png rename to src/qt/res/icons/drkblue/connect3_16.png diff --git a/src/qt/res/icons/connect4_16.png b/src/qt/res/icons/drkblue/connect4_16.png similarity index 100% rename from src/qt/res/icons/connect4_16.png rename to src/qt/res/icons/drkblue/connect4_16.png diff --git a/src/qt/res/icons/debugwindow.png b/src/qt/res/icons/drkblue/debugwindow.png similarity index 100% rename from src/qt/res/icons/debugwindow.png rename to src/qt/res/icons/drkblue/debugwindow.png diff --git a/src/qt/res/icons/drkblue_address-book.png b/src/qt/res/icons/drkblue/drkblue_address-book.png similarity index 100% rename from src/qt/res/icons/drkblue_address-book.png rename to src/qt/res/icons/drkblue/drkblue_address-book.png diff --git a/src/qt/res/icons/drkblue_editcopy.png b/src/qt/res/icons/drkblue/drkblue_editcopy.png similarity index 100% rename from src/qt/res/icons/drkblue_editcopy.png rename to src/qt/res/icons/drkblue/drkblue_editcopy.png diff --git a/src/qt/res/icons/drkblue_editpaste.png b/src/qt/res/icons/drkblue/drkblue_editpaste.png similarity index 100% rename from src/qt/res/icons/drkblue_editpaste.png rename to src/qt/res/icons/drkblue/drkblue_editpaste.png diff --git a/src/qt/res/icons/drkblue_remove.png b/src/qt/res/icons/drkblue/drkblue_remove.png similarity index 100% rename from src/qt/res/icons/drkblue_remove.png rename to src/qt/res/icons/drkblue/drkblue_remove.png diff --git a/src/qt/res/icons/edit.png b/src/qt/res/icons/drkblue/edit.png similarity index 100% rename from src/qt/res/icons/edit.png rename to src/qt/res/icons/drkblue/edit.png diff --git a/src/qt/res/icons/editcopy.png b/src/qt/res/icons/drkblue/editcopy.png similarity index 100% rename from src/qt/res/icons/editcopy.png rename to src/qt/res/icons/drkblue/editcopy.png diff --git a/src/qt/res/icons/editpaste.png b/src/qt/res/icons/drkblue/editpaste.png similarity index 100% rename from src/qt/res/icons/editpaste.png rename to src/qt/res/icons/drkblue/editpaste.png diff --git a/src/qt/res/icons/export.png b/src/qt/res/icons/drkblue/export.png similarity index 100% rename from src/qt/res/icons/export.png rename to src/qt/res/icons/drkblue/export.png diff --git a/src/qt/res/icons/eye.png b/src/qt/res/icons/drkblue/eye.png similarity index 100% rename from src/qt/res/icons/eye.png rename to src/qt/res/icons/drkblue/eye.png diff --git a/src/qt/res/icons/eye_minus.png b/src/qt/res/icons/drkblue/eye_minus.png similarity index 100% rename from src/qt/res/icons/eye_minus.png rename to src/qt/res/icons/drkblue/eye_minus.png diff --git a/src/qt/res/icons/eye_plus.png b/src/qt/res/icons/drkblue/eye_plus.png similarity index 100% rename from src/qt/res/icons/eye_plus.png rename to src/qt/res/icons/drkblue/eye_plus.png diff --git a/src/qt/res/icons/filesave.png b/src/qt/res/icons/drkblue/filesave.png similarity index 100% rename from src/qt/res/icons/filesave.png rename to src/qt/res/icons/drkblue/filesave.png diff --git a/src/qt/res/icons/history.png b/src/qt/res/icons/drkblue/history.png similarity index 100% rename from src/qt/res/icons/history.png rename to src/qt/res/icons/drkblue/history.png diff --git a/src/qt/res/icons/key.png b/src/qt/res/icons/drkblue/key.png similarity index 100% rename from src/qt/res/icons/key.png rename to src/qt/res/icons/drkblue/key.png diff --git a/src/qt/res/icons/lock_closed.png b/src/qt/res/icons/drkblue/lock_closed.png similarity index 100% rename from src/qt/res/icons/lock_closed.png rename to src/qt/res/icons/drkblue/lock_closed.png diff --git a/src/qt/res/icons/lock_open.png b/src/qt/res/icons/drkblue/lock_open.png similarity index 100% rename from src/qt/res/icons/lock_open.png rename to src/qt/res/icons/drkblue/lock_open.png diff --git a/src/qt/res/icons/notsynced.png b/src/qt/res/icons/drkblue/notsynced.png similarity index 100% rename from src/qt/res/icons/notsynced.png rename to src/qt/res/icons/drkblue/notsynced.png diff --git a/src/qt/res/icons/overview.png b/src/qt/res/icons/drkblue/overview.png similarity index 100% rename from src/qt/res/icons/overview.png rename to src/qt/res/icons/drkblue/overview.png diff --git a/src/qt/res/icons/qrcode.png b/src/qt/res/icons/drkblue/qrcode.png similarity index 100% rename from src/qt/res/icons/qrcode.png rename to src/qt/res/icons/drkblue/qrcode.png diff --git a/src/qt/res/icons/quit.png b/src/qt/res/icons/drkblue/quit.png similarity index 100% rename from src/qt/res/icons/quit.png rename to src/qt/res/icons/drkblue/quit.png diff --git a/src/qt/res/icons/receive.png b/src/qt/res/icons/drkblue/receive.png similarity index 100% rename from src/qt/res/icons/receive.png rename to src/qt/res/icons/drkblue/receive.png diff --git a/src/qt/res/icons/remove.png b/src/qt/res/icons/drkblue/remove.png similarity index 100% rename from src/qt/res/icons/remove.png rename to src/qt/res/icons/drkblue/remove.png diff --git a/src/qt/res/icons/send.png b/src/qt/res/icons/drkblue/send.png similarity index 100% rename from src/qt/res/icons/send.png rename to src/qt/res/icons/drkblue/send.png diff --git a/src/qt/res/icons/synced.png b/src/qt/res/icons/drkblue/synced.png similarity index 100% rename from src/qt/res/icons/synced.png rename to src/qt/res/icons/drkblue/synced.png diff --git a/src/qt/res/icons/transaction0.png b/src/qt/res/icons/drkblue/transaction0.png similarity index 100% rename from src/qt/res/icons/transaction0.png rename to src/qt/res/icons/drkblue/transaction0.png diff --git a/src/qt/res/icons/transaction2.png b/src/qt/res/icons/drkblue/transaction2.png similarity index 100% rename from src/qt/res/icons/transaction2.png rename to src/qt/res/icons/drkblue/transaction2.png diff --git a/src/qt/res/icons/transaction_conflicted.png b/src/qt/res/icons/drkblue/transaction_conflicted.png similarity index 100% rename from src/qt/res/icons/transaction_conflicted.png rename to src/qt/res/icons/drkblue/transaction_conflicted.png diff --git a/src/qt/res/icons/tx_inout.png b/src/qt/res/icons/drkblue/tx_inout.png similarity index 100% rename from src/qt/res/icons/tx_inout.png rename to src/qt/res/icons/drkblue/tx_inout.png diff --git a/src/qt/res/icons/tx_input.png b/src/qt/res/icons/drkblue/tx_input.png similarity index 100% rename from src/qt/res/icons/tx_input.png rename to src/qt/res/icons/drkblue/tx_input.png diff --git a/src/qt/res/icons/tx_mined.png b/src/qt/res/icons/drkblue/tx_mined.png similarity index 100% rename from src/qt/res/icons/tx_mined.png rename to src/qt/res/icons/drkblue/tx_mined.png diff --git a/src/qt/res/icons/tx_output.png b/src/qt/res/icons/drkblue/tx_output.png similarity index 100% rename from src/qt/res/icons/tx_output.png rename to src/qt/res/icons/drkblue/tx_output.png diff --git a/src/qt/res/icons/unit_dash.png b/src/qt/res/icons/drkblue/unit_dash.png similarity index 100% rename from src/qt/res/icons/unit_dash.png rename to src/qt/res/icons/drkblue/unit_dash.png diff --git a/src/qt/res/icons/unit_duffs.png b/src/qt/res/icons/drkblue/unit_duffs.png similarity index 100% rename from src/qt/res/icons/unit_duffs.png rename to src/qt/res/icons/drkblue/unit_duffs.png diff --git a/src/qt/res/icons/unit_mdash.png b/src/qt/res/icons/drkblue/unit_mdash.png similarity index 100% rename from src/qt/res/icons/unit_mdash.png rename to src/qt/res/icons/drkblue/unit_mdash.png diff --git a/src/qt/res/icons/unit_tdash.png b/src/qt/res/icons/drkblue/unit_tdash.png similarity index 100% rename from src/qt/res/icons/unit_tdash.png rename to src/qt/res/icons/drkblue/unit_tdash.png diff --git a/src/qt/res/icons/unit_tduffs.png b/src/qt/res/icons/drkblue/unit_tduffs.png similarity index 100% rename from src/qt/res/icons/unit_tduffs.png rename to src/qt/res/icons/drkblue/unit_tduffs.png diff --git a/src/qt/res/icons/unit_tmdash.png b/src/qt/res/icons/drkblue/unit_tmdash.png similarity index 100% rename from src/qt/res/icons/unit_tmdash.png rename to src/qt/res/icons/drkblue/unit_tmdash.png diff --git a/src/qt/res/icons/unit_tudash.png b/src/qt/res/icons/drkblue/unit_tudash.png similarity index 100% rename from src/qt/res/icons/unit_tudash.png rename to src/qt/res/icons/drkblue/unit_tudash.png diff --git a/src/qt/res/icons/unit_udash.png b/src/qt/res/icons/drkblue/unit_udash.png similarity index 100% rename from src/qt/res/icons/unit_udash.png rename to src/qt/res/icons/drkblue/unit_udash.png diff --git a/src/qt/res/icons/trad/add.png b/src/qt/res/icons/trad/add.png new file mode 100644 index 0000000000000..809026c2024dc Binary files /dev/null and b/src/qt/res/icons/trad/add.png differ diff --git a/src/qt/res/icons/trad/address-book.png b/src/qt/res/icons/trad/address-book.png new file mode 100644 index 0000000000000..f0b2f90bd0bfd Binary files /dev/null and b/src/qt/res/icons/trad/address-book.png differ diff --git a/src/qt/res/icons/trad/bitcoin.icns b/src/qt/res/icons/trad/bitcoin.icns new file mode 100644 index 0000000000000..c17b56351de61 Binary files /dev/null and b/src/qt/res/icons/trad/bitcoin.icns differ diff --git a/src/qt/res/icons/trad/bitcoin.ico b/src/qt/res/icons/trad/bitcoin.ico new file mode 100644 index 0000000000000..9ae1ba55b6d8e Binary files /dev/null and b/src/qt/res/icons/trad/bitcoin.ico differ diff --git a/src/qt/res/icons/trad/bitcoin.png b/src/qt/res/icons/trad/bitcoin.png new file mode 100644 index 0000000000000..257ff1419a7b1 Binary files /dev/null and b/src/qt/res/icons/trad/bitcoin.png differ diff --git a/src/qt/res/icons/trad/bitcoin_testnet.ico b/src/qt/res/icons/trad/bitcoin_testnet.ico new file mode 100644 index 0000000000000..b86e2a7039463 Binary files /dev/null and b/src/qt/res/icons/trad/bitcoin_testnet.ico differ diff --git a/src/qt/res/icons/trad/bitcoin_testnet.png b/src/qt/res/icons/trad/bitcoin_testnet.png new file mode 100644 index 0000000000000..5e044d34083c6 Binary files /dev/null and b/src/qt/res/icons/trad/bitcoin_testnet.png differ diff --git a/src/qt/res/icons/trad/browse.png b/src/qt/res/icons/trad/browse.png new file mode 100644 index 0000000000000..c4d1ef0c4fb16 Binary files /dev/null and b/src/qt/res/icons/trad/browse.png differ diff --git a/src/qt/res/icons/trad/clock1.png b/src/qt/res/icons/trad/clock1.png new file mode 100644 index 0000000000000..a7a499770e25e Binary files /dev/null and b/src/qt/res/icons/trad/clock1.png differ diff --git a/src/qt/res/icons/trad/clock2.png b/src/qt/res/icons/trad/clock2.png new file mode 100644 index 0000000000000..9e25da3ce26ce Binary files /dev/null and b/src/qt/res/icons/trad/clock2.png differ diff --git a/src/qt/res/icons/trad/clock3.png b/src/qt/res/icons/trad/clock3.png new file mode 100644 index 0000000000000..ea531d4d33769 Binary files /dev/null and b/src/qt/res/icons/trad/clock3.png differ diff --git a/src/qt/res/icons/trad/clock4.png b/src/qt/res/icons/trad/clock4.png new file mode 100644 index 0000000000000..3f3a462737a20 Binary files /dev/null and b/src/qt/res/icons/trad/clock4.png differ diff --git a/src/qt/res/icons/trad/clock5.png b/src/qt/res/icons/trad/clock5.png new file mode 100644 index 0000000000000..b2dccc2caf2f1 Binary files /dev/null and b/src/qt/res/icons/trad/clock5.png differ diff --git a/src/qt/res/icons/trad/configure.png b/src/qt/res/icons/trad/configure.png new file mode 100644 index 0000000000000..6bdbf757cbef2 Binary files /dev/null and b/src/qt/res/icons/trad/configure.png differ diff --git a/src/qt/res/icons/trad/connect0_16.png b/src/qt/res/icons/trad/connect0_16.png new file mode 100644 index 0000000000000..b8453165e71d2 Binary files /dev/null and b/src/qt/res/icons/trad/connect0_16.png differ diff --git a/src/qt/res/icons/trad/connect1_16.png b/src/qt/res/icons/trad/connect1_16.png new file mode 100644 index 0000000000000..c9bc2d80a9457 Binary files /dev/null and b/src/qt/res/icons/trad/connect1_16.png differ diff --git a/src/qt/res/icons/trad/connect2_16.png b/src/qt/res/icons/trad/connect2_16.png new file mode 100644 index 0000000000000..0caddf62b6385 Binary files /dev/null and b/src/qt/res/icons/trad/connect2_16.png differ diff --git a/src/qt/res/icons/trad/connect3_16.png b/src/qt/res/icons/trad/connect3_16.png new file mode 100644 index 0000000000000..036aebbd483ed Binary files /dev/null and b/src/qt/res/icons/trad/connect3_16.png differ diff --git a/src/qt/res/icons/trad/connect4_16.png b/src/qt/res/icons/trad/connect4_16.png new file mode 100644 index 0000000000000..b96fba68d49b1 Binary files /dev/null and b/src/qt/res/icons/trad/connect4_16.png differ diff --git a/src/qt/res/icons/trad/debugwindow.png b/src/qt/res/icons/trad/debugwindow.png new file mode 100644 index 0000000000000..f3e22827bac54 Binary files /dev/null and b/src/qt/res/icons/trad/debugwindow.png differ diff --git a/src/qt/res/icons/trad/drkblue_address-book.png b/src/qt/res/icons/trad/drkblue_address-book.png new file mode 100644 index 0000000000000..878e4d55daafc Binary files /dev/null and b/src/qt/res/icons/trad/drkblue_address-book.png differ diff --git a/src/qt/res/icons/trad/drkblue_editcopy.png b/src/qt/res/icons/trad/drkblue_editcopy.png new file mode 100644 index 0000000000000..f408472dfba59 Binary files /dev/null and b/src/qt/res/icons/trad/drkblue_editcopy.png differ diff --git a/src/qt/res/icons/trad/drkblue_editpaste.png b/src/qt/res/icons/trad/drkblue_editpaste.png new file mode 100644 index 0000000000000..ceaacdf0fc56e Binary files /dev/null and b/src/qt/res/icons/trad/drkblue_editpaste.png differ diff --git a/src/qt/res/icons/trad/drkblue_remove.png b/src/qt/res/icons/trad/drkblue_remove.png new file mode 100644 index 0000000000000..e0add0730bc49 Binary files /dev/null and b/src/qt/res/icons/trad/drkblue_remove.png differ diff --git a/src/qt/res/icons/trad/edit.png b/src/qt/res/icons/trad/edit.png new file mode 100644 index 0000000000000..5fe1ccfe28e3f Binary files /dev/null and b/src/qt/res/icons/trad/edit.png differ diff --git a/src/qt/res/icons/trad/editcopy.png b/src/qt/res/icons/trad/editcopy.png new file mode 100644 index 0000000000000..3f3fa511d9977 Binary files /dev/null and b/src/qt/res/icons/trad/editcopy.png differ diff --git a/src/qt/res/icons/trad/editpaste.png b/src/qt/res/icons/trad/editpaste.png new file mode 100644 index 0000000000000..506f5586c079b Binary files /dev/null and b/src/qt/res/icons/trad/editpaste.png differ diff --git a/src/qt/res/icons/trad/export.png b/src/qt/res/icons/trad/export.png new file mode 100644 index 0000000000000..b8584ec5e3ae8 Binary files /dev/null and b/src/qt/res/icons/trad/export.png differ diff --git a/src/qt/res/icons/trad/eye.png b/src/qt/res/icons/trad/eye.png new file mode 100644 index 0000000000000..240e374d0ecb3 Binary files /dev/null and b/src/qt/res/icons/trad/eye.png differ diff --git a/src/qt/res/icons/trad/eye_minus.png b/src/qt/res/icons/trad/eye_minus.png new file mode 100644 index 0000000000000..d53526b6a8fa9 Binary files /dev/null and b/src/qt/res/icons/trad/eye_minus.png differ diff --git a/src/qt/res/icons/trad/eye_plus.png b/src/qt/res/icons/trad/eye_plus.png new file mode 100644 index 0000000000000..90ef0aaca5f88 Binary files /dev/null and b/src/qt/res/icons/trad/eye_plus.png differ diff --git a/src/qt/res/icons/trad/filesave.png b/src/qt/res/icons/trad/filesave.png new file mode 100644 index 0000000000000..c602c33fd5087 Binary files /dev/null and b/src/qt/res/icons/trad/filesave.png differ diff --git a/src/qt/res/icons/trad/history.png b/src/qt/res/icons/trad/history.png new file mode 100644 index 0000000000000..07aeca1f96e8f Binary files /dev/null and b/src/qt/res/icons/trad/history.png differ diff --git a/src/qt/res/icons/trad/key.png b/src/qt/res/icons/trad/key.png new file mode 100644 index 0000000000000..074d236430a1a Binary files /dev/null and b/src/qt/res/icons/trad/key.png differ diff --git a/src/qt/res/icons/trad/lock_closed.png b/src/qt/res/icons/trad/lock_closed.png new file mode 100644 index 0000000000000..ab47a3a9ec66b Binary files /dev/null and b/src/qt/res/icons/trad/lock_closed.png differ diff --git a/src/qt/res/icons/trad/lock_open.png b/src/qt/res/icons/trad/lock_open.png new file mode 100644 index 0000000000000..54ca6687f7d45 Binary files /dev/null and b/src/qt/res/icons/trad/lock_open.png differ diff --git a/src/qt/res/icons/trad/notsynced.png b/src/qt/res/icons/trad/notsynced.png new file mode 100644 index 0000000000000..2fc46b8349209 Binary files /dev/null and b/src/qt/res/icons/trad/notsynced.png differ diff --git a/src/qt/res/icons/trad/overview.png b/src/qt/res/icons/trad/overview.png new file mode 100644 index 0000000000000..78a2575b236ff Binary files /dev/null and b/src/qt/res/icons/trad/overview.png differ diff --git a/src/qt/res/icons/trad/qrcode.png b/src/qt/res/icons/trad/qrcode.png new file mode 100644 index 0000000000000..015078fbfa079 Binary files /dev/null and b/src/qt/res/icons/trad/qrcode.png differ diff --git a/src/qt/res/icons/trad/quit.png b/src/qt/res/icons/trad/quit.png new file mode 100644 index 0000000000000..bf5938605f209 Binary files /dev/null and b/src/qt/res/icons/trad/quit.png differ diff --git a/src/qt/res/icons/trad/receive.png b/src/qt/res/icons/trad/receive.png new file mode 100644 index 0000000000000..61f1408dd8bfe Binary files /dev/null and b/src/qt/res/icons/trad/receive.png differ diff --git a/src/qt/res/icons/trad/remove.png b/src/qt/res/icons/trad/remove.png new file mode 100644 index 0000000000000..e0add0730bc49 Binary files /dev/null and b/src/qt/res/icons/trad/remove.png differ diff --git a/src/qt/res/icons/trad/send.png b/src/qt/res/icons/trad/send.png new file mode 100644 index 0000000000000..11cc3d1bc0e85 Binary files /dev/null and b/src/qt/res/icons/trad/send.png differ diff --git a/src/qt/res/icons/trad/synced.png b/src/qt/res/icons/trad/synced.png new file mode 100644 index 0000000000000..d8a735749cef5 Binary files /dev/null and b/src/qt/res/icons/trad/synced.png differ diff --git a/src/qt/res/icons/trad/transaction0.png b/src/qt/res/icons/trad/transaction0.png new file mode 100644 index 0000000000000..7f73aada94ce3 Binary files /dev/null and b/src/qt/res/icons/trad/transaction0.png differ diff --git a/src/qt/res/icons/trad/transaction2.png b/src/qt/res/icons/trad/transaction2.png new file mode 100644 index 0000000000000..4d03d8a2f74ed Binary files /dev/null and b/src/qt/res/icons/trad/transaction2.png differ diff --git a/src/qt/res/icons/trad/transaction_conflicted.png b/src/qt/res/icons/trad/transaction_conflicted.png new file mode 100644 index 0000000000000..b995c587d7076 Binary files /dev/null and b/src/qt/res/icons/trad/transaction_conflicted.png differ diff --git a/src/qt/res/icons/trad/tx_inout.png b/src/qt/res/icons/trad/tx_inout.png new file mode 100644 index 0000000000000..f1a7f7bbc3ab4 Binary files /dev/null and b/src/qt/res/icons/trad/tx_inout.png differ diff --git a/src/qt/res/icons/trad/tx_input.png b/src/qt/res/icons/trad/tx_input.png new file mode 100644 index 0000000000000..a2d324ee34ace Binary files /dev/null and b/src/qt/res/icons/trad/tx_input.png differ diff --git a/src/qt/res/icons/trad/tx_mined.png b/src/qt/res/icons/trad/tx_mined.png new file mode 100644 index 0000000000000..a7acc6cf7bea7 Binary files /dev/null and b/src/qt/res/icons/trad/tx_mined.png differ diff --git a/src/qt/res/icons/trad/tx_output.png b/src/qt/res/icons/trad/tx_output.png new file mode 100644 index 0000000000000..a7c5ebf56b0e4 Binary files /dev/null and b/src/qt/res/icons/trad/tx_output.png differ diff --git a/src/qt/res/icons/trad/unit_dash.png b/src/qt/res/icons/trad/unit_dash.png new file mode 100644 index 0000000000000..1c36829606713 Binary files /dev/null and b/src/qt/res/icons/trad/unit_dash.png differ diff --git a/src/qt/res/icons/trad/unit_duffs.png b/src/qt/res/icons/trad/unit_duffs.png new file mode 100644 index 0000000000000..3129e256650d7 Binary files /dev/null and b/src/qt/res/icons/trad/unit_duffs.png differ diff --git a/src/qt/res/icons/trad/unit_mdash.png b/src/qt/res/icons/trad/unit_mdash.png new file mode 100644 index 0000000000000..dd75be212982c Binary files /dev/null and b/src/qt/res/icons/trad/unit_mdash.png differ diff --git a/src/qt/res/icons/trad/unit_tdash.png b/src/qt/res/icons/trad/unit_tdash.png new file mode 100644 index 0000000000000..46f83509c7f35 Binary files /dev/null and b/src/qt/res/icons/trad/unit_tdash.png differ diff --git a/src/qt/res/icons/trad/unit_tduffs.png b/src/qt/res/icons/trad/unit_tduffs.png new file mode 100644 index 0000000000000..daf67b12a8d82 Binary files /dev/null and b/src/qt/res/icons/trad/unit_tduffs.png differ diff --git a/src/qt/res/icons/trad/unit_tmdash.png b/src/qt/res/icons/trad/unit_tmdash.png new file mode 100644 index 0000000000000..c4091a5c83b50 Binary files /dev/null and b/src/qt/res/icons/trad/unit_tmdash.png differ diff --git a/src/qt/res/icons/trad/unit_tudash.png b/src/qt/res/icons/trad/unit_tudash.png new file mode 100644 index 0000000000000..e74515e0eca92 Binary files /dev/null and b/src/qt/res/icons/trad/unit_tudash.png differ diff --git a/src/qt/res/icons/trad/unit_udash.png b/src/qt/res/icons/trad/unit_udash.png new file mode 100644 index 0000000000000..b270724eb1b16 Binary files /dev/null and b/src/qt/res/icons/trad/unit_udash.png differ diff --git a/src/qt/res/images/about.png b/src/qt/res/images/drkblue/about.png old mode 100755 new mode 100644 similarity index 100% rename from src/qt/res/images/about.png rename to src/qt/res/images/drkblue/about.png diff --git a/src/qt/res/images/dash_logo_horizontal.png b/src/qt/res/images/drkblue/dash_logo_horizontal.png similarity index 100% rename from src/qt/res/images/dash_logo_horizontal.png rename to src/qt/res/images/drkblue/dash_logo_horizontal.png diff --git a/src/qt/res/images/drkblue_downArrow.png b/src/qt/res/images/drkblue/drkblue_downArrow.png similarity index 100% rename from src/qt/res/images/drkblue_downArrow.png rename to src/qt/res/images/drkblue/drkblue_downArrow.png diff --git a/src/qt/res/images/drkblue_downArrow_small.png b/src/qt/res/images/drkblue/drkblue_downArrow_small.png similarity index 100% rename from src/qt/res/images/drkblue_downArrow_small.png rename to src/qt/res/images/drkblue/drkblue_downArrow_small.png diff --git a/src/qt/res/images/drkblue_leftArrow_small.png b/src/qt/res/images/drkblue/drkblue_leftArrow_small.png similarity index 100% rename from src/qt/res/images/drkblue_leftArrow_small.png rename to src/qt/res/images/drkblue/drkblue_leftArrow_small.png diff --git a/src/qt/res/images/drkblue_qtreeview_selected.png b/src/qt/res/images/drkblue/drkblue_qtreeview_selected.png similarity index 100% rename from src/qt/res/images/drkblue_qtreeview_selected.png rename to src/qt/res/images/drkblue/drkblue_qtreeview_selected.png diff --git a/src/qt/res/images/drkblue_rightArrow_small.png b/src/qt/res/images/drkblue/drkblue_rightArrow_small.png similarity index 100% rename from src/qt/res/images/drkblue_rightArrow_small.png rename to src/qt/res/images/drkblue/drkblue_rightArrow_small.png diff --git a/src/qt/res/images/drkblue_upArrow_small.png b/src/qt/res/images/drkblue/drkblue_upArrow_small.png similarity index 100% rename from src/qt/res/images/drkblue_upArrow_small.png rename to src/qt/res/images/drkblue/drkblue_upArrow_small.png diff --git a/src/qt/res/images/drkblue_walletFrame.png b/src/qt/res/images/drkblue/drkblue_walletFrame.png similarity index 100% rename from src/qt/res/images/drkblue_walletFrame.png rename to src/qt/res/images/drkblue/drkblue_walletFrame.png diff --git a/src/qt/res/images/drkblue_walletFrame_bg.png b/src/qt/res/images/drkblue/drkblue_walletFrame_bg.png similarity index 100% rename from src/qt/res/images/drkblue_walletFrame_bg.png rename to src/qt/res/images/drkblue/drkblue_walletFrame_bg.png diff --git a/src/qt/res/images/splash.png b/src/qt/res/images/drkblue/splash.png similarity index 100% rename from src/qt/res/images/splash.png rename to src/qt/res/images/drkblue/splash.png diff --git a/src/qt/res/images/splash_testnet.png b/src/qt/res/images/drkblue/splash_testnet.png similarity index 100% rename from src/qt/res/images/splash_testnet.png rename to src/qt/res/images/drkblue/splash_testnet.png diff --git a/src/qt/res/images/trad/about.png b/src/qt/res/images/trad/about.png new file mode 100644 index 0000000000000..68e11999b2b07 Binary files /dev/null and b/src/qt/res/images/trad/about.png differ diff --git a/src/qt/res/images/trad/dash_logo_horizontal.png b/src/qt/res/images/trad/dash_logo_horizontal.png new file mode 100644 index 0000000000000..961a8ebfe6d57 Binary files /dev/null and b/src/qt/res/images/trad/dash_logo_horizontal.png differ diff --git a/src/qt/res/images/trad/drkblue_downArrow.png b/src/qt/res/images/trad/drkblue_downArrow.png new file mode 100644 index 0000000000000..9be402f473e5f Binary files /dev/null and b/src/qt/res/images/trad/drkblue_downArrow.png differ diff --git a/src/qt/res/images/trad/drkblue_downArrow_small.png b/src/qt/res/images/trad/drkblue_downArrow_small.png new file mode 100644 index 0000000000000..f598bbdfa031b Binary files /dev/null and b/src/qt/res/images/trad/drkblue_downArrow_small.png differ diff --git a/src/qt/res/images/trad/drkblue_leftArrow_small.png b/src/qt/res/images/trad/drkblue_leftArrow_small.png new file mode 100644 index 0000000000000..203c0e0d14636 Binary files /dev/null and b/src/qt/res/images/trad/drkblue_leftArrow_small.png differ diff --git a/src/qt/res/images/trad/drkblue_qtreeview_selected.png b/src/qt/res/images/trad/drkblue_qtreeview_selected.png new file mode 100644 index 0000000000000..6608fea26d1b6 Binary files /dev/null and b/src/qt/res/images/trad/drkblue_qtreeview_selected.png differ diff --git a/src/qt/res/images/trad/drkblue_rightArrow_small.png b/src/qt/res/images/trad/drkblue_rightArrow_small.png new file mode 100644 index 0000000000000..90df701a4e3e5 Binary files /dev/null and b/src/qt/res/images/trad/drkblue_rightArrow_small.png differ diff --git a/src/qt/res/images/trad/drkblue_upArrow_small.png b/src/qt/res/images/trad/drkblue_upArrow_small.png new file mode 100644 index 0000000000000..9f135db347f6a Binary files /dev/null and b/src/qt/res/images/trad/drkblue_upArrow_small.png differ diff --git a/src/qt/res/images/trad/drkblue_walletFrame.png b/src/qt/res/images/trad/drkblue_walletFrame.png new file mode 100644 index 0000000000000..3d30cbbe05f2a Binary files /dev/null and b/src/qt/res/images/trad/drkblue_walletFrame.png differ diff --git a/src/qt/res/images/trad/drkblue_walletFrame_bg.png b/src/qt/res/images/trad/drkblue_walletFrame_bg.png new file mode 100644 index 0000000000000..436a0005591c9 Binary files /dev/null and b/src/qt/res/images/trad/drkblue_walletFrame_bg.png differ diff --git a/src/qt/res/images/trad/splash.png b/src/qt/res/images/trad/splash.png new file mode 100644 index 0000000000000..c81fd7794ada1 Binary files /dev/null and b/src/qt/res/images/trad/splash.png differ diff --git a/src/qt/res/images/trad/splash_testnet.png b/src/qt/res/images/trad/splash_testnet.png new file mode 100644 index 0000000000000..963e7df3a689c Binary files /dev/null and b/src/qt/res/images/trad/splash_testnet.png differ diff --git a/src/qt/rpcconsole.cpp b/src/qt/rpcconsole.cpp index 49d6fcd003107..9a51b12fd64b8 100644 --- a/src/qt/rpcconsole.cpp +++ b/src/qt/rpcconsole.cpp @@ -54,10 +54,10 @@ const struct { const char *url; const char *source; } ICON_MAPPING[] = { - {"cmd-request", ":/icons/tx_input"}, - {"cmd-reply", ":/icons/tx_output"}, - {"cmd-error", ":/icons/tx_output"}, - {"misc", ":/icons/tx_inout"}, + {"cmd-request", "tx_input"}, + {"cmd-reply", "tx_output"}, + {"cmd-error", "tx_output"}, + {"misc", "tx_inout"}, {NULL, NULL} }; @@ -217,13 +217,13 @@ RPCConsole::RPCConsole(QWidget *parent) : { ui->setupUi(this); GUIUtil::restoreWindowGeometry("nRPCConsoleWindow", this->size(), this); - + QString theme = GUIUtil::getThemeName(); #ifndef Q_OS_MAC - ui->openDebugLogfileButton->setIcon(QIcon(":/icons/export")); + ui->openDebugLogfileButton->setIcon(QIcon(":/icons/" + theme + "/export")); #endif // Needed on Mac also - ui->clearButton->setIcon(QIcon(":/icons/remove")); + ui->clearButton->setIcon(QIcon(":/icons/" + theme + "/remove")); // Install event filter for up and down arrow ui->lineEdit->installEventFilter(this); @@ -423,12 +423,16 @@ void RPCConsole::clear() // Add smoothly scaled icon images. // (when using width/height on an img, Qt uses nearest instead of linear interpolation) + QString iconPath = ":/icons/" + GUIUtil::getThemeName() + "/"; + QString iconName = ""; + for(int i=0; ICON_MAPPING[i].url; ++i) { + iconName = ICON_MAPPING[i].source; ui->messagesWidget->document()->addResource( QTextDocument::ImageResource, QUrl(ICON_MAPPING[i].url), - QImage(ICON_MAPPING[i].source).scaled(ICON_SIZE, Qt::IgnoreAspectRatio, Qt::SmoothTransformation)); + QImage(iconPath + iconName).scaled(ICON_SIZE, Qt::IgnoreAspectRatio, Qt::SmoothTransformation)); } // Set default style sheet diff --git a/src/qt/sendcoinsdialog.cpp b/src/qt/sendcoinsdialog.cpp index 21c1f58bcf327..f40871c2bcb7c 100644 --- a/src/qt/sendcoinsdialog.cpp +++ b/src/qt/sendcoinsdialog.cpp @@ -34,15 +34,16 @@ SendCoinsDialog::SendCoinsDialog(QWidget *parent) : fFeeMinimized(true) { ui->setupUi(this); - + QString theme = GUIUtil::getThemeName(); + #ifdef Q_OS_MAC // Icons on push buttons are very uncommon on Mac ui->addButton->setIcon(QIcon()); ui->clearButton->setIcon(QIcon()); ui->sendButton->setIcon(QIcon()); #else - ui->addButton->setIcon(QIcon(":/icons/add")); - ui->clearButton->setIcon(QIcon(":/icons/remove")); - ui->sendButton->setIcon(QIcon(":/icons/send")); + ui->addButton->setIcon(QIcon(":/icons/" + theme + "/add")); + ui->clearButton->setIcon(QIcon(":/icons/" + theme + "/remove")); + ui->sendButton->setIcon(QIcon(":/icons/" + theme + "/send")); #endif GUIUtil::setupAddressWidget(ui->lineEditCoinControlChange, this); diff --git a/src/qt/sendcoinsentry.cpp b/src/qt/sendcoinsentry.cpp index ee345cbab8197..1a5c25c64b32c 100644 --- a/src/qt/sendcoinsentry.cpp +++ b/src/qt/sendcoinsentry.cpp @@ -31,12 +31,14 @@ SendCoinsEntry::SendCoinsEntry(QWidget *parent) : ui->addAsLabel->setPlaceholderText(tr("Enter a label for this address to add it to your address book")); #endif + QString theme = GUIUtil::getThemeName(); + // These icons are needed on Mac also! - ui->addressBookButton->setIcon(QIcon(":/icons/address-book")); - ui->pasteButton->setIcon(QIcon(":/icons/editpaste")); - ui->deleteButton->setIcon(QIcon(":/icons/remove")); - ui->deleteButton_is->setIcon(QIcon(":/icons/remove")); - ui->deleteButton_s->setIcon(QIcon(":/icons/remove")); + ui->addressBookButton->setIcon(QIcon(":/icons/" + theme + "/address-book")); + ui->pasteButton->setIcon(QIcon(":/icons/" + theme + "/editpaste")); + ui->deleteButton->setIcon(QIcon(":/icons/" + theme + "/remove")); + ui->deleteButton_is->setIcon(QIcon(":/icons/" + theme + "/remove")); + ui->deleteButton_s->setIcon(QIcon(":/icons/" + theme + "/remove")); // normal dash address field GUIUtil::setupAddressWidget(ui->payTo, this); diff --git a/src/qt/signverifymessagedialog.cpp b/src/qt/signverifymessagedialog.cpp index 2aa8a64cf2e94..0243490842064 100644 --- a/src/qt/signverifymessagedialog.cpp +++ b/src/qt/signverifymessagedialog.cpp @@ -30,23 +30,25 @@ SignVerifyMessageDialog::SignVerifyMessageDialog(QWidget *parent) : ui->signatureOut_SM->setPlaceholderText(tr("Click \"Sign Message\" to generate signature")); #endif + QString theme = GUIUtil::getThemeName(); + #ifdef Q_OS_MAC // Icons on push buttons are very uncommon on Mac ui->signMessageButton_SM->setIcon(QIcon()); ui->clearButton_SM->setIcon(QIcon()); ui->verifyMessageButton_VM->setIcon(QIcon()); ui->clearButton_VM->setIcon(QIcon()); #else - ui->signMessageButton_SM->setIcon(QIcon(":/icons/edit")); - ui->clearButton_SM->setIcon(QIcon(":/icons/remove")); - ui->verifyMessageButton_VM->setIcon(QIcon(":/icons/transaction_0")); - ui->clearButton_VM->setIcon(QIcon(":/icons/remove")); + ui->signMessageButton_SM->setIcon(QIcon(":/icons/" + theme + "/edit")); + ui->clearButton_SM->setIcon(QIcon(":/icons/" + theme + "/remove")); + ui->verifyMessageButton_VM->setIcon(QIcon(":/icons/" + theme + "/transaction_0")); + ui->clearButton_VM->setIcon(QIcon(":/icons/" + theme + "/remove")); #endif // These icons are needed on Mac also - ui->addressBookButton_SM->setIcon(QIcon(":/icons/address-book")); - ui->pasteButton_SM->setIcon(QIcon(":/icons/editpaste")); - ui->copySignatureButton_SM->setIcon(QIcon(":/icons/editcopy")); - ui->addressBookButton_VM->setIcon(QIcon(":/icons/address-book")); + ui->addressBookButton_SM->setIcon(QIcon(":/icons/" + theme + "/address-book")); + ui->pasteButton_SM->setIcon(QIcon(":/icons/" + theme + "/editpaste")); + ui->copySignatureButton_SM->setIcon(QIcon(":/icons/" + theme + "/editcopy")); + ui->addressBookButton_VM->setIcon(QIcon(":/icons/" + theme + "/address-book")); GUIUtil::setupAddressWidget(ui->addressIn_SM, this); diff --git a/src/qt/splashscreen.cpp b/src/qt/splashscreen.cpp index 3312bd134167e..88dc5cc2585b0 100644 --- a/src/qt/splashscreen.cpp +++ b/src/qt/splashscreen.cpp @@ -6,6 +6,7 @@ #include "splashscreen.h" #include "clientversion.h" +#include "guiutil.h" #include "init.h" #include "networkstyle.h" #include "ui_interface.h" @@ -20,6 +21,7 @@ #include #include #include +#include SplashScreen::SplashScreen(Qt::WindowFlags f, const NetworkStyle *networkStyle) : QWidget(0, f), curAlignment(0) @@ -41,8 +43,16 @@ SplashScreen::SplashScreen(Qt::WindowFlags f, const NetworkStyle *networkStyle) QString font = QApplication::font().toString(); + // networkstyle.cpp can't (yet) read themes, so we do it here to get the correct Splash-screen + QString splashScreenPath = ":/images/" + GUIUtil::getThemeName() + "/splash"; + if(GetBoolArg("-regtest", false)) + splashScreenPath = ":/images/" + GUIUtil::getThemeName() + "/splash_testnet"; + + if(GetBoolArg("-testnet", false)) + splashScreenPath = ":/images/" + GUIUtil::getThemeName() + "/splash_testnet"; + // load the bitmap for writing some text over it - pixmap = networkStyle->getSplashImage(); + pixmap = QPixmap(splashScreenPath); QPainter pixPaint(&pixmap); pixPaint.setPen(QColor(100,100,100)); diff --git a/src/qt/transactiontablemodel.cpp b/src/qt/transactiontablemodel.cpp index bd5257015bfea..af4121a639d36 100644 --- a/src/qt/transactiontablemodel.cpp +++ b/src/qt/transactiontablemodel.cpp @@ -381,19 +381,20 @@ QString TransactionTableModel::formatTxType(const TransactionRecord *wtx) const QVariant TransactionTableModel::txAddressDecoration(const TransactionRecord *wtx) const { + QString theme = GUIUtil::getThemeName(); switch(wtx->type) { case TransactionRecord::Generated: - return QIcon(":/icons/tx_mined"); + return QIcon(":/icons/" + theme + "/tx_mined"); case TransactionRecord::RecvWithDarksend: case TransactionRecord::RecvWithAddress: case TransactionRecord::RecvFromOther: - return QIcon(":/icons/tx_input"); + return QIcon(":/icons/" + theme + "/tx_input"); case TransactionRecord::SendToAddress: case TransactionRecord::SendToOther: - return QIcon(":/icons/tx_output"); + return QIcon(":/icons/" + theme + "/tx_output"); default: - return QIcon(":/icons/tx_inout"); + return QIcon(":/icons/" + theme + "/tx_inout"); } } @@ -459,6 +460,7 @@ QString TransactionTableModel::formatTxAmount(const TransactionRecord *wtx, bool QVariant TransactionTableModel::txStatusDecoration(const TransactionRecord *wtx) const { + QString theme = GUIUtil::getThemeName(); switch(wtx->status.status) { case TransactionStatus::OpenUntilBlock: @@ -467,28 +469,28 @@ QVariant TransactionTableModel::txStatusDecoration(const TransactionRecord *wtx) case TransactionStatus::Offline: return COLOR_TX_STATUS_OFFLINE; case TransactionStatus::Unconfirmed: - return QIcon(":/icons/transaction_0"); + return QIcon(":/icons/" + theme + "/transaction_0"); case TransactionStatus::Confirming: switch(wtx->status.depth) { - case 1: return QIcon(":/icons/transaction_1"); - case 2: return QIcon(":/icons/transaction_2"); - case 3: return QIcon(":/icons/transaction_3"); - case 4: return QIcon(":/icons/transaction_4"); - default: return QIcon(":/icons/transaction_5"); + case 1: return QIcon(":/icons/" + theme + "/transaction_1"); + case 2: return QIcon(":/icons/" + theme + "/transaction_2"); + case 3: return QIcon(":/icons/" + theme + "/transaction_3"); + case 4: return QIcon(":/icons/" + theme + "/transaction_4"); + default: return QIcon(":/icons/" + theme + "/transaction_5"); }; case TransactionStatus::Confirmed: - return QIcon(":/icons/transaction_confirmed"); + return QIcon(":/icons/" + theme + "/transaction_confirmed"); case TransactionStatus::Conflicted: - return QIcon(":/icons/transaction_conflicted"); + return QIcon(":/icons/" + theme + "/transaction_conflicted"); case TransactionStatus::Immature: { int total = wtx->status.depth + wtx->status.matures_in; int part = (wtx->status.depth * 4 / total) + 1; - return QIcon(QString(":/icons/transaction_%1").arg(part)); + return QIcon(QString(":/icons/" + theme + "/transaction_%1").arg(part)); } case TransactionStatus::MaturesWarning: case TransactionStatus::NotAccepted: - return QIcon(":/icons/transaction_0"); + return QIcon(":/icons/" + theme + "/transaction_0"); default: return COLOR_BLACK; } @@ -496,8 +498,9 @@ QVariant TransactionTableModel::txStatusDecoration(const TransactionRecord *wtx) QVariant TransactionTableModel::txWatchonlyDecoration(const TransactionRecord *wtx) const { + QString theme = GUIUtil::getThemeName(); if (wtx->involvesWatchAddress) - return QIcon(":/icons/eye"); + return QIcon(":/icons/" + theme + "/eye"); else return QVariant(); } diff --git a/src/qt/transactionview.cpp b/src/qt/transactionview.cpp index 1fc99c81afe7b..8438a0d9f20c2 100644 --- a/src/qt/transactionview.cpp +++ b/src/qt/transactionview.cpp @@ -53,11 +53,12 @@ TransactionView::TransactionView(QWidget *parent) : hlayout->addSpacing(23); #endif + QString theme = GUIUtil::getThemeName(); watchOnlyWidget = new QComboBox(this); watchOnlyWidget->setFixedWidth(24); watchOnlyWidget->addItem("", TransactionFilterProxy::WatchOnlyFilter_All); - watchOnlyWidget->addItem(QIcon(":/icons/eye_plus"), "", TransactionFilterProxy::WatchOnlyFilter_Yes); - watchOnlyWidget->addItem(QIcon(":/icons/eye_minus"), "", TransactionFilterProxy::WatchOnlyFilter_No); + watchOnlyWidget->addItem(QIcon(":/icons/" + theme + "/eye_plus"), "", TransactionFilterProxy::WatchOnlyFilter_Yes); + watchOnlyWidget->addItem(QIcon(":/icons/" + theme + "/eye_minus"), "", TransactionFilterProxy::WatchOnlyFilter_No); hlayout->addWidget(watchOnlyWidget); dateWidget = new QComboBox(this); diff --git a/src/qt/utilitydialog.cpp b/src/qt/utilitydialog.cpp index c0bfc47c41b19..cd568c1050ae6 100644 --- a/src/qt/utilitydialog.cpp +++ b/src/qt/utilitydialog.cpp @@ -77,6 +77,10 @@ HelpMessageDialog::HelpMessageDialog(QWidget *parent, bool about) : text = version + "\n" + header + "\n" + coreOptions + "\n" + uiOptions; ui->helpMessageLabel->setText(text); } + // Theme dependent Gfx in About popup + QString helpMessageGfx = ":/images/" + GUIUtil::getThemeName() + "/about"; + QPixmap pixmap = QPixmap(helpMessageGfx); + ui->graphic->setPixmap(pixmap); } HelpMessageDialog::~HelpMessageDialog() diff --git a/src/qt/walletview.cpp b/src/qt/walletview.cpp index 652385958b37b..75eb022443984 100644 --- a/src/qt/walletview.cpp +++ b/src/qt/walletview.cpp @@ -45,7 +45,8 @@ WalletView::WalletView(QWidget *parent): QPushButton *exportButton = new QPushButton(tr("&Export"), this); 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 - exportButton->setIcon(QIcon(":/icons/export")); + QString theme = GUIUtil::getThemeName(); + exportButton->setIcon(QIcon(":/icons/" + theme + "/export")); #endif hbox_buttons->addStretch();