mirror of
https://github.com/dashpay/dash.git
synced 2024-12-25 12:02:48 +01:00
Merge bitcoin-core/gui#313: qt: Optimize string concatenation by default
a02c970eb001b456d74ddc30750fe8b55348ddac qt, refactor: Revert explicit including QStringBuilder (Hennadii Stepanov) 3fd3a0fc87a81d42755246830124833e9ca3f0a9 qt, build: Optimize string concatenation (Hennadii Stepanov) Pull request description: From [Qt docs](https://doc.qt.io/qt-5/qstring.html#more-efficient-string-construction): > ... multiple uses of the \[`QString`\] '+' operator usually means multiple memory allocations. When concatenating n substrings, where n > 2, there can be as many as n - 1 calls to the memory allocator. With this PR > ... the '+' will automatically be performed as the `QStringBuilder` '%' everywhere. The change in the `src/Makefile.qt.include` file does not justify submitting this PR into the main repo, IMHO. ACKs for top commit: laanwj: Code review ACK a02c970eb001b456d74ddc30750fe8b55348ddac Talkless: utACK a02c970eb001b456d74ddc30750fe8b55348ddac, built successfully on Debian Sid with Qt 5.15.2, but did not check if any displayed strings are "wrong" after refactoring. jarolrod: ACK a02c970eb001b456d74ddc30750fe8b55348ddac Tree-SHA512: cbb476ee96f27c3bd6e125efab74d8bf24bbdb4c30576b3feea45e203405f3bf5b497dd7d3e11361fc825fcbf4b893b152921a9efdeaf73b42d1865d85f0ae84
This commit is contained in:
parent
89a7c60aec
commit
412445afb5
@ -364,7 +364,7 @@ RES_ANIMATION = $(wildcard $(srcdir)/qt/res/animation/spinner-*.png)
|
|||||||
|
|
||||||
BITCOIN_RC = qt/res/dash-qt-res.rc
|
BITCOIN_RC = qt/res/dash-qt-res.rc
|
||||||
|
|
||||||
BITCOIN_QT_INCLUDES = -DQT_NO_KEYWORDS
|
BITCOIN_QT_INCLUDES = -DQT_NO_KEYWORDS -DQT_USE_QSTRINGBUILDER
|
||||||
|
|
||||||
qt_libbitcoinqt_a_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES) $(BITCOIN_QT_INCLUDES) \
|
qt_libbitcoinqt_a_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES) $(BITCOIN_QT_INCLUDES) \
|
||||||
$(QT_INCLUDES) $(QT_DBUS_INCLUDES) $(QR_CFLAGS)
|
$(QT_INCLUDES) $(QT_DBUS_INCLUDES) $(QR_CFLAGS)
|
||||||
|
@ -54,7 +54,6 @@
|
|||||||
#include <QMessageBox>
|
#include <QMessageBox>
|
||||||
#include <QProcess>
|
#include <QProcess>
|
||||||
#include <QSettings>
|
#include <QSettings>
|
||||||
#include <QStringBuilder>
|
|
||||||
#include <QThread>
|
#include <QThread>
|
||||||
#include <QTimer>
|
#include <QTimer>
|
||||||
#include <QTranslator>
|
#include <QTranslator>
|
||||||
@ -492,8 +491,8 @@ void BitcoinApplication::handleRunawayException(const QString &message)
|
|||||||
{
|
{
|
||||||
QMessageBox::critical(
|
QMessageBox::critical(
|
||||||
nullptr, tr("Runaway exception"),
|
nullptr, tr("Runaway exception"),
|
||||||
tr("A fatal error occurred. %1 can no longer continue safely and will quit.").arg(PACKAGE_NAME) %
|
tr("A fatal error occurred. %1 can no longer continue safely and will quit.").arg(PACKAGE_NAME) +
|
||||||
QLatin1String("<br><br>") % GUIUtil::MakeHtmlLink(message, PACKAGE_BUGREPORT));
|
QLatin1String("<br><br>") + GUIUtil::MakeHtmlLink(message, PACKAGE_BUGREPORT));
|
||||||
::exit(EXIT_FAILURE);
|
::exit(EXIT_FAILURE);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -503,8 +502,8 @@ void BitcoinApplication::handleNonFatalException(const QString& message)
|
|||||||
QMessageBox::warning(
|
QMessageBox::warning(
|
||||||
nullptr, tr("Internal error"),
|
nullptr, tr("Internal error"),
|
||||||
tr("An internal error occurred. %1 will attempt to continue safely. This is "
|
tr("An internal error occurred. %1 will attempt to continue safely. This is "
|
||||||
"an unexpected bug which can be reported as described below.").arg(PACKAGE_NAME) %
|
"an unexpected bug which can be reported as described below.").arg(PACKAGE_NAME) +
|
||||||
QLatin1String("<br><br>") % GUIUtil::MakeHtmlLink(message, PACKAGE_BUGREPORT));
|
QLatin1String("<br><br>") + GUIUtil::MakeHtmlLink(message, PACKAGE_BUGREPORT));
|
||||||
}
|
}
|
||||||
|
|
||||||
WId BitcoinApplication::getMainWinId() const
|
WId BitcoinApplication::getMainWinId() const
|
||||||
|
@ -69,7 +69,6 @@
|
|||||||
#include <QShortcut>
|
#include <QShortcut>
|
||||||
#include <QSize>
|
#include <QSize>
|
||||||
#include <QString>
|
#include <QString>
|
||||||
#include <QStringBuilder>
|
|
||||||
#include <QTextDocument> // for Qt::mightBeRichText
|
#include <QTextDocument> // for Qt::mightBeRichText
|
||||||
#include <QThread>
|
#include <QThread>
|
||||||
#include <QTimer>
|
#include <QTimer>
|
||||||
@ -1931,7 +1930,7 @@ QString MakeHtmlLink(const QString& source, const QString& link)
|
|||||||
{
|
{
|
||||||
return QString(source).replace(
|
return QString(source).replace(
|
||||||
link,
|
link,
|
||||||
QLatin1String("<a href=\"") % link % QLatin1String("\">") % link % QLatin1String("</a>"));
|
QLatin1String("<a href=\"") + link + QLatin1String("\">") + link + QLatin1String("</a>"));
|
||||||
}
|
}
|
||||||
|
|
||||||
void PrintSlotException(
|
void PrintSlotException(
|
||||||
|
@ -26,6 +26,7 @@
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include <QDebug>
|
#include <QDebug>
|
||||||
|
#include <QLatin1Char>
|
||||||
#include <QSettings>
|
#include <QSettings>
|
||||||
#include <QStringList>
|
#include <QStringList>
|
||||||
|
|
||||||
@ -381,7 +382,7 @@ static ProxySetting GetProxySetting(QSettings &settings, const QString &name)
|
|||||||
|
|
||||||
static void SetProxySetting(QSettings &settings, const QString &name, const ProxySetting &ip_port)
|
static void SetProxySetting(QSettings &settings, const QString &name, const ProxySetting &ip_port)
|
||||||
{
|
{
|
||||||
settings.setValue(name, ip_port.ip + ":" + ip_port.port);
|
settings.setValue(name, QString{ip_port.ip + QLatin1Char(':') + ip_port.port});
|
||||||
}
|
}
|
||||||
|
|
||||||
static const QString GetDefaultProxyAddress()
|
static const QString GetDefaultProxyAddress()
|
||||||
|
@ -469,7 +469,7 @@ void OverviewPage::updateCoinJoinProgress()
|
|||||||
|
|
||||||
ui->coinJoinProgress->setValue(progress);
|
ui->coinJoinProgress->setValue(progress);
|
||||||
|
|
||||||
QString strToolPip = ("<b>" + tr("Overall progress") + ": %1%</b><br/>" +
|
QString strToolPip = QString("<b>" + tr("Overall progress") + ": %1%</b><br/>" +
|
||||||
tr("Denominated") + ": %2%<br/>" +
|
tr("Denominated") + ": %2%<br/>" +
|
||||||
tr("Partially mixed") + ": %3%<br/>" +
|
tr("Partially mixed") + ": %3%<br/>" +
|
||||||
tr("Mixed") + ": %4%<br/>" +
|
tr("Mixed") + ": %4%<br/>" +
|
||||||
|
@ -115,7 +115,7 @@ QVariant PeerTableModel::data(const QModelIndex &index, int role) const
|
|||||||
return (qint64)rec->nodeStats.nodeid;
|
return (qint64)rec->nodeStats.nodeid;
|
||||||
case Address:
|
case Address:
|
||||||
// prepend to peer address down-arrow symbol for inbound connection and up-arrow for outbound connection
|
// prepend to peer address down-arrow symbol for inbound connection and up-arrow for outbound connection
|
||||||
return QString(rec->nodeStats.fInbound ? "↓ " : "↑ ") + QString::fromStdString(rec->nodeStats.m_addr_name);
|
return QString::fromStdString((rec->nodeStats.fInbound ? "↓ " : "↑ ") + rec->nodeStats.m_addr_name);
|
||||||
case ConnectionType:
|
case ConnectionType:
|
||||||
return GUIUtil::ConnectionTypeToQString(rec->nodeStats.m_conn_type, /* prepend_direction */ false);
|
return GUIUtil::ConnectionTypeToQString(rec->nodeStats.m_conn_type, /* prepend_direction */ false);
|
||||||
case Network:
|
case Network:
|
||||||
|
@ -17,6 +17,9 @@
|
|||||||
|
|
||||||
#include <utility>
|
#include <utility>
|
||||||
|
|
||||||
|
#include <QLatin1Char>
|
||||||
|
#include <QLatin1String>
|
||||||
|
|
||||||
RecentRequestsTableModel::RecentRequestsTableModel(WalletModel *parent) :
|
RecentRequestsTableModel::RecentRequestsTableModel(WalletModel *parent) :
|
||||||
QAbstractTableModel(parent), walletModel(parent)
|
QAbstractTableModel(parent), walletModel(parent)
|
||||||
{
|
{
|
||||||
@ -126,7 +129,11 @@ void RecentRequestsTableModel::updateAmountColumnTitle()
|
|||||||
/** Gets title for amount column including current display unit if optionsModel reference available. */
|
/** Gets title for amount column including current display unit if optionsModel reference available. */
|
||||||
QString RecentRequestsTableModel::getAmountTitle()
|
QString RecentRequestsTableModel::getAmountTitle()
|
||||||
{
|
{
|
||||||
return (this->walletModel->getOptionsModel() != nullptr) ? tr("Requested") + " ("+BitcoinUnits::name(this->walletModel->getOptionsModel()->getDisplayUnit()) + ")" : "";
|
if (!walletModel->getOptionsModel()) return {};
|
||||||
|
return tr("Requested") +
|
||||||
|
QLatin1String(" (") +
|
||||||
|
BitcoinUnits::name(this->walletModel->getOptionsModel()->getDisplayUnit()) +
|
||||||
|
QLatin1Char(')');
|
||||||
}
|
}
|
||||||
|
|
||||||
QModelIndex RecentRequestsTableModel::index(int row, int column, const QModelIndex &parent) const
|
QModelIndex RecentRequestsTableModel::index(int row, int column, const QModelIndex &parent) const
|
||||||
|
@ -201,7 +201,7 @@ void TestGUI(interfaces::Node& node)
|
|||||||
|
|
||||||
QCOMPARE(uri.count("amount=0.00000001"), 2);
|
QCOMPARE(uri.count("amount=0.00000001"), 2);
|
||||||
QCOMPARE(receiveRequestDialog->QObject::findChild<QLabel*>("amount_tag")->text(), QString("Amount:"));
|
QCOMPARE(receiveRequestDialog->QObject::findChild<QLabel*>("amount_tag")->text(), QString("Amount:"));
|
||||||
QCOMPARE(receiveRequestDialog->QObject::findChild<QLabel*>("amount_content")->text(), QString("0.00000001 ") + BitcoinUnits::name(unit));
|
QCOMPARE(receiveRequestDialog->QObject::findChild<QLabel*>("amount_content")->text(), QString::fromStdString("0.00000001 ") + BitcoinUnits::name(unit));
|
||||||
|
|
||||||
QCOMPARE(uri.count("label=TEST_LABEL_1"), 2);
|
QCOMPARE(uri.count("label=TEST_LABEL_1"), 2);
|
||||||
QCOMPARE(receiveRequestDialog->QObject::findChild<QLabel*>("label_tag")->text(), QString("Label:"));
|
QCOMPARE(receiveRequestDialog->QObject::findChild<QLabel*>("label_tag")->text(), QString("Label:"));
|
||||||
|
@ -26,6 +26,8 @@
|
|||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
#include <string>
|
#include <string>
|
||||||
|
|
||||||
|
#include <QLatin1String>
|
||||||
|
|
||||||
QString TransactionDesc::FormatTxStatus(const interfaces::WalletTx& wtx, const interfaces::WalletTxStatus& status, bool inMempool, int numBlocks)
|
QString TransactionDesc::FormatTxStatus(const interfaces::WalletTx& wtx, const interfaces::WalletTxStatus& status, bool inMempool, int numBlocks)
|
||||||
{
|
{
|
||||||
if (!status.is_final)
|
if (!status.is_final)
|
||||||
@ -44,19 +46,20 @@ QString TransactionDesc::FormatTxStatus(const interfaces::WalletTx& wtx, const i
|
|||||||
bool fChainLocked = status.is_chainlocked;
|
bool fChainLocked = status.is_chainlocked;
|
||||||
|
|
||||||
if (nDepth == 0) {
|
if (nDepth == 0) {
|
||||||
strTxStatus = tr("0/unconfirmed, %1").arg((inMempool ? tr("in memory pool") : tr("not in memory pool"))) + (status.is_abandoned ? ", "+tr("abandoned") : "");
|
const QString abandoned{status.is_abandoned ? QLatin1String(", ") + tr("abandoned") : QString()};
|
||||||
|
strTxStatus = tr("0/unconfirmed, %1").arg((inMempool ? tr("in memory pool") : tr("not in memory pool"))) + abandoned;
|
||||||
} else if (!fChainLocked && nDepth < 6) {
|
} else if (!fChainLocked && nDepth < 6) {
|
||||||
strTxStatus = tr("%1/unconfirmed").arg(nDepth);
|
strTxStatus = tr("%1/unconfirmed").arg(nDepth);
|
||||||
} else {
|
} else {
|
||||||
strTxStatus = tr("%1 confirmations").arg(nDepth);
|
strTxStatus = tr("%1 confirmations").arg(nDepth);
|
||||||
if (fChainLocked) {
|
if (fChainLocked) {
|
||||||
strTxStatus += ", " + tr("locked via ChainLocks");
|
strTxStatus += QLatin1String(", ") + tr("locked via ChainLocks");
|
||||||
return strTxStatus;
|
return strTxStatus;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (status.is_islocked) {
|
if (status.is_islocked) {
|
||||||
strTxStatus += ", " + tr("verified via InstantSend");
|
strTxStatus += QLatin1String(", ") + tr("verified via InstantSend");
|
||||||
}
|
}
|
||||||
|
|
||||||
return strTxStatus;
|
return strTxStatus;
|
||||||
|
@ -23,6 +23,8 @@
|
|||||||
#include <QDateTime>
|
#include <QDateTime>
|
||||||
#include <QDebug>
|
#include <QDebug>
|
||||||
#include <QIcon>
|
#include <QIcon>
|
||||||
|
#include <QLatin1Char>
|
||||||
|
#include <QLatin1String>
|
||||||
#include <QList>
|
#include <QList>
|
||||||
#include <QMessageBox>
|
#include <QMessageBox>
|
||||||
|
|
||||||
@ -466,9 +468,9 @@ QVariant TransactionTableModel::txAddressDecoration(const TransactionRecord *wtx
|
|||||||
QString TransactionTableModel::formatTxToAddress(const TransactionRecord *wtx, bool tooltip) const
|
QString TransactionTableModel::formatTxToAddress(const TransactionRecord *wtx, bool tooltip) const
|
||||||
{
|
{
|
||||||
QString watchAddress;
|
QString watchAddress;
|
||||||
if (tooltip) {
|
if (tooltip && wtx->involvesWatchAddress) {
|
||||||
// Mark transactions involving watch-only addresses by adding " (watch-only)"
|
// Mark transactions involving watch-only addresses by adding " (watch-only)"
|
||||||
watchAddress = wtx->involvesWatchAddress ? QString(" (") + tr("watch-only") + QString(")") : "";
|
watchAddress = QLatin1String(" (") + tr("watch-only") + QLatin1Char(')');
|
||||||
}
|
}
|
||||||
|
|
||||||
switch(wtx->type)
|
switch(wtx->type)
|
||||||
|
Loading…
Reference in New Issue
Block a user