Merge #16706: qt: Replace deprecated QSignalMapper by lambda expressions

0912134039 qt: Remove QSignalMapper from TransactionView (Hennadii Stepanov)
9e0c1d676c qt: Remove QSignalMapper from RPCConsole (Hennadii Stepanov)

Pull request description:

  The [`QSignalMapper`](https://doc.qt.io/qt-5/qsignalmapper.html) class has been [deprecated](https://doc-snapshots.qt.io/qt5-5.10/obsoleteclasses.html) since Qt 5.10.

  This PR replaces it by lambdas and does not change behavior.

ACKs for top commit:
  jonasschnelli:
    utACK 0912134039

Tree-SHA512: 0c102d5cab4adc8b6252f72e07123ac87c65434c88cada3e72816ecea8fc4803f15b9c050fb5e1c7e8a96f709265521fd6813ab1890dbf5634032f7ee0d50675
This commit is contained in:
Wladimir J. van der Laan 2019-08-29 15:57:36 +02:00
commit 75142ece6b
No known key found for this signature in database
GPG key ID: 1E4AED62986CD25D
3 changed files with 7 additions and 25 deletions

View file

@ -34,7 +34,6 @@
#include <QScrollBar> #include <QScrollBar>
#include <QScreen> #include <QScreen>
#include <QSettings> #include <QSettings>
#include <QSignalMapper>
#include <QTime> #include <QTime>
#include <QTimer> #include <QTimer>
#include <QStringList> #include <QStringList>
@ -614,19 +613,10 @@ void RPCConsole::setClientModel(ClientModel *model)
peersTableContextMenu->addAction(banAction7d); peersTableContextMenu->addAction(banAction7d);
peersTableContextMenu->addAction(banAction365d); peersTableContextMenu->addAction(banAction365d);
// Add a signal mapping to allow dynamic context menu arguments. connect(banAction1h, &QAction::triggered, [this] { banSelectedNode(60 * 60); });
// We need to use int (instead of int64_t), because signal mapper only supports connect(banAction24h, &QAction::triggered, [this] { banSelectedNode(60 * 60 * 24); });
// int or objects, which is okay because max bantime (1 year) is < int_max. connect(banAction7d, &QAction::triggered, [this] { banSelectedNode(60 * 60 * 24 * 7); });
QSignalMapper* signalMapper = new QSignalMapper(this); connect(banAction365d, &QAction::triggered, [this] { banSelectedNode(60 * 60 * 24 * 365); });
signalMapper->setMapping(banAction1h, 60*60);
signalMapper->setMapping(banAction24h, 60*60*24);
signalMapper->setMapping(banAction7d, 60*60*24*7);
signalMapper->setMapping(banAction365d, 60*60*24*365);
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 // peer table context menu signals
connect(ui->peerWidget, &QTableView::customContextMenuRequested, this, &RPCConsole::showPeersTableContextMenu); connect(ui->peerWidget, &QTableView::customContextMenuRequested, this, &RPCConsole::showPeersTableContextMenu);

View file

@ -30,7 +30,6 @@
#include <QMenu> #include <QMenu>
#include <QPoint> #include <QPoint>
#include <QScrollBar> #include <QScrollBar>
#include <QSignalMapper>
#include <QTableView> #include <QTableView>
#include <QTimer> #include <QTimer>
#include <QUrl> #include <QUrl>
@ -176,11 +175,6 @@ TransactionView::TransactionView(const PlatformStyle *platformStyle, QWidget *pa
contextMenu->addAction(abandonAction); contextMenu->addAction(abandonAction);
contextMenu->addAction(editLabelAction); contextMenu->addAction(editLabelAction);
mapperThirdPartyTxUrls = new QSignalMapper(this);
// Connect actions
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(dateWidget, static_cast<void (QComboBox::*)(int)>(&QComboBox::activated), this, &TransactionView::chooseDate);
connect(typeWidget, static_cast<void (QComboBox::*)(int)>(&QComboBox::activated), this, &TransactionView::chooseType); 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(watchOnlyWidget, static_cast<void (QComboBox::*)(int)>(&QComboBox::activated), this, &TransactionView::chooseWatchonly);
@ -246,15 +240,15 @@ void TransactionView::setModel(WalletModel *_model)
QStringList listUrls = _model->getOptionsModel()->getThirdPartyTxUrls().split("|", QString::SkipEmptyParts); QStringList listUrls = _model->getOptionsModel()->getThirdPartyTxUrls().split("|", QString::SkipEmptyParts);
for (int i = 0; i < listUrls.size(); ++i) for (int i = 0; i < listUrls.size(); ++i)
{ {
QString host = QUrl(listUrls[i].trimmed(), QUrl::StrictMode).host(); QString url = listUrls[i].trimmed();
QString host = QUrl(url, QUrl::StrictMode).host();
if (!host.isEmpty()) if (!host.isEmpty())
{ {
QAction *thirdPartyTxUrlAction = new QAction(host, this); // use host as menu item label QAction *thirdPartyTxUrlAction = new QAction(host, this); // use host as menu item label
if (i == 0) if (i == 0)
contextMenu->addSeparator(); contextMenu->addSeparator();
contextMenu->addAction(thirdPartyTxUrlAction); contextMenu->addAction(thirdPartyTxUrlAction);
connect(thirdPartyTxUrlAction, &QAction::triggered, mapperThirdPartyTxUrls, static_cast<void (QSignalMapper::*)()>(&QSignalMapper::map)); connect(thirdPartyTxUrlAction, &QAction::triggered, [this, url] { openThirdPartyTxUrl(url); });
mapperThirdPartyTxUrls->setMapping(thirdPartyTxUrlAction, listUrls[i].trimmed());
} }
} }
} }

View file

@ -23,7 +23,6 @@ class QFrame;
class QLineEdit; class QLineEdit;
class QMenu; class QMenu;
class QModelIndex; class QModelIndex;
class QSignalMapper;
class QTableView; class QTableView;
QT_END_NAMESPACE QT_END_NAMESPACE
@ -72,7 +71,6 @@ private:
QLineEdit *amountWidget; QLineEdit *amountWidget;
QMenu *contextMenu; QMenu *contextMenu;
QSignalMapper *mapperThirdPartyTxUrls;
QFrame *dateRangeWidget; QFrame *dateRangeWidget;
QDateTimeEdit *dateFrom; QDateTimeEdit *dateFrom;