qt, refactor: Fix 'split is deprecated' warnings

This commit is contained in:
Hennadii Stepanov 2020-08-09 19:53:25 +03:00
parent 8e12d69961
commit c2f4e5ea1d
No known key found for this signature in database
GPG key ID: 410108112E7EA81F
3 changed files with 23 additions and 2 deletions

View file

@ -320,6 +320,27 @@ namespace GUIUtil
bool HasPixmap(const QLabel* label); bool HasPixmap(const QLabel* label);
QImage GetImage(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 } // namespace GUIUtil
#endif // BITCOIN_QT_GUIUTIL_H #endif // BITCOIN_QT_GUIUTIL_H

View file

@ -219,7 +219,7 @@ static ProxySetting GetProxySetting(QSettings &settings, const QString &name)
return default_val; return default_val;
} }
// contains IP at index 0 and port at index 1 // 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) { if (ip_port.size() == 2) {
return {true, ip_port.at(0), ip_port.at(1)}; return {true, ip_port.at(0), ip_port.at(1)};
} else { // Invalid: return default } else { // Invalid: return default

View file

@ -237,7 +237,7 @@ void TransactionView::setModel(WalletModel *_model)
if (_model->getOptionsModel()) if (_model->getOptionsModel())
{ {
// Add third party transaction URLs to context menu // 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) for (int i = 0; i < listUrls.size(); ++i)
{ {
QString url = listUrls[i].trimmed(); QString url = listUrls[i].trimmed();