mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-01-10 20:03:34 -03:00
Merge bitcoin-core/gui#46: refactor: Fix deprecation warnings when building against Qt 5.15
705c1f0648
qt, refactor: Fix 'buttonClicked is deprecated' warnings (Hennadii Stepanov)c2f4e5ea1d
qt, refactor: Fix 'split is deprecated' warnings (Hennadii Stepanov)8e12d69961
qt, refactor: Fix 'QFlags is deprecated' warnings (Hennadii Stepanov)fa5749c805
qt, refactor: Fix 'pixmap is deprecated' warnings (Hennadii Stepanov)b02264cb5d
qt, refactor: Fix 'QDateTime is deprecated' warnings (Hennadii Stepanov) Pull request description: [What's New in Qt 5.15](https://doc.qt.io/qt-5/whatsnew515.html#deprecated-modules): > To help preparing for the transition to Qt 6, numerous classes and member functions that will be removed from Qt 6.0 have been marked as deprecated in the Qt 5.15 release. Fixes #36 ACKs for top commit: jonasschnelli: utACK705c1f0648
promag: Tested ACK705c1f0648
on macos with Apple clang version 11.0.3 (clang-1103.0.32.62) and brew qt 5.15.1. Tree-SHA512: 29e00535b4583ceec0dfb29612e86ee29bdea13651b548c6d22167917a4a10464af49160a12b05151030699f690f437ebb9c4ae9f130f66a722415222165b44f
This commit is contained in:
commit
0a267f4eb8
15 changed files with 101 additions and 25 deletions
|
@ -263,7 +263,7 @@ void BitcoinApplication::createWindow(const NetworkStyle *networkStyle)
|
|||
void BitcoinApplication::createSplashScreen(const NetworkStyle *networkStyle)
|
||||
{
|
||||
assert(!m_splash);
|
||||
m_splash = new SplashScreen(nullptr, networkStyle);
|
||||
m_splash = new SplashScreen(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 finish() happens.
|
||||
m_splash->show();
|
||||
|
|
|
@ -1311,7 +1311,7 @@ void BitcoinGUI::updateProxyIcon()
|
|||
bool proxy_enabled = clientModel->getProxyInfo(ip_port);
|
||||
|
||||
if (proxy_enabled) {
|
||||
if (labelProxyIcon->pixmap() == nullptr) {
|
||||
if (!GUIUtil::HasPixmap(labelProxyIcon)) {
|
||||
QString ip_port_q = QString::fromStdString(ip_port);
|
||||
labelProxyIcon->setPixmap(platformStyle->SingleColorIcon(":/icons/proxy").pixmap(STATUSBAR_ICONSIZE, STATUSBAR_ICONSIZE));
|
||||
labelProxyIcon->setToolTip(tr("Proxy is <b>enabled</b>: %1").arg(ip_port_q));
|
||||
|
|
|
@ -49,6 +49,7 @@ struct BlockAndHeaderTipInfo;
|
|||
QT_BEGIN_NAMESPACE
|
||||
class QAction;
|
||||
class QComboBox;
|
||||
class QDateTime;
|
||||
class QMenu;
|
||||
class QProgressBar;
|
||||
class QProgressDialog;
|
||||
|
|
|
@ -920,4 +920,35 @@ void PopupMenu(QMenu* menu, const QPoint& point, QAction* at_action)
|
|||
menu->popup(point, at_action);
|
||||
}
|
||||
|
||||
QDateTime StartOfDay(const QDate& date)
|
||||
{
|
||||
#if (QT_VERSION >= QT_VERSION_CHECK(5, 14, 0))
|
||||
return date.startOfDay();
|
||||
#else
|
||||
return QDateTime(date);
|
||||
#endif
|
||||
}
|
||||
|
||||
bool HasPixmap(const QLabel* label)
|
||||
{
|
||||
#if (QT_VERSION >= QT_VERSION_CHECK(5, 15, 0))
|
||||
return !label->pixmap(Qt::ReturnByValue).isNull();
|
||||
#else
|
||||
return label->pixmap() != nullptr;
|
||||
#endif
|
||||
}
|
||||
|
||||
QImage GetImage(const QLabel* label)
|
||||
{
|
||||
if (!HasPixmap(label)) {
|
||||
return QImage();
|
||||
}
|
||||
|
||||
#if (QT_VERSION >= QT_VERSION_CHECK(5, 15, 0))
|
||||
return label->pixmap(Qt::ReturnByValue).toImage();
|
||||
#else
|
||||
return label->pixmap()->toImage();
|
||||
#endif
|
||||
}
|
||||
|
||||
} // namespace GUIUtil
|
||||
|
|
|
@ -289,7 +289,7 @@ namespace GUIUtil
|
|||
/**
|
||||
* Returns the distance in pixels appropriate for drawing a subsequent character after text.
|
||||
*
|
||||
* In Qt 5.12 and before the QFontMetrics::width() is used and it is deprecated since Qt 13.0.
|
||||
* In Qt 5.12 and before the QFontMetrics::width() is used and it is deprecated since Qt 5.13.
|
||||
* In Qt 5.11 the QFontMetrics::horizontalAdvance() was introduced.
|
||||
*/
|
||||
int TextWidth(const QFontMetrics& fm, const QString& text);
|
||||
|
@ -303,6 +303,44 @@ namespace GUIUtil
|
|||
* Call QMenu::popup() only on supported QT_QPA_PLATFORM.
|
||||
*/
|
||||
void PopupMenu(QMenu* menu, const QPoint& point, QAction* at_action = nullptr);
|
||||
|
||||
/**
|
||||
* Returns the start-moment of the day in local time.
|
||||
*
|
||||
* QDateTime::QDateTime(const QDate& date) is deprecated since Qt 5.15.
|
||||
* QDate::startOfDay() was introduced in Qt 5.14.
|
||||
*/
|
||||
QDateTime StartOfDay(const QDate& date);
|
||||
|
||||
/**
|
||||
* Returns true if pixmap has been set.
|
||||
*
|
||||
* QPixmap* QLabel::pixmap() is deprecated since Qt 5.15.
|
||||
*/
|
||||
bool HasPixmap(const QLabel* label);
|
||||
QImage GetImage(const QLabel* label);
|
||||
|
||||
/**
|
||||
* Splits the string into substrings wherever separator occurs, and returns
|
||||
* the list of those strings. Empty strings do not appear in the result.
|
||||
*
|
||||
* QString::split() signature differs in different Qt versions:
|
||||
* - QString::SplitBehavior is deprecated since Qt 5.15
|
||||
* - Qt::SplitBehavior was introduced in Qt 5.14
|
||||
* If {QString|Qt}::SkipEmptyParts behavior is required, use this
|
||||
* function instead of QString::split().
|
||||
*/
|
||||
template <typename SeparatorType>
|
||||
QStringList SplitSkipEmptyParts(const QString& string, const SeparatorType& separator)
|
||||
{
|
||||
#if (QT_VERSION >= QT_VERSION_CHECK(5, 14, 0))
|
||||
return string.split(separator, Qt::SkipEmptyParts);
|
||||
#else
|
||||
return string.split(separator, QString::SkipEmptyParts);
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
} // namespace GUIUtil
|
||||
|
||||
#endif // BITCOIN_QT_GUIUTIL_H
|
||||
|
|
|
@ -219,7 +219,7 @@ static ProxySetting GetProxySetting(QSettings &settings, const QString &name)
|
|||
return default_val;
|
||||
}
|
||||
// contains IP at index 0 and port at index 1
|
||||
QStringList ip_port = settings.value(name).toString().split(":", QString::SkipEmptyParts);
|
||||
QStringList ip_port = GUIUtil::SplitSkipEmptyParts(settings.value(name).toString(), ":");
|
||||
if (ip_port.size() == 2) {
|
||||
return {true, ip_port.at(0), ip_port.at(1)};
|
||||
} else { // Invalid: return default
|
||||
|
|
|
@ -17,6 +17,7 @@
|
|||
|
||||
#include <QAbstractItemDelegate>
|
||||
#include <QApplication>
|
||||
#include <QDateTime>
|
||||
#include <QPainter>
|
||||
#include <QStatusTipEvent>
|
||||
|
||||
|
|
|
@ -26,7 +26,6 @@
|
|||
#include <QApplication>
|
||||
#include <QByteArray>
|
||||
#include <QDataStream>
|
||||
#include <QDateTime>
|
||||
#include <QDebug>
|
||||
#include <QFile>
|
||||
#include <QFileOpenEvent>
|
||||
|
|
|
@ -98,15 +98,12 @@ bool QRImageWidget::setQR(const QString& data, const QString& text)
|
|||
|
||||
QImage QRImageWidget::exportImage()
|
||||
{
|
||||
if(!pixmap())
|
||||
return QImage();
|
||||
return pixmap()->toImage();
|
||||
return GUIUtil::GetImage(this);
|
||||
}
|
||||
|
||||
void QRImageWidget::mousePressEvent(QMouseEvent *event)
|
||||
{
|
||||
if(event->button() == Qt::LeftButton && pixmap())
|
||||
{
|
||||
if (event->button() == Qt::LeftButton && GUIUtil::HasPixmap(this)) {
|
||||
event->accept();
|
||||
QMimeData *mimeData = new QMimeData;
|
||||
mimeData->setImageData(exportImage());
|
||||
|
@ -121,7 +118,7 @@ void QRImageWidget::mousePressEvent(QMouseEvent *event)
|
|||
|
||||
void QRImageWidget::saveImage()
|
||||
{
|
||||
if(!pixmap())
|
||||
if (!GUIUtil::HasPixmap(this))
|
||||
return;
|
||||
QString fn = GUIUtil::getSaveFileName(this, tr("Save QR Code"), QString(), tr("PNG Image (*.png)"), nullptr);
|
||||
if (!fn.isEmpty())
|
||||
|
@ -132,14 +129,14 @@ void QRImageWidget::saveImage()
|
|||
|
||||
void QRImageWidget::copyImage()
|
||||
{
|
||||
if(!pixmap())
|
||||
if (!GUIUtil::HasPixmap(this))
|
||||
return;
|
||||
QApplication::clipboard()->setImage(exportImage());
|
||||
}
|
||||
|
||||
void QRImageWidget::contextMenuEvent(QContextMenuEvent *event)
|
||||
{
|
||||
if(!pixmap())
|
||||
if (!GUIUtil::HasPixmap(this))
|
||||
return;
|
||||
contextMenu->exec(event->globalPos());
|
||||
}
|
||||
|
|
|
@ -29,6 +29,7 @@
|
|||
#include <wallet/wallet.h>
|
||||
#endif
|
||||
|
||||
#include <QDateTime>
|
||||
#include <QFont>
|
||||
#include <QKeyEvent>
|
||||
#include <QMenu>
|
||||
|
|
|
@ -28,6 +28,7 @@ namespace Ui {
|
|||
}
|
||||
|
||||
QT_BEGIN_NAMESPACE
|
||||
class QDateTime;
|
||||
class QMenu;
|
||||
class QItemSelection;
|
||||
QT_END_NAMESPACE
|
||||
|
|
|
@ -173,8 +173,15 @@ void SendCoinsDialog::setModel(WalletModel *_model)
|
|||
}
|
||||
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);
|
||||
|
||||
#if (QT_VERSION >= QT_VERSION_CHECK(5, 15, 0))
|
||||
connect(ui->groupFee, &QButtonGroup::idClicked, this, &SendCoinsDialog::updateFeeSectionControls);
|
||||
connect(ui->groupFee, &QButtonGroup::idClicked, this, &SendCoinsDialog::coinControlUpdateLabels);
|
||||
#else
|
||||
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);
|
||||
#endif
|
||||
|
||||
connect(ui->customFee, &BitcoinAmountField::valueChanged, this, &SendCoinsDialog::coinControlUpdateLabels);
|
||||
connect(ui->optInRBF, &QCheckBox::stateChanged, this, &SendCoinsDialog::updateSmartFeeLabel);
|
||||
connect(ui->optInRBF, &QCheckBox::stateChanged, this, &SendCoinsDialog::coinControlUpdateLabels);
|
||||
|
|
|
@ -25,8 +25,8 @@
|
|||
#include <QScreen>
|
||||
|
||||
|
||||
SplashScreen::SplashScreen(Qt::WindowFlags f, const NetworkStyle *networkStyle) :
|
||||
QWidget(nullptr, f), curAlignment(0)
|
||||
SplashScreen::SplashScreen(const NetworkStyle* networkStyle)
|
||||
: QWidget(), curAlignment(0)
|
||||
{
|
||||
// set reference point, paddings
|
||||
int paddingRight = 50;
|
||||
|
|
|
@ -28,7 +28,7 @@ class SplashScreen : public QWidget
|
|||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit SplashScreen(Qt::WindowFlags f, const NetworkStyle *networkStyle);
|
||||
explicit SplashScreen(const NetworkStyle *networkStyle);
|
||||
~SplashScreen();
|
||||
void setNode(interfaces::Node& node);
|
||||
|
||||
|
|
|
@ -237,7 +237,7 @@ void TransactionView::setModel(WalletModel *_model)
|
|||
if (_model->getOptionsModel())
|
||||
{
|
||||
// Add third party transaction URLs to context menu
|
||||
QStringList listUrls = _model->getOptionsModel()->getThirdPartyTxUrls().split("|", QString::SkipEmptyParts);
|
||||
QStringList listUrls = GUIUtil::SplitSkipEmptyParts(_model->getOptionsModel()->getThirdPartyTxUrls(), "|");
|
||||
for (int i = 0; i < listUrls.size(); ++i)
|
||||
{
|
||||
QString url = listUrls[i].trimmed();
|
||||
|
@ -275,30 +275,30 @@ void TransactionView::chooseDate(int idx)
|
|||
break;
|
||||
case Today:
|
||||
transactionProxyModel->setDateRange(
|
||||
QDateTime(current),
|
||||
GUIUtil::StartOfDay(current),
|
||||
TransactionFilterProxy::MAX_DATE);
|
||||
break;
|
||||
case ThisWeek: {
|
||||
// Find last Monday
|
||||
QDate startOfWeek = current.addDays(-(current.dayOfWeek()-1));
|
||||
transactionProxyModel->setDateRange(
|
||||
QDateTime(startOfWeek),
|
||||
GUIUtil::StartOfDay(startOfWeek),
|
||||
TransactionFilterProxy::MAX_DATE);
|
||||
|
||||
} break;
|
||||
case ThisMonth:
|
||||
transactionProxyModel->setDateRange(
|
||||
QDateTime(QDate(current.year(), current.month(), 1)),
|
||||
GUIUtil::StartOfDay(QDate(current.year(), current.month(), 1)),
|
||||
TransactionFilterProxy::MAX_DATE);
|
||||
break;
|
||||
case LastMonth:
|
||||
transactionProxyModel->setDateRange(
|
||||
QDateTime(QDate(current.year(), current.month(), 1).addMonths(-1)),
|
||||
QDateTime(QDate(current.year(), current.month(), 1)));
|
||||
GUIUtil::StartOfDay(QDate(current.year(), current.month(), 1).addMonths(-1)),
|
||||
GUIUtil::StartOfDay(QDate(current.year(), current.month(), 1)));
|
||||
break;
|
||||
case ThisYear:
|
||||
transactionProxyModel->setDateRange(
|
||||
QDateTime(QDate(current.year(), 1, 1)),
|
||||
GUIUtil::StartOfDay(QDate(current.year(), 1, 1)),
|
||||
TransactionFilterProxy::MAX_DATE);
|
||||
break;
|
||||
case Range:
|
||||
|
@ -583,8 +583,8 @@ void TransactionView::dateRangeChanged()
|
|||
if(!transactionProxyModel)
|
||||
return;
|
||||
transactionProxyModel->setDateRange(
|
||||
QDateTime(dateFrom->date()),
|
||||
QDateTime(dateTo->date()).addDays(1));
|
||||
GUIUtil::StartOfDay(dateFrom->date()),
|
||||
GUIUtil::StartOfDay(dateTo->date()).addDays(1));
|
||||
}
|
||||
|
||||
void TransactionView::focusTransaction(const QModelIndex &idx)
|
||||
|
|
Loading…
Reference in a new issue