aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWladimir J. van der Laan <laanwj@gmail.com>2018-08-21 10:54:43 +0200
committerWladimir J. van der Laan <laanwj@gmail.com>2018-08-21 11:30:13 +0200
commitaf4fa72fac092480a2ae6cdd608e0b982c80f592 (patch)
treecd704fc12c8131d8a378ec53a5b4e616b492c849
parent8aa9badf5ea3ea98980f50d924e88e46c4d5ee38 (diff)
parent3567b247f43decb6fc102d5b0989d1746fce0441 (diff)
Merge #13529: Use new Qt5 connect syntax
3567b247f43decb6fc102d5b0989d1746fce0441 test: Add lint to prevent SIGNAL/SLOT connect style (João Barbosa) f78558f1e39198779bdb17e2b0e256fb99ad4b28 qt: Use new Qt5 connect syntax (João Barbosa) Pull request description: Pros&cons in https://wiki.qt.io/New_Signal_Slot_Syntax. Note that connecting to/from overloaded slot/signal is ugly before qt 5.7 (see https://stackoverflow.com/a/16795664). Tree-SHA512: ab81f035099fecd34be546f7091bc29595349f2fd0fea26f6414242702955fca27faa4fe19ebfe105c01217908b51db762cb5a9f6ce25bc5e8e6f64c77428c22
-rw-r--r--src/qt/addressbookpage.cpp22
-rw-r--r--src/qt/askpassphrasedialog.cpp8
-rw-r--r--src/qt/bitcoin.cpp39
-rw-r--r--src/qt/bitcoinamountfield.cpp6
-rw-r--r--src/qt/bitcoingui.cpp93
-rw-r--r--src/qt/bitcoingui.h10
-rw-r--r--src/qt/clientmodel.cpp2
-rw-r--r--src/qt/coincontroldialog.cpp40
-rw-r--r--src/qt/guiutil.cpp8
-rw-r--r--src/qt/intro.cpp8
-rw-r--r--src/qt/modaloverlay.cpp2
-rw-r--r--src/qt/optionsdialog.cpp46
-rw-r--r--src/qt/overviewpage.cpp14
-rw-r--r--src/qt/paymentserver.cpp13
-rw-r--r--src/qt/peertablemodel.cpp2
-rw-r--r--src/qt/qvalidatedlineedit.cpp2
-rw-r--r--src/qt/qvaluecombobox.cpp2
-rw-r--r--src/qt/receivecoinsdialog.cpp18
-rw-r--r--src/qt/receiverequestdialog.cpp8
-rw-r--r--src/qt/recentrequeststablemodel.cpp2
-rw-r--r--src/qt/rpcconsole.cpp60
-rw-r--r--src/qt/rpcconsole.h3
-rw-r--r--src/qt/sendcoinsdialog.cpp64
-rw-r--r--src/qt/sendcoinsentry.cpp14
-rw-r--r--src/qt/test/paymentservertests.cpp8
-rw-r--r--src/qt/test/util.cpp2
-rw-r--r--src/qt/test/wallettests.cpp2
-rw-r--r--src/qt/trafficgraphwidget.cpp2
-rw-r--r--src/qt/transactiontablemodel.cpp2
-rw-r--r--src/qt/transactionview.cpp57
-rw-r--r--src/qt/walletframe.cpp6
-rw-r--r--src/qt/walletmodel.cpp2
-rw-r--r--src/qt/walletview.cpp41
-rwxr-xr-xtest/lint/lint-qt.sh20
34 files changed, 324 insertions, 304 deletions
diff --git a/src/qt/addressbookpage.cpp b/src/qt/addressbookpage.cpp
index e1d9b1addf..26bdf60d4a 100644
--- a/src/qt/addressbookpage.cpp
+++ b/src/qt/addressbookpage.cpp
@@ -85,7 +85,7 @@ AddressBookPage::AddressBookPage(const PlatformStyle *platformStyle, Mode _mode,
case SendingTab: setWindowTitle(tr("Choose the address to send coins to")); break;
case ReceivingTab: setWindowTitle(tr("Choose the address to receive coins with")); break;
}
- connect(ui->tableView, SIGNAL(doubleClicked(QModelIndex)), this, SLOT(accept()));
+ connect(ui->tableView, &QTableView::doubleClicked, this, &QDialog::accept);
ui->tableView->setEditTriggers(QAbstractItemView::NoEditTriggers);
ui->tableView->setFocus();
ui->closeButton->setText(tr("C&hoose"));
@@ -129,14 +129,14 @@ AddressBookPage::AddressBookPage(const PlatformStyle *platformStyle, Mode _mode,
contextMenu->addSeparator();
// Connect signals for context menu actions
- connect(copyAddressAction, SIGNAL(triggered()), this, SLOT(on_copyAddress_clicked()));
- connect(copyLabelAction, SIGNAL(triggered()), this, SLOT(onCopyLabelAction()));
- connect(editAction, SIGNAL(triggered()), this, SLOT(onEditAction()));
- connect(deleteAction, SIGNAL(triggered()), this, SLOT(on_deleteAddress_clicked()));
+ connect(copyAddressAction, &QAction::triggered, this, &AddressBookPage::on_copyAddress_clicked);
+ connect(copyLabelAction, &QAction::triggered, this, &AddressBookPage::onCopyLabelAction);
+ connect(editAction, &QAction::triggered, this, &AddressBookPage::onEditAction);
+ connect(deleteAction, &QAction::triggered, this, &AddressBookPage::on_deleteAddress_clicked);
- connect(ui->tableView, SIGNAL(customContextMenuRequested(QPoint)), this, SLOT(contextualMenu(QPoint)));
+ connect(ui->tableView, &QWidget::customContextMenuRequested, this, &AddressBookPage::contextualMenu);
- connect(ui->closeButton, SIGNAL(clicked()), this, SLOT(accept()));
+ connect(ui->closeButton, &QPushButton::clicked, this, &QDialog::accept);
}
AddressBookPage::~AddressBookPage()
@@ -154,7 +154,7 @@ void AddressBookPage::setModel(AddressTableModel *_model)
proxyModel = new AddressBookSortFilterProxyModel(type, this);
proxyModel->setSourceModel(_model);
- connect(ui->searchLineEdit, SIGNAL(textChanged(QString)), proxyModel, SLOT(setFilterWildcard(QString)));
+ connect(ui->searchLineEdit, &QLineEdit::textChanged, proxyModel, &QSortFilterProxyModel::setFilterWildcard);
ui->tableView->setModel(proxyModel);
ui->tableView->sortByColumn(0, Qt::AscendingOrder);
@@ -163,11 +163,11 @@ void AddressBookPage::setModel(AddressTableModel *_model)
ui->tableView->horizontalHeader()->setSectionResizeMode(AddressTableModel::Label, QHeaderView::Stretch);
ui->tableView->horizontalHeader()->setSectionResizeMode(AddressTableModel::Address, QHeaderView::ResizeToContents);
- connect(ui->tableView->selectionModel(), SIGNAL(selectionChanged(QItemSelection,QItemSelection)),
- this, SLOT(selectionChanged()));
+ connect(ui->tableView->selectionModel(), &QItemSelectionModel::selectionChanged,
+ this, &AddressBookPage::selectionChanged);
// Select row for newly created address
- connect(_model, SIGNAL(rowsInserted(QModelIndex,int,int)), this, SLOT(selectNewAddress(QModelIndex,int,int)));
+ connect(_model, &AddressTableModel::rowsInserted, this, &AddressBookPage::selectNewAddress);
selectionChanged();
}
diff --git a/src/qt/askpassphrasedialog.cpp b/src/qt/askpassphrasedialog.cpp
index 812d2251e1..673f63a19b 100644
--- a/src/qt/askpassphrasedialog.cpp
+++ b/src/qt/askpassphrasedialog.cpp
@@ -70,10 +70,10 @@ AskPassphraseDialog::AskPassphraseDialog(Mode _mode, QWidget *parent) :
break;
}
textChanged();
- connect(ui->toggleShowPasswordButton, SIGNAL(toggled(bool)), this, SLOT(toggleShowPassword(bool)));
- connect(ui->passEdit1, SIGNAL(textChanged(QString)), this, SLOT(textChanged()));
- connect(ui->passEdit2, SIGNAL(textChanged(QString)), this, SLOT(textChanged()));
- connect(ui->passEdit3, SIGNAL(textChanged(QString)), this, SLOT(textChanged()));
+ connect(ui->toggleShowPasswordButton, &QPushButton::toggled, this, &AskPassphraseDialog::toggleShowPassword);
+ connect(ui->passEdit1, &QLineEdit::textChanged, this, &AskPassphraseDialog::textChanged);
+ connect(ui->passEdit2, &QLineEdit::textChanged, this, &AskPassphraseDialog::textChanged);
+ connect(ui->passEdit3, &QLineEdit::textChanged, this, &AskPassphraseDialog::textChanged);
}
AskPassphraseDialog::~AskPassphraseDialog()
diff --git a/src/qt/bitcoin.cpp b/src/qt/bitcoin.cpp
index d3ec67e441..85fb88d338 100644
--- a/src/qt/bitcoin.cpp
+++ b/src/qt/bitcoin.cpp
@@ -353,7 +353,7 @@ void BitcoinApplication::createWindow(const NetworkStyle *networkStyle)
window = new BitcoinGUI(m_node, platformStyle, networkStyle, 0);
pollShutdownTimer = new QTimer(window);
- connect(pollShutdownTimer, SIGNAL(timeout()), window, SLOT(detectShutdown()));
+ connect(pollShutdownTimer, &QTimer::timeout, window, &BitcoinGUI::detectShutdown);
}
void BitcoinApplication::createSplashScreen(const NetworkStyle *networkStyle)
@@ -362,8 +362,8 @@ void BitcoinApplication::createSplashScreen(const NetworkStyle *networkStyle)
// We don't hold a direct pointer to the splash screen after creation, but the splash
// screen will take care of deleting itself when slotFinish happens.
splash->show();
- connect(this, SIGNAL(splashFinished(QWidget*)), splash, SLOT(slotFinish(QWidget*)));
- connect(this, SIGNAL(requestedShutdown()), splash, SLOT(close()));
+ connect(this, &BitcoinApplication::splashFinished, splash, &SplashScreen::slotFinish);
+ connect(this, &BitcoinApplication::requestedShutdown, splash, &QWidget::close);
}
void BitcoinApplication::startThread()
@@ -375,14 +375,14 @@ void BitcoinApplication::startThread()
executor->moveToThread(coreThread);
/* communication to and from thread */
- connect(executor, SIGNAL(initializeResult(bool)), this, SLOT(initializeResult(bool)));
- connect(executor, SIGNAL(shutdownResult()), this, SLOT(shutdownResult()));
- connect(executor, SIGNAL(runawayException(QString)), this, SLOT(handleRunawayException(QString)));
- connect(this, SIGNAL(requestedInitialize()), executor, SLOT(initialize()));
- connect(this, SIGNAL(requestedShutdown()), executor, SLOT(shutdown()));
+ connect(executor, &BitcoinCore::initializeResult, this, &BitcoinApplication::initializeResult);
+ connect(executor, &BitcoinCore::shutdownResult, this, &BitcoinApplication::shutdownResult);
+ connect(executor, &BitcoinCore::runawayException, this, &BitcoinApplication::handleRunawayException);
+ connect(this, &BitcoinApplication::requestedInitialize, executor, &BitcoinCore::initialize);
+ connect(this, &BitcoinApplication::requestedShutdown, executor, &BitcoinCore::shutdown);
/* make sure executor object is deleted in its own thread */
- connect(this, SIGNAL(stopThread()), executor, SLOT(deleteLater()));
- connect(this, SIGNAL(stopThread()), coreThread, SLOT(quit()));
+ connect(this, &BitcoinApplication::stopThread, executor, &QObject::deleteLater);
+ connect(this, &BitcoinApplication::stopThread, coreThread, &QThread::quit);
coreThread->start();
}
@@ -442,9 +442,9 @@ void BitcoinApplication::addWallet(WalletModel* walletModel)
window->setCurrentWallet(walletModel->getWalletName());
}
- connect(walletModel, SIGNAL(coinsSent(WalletModel*, SendCoinsRecipient, QByteArray)),
- paymentServer, SLOT(fetchPaymentACK(WalletModel*, const SendCoinsRecipient&, QByteArray)));
- connect(walletModel, SIGNAL(unload()), this, SLOT(removeWallet()));
+ connect(walletModel, &WalletModel::coinsSent,
+ paymentServer, &PaymentServer::fetchPaymentACK);
+ connect(walletModel, &WalletModel::unload, this, &BitcoinApplication::removeWallet);
m_wallet_models.push_back(walletModel);
#endif
@@ -504,13 +504,12 @@ void BitcoinApplication::initializeResult(bool success)
#ifdef ENABLE_WALLET
// Now that initialization/startup is done, process any command-line
// bitcoin: URIs or payment requests:
- connect(paymentServer, SIGNAL(receivedPaymentRequest(SendCoinsRecipient)),
- window, SLOT(handlePaymentRequest(SendCoinsRecipient)));
- connect(window, SIGNAL(receivedURI(QString)),
- paymentServer, SLOT(handleURIOrFile(QString)));
- connect(paymentServer, SIGNAL(message(QString,QString,unsigned int)),
- window, SLOT(message(QString,QString,unsigned int)));
- QTimer::singleShot(100, paymentServer, SLOT(uiReady()));
+ connect(paymentServer, &PaymentServer::receivedPaymentRequest, window, &BitcoinGUI::handlePaymentRequest);
+ connect(window, &BitcoinGUI::receivedURI, paymentServer, &PaymentServer::handleURIOrFile);
+ connect(paymentServer, &PaymentServer::message, [this](const QString& title, const QString& message, unsigned int style) {
+ window->message(title, message, style);
+ });
+ QTimer::singleShot(100, paymentServer, &PaymentServer::uiReady);
#endif
pollShutdownTimer->start(200);
} else {
diff --git a/src/qt/bitcoinamountfield.cpp b/src/qt/bitcoinamountfield.cpp
index 6726019a3f..b68f3a439b 100644
--- a/src/qt/bitcoinamountfield.cpp
+++ b/src/qt/bitcoinamountfield.cpp
@@ -29,7 +29,7 @@ public:
{
setAlignment(Qt::AlignRight);
- connect(lineEdit(), SIGNAL(textEdited(QString)), this, SIGNAL(valueChanged()));
+ connect(lineEdit(), &QLineEdit::textEdited, this, &AmountSpinBox::valueChanged);
}
QValidator::State validate(QString &text, int &pos) const
@@ -213,8 +213,8 @@ BitcoinAmountField::BitcoinAmountField(QWidget *parent) :
setFocusProxy(amount);
// If one if the widgets changes, the combined content changes as well
- connect(amount, SIGNAL(valueChanged()), this, SIGNAL(valueChanged()));
- connect(unit, SIGNAL(currentIndexChanged(int)), this, SLOT(unitChanged(int)));
+ connect(amount, &AmountSpinBox::valueChanged, this, &BitcoinAmountField::valueChanged);
+ connect(unit, static_cast<void (QComboBox::*)(int)>(&QComboBox::currentIndexChanged), this, &BitcoinAmountField::unitChanged);
// Set default based on configuration
unitChanged(unit->currentIndex());
diff --git a/src/qt/bitcoingui.cpp b/src/qt/bitcoingui.cpp
index ff0641dcf5..cefa9004ed 100644
--- a/src/qt/bitcoingui.cpp
+++ b/src/qt/bitcoingui.cpp
@@ -203,9 +203,9 @@ BitcoinGUI::BitcoinGUI(interfaces::Node& node, const PlatformStyle *_platformSty
modalOverlay = new ModalOverlay(this->centralWidget());
#ifdef ENABLE_WALLET
if(enableWallet) {
- connect(walletFrame, SIGNAL(requestedSyncWarningInfo()), this, SLOT(showModalOverlay()));
- connect(labelBlocksIcon, SIGNAL(clicked(QPoint)), this, SLOT(showModalOverlay()));
- connect(progressBar, SIGNAL(clicked(QPoint)), this, SLOT(showModalOverlay()));
+ connect(walletFrame, &WalletFrame::requestedSyncWarningInfo, this, &BitcoinGUI::showModalOverlay);
+ connect(labelBlocksIcon, &GUIUtil::ClickableLabel::clicked, this, &BitcoinGUI::showModalOverlay);
+ connect(progressBar, &GUIUtil::ClickableProgressBar::clicked, this, &BitcoinGUI::showModalOverlay);
}
#endif
}
@@ -270,18 +270,18 @@ void BitcoinGUI::createActions()
#ifdef ENABLE_WALLET
// These showNormalIfMinimized are needed because Send Coins and Receive Coins
// can be triggered from the tray menu, and need to show the GUI to be useful.
- connect(overviewAction, SIGNAL(triggered()), this, SLOT(showNormalIfMinimized()));
- connect(overviewAction, SIGNAL(triggered()), this, SLOT(gotoOverviewPage()));
- connect(sendCoinsAction, SIGNAL(triggered()), this, SLOT(showNormalIfMinimized()));
- connect(sendCoinsAction, SIGNAL(triggered()), this, SLOT(gotoSendCoinsPage()));
- connect(sendCoinsMenuAction, SIGNAL(triggered()), this, SLOT(showNormalIfMinimized()));
- connect(sendCoinsMenuAction, SIGNAL(triggered()), this, SLOT(gotoSendCoinsPage()));
- connect(receiveCoinsAction, SIGNAL(triggered()), this, SLOT(showNormalIfMinimized()));
- connect(receiveCoinsAction, SIGNAL(triggered()), this, SLOT(gotoReceiveCoinsPage()));
- connect(receiveCoinsMenuAction, SIGNAL(triggered()), this, SLOT(showNormalIfMinimized()));
- connect(receiveCoinsMenuAction, SIGNAL(triggered()), this, SLOT(gotoReceiveCoinsPage()));
- connect(historyAction, SIGNAL(triggered()), this, SLOT(showNormalIfMinimized()));
- connect(historyAction, SIGNAL(triggered()), this, SLOT(gotoHistoryPage()));
+ connect(overviewAction, &QAction::triggered, this, static_cast<void (BitcoinGUI::*)()>(&BitcoinGUI::showNormalIfMinimized));
+ connect(overviewAction, &QAction::triggered, this, &BitcoinGUI::gotoOverviewPage);
+ connect(sendCoinsAction, &QAction::triggered, this, static_cast<void (BitcoinGUI::*)()>(&BitcoinGUI::showNormalIfMinimized));
+ connect(sendCoinsAction, &QAction::triggered, [this]{ gotoSendCoinsPage(); });
+ connect(sendCoinsMenuAction, &QAction::triggered, this, static_cast<void (BitcoinGUI::*)()>(&BitcoinGUI::showNormalIfMinimized));
+ connect(sendCoinsMenuAction, &QAction::triggered, [this]{ gotoSendCoinsPage(); });
+ connect(receiveCoinsAction, &QAction::triggered, this, static_cast<void (BitcoinGUI::*)()>(&BitcoinGUI::showNormalIfMinimized));
+ connect(receiveCoinsAction, &QAction::triggered, this, &BitcoinGUI::gotoReceiveCoinsPage);
+ connect(receiveCoinsMenuAction, &QAction::triggered, this, static_cast<void (BitcoinGUI::*)()>(&BitcoinGUI::showNormalIfMinimized));
+ connect(receiveCoinsMenuAction, &QAction::triggered, this, &BitcoinGUI::gotoReceiveCoinsPage);
+ connect(historyAction, &QAction::triggered, this, static_cast<void (BitcoinGUI::*)()>(&BitcoinGUI::showNormalIfMinimized));
+ connect(historyAction, &QAction::triggered, this, &BitcoinGUI::gotoHistoryPage);
#endif // ENABLE_WALLET
quitAction = new QAction(platformStyle->TextColorIcon(":/icons/quit"), tr("E&xit"), this);
@@ -331,32 +331,32 @@ void BitcoinGUI::createActions()
showHelpMessageAction->setMenuRole(QAction::NoRole);
showHelpMessageAction->setStatusTip(tr("Show the %1 help message to get a list with possible Bitcoin command-line options").arg(tr(PACKAGE_NAME)));
- connect(quitAction, SIGNAL(triggered()), qApp, SLOT(quit()));
- connect(aboutAction, SIGNAL(triggered()), this, SLOT(aboutClicked()));
- connect(aboutQtAction, SIGNAL(triggered()), qApp, SLOT(aboutQt()));
- connect(optionsAction, SIGNAL(triggered()), this, SLOT(optionsClicked()));
- connect(toggleHideAction, SIGNAL(triggered()), this, SLOT(toggleHidden()));
- connect(showHelpMessageAction, SIGNAL(triggered()), this, SLOT(showHelpMessageClicked()));
- connect(openRPCConsoleAction, SIGNAL(triggered()), this, SLOT(showDebugWindow()));
+ connect(quitAction, &QAction::triggered, qApp, QApplication::quit);
+ connect(aboutAction, &QAction::triggered, this, &BitcoinGUI::aboutClicked);
+ connect(aboutQtAction, &QAction::triggered, qApp, QApplication::aboutQt);
+ connect(optionsAction, &QAction::triggered, this, &BitcoinGUI::optionsClicked);
+ connect(toggleHideAction, &QAction::triggered, this, &BitcoinGUI::toggleHidden);
+ connect(showHelpMessageAction, &QAction::triggered, this, &BitcoinGUI::showHelpMessageClicked);
+ connect(openRPCConsoleAction, &QAction::triggered, this, &BitcoinGUI::showDebugWindow);
// prevents an open debug window from becoming stuck/unusable on client shutdown
- connect(quitAction, SIGNAL(triggered()), rpcConsole, SLOT(hide()));
+ connect(quitAction, &QAction::triggered, rpcConsole, &QWidget::hide);
#ifdef ENABLE_WALLET
if(walletFrame)
{
- connect(encryptWalletAction, SIGNAL(triggered(bool)), walletFrame, SLOT(encryptWallet(bool)));
- connect(backupWalletAction, SIGNAL(triggered()), walletFrame, SLOT(backupWallet()));
- connect(changePassphraseAction, SIGNAL(triggered()), walletFrame, SLOT(changePassphrase()));
- connect(signMessageAction, SIGNAL(triggered()), this, SLOT(gotoSignMessageTab()));
- connect(verifyMessageAction, SIGNAL(triggered()), this, SLOT(gotoVerifyMessageTab()));
- connect(usedSendingAddressesAction, SIGNAL(triggered()), walletFrame, SLOT(usedSendingAddresses()));
- connect(usedReceivingAddressesAction, SIGNAL(triggered()), walletFrame, SLOT(usedReceivingAddresses()));
- connect(openAction, SIGNAL(triggered()), this, SLOT(openClicked()));
+ connect(encryptWalletAction, &QAction::triggered, walletFrame, &WalletFrame::encryptWallet);
+ connect(backupWalletAction, &QAction::triggered, walletFrame, &WalletFrame::backupWallet);
+ connect(changePassphraseAction, &QAction::triggered, walletFrame, &WalletFrame::changePassphrase);
+ connect(signMessageAction, &QAction::triggered, [this]{ gotoSignMessageTab(); });
+ connect(verifyMessageAction, &QAction::triggered, [this]{ gotoVerifyMessageTab(); });
+ connect(usedSendingAddressesAction, &QAction::triggered, walletFrame, &WalletFrame::usedSendingAddresses);
+ connect(usedReceivingAddressesAction, &QAction::triggered, walletFrame, &WalletFrame::usedReceivingAddresses);
+ connect(openAction, &QAction::triggered, this, &BitcoinGUI::openClicked);
}
#endif // ENABLE_WALLET
- new QShortcut(QKeySequence(Qt::CTRL + Qt::SHIFT + Qt::Key_C), this, SLOT(showDebugWindowActivateConsole()));
- new QShortcut(QKeySequence(Qt::CTRL + Qt::SHIFT + Qt::Key_D), this, SLOT(showDebugWindow()));
+ connect(new QShortcut(QKeySequence(Qt::CTRL + Qt::SHIFT + Qt::Key_C), this), &QShortcut::activated, this, &BitcoinGUI::showDebugWindowActivateConsole);
+ connect(new QShortcut(QKeySequence(Qt::CTRL + Qt::SHIFT + Qt::Key_D), this), &QShortcut::activated, this, &BitcoinGUI::showDebugWindow);
}
void BitcoinGUI::createMenuBar()
@@ -425,7 +425,7 @@ void BitcoinGUI::createToolBars()
toolbar->addWidget(spacer);
m_wallet_selector = new QComboBox();
- connect(m_wallet_selector, SIGNAL(currentIndexChanged(int)), this, SLOT(setCurrentWalletBySelectorIndex(int)));
+ connect(m_wallet_selector, static_cast<void (QComboBox::*)(int)>(&QComboBox::currentIndexChanged), this, &BitcoinGUI::setCurrentWalletBySelectorIndex);
m_wallet_selector_label = new QLabel();
m_wallet_selector_label->setText(tr("Wallet:") + " ");
@@ -451,18 +451,20 @@ void BitcoinGUI::setClientModel(ClientModel *_clientModel)
// Keep up to date with client
updateNetworkState();
- connect(_clientModel, SIGNAL(numConnectionsChanged(int)), this, SLOT(setNumConnections(int)));
- connect(_clientModel, SIGNAL(networkActiveChanged(bool)), this, SLOT(setNetworkActive(bool)));
+ connect(_clientModel, &ClientModel::numConnectionsChanged, this, &BitcoinGUI::setNumConnections);
+ connect(_clientModel, &ClientModel::networkActiveChanged, this, &BitcoinGUI::setNetworkActive);
modalOverlay->setKnownBestHeight(_clientModel->getHeaderTipHeight(), QDateTime::fromTime_t(_clientModel->getHeaderTipTime()));
setNumBlocks(m_node.getNumBlocks(), QDateTime::fromTime_t(m_node.getLastBlockTime()), m_node.getVerificationProgress(), false);
- connect(_clientModel, SIGNAL(numBlocksChanged(int,QDateTime,double,bool)), this, SLOT(setNumBlocks(int,QDateTime,double,bool)));
+ connect(_clientModel, &ClientModel::numBlocksChanged, this, &BitcoinGUI::setNumBlocks);
// Receive and report messages from client model
- connect(_clientModel, SIGNAL(message(QString,QString,unsigned int)), this, SLOT(message(QString,QString,unsigned int)));
+ connect(_clientModel, &ClientModel::message, [this](const QString &title, const QString &message, unsigned int style){
+ this->message(title, message, style);
+ });
// Show progress dialog
- connect(_clientModel, SIGNAL(showProgress(QString,int)), this, SLOT(showProgress(QString,int)));
+ connect(_clientModel, &ClientModel::showProgress, this, &BitcoinGUI::showProgress);
rpcConsole->setClientModel(_clientModel);
@@ -480,7 +482,7 @@ void BitcoinGUI::setClientModel(ClientModel *_clientModel)
if(optionsModel)
{
// be aware of the tray icon disable state change reported by the OptionsModel object.
- connect(optionsModel,SIGNAL(hideTrayIconChanged(bool)),this,SLOT(setTrayIconVisible(bool)));
+ connect(optionsModel, &OptionsModel::hideTrayIconChanged, this, &BitcoinGUI::setTrayIconVisible);
// initialize the disable state of the tray icon with the current value in the model.
setTrayIconVisible(optionsModel->getHideTrayIcon());
@@ -601,8 +603,7 @@ void BitcoinGUI::createTrayIconMenu()
trayIconMenu = new QMenu(this);
trayIcon->setContextMenu(trayIconMenu);
- connect(trayIcon, SIGNAL(activated(QSystemTrayIcon::ActivationReason)),
- this, SLOT(trayIconActivated(QSystemTrayIcon::ActivationReason)));
+ connect(trayIcon, &QSystemTrayIcon::activated, this, &BitcoinGUI::trayIconActivated);
#else
// Note: On Mac, the dock icon is used to provide the tray's functionality.
MacDockIconHandler *dockIconHandler = MacDockIconHandler::instance();
@@ -956,12 +957,12 @@ void BitcoinGUI::changeEvent(QEvent *e)
QWindowStateChangeEvent *wsevt = static_cast<QWindowStateChangeEvent*>(e);
if(!(wsevt->oldState() & Qt::WindowMinimized) && isMinimized())
{
- QTimer::singleShot(0, this, SLOT(hide()));
+ QTimer::singleShot(0, this, &BitcoinGUI::hide);
e->ignore();
}
else if((wsevt->oldState() & Qt::WindowMinimized) && !isMinimized())
{
- QTimer::singleShot(0, this, SLOT(show()));
+ QTimer::singleShot(0, this, &BitcoinGUI::show);
e->ignore();
}
}
@@ -1276,7 +1277,7 @@ void UnitDisplayStatusBarControl::createContextMenu()
menuAction->setData(QVariant(u));
menu->addAction(menuAction);
}
- connect(menu,SIGNAL(triggered(QAction*)),this,SLOT(onMenuSelection(QAction*)));
+ connect(menu, &QMenu::triggered, this, &UnitDisplayStatusBarControl::onMenuSelection);
}
/** Lets the control know about the Options Model (and its signals) */
@@ -1287,7 +1288,7 @@ void UnitDisplayStatusBarControl::setOptionsModel(OptionsModel *_optionsModel)
this->optionsModel = _optionsModel;
// be aware of a display unit change reported by the OptionsModel object.
- connect(_optionsModel,SIGNAL(displayUnitChanged(int)),this,SLOT(updateDisplayUnit(int)));
+ connect(_optionsModel, &OptionsModel::displayUnitChanged, this, &UnitDisplayStatusBarControl::updateDisplayUnit);
// initialize the display units label with the current value in the model.
updateDisplayUnit(_optionsModel->getDisplayUnit());
diff --git a/src/qt/bitcoingui.h b/src/qt/bitcoingui.h
index 3a8ef3ad8c..61cd6f76cc 100644
--- a/src/qt/bitcoingui.h
+++ b/src/qt/bitcoingui.h
@@ -49,6 +49,7 @@ QT_END_NAMESPACE
namespace GUIUtil {
class ClickableLabel;
+class ClickableProgressBar;
}
/**
@@ -101,9 +102,9 @@ private:
QLabel* labelWalletHDStatusIcon = nullptr;
GUIUtil::ClickableLabel* labelProxyIcon = nullptr;
GUIUtil::ClickableLabel* connectionsControl = nullptr;
- QLabel* labelBlocksIcon = nullptr;
+ GUIUtil::ClickableLabel* labelBlocksIcon = nullptr;
QLabel* progressBarLabel = nullptr;
- QProgressBar* progressBar = nullptr;
+ GUIUtil::ClickableProgressBar* progressBar = nullptr;
QProgressDialog* progressDialog = nullptr;
QMenuBar* appMenuBar = nullptr;
@@ -227,7 +228,7 @@ private:
/** Set the proxy-enabled icon as shown in the UI. */
void updateProxyIcon();
-private Q_SLOTS:
+public Q_SLOTS:
#ifdef ENABLE_WALLET
/** Switch to overview (home) page */
void gotoOverviewPage();
@@ -262,7 +263,8 @@ private Q_SLOTS:
#endif
/** Show window if hidden, unminimize when minimized, rise when obscured or show if hidden and fToggleHidden is true */
- void showNormalIfMinimized(bool fToggleHidden = false);
+ void showNormalIfMinimized() { showNormalIfMinimized(false); }
+ void showNormalIfMinimized(bool fToggleHidden);
/** Simply calls showNormalIfMinimized(true) for use in SLOT() macro */
void toggleHidden();
diff --git a/src/qt/clientmodel.cpp b/src/qt/clientmodel.cpp
index 7154ac14be..b2cf4b6399 100644
--- a/src/qt/clientmodel.cpp
+++ b/src/qt/clientmodel.cpp
@@ -44,7 +44,7 @@ ClientModel::ClientModel(interfaces::Node& node, OptionsModel *_optionsModel, QO
peerTableModel = new PeerTableModel(m_node, this);
banTableModel = new BanTableModel(m_node, this);
pollTimer = new QTimer(this);
- connect(pollTimer, SIGNAL(timeout()), this, SLOT(updateTimer()));
+ connect(pollTimer, &QTimer::timeout, this, &ClientModel::updateTimer);
pollTimer->start(MODEL_UPDATE_DELAY);
subscribeToCoreSignals();
diff --git a/src/qt/coincontroldialog.cpp b/src/qt/coincontroldialog.cpp
index ca3598334d..68330c51fa 100644
--- a/src/qt/coincontroldialog.cpp
+++ b/src/qt/coincontroldialog.cpp
@@ -68,13 +68,13 @@ CoinControlDialog::CoinControlDialog(const PlatformStyle *_platformStyle, QWidge
contextMenu->addAction(unlockAction);
// context menu signals
- connect(ui->treeWidget, SIGNAL(customContextMenuRequested(QPoint)), this, SLOT(showMenu(QPoint)));
- connect(copyAddressAction, SIGNAL(triggered()), this, SLOT(copyAddress()));
- connect(copyLabelAction, SIGNAL(triggered()), this, SLOT(copyLabel()));
- connect(copyAmountAction, SIGNAL(triggered()), this, SLOT(copyAmount()));
- connect(copyTransactionHashAction, SIGNAL(triggered()), this, SLOT(copyTransactionHash()));
- connect(lockAction, SIGNAL(triggered()), this, SLOT(lockCoin()));
- connect(unlockAction, SIGNAL(triggered()), this, SLOT(unlockCoin()));
+ connect(ui->treeWidget, &QWidget::customContextMenuRequested, this, &CoinControlDialog::showMenu);
+ connect(copyAddressAction, &QAction::triggered, this, &CoinControlDialog::copyAddress);
+ connect(copyLabelAction, &QAction::triggered, this, &CoinControlDialog::copyLabel);
+ connect(copyAmountAction, &QAction::triggered, this, &CoinControlDialog::copyAmount);
+ connect(copyTransactionHashAction, &QAction::triggered, this, &CoinControlDialog::copyTransactionHash);
+ connect(lockAction, &QAction::triggered, this, &CoinControlDialog::lockCoin);
+ connect(unlockAction, &QAction::triggered, this, &CoinControlDialog::unlockCoin);
// clipboard actions
QAction *clipboardQuantityAction = new QAction(tr("Copy quantity"), this);
@@ -85,13 +85,13 @@ CoinControlDialog::CoinControlDialog(const PlatformStyle *_platformStyle, QWidge
QAction *clipboardLowOutputAction = new QAction(tr("Copy dust"), this);
QAction *clipboardChangeAction = new QAction(tr("Copy change"), this);
- connect(clipboardQuantityAction, SIGNAL(triggered()), this, SLOT(clipboardQuantity()));
- connect(clipboardAmountAction, SIGNAL(triggered()), this, SLOT(clipboardAmount()));
- connect(clipboardFeeAction, SIGNAL(triggered()), this, SLOT(clipboardFee()));
- connect(clipboardAfterFeeAction, SIGNAL(triggered()), this, SLOT(clipboardAfterFee()));
- connect(clipboardBytesAction, SIGNAL(triggered()), this, SLOT(clipboardBytes()));
- connect(clipboardLowOutputAction, SIGNAL(triggered()), this, SLOT(clipboardLowOutput()));
- connect(clipboardChangeAction, SIGNAL(triggered()), this, SLOT(clipboardChange()));
+ connect(clipboardQuantityAction, &QAction::triggered, this, &CoinControlDialog::clipboardQuantity);
+ connect(clipboardAmountAction, &QAction::triggered, this, &CoinControlDialog::clipboardAmount);
+ connect(clipboardFeeAction, &QAction::triggered, this, &CoinControlDialog::clipboardFee);
+ connect(clipboardAfterFeeAction, &QAction::triggered, this, &CoinControlDialog::clipboardAfterFee);
+ connect(clipboardBytesAction, &QAction::triggered, this, &CoinControlDialog::clipboardBytes);
+ connect(clipboardLowOutputAction, &QAction::triggered, this, &CoinControlDialog::clipboardLowOutput);
+ connect(clipboardChangeAction, &QAction::triggered, this, &CoinControlDialog::clipboardChange);
ui->labelCoinControlQuantity->addAction(clipboardQuantityAction);
ui->labelCoinControlAmount->addAction(clipboardAmountAction);
@@ -102,21 +102,21 @@ CoinControlDialog::CoinControlDialog(const PlatformStyle *_platformStyle, QWidge
ui->labelCoinControlChange->addAction(clipboardChangeAction);
// toggle tree/list mode
- connect(ui->radioTreeMode, SIGNAL(toggled(bool)), this, SLOT(radioTreeMode(bool)));
- connect(ui->radioListMode, SIGNAL(toggled(bool)), this, SLOT(radioListMode(bool)));
+ connect(ui->radioTreeMode, &QRadioButton::toggled, this, &CoinControlDialog::radioTreeMode);
+ connect(ui->radioListMode, &QRadioButton::toggled, this, &CoinControlDialog::radioListMode);
// click on checkbox
- connect(ui->treeWidget, SIGNAL(itemChanged(QTreeWidgetItem*, int)), this, SLOT(viewItemChanged(QTreeWidgetItem*, int)));
+ connect(ui->treeWidget, &QTreeWidget::itemChanged, this, &CoinControlDialog::viewItemChanged);
// click on header
ui->treeWidget->header()->setSectionsClickable(true);
- connect(ui->treeWidget->header(), SIGNAL(sectionClicked(int)), this, SLOT(headerSectionClicked(int)));
+ connect(ui->treeWidget->header(), &QHeaderView::sectionClicked, this, &CoinControlDialog::headerSectionClicked);
// ok button
- connect(ui->buttonBox, SIGNAL(clicked( QAbstractButton*)), this, SLOT(buttonBoxClicked(QAbstractButton*)));
+ connect(ui->buttonBox, &QDialogButtonBox::clicked, this, &CoinControlDialog::buttonBoxClicked);
// (un)select all
- connect(ui->pushButtonSelectAll, SIGNAL(clicked()), this, SLOT(buttonSelectAllClicked()));
+ connect(ui->pushButtonSelectAll, &QPushButton::clicked, this, &CoinControlDialog::buttonSelectAllClicked);
ui->treeWidget->setColumnWidth(COLUMN_CHECKBOX, 84);
ui->treeWidget->setColumnWidth(COLUMN_AMOUNT, 110);
diff --git a/src/qt/guiutil.cpp b/src/qt/guiutil.cpp
index f8391b6303..bbf60d96fd 100644
--- a/src/qt/guiutil.cpp
+++ b/src/qt/guiutil.cpp
@@ -409,15 +409,15 @@ bool ToolTipToRichTextFilter::eventFilter(QObject *obj, QEvent *evt)
void TableViewLastColumnResizingFixer::connectViewHeadersSignals()
{
- connect(tableView->horizontalHeader(), SIGNAL(sectionResized(int,int,int)), this, SLOT(on_sectionResized(int,int,int)));
- connect(tableView->horizontalHeader(), SIGNAL(geometriesChanged()), this, SLOT(on_geometriesChanged()));
+ connect(tableView->horizontalHeader(), &QHeaderView::sectionResized, this, &TableViewLastColumnResizingFixer::on_sectionResized);
+ connect(tableView->horizontalHeader(), &QHeaderView::geometriesChanged, this, &TableViewLastColumnResizingFixer::on_geometriesChanged);
}
// We need to disconnect these while handling the resize events, otherwise we can enter infinite loops.
void TableViewLastColumnResizingFixer::disconnectViewHeadersSignals()
{
- disconnect(tableView->horizontalHeader(), SIGNAL(sectionResized(int,int,int)), this, SLOT(on_sectionResized(int,int,int)));
- disconnect(tableView->horizontalHeader(), SIGNAL(geometriesChanged()), this, SLOT(on_geometriesChanged()));
+ disconnect(tableView->horizontalHeader(), &QHeaderView::sectionResized, this, &TableViewLastColumnResizingFixer::on_sectionResized);
+ disconnect(tableView->horizontalHeader(), &QHeaderView::geometriesChanged, this, &TableViewLastColumnResizingFixer::on_geometriesChanged);
}
// Setup the resize mode, handles compatibility for Qt5 and below as the method signatures changed.
diff --git a/src/qt/intro.cpp b/src/qt/intro.cpp
index dbba3c1b3b..b19cc17a4d 100644
--- a/src/qt/intro.cpp
+++ b/src/qt/intro.cpp
@@ -303,11 +303,11 @@ void Intro::startThread()
FreespaceChecker *executor = new FreespaceChecker(this);
executor->moveToThread(thread);
- connect(executor, SIGNAL(reply(int,QString,quint64)), this, SLOT(setStatus(int,QString,quint64)));
- connect(this, SIGNAL(requestCheck()), executor, SLOT(check()));
+ connect(executor, &FreespaceChecker::reply, this, &Intro::setStatus);
+ connect(this, &Intro::requestCheck, executor, &FreespaceChecker::check);
/* make sure executor object is deleted in its own thread */
- connect(this, SIGNAL(stopThread()), executor, SLOT(deleteLater()));
- connect(this, SIGNAL(stopThread()), thread, SLOT(quit()));
+ connect(this, &Intro::stopThread, executor, &QObject::deleteLater);
+ connect(this, &Intro::stopThread, thread, &QThread::quit);
thread->start();
}
diff --git a/src/qt/modaloverlay.cpp b/src/qt/modaloverlay.cpp
index dec9d78326..c5bedf007a 100644
--- a/src/qt/modaloverlay.cpp
+++ b/src/qt/modaloverlay.cpp
@@ -21,7 +21,7 @@ layerIsVisible(false),
userClosed(false)
{
ui->setupUi(this);
- connect(ui->closeButton, SIGNAL(clicked()), this, SLOT(closeClicked()));
+ connect(ui->closeButton, &QPushButton::clicked, this, &ModalOverlay::closeClicked);
if (parent) {
parent->installEventFilter(this);
raise();
diff --git a/src/qt/optionsdialog.cpp b/src/qt/optionsdialog.cpp
index d1477d362d..b51322394f 100644
--- a/src/qt/optionsdialog.cpp
+++ b/src/qt/optionsdialog.cpp
@@ -46,7 +46,7 @@ OptionsDialog::OptionsDialog(QWidget *parent, bool enableWallet) :
ui->pruneWarning->setStyleSheet("QLabel { color: red; }");
ui->pruneSize->setEnabled(false);
- connect(ui->prune, SIGNAL(toggled(bool)), ui->pruneSize, SLOT(setEnabled(bool)));
+ connect(ui->prune, &QPushButton::toggled, ui->pruneSize, &QWidget::setEnabled);
/* Network elements init */
#ifndef USE_UPNP
@@ -61,13 +61,13 @@ OptionsDialog::OptionsDialog(QWidget *parent, bool enableWallet) :
ui->proxyPortTor->setEnabled(false);
ui->proxyPortTor->setValidator(new QIntValidator(1, 65535, this));
- connect(ui->connectSocks, SIGNAL(toggled(bool)), ui->proxyIp, SLOT(setEnabled(bool)));
- connect(ui->connectSocks, SIGNAL(toggled(bool)), ui->proxyPort, SLOT(setEnabled(bool)));
- connect(ui->connectSocks, SIGNAL(toggled(bool)), this, SLOT(updateProxyValidationState()));
+ connect(ui->connectSocks, &QPushButton::toggled, ui->proxyIp, &QWidget::setEnabled);
+ connect(ui->connectSocks, &QPushButton::toggled, ui->proxyPort, &QWidget::setEnabled);
+ connect(ui->connectSocks, &QPushButton::toggled, this, &OptionsDialog::updateProxyValidationState);
- connect(ui->connectSocksTor, SIGNAL(toggled(bool)), ui->proxyIpTor, SLOT(setEnabled(bool)));
- connect(ui->connectSocksTor, SIGNAL(toggled(bool)), ui->proxyPortTor, SLOT(setEnabled(bool)));
- connect(ui->connectSocksTor, SIGNAL(toggled(bool)), this, SLOT(updateProxyValidationState()));
+ connect(ui->connectSocksTor, &QPushButton::toggled, ui->proxyIpTor, &QWidget::setEnabled);
+ connect(ui->connectSocksTor, &QPushButton::toggled, ui->proxyPortTor, &QWidget::setEnabled);
+ connect(ui->connectSocksTor, &QPushButton::toggled, this, &OptionsDialog::updateProxyValidationState);
/* Window elements init */
#ifdef Q_OS_MAC
@@ -122,10 +122,10 @@ OptionsDialog::OptionsDialog(QWidget *parent, bool enableWallet) :
/* setup/change UI elements when proxy IPs are invalid/valid */
ui->proxyIp->setCheckValidator(new ProxyAddressValidator(parent));
ui->proxyIpTor->setCheckValidator(new ProxyAddressValidator(parent));
- connect(ui->proxyIp, SIGNAL(validationDidChange(QValidatedLineEdit *)), this, SLOT(updateProxyValidationState()));
- connect(ui->proxyIpTor, SIGNAL(validationDidChange(QValidatedLineEdit *)), this, SLOT(updateProxyValidationState()));
- connect(ui->proxyPort, SIGNAL(textChanged(const QString&)), this, SLOT(updateProxyValidationState()));
- connect(ui->proxyPortTor, SIGNAL(textChanged(const QString&)), this, SLOT(updateProxyValidationState()));
+ connect(ui->proxyIp, &QValidatedLineEdit::validationDidChange, this, &OptionsDialog::updateProxyValidationState);
+ connect(ui->proxyIpTor, &QValidatedLineEdit::validationDidChange, this, &OptionsDialog::updateProxyValidationState);
+ connect(ui->proxyPort, &QLineEdit::textChanged, this, &OptionsDialog::updateProxyValidationState);
+ connect(ui->proxyPortTor, &QLineEdit::textChanged, this, &OptionsDialog::updateProxyValidationState);
}
OptionsDialog::~OptionsDialog()
@@ -158,20 +158,20 @@ void OptionsDialog::setModel(OptionsModel *_model)
/* warn when one of the following settings changes by user action (placed here so init via mapper doesn't trigger them) */
/* Main */
- connect(ui->prune, SIGNAL(clicked(bool)), this, SLOT(showRestartWarning()));
- connect(ui->prune, SIGNAL(clicked(bool)), this, SLOT(togglePruneWarning(bool)));
- connect(ui->pruneSize, SIGNAL(valueChanged(int)), this, SLOT(showRestartWarning()));
- connect(ui->databaseCache, SIGNAL(valueChanged(int)), this, SLOT(showRestartWarning()));
- connect(ui->threadsScriptVerif, SIGNAL(valueChanged(int)), this, SLOT(showRestartWarning()));
+ connect(ui->prune, &QCheckBox::clicked, this, &OptionsDialog::showRestartWarning);
+ connect(ui->prune, &QCheckBox::clicked, this, &OptionsDialog::togglePruneWarning);
+ connect(ui->pruneSize, static_cast<void (QSpinBox::*)(int)>(&QSpinBox::valueChanged), this, &OptionsDialog::showRestartWarning);
+ connect(ui->databaseCache, static_cast<void (QSpinBox::*)(int)>(&QSpinBox::valueChanged), this, &OptionsDialog::showRestartWarning);
+ connect(ui->threadsScriptVerif, static_cast<void (QSpinBox::*)(int)>(&QSpinBox::valueChanged), this, &OptionsDialog::showRestartWarning);
/* Wallet */
- connect(ui->spendZeroConfChange, SIGNAL(clicked(bool)), this, SLOT(showRestartWarning()));
+ connect(ui->spendZeroConfChange, &QCheckBox::clicked, this, &OptionsDialog::showRestartWarning);
/* Network */
- connect(ui->allowIncoming, SIGNAL(clicked(bool)), this, SLOT(showRestartWarning()));
- connect(ui->connectSocks, SIGNAL(clicked(bool)), this, SLOT(showRestartWarning()));
- connect(ui->connectSocksTor, SIGNAL(clicked(bool)), this, SLOT(showRestartWarning()));
+ connect(ui->allowIncoming, &QCheckBox::clicked, this, &OptionsDialog::showRestartWarning);
+ connect(ui->connectSocks, &QCheckBox::clicked, this, &OptionsDialog::showRestartWarning);
+ connect(ui->connectSocksTor, &QCheckBox::clicked, this, &OptionsDialog::showRestartWarning);
/* Display */
- connect(ui->lang, SIGNAL(valueChanged()), this, SLOT(showRestartWarning()));
- connect(ui->thirdPartyTxUrls, SIGNAL(textChanged(const QString &)), this, SLOT(showRestartWarning()));
+ connect(ui->lang, static_cast<void (QValueComboBox::*)()>(&QValueComboBox::valueChanged), [this]{ showRestartWarning(); });
+ connect(ui->thirdPartyTxUrls, &QLineEdit::textChanged, [this]{ showRestartWarning(); });
}
void OptionsDialog::setCurrentTab(OptionsDialog::Tab tab)
@@ -300,7 +300,7 @@ void OptionsDialog::showRestartWarning(bool fPersistent)
ui->statusLabel->setText(tr("This change would require a client restart."));
// clear non-persistent status label after 10 seconds
// Todo: should perhaps be a class attribute, if we extend the use of statusLabel
- QTimer::singleShot(10000, this, SLOT(clearStatusLabel()));
+ QTimer::singleShot(10000, this, &OptionsDialog::clearStatusLabel);
}
}
diff --git a/src/qt/overviewpage.cpp b/src/qt/overviewpage.cpp
index ba47935196..1db9609979 100644
--- a/src/qt/overviewpage.cpp
+++ b/src/qt/overviewpage.cpp
@@ -133,12 +133,12 @@ OverviewPage::OverviewPage(const PlatformStyle *platformStyle, QWidget *parent)
ui->listTransactions->setMinimumHeight(NUM_ITEMS * (DECORATION_SIZE + 2));
ui->listTransactions->setAttribute(Qt::WA_MacShowFocusRect, false);
- connect(ui->listTransactions, SIGNAL(clicked(QModelIndex)), this, SLOT(handleTransactionClicked(QModelIndex)));
+ connect(ui->listTransactions, &QListView::clicked, this, &OverviewPage::handleTransactionClicked);
// start with displaying the "out of sync" warnings
showOutOfSyncWarning(true);
- connect(ui->labelWalletStatus, SIGNAL(clicked()), this, SLOT(handleOutOfSyncWarningClicks()));
- connect(ui->labelTransactionsStatus, SIGNAL(clicked()), this, SLOT(handleOutOfSyncWarningClicks()));
+ connect(ui->labelWalletStatus, &QPushButton::clicked, this, &OverviewPage::handleOutOfSyncWarningClicks);
+ connect(ui->labelTransactionsStatus, &QPushButton::clicked, this, &OverviewPage::handleOutOfSyncWarningClicks);
}
void OverviewPage::handleTransactionClicked(const QModelIndex &index)
@@ -201,7 +201,7 @@ void OverviewPage::setClientModel(ClientModel *model)
if(model)
{
// Show warning if this is a prerelease version
- connect(model, SIGNAL(alertsChanged(QString)), this, SLOT(updateAlerts(QString)));
+ connect(model, &ClientModel::alertsChanged, this, &OverviewPage::updateAlerts);
updateAlerts(model->getStatusBarWarnings());
}
}
@@ -227,12 +227,12 @@ void OverviewPage::setWalletModel(WalletModel *model)
interfaces::Wallet& wallet = model->wallet();
interfaces::WalletBalances balances = wallet.getBalances();
setBalance(balances);
- connect(model, SIGNAL(balanceChanged(interfaces::WalletBalances)), this, SLOT(setBalance(interfaces::WalletBalances)));
+ connect(model, &WalletModel::balanceChanged, this, &OverviewPage::setBalance);
- connect(model->getOptionsModel(), SIGNAL(displayUnitChanged(int)), this, SLOT(updateDisplayUnit()));
+ connect(model->getOptionsModel(), &OptionsModel::displayUnitChanged, this, &OverviewPage::updateDisplayUnit);
updateWatchOnlyLabels(wallet.haveWatchOnly());
- connect(model, SIGNAL(notifyWatchonlyChanged(bool)), this, SLOT(updateWatchOnlyLabels(bool)));
+ connect(model, &WalletModel::notifyWatchonlyChanged, this, &OverviewPage::updateWatchOnlyLabels);
}
// update the display unit, to not use the default ("BTC")
diff --git a/src/qt/paymentserver.cpp b/src/qt/paymentserver.cpp
index 5bf2bb8a0e..bcafc8f859 100644
--- a/src/qt/paymentserver.cpp
+++ b/src/qt/paymentserver.cpp
@@ -318,8 +318,8 @@ PaymentServer::PaymentServer(QObject* parent, bool startLocalServer) :
tr("Cannot start bitcoin: click-to-pay handler"));
}
else {
- connect(uriServer, SIGNAL(newConnection()), this, SLOT(handleURIConnection()));
- connect(this, SIGNAL(receivedPaymentACK(QString)), this, SLOT(handlePaymentACK(QString)));
+ connect(uriServer, &QLocalServer::newConnection, this, &PaymentServer::handleURIConnection);
+ connect(this, &PaymentServer::receivedPaymentACK, this, &PaymentServer::handlePaymentACK);
}
}
}
@@ -369,10 +369,8 @@ void PaymentServer::initNetManager()
else
qDebug() << "PaymentServer::initNetManager: No active proxy server found.";
- connect(netManager, SIGNAL(finished(QNetworkReply*)),
- this, SLOT(netRequestFinished(QNetworkReply*)));
- connect(netManager, SIGNAL(sslErrors(QNetworkReply*, const QList<QSslError> &)),
- this, SLOT(reportSslErrors(QNetworkReply*, const QList<QSslError> &)));
+ connect(netManager, &QNetworkAccessManager::finished, this, &PaymentServer::netRequestFinished);
+ connect(netManager, &QNetworkAccessManager::sslErrors, this, &PaymentServer::reportSslErrors);
}
void PaymentServer::uiReady()
@@ -470,8 +468,7 @@ void PaymentServer::handleURIConnection()
while (clientConnection->bytesAvailable() < (int)sizeof(quint32))
clientConnection->waitForReadyRead();
- connect(clientConnection, SIGNAL(disconnected()),
- clientConnection, SLOT(deleteLater()));
+ connect(clientConnection, &QLocalSocket::disconnected, clientConnection, &QLocalSocket::deleteLater);
QDataStream in(clientConnection);
in.setVersion(QDataStream::Qt_4_0);
diff --git a/src/qt/peertablemodel.cpp b/src/qt/peertablemodel.cpp
index 715fc8b5e0..59a751fb12 100644
--- a/src/qt/peertablemodel.cpp
+++ b/src/qt/peertablemodel.cpp
@@ -113,7 +113,7 @@ PeerTableModel::PeerTableModel(interfaces::Node& node, ClientModel *parent) :
// set up timer for auto refresh
timer = new QTimer(this);
- connect(timer, SIGNAL(timeout()), SLOT(refresh()));
+ connect(timer, &QTimer::timeout, this, &PeerTableModel::refresh);
timer->setInterval(MODEL_UPDATE_DELAY);
// load initial data
diff --git a/src/qt/qvalidatedlineedit.cpp b/src/qt/qvalidatedlineedit.cpp
index de42490361..85c5a58a84 100644
--- a/src/qt/qvalidatedlineedit.cpp
+++ b/src/qt/qvalidatedlineedit.cpp
@@ -12,7 +12,7 @@ QValidatedLineEdit::QValidatedLineEdit(QWidget *parent) :
valid(true),
checkValidator(0)
{
- connect(this, SIGNAL(textChanged(QString)), this, SLOT(markValid()));
+ connect(this, &QValidatedLineEdit::textChanged, this, &QValidatedLineEdit::markValid);
}
void QValidatedLineEdit::setValid(bool _valid)
diff --git a/src/qt/qvaluecombobox.cpp b/src/qt/qvaluecombobox.cpp
index c2c0e84d65..76f94ecf85 100644
--- a/src/qt/qvaluecombobox.cpp
+++ b/src/qt/qvaluecombobox.cpp
@@ -7,7 +7,7 @@
QValueComboBox::QValueComboBox(QWidget *parent) :
QComboBox(parent), role(Qt::UserRole)
{
- connect(this, SIGNAL(currentIndexChanged(int)), this, SLOT(handleSelectionChanged(int)));
+ connect(this, static_cast<void (QComboBox::*)(int)>(&QComboBox::currentIndexChanged), this, &QValueComboBox::handleSelectionChanged);
}
QVariant QValueComboBox::value() const
diff --git a/src/qt/receivecoinsdialog.cpp b/src/qt/receivecoinsdialog.cpp
index 12de189229..a7cc5da19e 100644
--- a/src/qt/receivecoinsdialog.cpp
+++ b/src/qt/receivecoinsdialog.cpp
@@ -57,13 +57,13 @@ ReceiveCoinsDialog::ReceiveCoinsDialog(const PlatformStyle *_platformStyle, QWid
contextMenu->addAction(copyAmountAction);
// context menu signals
- connect(ui->recentRequestsView, SIGNAL(customContextMenuRequested(QPoint)), this, SLOT(showMenu(QPoint)));
- connect(copyURIAction, SIGNAL(triggered()), this, SLOT(copyURI()));
- connect(copyLabelAction, SIGNAL(triggered()), this, SLOT(copyLabel()));
- connect(copyMessageAction, SIGNAL(triggered()), this, SLOT(copyMessage()));
- connect(copyAmountAction, SIGNAL(triggered()), this, SLOT(copyAmount()));
+ connect(ui->recentRequestsView, &QWidget::customContextMenuRequested, this, &ReceiveCoinsDialog::showMenu);
+ connect(copyURIAction, &QAction::triggered, this, &ReceiveCoinsDialog::copyURI);
+ connect(copyLabelAction, &QAction::triggered, this, &ReceiveCoinsDialog::copyLabel);
+ connect(copyMessageAction, &QAction::triggered, this, &ReceiveCoinsDialog::copyMessage);
+ connect(copyAmountAction, &QAction::triggered, this, &ReceiveCoinsDialog::copyAmount);
- connect(ui->clearButton, SIGNAL(clicked()), this, SLOT(clear()));
+ connect(ui->clearButton, &QPushButton::clicked, this, &ReceiveCoinsDialog::clear);
}
void ReceiveCoinsDialog::setModel(WalletModel *_model)
@@ -73,7 +73,7 @@ void ReceiveCoinsDialog::setModel(WalletModel *_model)
if(_model && _model->getOptionsModel())
{
_model->getRecentRequestsTableModel()->sort(RecentRequestsTableModel::Date, Qt::DescendingOrder);
- connect(_model->getOptionsModel(), SIGNAL(displayUnitChanged(int)), this, SLOT(updateDisplayUnit()));
+ connect(_model->getOptionsModel(), &OptionsModel::displayUnitChanged, this, &ReceiveCoinsDialog::updateDisplayUnit);
updateDisplayUnit();
QTableView* tableView = ui->recentRequestsView;
@@ -89,8 +89,8 @@ void ReceiveCoinsDialog::setModel(WalletModel *_model)
tableView->setColumnWidth(RecentRequestsTableModel::Amount, AMOUNT_MINIMUM_COLUMN_WIDTH);
connect(tableView->selectionModel(),
- SIGNAL(selectionChanged(QItemSelection, QItemSelection)), this,
- SLOT(recentRequestsView_selectionChanged(QItemSelection, QItemSelection)));
+ &QItemSelectionModel::selectionChanged, this,
+ &ReceiveCoinsDialog::recentRequestsView_selectionChanged);
// Last 2 columns are set by the columnResizingFixer, when the table geometry is ready.
columnResizingFixer = new GUIUtil::TableViewLastColumnResizingFixer(tableView, AMOUNT_MINIMUM_COLUMN_WIDTH, DATE_COLUMN_WIDTH, this);
diff --git a/src/qt/receiverequestdialog.cpp b/src/qt/receiverequestdialog.cpp
index 5bc5568e9a..c561d948be 100644
--- a/src/qt/receiverequestdialog.cpp
+++ b/src/qt/receiverequestdialog.cpp
@@ -30,10 +30,10 @@ QRImageWidget::QRImageWidget(QWidget *parent):
{
contextMenu = new QMenu(this);
QAction *saveImageAction = new QAction(tr("&Save Image..."), this);
- connect(saveImageAction, SIGNAL(triggered()), this, SLOT(saveImage()));
+ connect(saveImageAction, &QAction::triggered, this, &QRImageWidget::saveImage);
contextMenu->addAction(saveImageAction);
QAction *copyImageAction = new QAction(tr("&Copy Image"), this);
- connect(copyImageAction, SIGNAL(triggered()), this, SLOT(copyImage()));
+ connect(copyImageAction, &QAction::triggered, this, &QRImageWidget::copyImage);
contextMenu->addAction(copyImageAction);
}
@@ -97,7 +97,7 @@ ReceiveRequestDialog::ReceiveRequestDialog(QWidget *parent) :
ui->lblQRCode->setVisible(false);
#endif
- connect(ui->btnSaveAs, SIGNAL(clicked()), ui->lblQRCode, SLOT(saveImage()));
+ connect(ui->btnSaveAs, &QPushButton::clicked, ui->lblQRCode, &QRImageWidget::saveImage);
}
ReceiveRequestDialog::~ReceiveRequestDialog()
@@ -110,7 +110,7 @@ void ReceiveRequestDialog::setModel(WalletModel *_model)
this->model = _model;
if (_model)
- connect(_model->getOptionsModel(), SIGNAL(displayUnitChanged(int)), this, SLOT(update()));
+ connect(_model->getOptionsModel(), &OptionsModel::displayUnitChanged, this, &ReceiveRequestDialog::update);
// update the display unit if necessary
update();
diff --git a/src/qt/recentrequeststablemodel.cpp b/src/qt/recentrequeststablemodel.cpp
index f0d2aba370..82ab48ac20 100644
--- a/src/qt/recentrequeststablemodel.cpp
+++ b/src/qt/recentrequeststablemodel.cpp
@@ -26,7 +26,7 @@ RecentRequestsTableModel::RecentRequestsTableModel(WalletModel *parent) :
/* These columns must match the indices in the ColumnIndex enumeration */
columns << tr("Date") << tr("Label") << tr("Message") << getAmountTitle();
- connect(walletModel->getOptionsModel(), SIGNAL(displayUnitChanged(int)), this, SLOT(updateDisplayUnit()));
+ connect(walletModel->getOptionsModel(), &OptionsModel::displayUnitChanged, this, &RecentRequestsTableModel::updateDisplayUnit);
}
RecentRequestsTableModel::~RecentRequestsTableModel()
diff --git a/src/qt/rpcconsole.cpp b/src/qt/rpcconsole.cpp
index 2b0307d286..66e36f0b67 100644
--- a/src/qt/rpcconsole.cpp
+++ b/src/qt/rpcconsole.cpp
@@ -105,12 +105,10 @@ public:
func(_func)
{
timer.setSingleShot(true);
- connect(&timer, SIGNAL(timeout()), this, SLOT(timeout()));
+ connect(&timer, &QTimer::timeout, [this]{ func(); });
timer.start(millis);
}
~QtRPCTimerBase() {}
-private Q_SLOTS:
- void timeout() { func(); }
private:
QTimer timer;
std::function<void(void)> func;
@@ -474,10 +472,10 @@ RPCConsole::RPCConsole(interfaces::Node& node, const PlatformStyle *_platformSty
ui->lineEdit->installEventFilter(this);
ui->messagesWidget->installEventFilter(this);
- connect(ui->clearButton, SIGNAL(clicked()), this, SLOT(clear()));
- connect(ui->fontBiggerButton, SIGNAL(clicked()), this, SLOT(fontBigger()));
- connect(ui->fontSmallerButton, SIGNAL(clicked()), this, SLOT(fontSmaller()));
- connect(ui->btnClearTrafficGraph, SIGNAL(clicked()), ui->trafficGraph, SLOT(clear()));
+ connect(ui->clearButton, &QPushButton::clicked, this, &RPCConsole::clear);
+ connect(ui->fontBiggerButton, &QPushButton::clicked, this, &RPCConsole::fontBigger);
+ connect(ui->fontSmallerButton, &QPushButton::clicked, this, &RPCConsole::fontSmaller);
+ connect(ui->btnClearTrafficGraph, &QPushButton::clicked, ui->trafficGraph, &TrafficGraphWidget::clear);
// disable the wallet selector by default
ui->WalletSelector->setVisible(false);
@@ -565,19 +563,19 @@ void RPCConsole::setClientModel(ClientModel *model)
if (model && clientModel->getPeerTableModel() && clientModel->getBanTableModel()) {
// Keep up to date with client
setNumConnections(model->getNumConnections());
- connect(model, SIGNAL(numConnectionsChanged(int)), this, SLOT(setNumConnections(int)));
+ connect(model, &ClientModel::numConnectionsChanged, this, &RPCConsole::setNumConnections);
interfaces::Node& node = clientModel->node();
setNumBlocks(node.getNumBlocks(), QDateTime::fromTime_t(node.getLastBlockTime()), node.getVerificationProgress(), false);
- connect(model, SIGNAL(numBlocksChanged(int,QDateTime,double,bool)), this, SLOT(setNumBlocks(int,QDateTime,double,bool)));
+ connect(model, &ClientModel::numBlocksChanged, this, &RPCConsole::setNumBlocks);
updateNetworkState();
- connect(model, SIGNAL(networkActiveChanged(bool)), this, SLOT(setNetworkActive(bool)));
+ connect(model, &ClientModel::networkActiveChanged, this, &RPCConsole::setNetworkActive);
updateTrafficStats(node.getTotalBytesRecv(), node.getTotalBytesSent());
- connect(model, SIGNAL(bytesChanged(quint64,quint64)), this, SLOT(updateTrafficStats(quint64, quint64)));
+ connect(model, &ClientModel::bytesChanged, this, &RPCConsole::updateTrafficStats);
- connect(model, SIGNAL(mempoolSizeChanged(long,size_t)), this, SLOT(setMempoolSize(long,size_t)));
+ connect(model, &ClientModel::mempoolSizeChanged, this, &RPCConsole::setMempoolSize);
// set up peer table
ui->peerWidget->setModel(model->getPeerTableModel());
@@ -614,23 +612,22 @@ void RPCConsole::setClientModel(ClientModel *model)
signalMapper->setMapping(banAction24h, 60*60*24);
signalMapper->setMapping(banAction7d, 60*60*24*7);
signalMapper->setMapping(banAction365d, 60*60*24*365);
- connect(banAction1h, SIGNAL(triggered()), signalMapper, SLOT(map()));
- connect(banAction24h, SIGNAL(triggered()), signalMapper, SLOT(map()));
- connect(banAction7d, SIGNAL(triggered()), signalMapper, SLOT(map()));
- connect(banAction365d, SIGNAL(triggered()), signalMapper, SLOT(map()));
- connect(signalMapper, SIGNAL(mapped(int)), this, SLOT(banSelectedNode(int)));
+ connect(banAction1h, &QAction::triggered, signalMapper, static_cast<void (QSignalMapper::*)()>(&QSignalMapper::map));
+ connect(banAction24h, &QAction::triggered, signalMapper, static_cast<void (QSignalMapper::*)()>(&QSignalMapper::map));
+ connect(banAction7d, &QAction::triggered, signalMapper, static_cast<void (QSignalMapper::*)()>(&QSignalMapper::map));
+ connect(banAction365d, &QAction::triggered, signalMapper, static_cast<void (QSignalMapper::*)()>(&QSignalMapper::map));
+ connect(signalMapper, static_cast<void (QSignalMapper::*)(int)>(&QSignalMapper::mapped), this, &RPCConsole::banSelectedNode);
// peer table context menu signals
- connect(ui->peerWidget, SIGNAL(customContextMenuRequested(const QPoint&)), this, SLOT(showPeersTableContextMenu(const QPoint&)));
- connect(disconnectAction, SIGNAL(triggered()), this, SLOT(disconnectSelectedNode()));
+ connect(ui->peerWidget, &QTableView::customContextMenuRequested, this, &RPCConsole::showPeersTableContextMenu);
+ connect(disconnectAction, &QAction::triggered, this, &RPCConsole::disconnectSelectedNode);
// peer table signal handling - update peer details when selecting new node
- connect(ui->peerWidget->selectionModel(), SIGNAL(selectionChanged(const QItemSelection &, const QItemSelection &)),
- this, SLOT(peerSelected(const QItemSelection &, const QItemSelection &)));
+ connect(ui->peerWidget->selectionModel(), &QItemSelectionModel::selectionChanged, this, &RPCConsole::peerSelected);
// peer table signal handling - update peer details when new nodes are added to the model
- connect(model->getPeerTableModel(), SIGNAL(layoutChanged()), this, SLOT(peerLayoutChanged()));
+ connect(model->getPeerTableModel(), &PeerTableModel::layoutChanged, this, &RPCConsole::peerLayoutChanged);
// peer table signal handling - cache selected node ids
- connect(model->getPeerTableModel(), SIGNAL(layoutAboutToBeChanged()), this, SLOT(peerLayoutAboutToChange()));
+ connect(model->getPeerTableModel(), &PeerTableModel::layoutAboutToBeChanged, this, &RPCConsole::peerLayoutAboutToChange);
// set up ban table
ui->banlistWidget->setModel(model->getBanTableModel());
@@ -651,13 +648,13 @@ void RPCConsole::setClientModel(ClientModel *model)
banTableContextMenu->addAction(unbanAction);
// ban table context menu signals
- connect(ui->banlistWidget, SIGNAL(customContextMenuRequested(const QPoint&)), this, SLOT(showBanTableContextMenu(const QPoint&)));
- connect(unbanAction, SIGNAL(triggered()), this, SLOT(unbanSelectedNode()));
+ connect(ui->banlistWidget, &QTableView::customContextMenuRequested, this, &RPCConsole::showBanTableContextMenu);
+ connect(unbanAction, &QAction::triggered, this, &RPCConsole::unbanSelectedNode);
// ban table signal handling - clear peer details when clicking a peer in the ban table
- connect(ui->banlistWidget, SIGNAL(clicked(const QModelIndex&)), this, SLOT(clearSelectedNode()));
+ connect(ui->banlistWidget, &QTableView::clicked, this, &RPCConsole::clearSelectedNode);
// ban table signal handling - ensure ban table is shown or hidden (if empty)
- connect(model->getBanTableModel(), SIGNAL(layoutChanged()), this, SLOT(showOrHideBanTableIfRequired()));
+ connect(model->getBanTableModel(), &BanTableModel::layoutChanged, this, &RPCConsole::showOrHideBanTableIfRequired);
showOrHideBanTableIfRequired();
// Provide initial values
@@ -972,15 +969,16 @@ void RPCConsole::startExecutor()
executor->moveToThread(&thread);
// Replies from executor object must go to this object
- connect(executor, SIGNAL(reply(int,QString)), this, SLOT(message(int,QString)));
+ connect(executor, &RPCExecutor::reply, this, static_cast<void (RPCConsole::*)(int, const QString&)>(&RPCConsole::message));
+
// Requests from this object must go to executor
- connect(this, SIGNAL(cmdRequest(QString, QString)), executor, SLOT(request(QString, QString)));
+ connect(this, &RPCConsole::cmdRequest, executor, &RPCExecutor::request);
// On stopExecutor signal
// - quit the Qt event loop in the execution thread
- connect(this, SIGNAL(stopExecutor()), &thread, SLOT(quit()));
+ connect(this, &RPCConsole::stopExecutor, &thread, &QThread::quit);
// - queue executor for deletion (in execution thread)
- connect(&thread, SIGNAL(finished()), executor, SLOT(deleteLater()), Qt::DirectConnection);
+ connect(&thread, &QThread::finished, executor, &RPCExecutor::deleteLater, Qt::DirectConnection);
// Default implementation of QThread::run() simply spins up an event loop in the thread,
// which is what we want.
diff --git a/src/qt/rpcconsole.h b/src/qt/rpcconsole.h
index 0671b47782..db77043951 100644
--- a/src/qt/rpcconsole.h
+++ b/src/qt/rpcconsole.h
@@ -96,7 +96,8 @@ public Q_SLOTS:
void fontSmaller();
void setFontSize(int newSize);
/** Append the message to the message widget */
- void message(int category, const QString &message, bool html = false);
+ void message(int category, const QString &msg) { message(category, msg, false); }
+ void message(int category, const QString &message, bool html);
/** Set number of connections shown in the UI */
void setNumConnections(int count);
/** Set network state shown in the UI */
diff --git a/src/qt/sendcoinsdialog.cpp b/src/qt/sendcoinsdialog.cpp
index da155f872c..eed71397ab 100644
--- a/src/qt/sendcoinsdialog.cpp
+++ b/src/qt/sendcoinsdialog.cpp
@@ -72,13 +72,13 @@ SendCoinsDialog::SendCoinsDialog(const PlatformStyle *_platformStyle, QWidget *p
addEntry();
- connect(ui->addButton, SIGNAL(clicked()), this, SLOT(addEntry()));
- connect(ui->clearButton, SIGNAL(clicked()), this, SLOT(clear()));
+ connect(ui->addButton, &QPushButton::clicked, this, &SendCoinsDialog::addEntry);
+ connect(ui->clearButton, &QPushButton::clicked, this, &SendCoinsDialog::clear);
// Coin Control
- connect(ui->pushButtonCoinControl, SIGNAL(clicked()), this, SLOT(coinControlButtonClicked()));
- connect(ui->checkBoxCoinControlChange, SIGNAL(stateChanged(int)), this, SLOT(coinControlChangeChecked(int)));
- connect(ui->lineEditCoinControlChange, SIGNAL(textEdited(const QString &)), this, SLOT(coinControlChangeEdited(const QString &)));
+ connect(ui->pushButtonCoinControl, &QPushButton::clicked, this, &SendCoinsDialog::coinControlButtonClicked);
+ connect(ui->checkBoxCoinControlChange, &QCheckBox::stateChanged, this, &SendCoinsDialog::coinControlChangeChecked);
+ connect(ui->lineEditCoinControlChange, &QValidatedLineEdit::textEdited, this, &SendCoinsDialog::coinControlChangeEdited);
// Coin Control: clipboard actions
QAction *clipboardQuantityAction = new QAction(tr("Copy quantity"), this);
@@ -88,13 +88,13 @@ SendCoinsDialog::SendCoinsDialog(const PlatformStyle *_platformStyle, QWidget *p
QAction *clipboardBytesAction = new QAction(tr("Copy bytes"), this);
QAction *clipboardLowOutputAction = new QAction(tr("Copy dust"), this);
QAction *clipboardChangeAction = new QAction(tr("Copy change"), this);
- connect(clipboardQuantityAction, SIGNAL(triggered()), this, SLOT(coinControlClipboardQuantity()));
- connect(clipboardAmountAction, SIGNAL(triggered()), this, SLOT(coinControlClipboardAmount()));
- connect(clipboardFeeAction, SIGNAL(triggered()), this, SLOT(coinControlClipboardFee()));
- connect(clipboardAfterFeeAction, SIGNAL(triggered()), this, SLOT(coinControlClipboardAfterFee()));
- connect(clipboardBytesAction, SIGNAL(triggered()), this, SLOT(coinControlClipboardBytes()));
- connect(clipboardLowOutputAction, SIGNAL(triggered()), this, SLOT(coinControlClipboardLowOutput()));
- connect(clipboardChangeAction, SIGNAL(triggered()), this, SLOT(coinControlClipboardChange()));
+ connect(clipboardQuantityAction, &QAction::triggered, this, &SendCoinsDialog::coinControlClipboardQuantity);
+ connect(clipboardAmountAction, &QAction::triggered, this, &SendCoinsDialog::coinControlClipboardAmount);
+ connect(clipboardFeeAction, &QAction::triggered, this, &SendCoinsDialog::coinControlClipboardFee);
+ connect(clipboardAfterFeeAction, &QAction::triggered, this, &SendCoinsDialog::coinControlClipboardAfterFee);
+ connect(clipboardBytesAction, &QAction::triggered, this, &SendCoinsDialog::coinControlClipboardBytes);
+ connect(clipboardLowOutputAction, &QAction::triggered, this, &SendCoinsDialog::coinControlClipboardLowOutput);
+ connect(clipboardChangeAction, &QAction::triggered, this, &SendCoinsDialog::coinControlClipboardChange);
ui->labelCoinControlQuantity->addAction(clipboardQuantityAction);
ui->labelCoinControlAmount->addAction(clipboardAmountAction);
ui->labelCoinControlFee->addAction(clipboardFeeAction);
@@ -130,7 +130,7 @@ void SendCoinsDialog::setClientModel(ClientModel *_clientModel)
this->clientModel = _clientModel;
if (_clientModel) {
- connect(_clientModel, SIGNAL(numBlocksChanged(int,QDateTime,double,bool)), this, SLOT(updateSmartFeeLabel()));
+ connect(_clientModel, &ClientModel::numBlocksChanged, this, &SendCoinsDialog::updateSmartFeeLabel);
}
}
@@ -151,13 +151,13 @@ void SendCoinsDialog::setModel(WalletModel *_model)
interfaces::WalletBalances balances = _model->wallet().getBalances();
setBalance(balances);
- connect(_model, SIGNAL(balanceChanged(interfaces::WalletBalances)), this, SLOT(setBalance(interfaces::WalletBalances)));
- connect(_model->getOptionsModel(), SIGNAL(displayUnitChanged(int)), this, SLOT(updateDisplayUnit()));
+ connect(_model, &WalletModel::balanceChanged, this, &SendCoinsDialog::setBalance);
+ connect(_model->getOptionsModel(), &OptionsModel::displayUnitChanged, this, &SendCoinsDialog::updateDisplayUnit);
updateDisplayUnit();
// Coin Control
- connect(_model->getOptionsModel(), SIGNAL(displayUnitChanged(int)), this, SLOT(coinControlUpdateLabels()));
- connect(_model->getOptionsModel(), SIGNAL(coinControlFeaturesChanged(bool)), this, SLOT(coinControlFeatureChanged(bool)));
+ connect(_model->getOptionsModel(), &OptionsModel::displayUnitChanged, this, &SendCoinsDialog::coinControlUpdateLabels);
+ connect(_model->getOptionsModel(), &OptionsModel::coinControlFeaturesChanged, this, &SendCoinsDialog::coinControlFeatureChanged);
ui->frameCoinControl->setVisible(_model->getOptionsModel()->getCoinControlFeatures());
coinControlUpdateLabels();
@@ -165,16 +165,16 @@ void SendCoinsDialog::setModel(WalletModel *_model)
for (const int n : confTargets) {
ui->confTargetSelector->addItem(tr("%1 (%2 blocks)").arg(GUIUtil::formatNiceTimeOffset(n*Params().GetConsensus().nPowTargetSpacing)).arg(n));
}
- connect(ui->confTargetSelector, SIGNAL(currentIndexChanged(int)), this, SLOT(updateSmartFeeLabel()));
- connect(ui->confTargetSelector, SIGNAL(currentIndexChanged(int)), this, SLOT(coinControlUpdateLabels()));
- connect(ui->groupFee, SIGNAL(buttonClicked(int)), this, SLOT(updateFeeSectionControls()));
- connect(ui->groupFee, SIGNAL(buttonClicked(int)), this, SLOT(coinControlUpdateLabels()));
- connect(ui->customFee, SIGNAL(valueChanged()), this, SLOT(coinControlUpdateLabels()));
- connect(ui->checkBoxMinimumFee, SIGNAL(stateChanged(int)), this, SLOT(setMinimumFee()));
- connect(ui->checkBoxMinimumFee, SIGNAL(stateChanged(int)), this, SLOT(updateFeeSectionControls()));
- connect(ui->checkBoxMinimumFee, SIGNAL(stateChanged(int)), this, SLOT(coinControlUpdateLabels()));
- connect(ui->optInRBF, SIGNAL(stateChanged(int)), this, SLOT(updateSmartFeeLabel()));
- connect(ui->optInRBF, SIGNAL(stateChanged(int)), this, SLOT(coinControlUpdateLabels()));
+ connect(ui->confTargetSelector, static_cast<void (QComboBox::*)(int)>(&QComboBox::currentIndexChanged), this, &SendCoinsDialog::updateSmartFeeLabel);
+ connect(ui->confTargetSelector, static_cast<void (QComboBox::*)(int)>(&QComboBox::currentIndexChanged), this, &SendCoinsDialog::coinControlUpdateLabels);
+ connect(ui->groupFee, static_cast<void (QButtonGroup::*)(int)>(&QButtonGroup::buttonClicked), this, &SendCoinsDialog::updateFeeSectionControls);
+ connect(ui->groupFee, static_cast<void (QButtonGroup::*)(int)>(&QButtonGroup::buttonClicked), this, &SendCoinsDialog::coinControlUpdateLabels);
+ connect(ui->customFee, &BitcoinAmountField::valueChanged, this, &SendCoinsDialog::coinControlUpdateLabels);
+ connect(ui->checkBoxMinimumFee, &QCheckBox::stateChanged, this, &SendCoinsDialog::setMinimumFee);
+ connect(ui->checkBoxMinimumFee, &QCheckBox::stateChanged, this, &SendCoinsDialog::updateFeeSectionControls);
+ connect(ui->checkBoxMinimumFee, &QCheckBox::stateChanged, this, &SendCoinsDialog::coinControlUpdateLabels);
+ connect(ui->optInRBF, &QCheckBox::stateChanged, this, &SendCoinsDialog::updateSmartFeeLabel);
+ connect(ui->optInRBF, &QCheckBox::stateChanged, this, &SendCoinsDialog::coinControlUpdateLabels);
ui->customFee->setSingleStep(model->wallet().getRequiredFee(1000));
updateFeeSectionControls();
updateMinFeeLabel();
@@ -417,10 +417,10 @@ SendCoinsEntry *SendCoinsDialog::addEntry()
SendCoinsEntry *entry = new SendCoinsEntry(platformStyle, this);
entry->setModel(model);
ui->entries->addWidget(entry);
- connect(entry, SIGNAL(removeEntry(SendCoinsEntry*)), this, SLOT(removeEntry(SendCoinsEntry*)));
- connect(entry, SIGNAL(useAvailableBalance(SendCoinsEntry*)), this, SLOT(useAvailableBalance(SendCoinsEntry*)));
- connect(entry, SIGNAL(payAmountChanged()), this, SLOT(coinControlUpdateLabels()));
- connect(entry, SIGNAL(subtractFeeFromAmountChanged()), this, SLOT(coinControlUpdateLabels()));
+ connect(entry, &SendCoinsEntry::removeEntry, this, &SendCoinsDialog::removeEntry);
+ connect(entry, &SendCoinsEntry::useAvailableBalance, this, &SendCoinsDialog::useAvailableBalance);
+ connect(entry, &SendCoinsEntry::payAmountChanged, this, &SendCoinsDialog::coinControlUpdateLabels);
+ connect(entry, &SendCoinsEntry::subtractFeeFromAmountChanged, this, &SendCoinsDialog::coinControlUpdateLabels);
// Focus the field, so that entry can start immediately
entry->clear();
@@ -897,7 +897,7 @@ SendConfirmationDialog::SendConfirmationDialog(const QString &title, const QStri
setDefaultButton(QMessageBox::Cancel);
yesButton = button(QMessageBox::Yes);
updateYesButton();
- connect(&countDownTimer, SIGNAL(timeout()), this, SLOT(countDown()));
+ connect(&countDownTimer, &QTimer::timeout, this, &SendConfirmationDialog::countDown);
}
int SendConfirmationDialog::exec()
diff --git a/src/qt/sendcoinsentry.cpp b/src/qt/sendcoinsentry.cpp
index d53f91dffa..b394ff3150 100644
--- a/src/qt/sendcoinsentry.cpp
+++ b/src/qt/sendcoinsentry.cpp
@@ -40,12 +40,12 @@ SendCoinsEntry::SendCoinsEntry(const PlatformStyle *_platformStyle, QWidget *par
ui->payTo_is->setFont(GUIUtil::fixedPitchFont());
// Connect signals
- connect(ui->payAmount, SIGNAL(valueChanged()), this, SIGNAL(payAmountChanged()));
- connect(ui->checkboxSubtractFeeFromAmount, SIGNAL(toggled(bool)), this, SIGNAL(subtractFeeFromAmountChanged()));
- connect(ui->deleteButton, SIGNAL(clicked()), this, SLOT(deleteClicked()));
- connect(ui->deleteButton_is, SIGNAL(clicked()), this, SLOT(deleteClicked()));
- connect(ui->deleteButton_s, SIGNAL(clicked()), this, SLOT(deleteClicked()));
- connect(ui->useAvailableBalanceButton, SIGNAL(clicked()), this, SLOT(useAvailableBalanceClicked()));
+ connect(ui->payAmount, &BitcoinAmountField::valueChanged, this, &SendCoinsEntry::payAmountChanged);
+ connect(ui->checkboxSubtractFeeFromAmount, &QCheckBox::toggled, this, &SendCoinsEntry::subtractFeeFromAmountChanged);
+ connect(ui->deleteButton, &QPushButton::clicked, this, &SendCoinsEntry::deleteClicked);
+ connect(ui->deleteButton_is, &QPushButton::clicked, this, &SendCoinsEntry::deleteClicked);
+ connect(ui->deleteButton_s, &QPushButton::clicked, this, &SendCoinsEntry::deleteClicked);
+ connect(ui->useAvailableBalanceButton, &QPushButton::clicked, this, &SendCoinsEntry::useAvailableBalanceClicked);
}
SendCoinsEntry::~SendCoinsEntry()
@@ -82,7 +82,7 @@ void SendCoinsEntry::setModel(WalletModel *_model)
this->model = _model;
if (_model && _model->getOptionsModel())
- connect(_model->getOptionsModel(), SIGNAL(displayUnitChanged(int)), this, SLOT(updateDisplayUnit()));
+ connect(_model->getOptionsModel(), &OptionsModel::displayUnitChanged, this, &SendCoinsEntry::updateDisplayUnit);
clear();
}
diff --git a/src/qt/test/paymentservertests.cpp b/src/qt/test/paymentservertests.cpp
index e92f9d7a5b..5384b9e8b0 100644
--- a/src/qt/test/paymentservertests.cpp
+++ b/src/qt/test/paymentservertests.cpp
@@ -39,8 +39,8 @@ X509 *parse_b64der_cert(const char* cert_data)
static SendCoinsRecipient handleRequest(PaymentServer* server, std::vector<unsigned char>& data)
{
RecipientCatcher sigCatcher;
- QObject::connect(server, SIGNAL(receivedPaymentRequest(SendCoinsRecipient)),
- &sigCatcher, SLOT(getRecipient(SendCoinsRecipient)));
+ QObject::connect(server, &PaymentServer::receivedPaymentRequest,
+ &sigCatcher, &RecipientCatcher::getRecipient);
// Write data to a temp file:
QTemporaryFile f;
@@ -57,8 +57,8 @@ static SendCoinsRecipient handleRequest(PaymentServer* server, std::vector<unsig
// which will lead to a test failure anyway.
QCoreApplication::sendEvent(&object, &event);
- QObject::disconnect(server, SIGNAL(receivedPaymentRequest(SendCoinsRecipient)),
- &sigCatcher, SLOT(getRecipient(SendCoinsRecipient)));
+ QObject::disconnect(server, &PaymentServer::receivedPaymentRequest,
+ &sigCatcher, &RecipientCatcher::getRecipient);
// Return results from sigCatcher
return sigCatcher.recipient;
diff --git a/src/qt/test/util.cpp b/src/qt/test/util.cpp
index 261caaaee5..0bd719326e 100644
--- a/src/qt/test/util.cpp
+++ b/src/qt/test/util.cpp
@@ -18,5 +18,5 @@ void ConfirmMessage(QString* text, int msec)
}
}
delete callback;
- }), SLOT(call()));
+ }), &Callback::call);
}
diff --git a/src/qt/test/wallettests.cpp b/src/qt/test/wallettests.cpp
index c314dadde4..a0cfe8ae87 100644
--- a/src/qt/test/wallettests.cpp
+++ b/src/qt/test/wallettests.cpp
@@ -50,7 +50,7 @@ void ConfirmSend(QString* text = nullptr, bool cancel = false)
}
}
delete callback;
- }), SLOT(call()));
+ }), &Callback::call);
}
//! Send coins to address and return txid.
diff --git a/src/qt/trafficgraphwidget.cpp b/src/qt/trafficgraphwidget.cpp
index 35569149fc..f087e7569c 100644
--- a/src/qt/trafficgraphwidget.cpp
+++ b/src/qt/trafficgraphwidget.cpp
@@ -29,7 +29,7 @@ TrafficGraphWidget::TrafficGraphWidget(QWidget *parent) :
clientModel(0)
{
timer = new QTimer(this);
- connect(timer, SIGNAL(timeout()), SLOT(updateRates()));
+ connect(timer, &QTimer::timeout, this, &TrafficGraphWidget::updateRates);
}
void TrafficGraphWidget::setClientModel(ClientModel *model)
diff --git a/src/qt/transactiontablemodel.cpp b/src/qt/transactiontablemodel.cpp
index e100cac533..e379b70553 100644
--- a/src/qt/transactiontablemodel.cpp
+++ b/src/qt/transactiontablemodel.cpp
@@ -226,7 +226,7 @@ TransactionTableModel::TransactionTableModel(const PlatformStyle *_platformStyle
columns << QString() << QString() << tr("Date") << tr("Type") << tr("Label") << BitcoinUnits::getAmountColumnTitle(walletModel->getOptionsModel()->getDisplayUnit());
priv->refreshWallet(walletModel->wallet());
- connect(walletModel->getOptionsModel(), SIGNAL(displayUnitChanged(int)), this, SLOT(updateDisplayUnit()));
+ connect(walletModel->getOptionsModel(), &OptionsModel::displayUnitChanged, this, &TransactionTableModel::updateDisplayUnit);
subscribeToCoreSignals();
}
diff --git a/src/qt/transactionview.cpp b/src/qt/transactionview.cpp
index 23c50f55ba..6d08a3b0fb 100644
--- a/src/qt/transactionview.cpp
+++ b/src/qt/transactionview.cpp
@@ -176,30 +176,31 @@ TransactionView::TransactionView(const PlatformStyle *platformStyle, QWidget *pa
mapperThirdPartyTxUrls = new QSignalMapper(this);
// Connect actions
- connect(mapperThirdPartyTxUrls, SIGNAL(mapped(QString)), this, SLOT(openThirdPartyTxUrl(QString)));
-
- connect(dateWidget, SIGNAL(activated(int)), this, SLOT(chooseDate(int)));
- connect(typeWidget, SIGNAL(activated(int)), this, SLOT(chooseType(int)));
- connect(watchOnlyWidget, SIGNAL(activated(int)), this, SLOT(chooseWatchonly(int)));
- connect(amountWidget, SIGNAL(textChanged(QString)), amount_typing_delay, SLOT(start()));
- connect(amount_typing_delay, SIGNAL(timeout()), this, SLOT(changedAmount()));
- connect(search_widget, SIGNAL(textChanged(QString)), prefix_typing_delay, SLOT(start()));
- connect(prefix_typing_delay, SIGNAL(timeout()), this, SLOT(changedSearch()));
-
- connect(view, SIGNAL(doubleClicked(QModelIndex)), this, SIGNAL(doubleClicked(QModelIndex)));
- connect(view, SIGNAL(customContextMenuRequested(QPoint)), this, SLOT(contextualMenu(QPoint)));
-
- connect(bumpFeeAction, SIGNAL(triggered()), this, SLOT(bumpFee()));
- connect(abandonAction, SIGNAL(triggered()), this, SLOT(abandonTx()));
- connect(copyAddressAction, SIGNAL(triggered()), this, SLOT(copyAddress()));
- connect(copyLabelAction, SIGNAL(triggered()), this, SLOT(copyLabel()));
- connect(copyAmountAction, SIGNAL(triggered()), this, SLOT(copyAmount()));
- connect(copyTxIDAction, SIGNAL(triggered()), this, SLOT(copyTxID()));
- connect(copyTxHexAction, SIGNAL(triggered()), this, SLOT(copyTxHex()));
- connect(copyTxPlainText, SIGNAL(triggered()), this, SLOT(copyTxPlainText()));
- connect(editLabelAction, SIGNAL(triggered()), this, SLOT(editLabel()));
- connect(showDetailsAction, SIGNAL(triggered()), this, SLOT(showDetails()));
-
+ connect(mapperThirdPartyTxUrls, static_cast<void (QSignalMapper::*)(const QString&)>(&QSignalMapper::mapped), this, &TransactionView::openThirdPartyTxUrl);
+
+ connect(dateWidget, static_cast<void (QComboBox::*)(int)>(&QComboBox::activated), this, &TransactionView::chooseDate);
+ connect(typeWidget, static_cast<void (QComboBox::*)(int)>(&QComboBox::activated), this, &TransactionView::chooseType);
+ connect(watchOnlyWidget, static_cast<void (QComboBox::*)(int)>(&QComboBox::activated), this, &TransactionView::chooseWatchonly);
+ connect(amountWidget, &QLineEdit::textChanged, amount_typing_delay, static_cast<void (QTimer::*)()>(&QTimer::start));
+ connect(amount_typing_delay, &QTimer::timeout, this, &TransactionView::changedAmount);
+ connect(search_widget, &QLineEdit::textChanged, prefix_typing_delay, static_cast<void (QTimer::*)()>(&QTimer::start));
+ connect(prefix_typing_delay, &QTimer::timeout, this, &TransactionView::changedSearch);
+
+ connect(view, &QTableView::doubleClicked, this, &TransactionView::doubleClicked);
+ connect(view, &QTableView::customContextMenuRequested, this, &TransactionView::contextualMenu);
+
+ connect(bumpFeeAction, &QAction::triggered, this, &TransactionView::bumpFee);
+ connect(abandonAction, &QAction::triggered, this, &TransactionView::abandonTx);
+ connect(copyAddressAction, &QAction::triggered, this, &TransactionView::copyAddress);
+ connect(copyLabelAction, &QAction::triggered, this, &TransactionView::copyLabel);
+ connect(copyAmountAction, &QAction::triggered, this, &TransactionView::copyAmount);
+ connect(copyTxIDAction, &QAction::triggered, this, &TransactionView::copyTxID);
+ connect(copyTxHexAction, &QAction::triggered, this, &TransactionView::copyTxHex);
+ connect(copyTxPlainText, &QAction::triggered, this, &TransactionView::copyTxPlainText);
+ connect(editLabelAction, &QAction::triggered, this, &TransactionView::editLabel);
+ connect(showDetailsAction, &QAction::triggered, this, &TransactionView::showDetails);
+ // Double-clicking on a transaction on the transaction history page shows details
+ connect(this, &TransactionView::doubleClicked, this, &TransactionView::showDetails);
// Highlight transaction after fee bump
connect(this, &TransactionView::bumpedFee, [this](const uint256& txid) {
focusTransaction(txid);
@@ -249,7 +250,7 @@ void TransactionView::setModel(WalletModel *_model)
if (i == 0)
contextMenu->addSeparator();
contextMenu->addAction(thirdPartyTxUrlAction);
- connect(thirdPartyTxUrlAction, SIGNAL(triggered()), mapperThirdPartyTxUrls, SLOT(map()));
+ connect(thirdPartyTxUrlAction, &QAction::triggered, mapperThirdPartyTxUrls, static_cast<void (QSignalMapper::*)()>(&QSignalMapper::map));
mapperThirdPartyTxUrls->setMapping(thirdPartyTxUrlAction, listUrls[i].trimmed());
}
}
@@ -259,7 +260,7 @@ void TransactionView::setModel(WalletModel *_model)
updateWatchOnlyColumn(_model->wallet().haveWatchOnly());
// Watch-only signal
- connect(_model, SIGNAL(notifyWatchonlyChanged(bool)), this, SLOT(updateWatchOnlyColumn(bool)));
+ connect(_model, &WalletModel::notifyWatchonlyChanged, this, &TransactionView::updateWatchOnlyColumn);
}
}
@@ -573,8 +574,8 @@ QWidget *TransactionView::createDateRangeWidget()
dateRangeWidget->setVisible(false);
// Notify on change
- connect(dateFrom, SIGNAL(dateChanged(QDate)), this, SLOT(dateRangeChanged()));
- connect(dateTo, SIGNAL(dateChanged(QDate)), this, SLOT(dateRangeChanged()));
+ connect(dateFrom, &QDateTimeEdit::dateChanged, this, &TransactionView::dateRangeChanged);
+ connect(dateTo, &QDateTimeEdit::dateChanged, this, &TransactionView::dateRangeChanged);
return dateRangeWidget;
}
diff --git a/src/qt/walletframe.cpp b/src/qt/walletframe.cpp
index e8fd83d427..d15bd95b8e 100644
--- a/src/qt/walletframe.cpp
+++ b/src/qt/walletframe.cpp
@@ -68,9 +68,11 @@ bool WalletFrame::addWallet(WalletModel *walletModel)
mapWalletViews[name] = walletView;
// Ensure a walletView is able to show the main window
- connect(walletView, SIGNAL(showNormalIfMinimized()), gui, SLOT(showNormalIfMinimized()));
+ connect(walletView, &WalletView::showNormalIfMinimized, [this]{
+ gui->showNormalIfMinimized();
+ });
- connect(walletView, SIGNAL(outOfSyncWarningClicked()), this, SLOT(outOfSyncWarningClicked()));
+ connect(walletView, &WalletView::outOfSyncWarningClicked, this, &WalletFrame::outOfSyncWarningClicked);
return true;
}
diff --git a/src/qt/walletmodel.cpp b/src/qt/walletmodel.cpp
index d91cdcdc1f..18a5bda9c3 100644
--- a/src/qt/walletmodel.cpp
+++ b/src/qt/walletmodel.cpp
@@ -44,7 +44,7 @@ WalletModel::WalletModel(std::unique_ptr<interfaces::Wallet> wallet, interfaces:
// This timer will be fired repeatedly to update the balance
pollTimer = new QTimer(this);
- connect(pollTimer, SIGNAL(timeout()), this, SLOT(pollBalanceChanged()));
+ connect(pollTimer, &QTimer::timeout, this, &WalletModel::pollBalanceChanged);
pollTimer->start(MODEL_UPDATE_DELAY);
subscribeToCoreSignals();
diff --git a/src/qt/walletview.cpp b/src/qt/walletview.cpp
index 9af29b5d60..053e951921 100644
--- a/src/qt/walletview.cpp
+++ b/src/qt/walletview.cpp
@@ -66,22 +66,20 @@ WalletView::WalletView(const PlatformStyle *_platformStyle, QWidget *parent):
addWidget(sendCoinsPage);
// Clicking on a transaction on the overview pre-selects the transaction on the transaction history page
- connect(overviewPage, SIGNAL(transactionClicked(QModelIndex)), transactionView, SLOT(focusTransaction(QModelIndex)));
- connect(overviewPage, SIGNAL(outOfSyncWarningClicked()), this, SLOT(requestedSyncWarningInfo()));
+ connect(overviewPage, &OverviewPage::transactionClicked, transactionView, static_cast<void (TransactionView::*)(const QModelIndex&)>(&TransactionView::focusTransaction));
- // Highlight transaction after send
- connect(sendCoinsPage, SIGNAL(coinsSent(uint256)), transactionView, SLOT(focusTransaction(uint256)));
+ connect(overviewPage, &OverviewPage::outOfSyncWarningClicked, this, &WalletView::requestedSyncWarningInfo);
- // Double-clicking on a transaction on the transaction history page shows details
- connect(transactionView, SIGNAL(doubleClicked(QModelIndex)), transactionView, SLOT(showDetails()));
+ // Highlight transaction after send
+ connect(sendCoinsPage, &SendCoinsDialog::coinsSent, transactionView, static_cast<void (TransactionView::*)(const uint256&)>(&TransactionView::focusTransaction));
// Clicking on "Export" allows to export the transaction list
- connect(exportButton, SIGNAL(clicked()), transactionView, SLOT(exportClicked()));
+ connect(exportButton, &QPushButton::clicked, transactionView, &TransactionView::exportClicked);
// Pass through messages from sendCoinsPage
- connect(sendCoinsPage, SIGNAL(message(QString,QString,unsigned int)), this, SIGNAL(message(QString,QString,unsigned int)));
+ connect(sendCoinsPage, &SendCoinsDialog::message, this, &WalletView::message);
// Pass through messages from transactionView
- connect(transactionView, SIGNAL(message(QString,QString,unsigned int)), this, SIGNAL(message(QString,QString,unsigned int)));
+ connect(transactionView, &TransactionView::message, this, &WalletView::message);
}
WalletView::~WalletView()
@@ -93,22 +91,24 @@ void WalletView::setBitcoinGUI(BitcoinGUI *gui)
if (gui)
{
// Clicking on a transaction on the overview page simply sends you to transaction history page
- connect(overviewPage, SIGNAL(transactionClicked(QModelIndex)), gui, SLOT(gotoHistoryPage()));
+ connect(overviewPage, &OverviewPage::transactionClicked, gui, &BitcoinGUI::gotoHistoryPage);
// Navigate to transaction history page after send
- connect(sendCoinsPage, SIGNAL(coinsSent(uint256)), gui, SLOT(gotoHistoryPage()));
+ connect(sendCoinsPage, &SendCoinsDialog::coinsSent, gui, &BitcoinGUI::gotoHistoryPage);
// Receive and report messages
- connect(this, SIGNAL(message(QString,QString,unsigned int)), gui, SLOT(message(QString,QString,unsigned int)));
+ connect(this, &WalletView::message, [gui](const QString &title, const QString &message, unsigned int style) {
+ gui->message(title, message, style);
+ });
// Pass through encryption status changed signals
- connect(this, SIGNAL(encryptionStatusChanged()), gui, SLOT(updateWalletStatus()));
+ connect(this, &WalletView::encryptionStatusChanged, gui, &BitcoinGUI::updateWalletStatus);
// Pass through transaction notifications
- connect(this, SIGNAL(incomingTransaction(QString,int,CAmount,QString,QString,QString,QString)), gui, SLOT(incomingTransaction(QString,int,CAmount,QString,QString,QString,QString)));
+ connect(this, &WalletView::incomingTransaction, gui, &BitcoinGUI::incomingTransaction);
// Connect HD enabled state signal
- connect(this, SIGNAL(hdEnabledStatusChanged()), gui, SLOT(updateWalletStatus()));
+ connect(this, &WalletView::hdEnabledStatusChanged, gui, &BitcoinGUI::updateWalletStatus);
}
}
@@ -135,24 +135,23 @@ void WalletView::setWalletModel(WalletModel *_walletModel)
if (_walletModel)
{
// Receive and pass through messages from wallet model
- connect(_walletModel, SIGNAL(message(QString,QString,unsigned int)), this, SIGNAL(message(QString,QString,unsigned int)));
+ connect(_walletModel, &WalletModel::message, this, &WalletView::message);
// Handle changes in encryption status
- connect(_walletModel, SIGNAL(encryptionStatusChanged()), this, SIGNAL(encryptionStatusChanged()));
+ connect(_walletModel, &WalletModel::encryptionStatusChanged, this, &WalletView::encryptionStatusChanged);
updateEncryptionStatus();
// update HD status
Q_EMIT hdEnabledStatusChanged();
// Balloon pop-up for new transaction
- connect(_walletModel->getTransactionTableModel(), SIGNAL(rowsInserted(QModelIndex,int,int)),
- this, SLOT(processNewTransaction(QModelIndex,int,int)));
+ connect(_walletModel->getTransactionTableModel(), &TransactionTableModel::rowsInserted, this, &WalletView::processNewTransaction);
// Ask for passphrase if needed
- connect(_walletModel, SIGNAL(requireUnlock()), this, SLOT(unlockWallet()));
+ connect(_walletModel, &WalletModel::requireUnlock, this, &WalletView::unlockWallet);
// Show progress dialog
- connect(_walletModel, SIGNAL(showProgress(QString,int)), this, SLOT(showProgress(QString,int)));
+ connect(_walletModel, &WalletModel::showProgress, this, &WalletView::showProgress);
}
}
diff --git a/test/lint/lint-qt.sh b/test/lint/lint-qt.sh
new file mode 100755
index 0000000000..2e77682aa2
--- /dev/null
+++ b/test/lint/lint-qt.sh
@@ -0,0 +1,20 @@
+#!/usr/bin/env bash
+#
+# Copyright (c) 2018 The Bitcoin Core developers
+# Distributed under the MIT software license, see the accompanying
+# file COPYING or http://www.opensource.org/licenses/mit-license.php.
+#
+# Check for SIGNAL/SLOT connect style, removed since Qt4 support drop.
+
+export LC_ALL=C
+
+EXIT_CODE=0
+
+OUTPUT=$(git grep -E '(SIGNAL|, ?SLOT)\(' -- src/qt)
+if [[ ${OUTPUT} != "" ]]; then
+ echo "Use Qt5 connect style in:"
+ echo "$OUTPUT"
+ EXIT_CODE=1
+fi
+
+exit ${EXIT_CODE}