From 4a3aa9c1c1d57950cd73bca5fefd7e779ed0ae08 Mon Sep 17 00:00:00 2001 From: Martchus Date: Sun, 23 Jul 2023 22:17:47 +0200 Subject: [PATCH] Fix warnings about implicit conversions when compiling against Qt 6 --- dbquery/dbquery.cpp | 2 +- dbquery/lyricswikia.cpp | 13 +++++++------ gui/attachmentsmodel.cpp | 10 ++++++---- gui/codeedit.cpp | 4 +++- gui/dbquerywidget.cpp | 2 +- gui/javascripthighlighter.cpp | 16 +++++++++------- gui/notificationlabel.cpp | 4 ++-- gui/tageditorwidget.cpp | 16 ++++++++-------- misc/utility.cpp | 14 +++++++------- misc/utility.h | 13 +++++++++++++ renamingutility/filesystemitem.h | 4 +++- renamingutility/filesystemitemmodel.cpp | 4 +++- renamingutility/renamingengine.cpp | 2 +- 13 files changed, 64 insertions(+), 40 deletions(-) diff --git a/dbquery/dbquery.cpp b/dbquery/dbquery.cpp index 3cbd7bf..ebd7150 100644 --- a/dbquery/dbquery.cpp +++ b/dbquery/dbquery.cpp @@ -189,7 +189,7 @@ QVariant QueryResultsModel::headerData(int section, Qt::Orientation orientation, int QueryResultsModel::rowCount(const QModelIndex &parent) const { - return parent.isValid() ? 0 : m_results.size(); + return parent.isValid() ? 0 : Utility::containerSizeToInt(m_results.size()); } int QueryResultsModel::columnCount(const QModelIndex &parent) const diff --git a/dbquery/lyricswikia.cpp b/dbquery/lyricswikia.cpp index 34ff09a..2baa28b 100644 --- a/dbquery/lyricswikia.cpp +++ b/dbquery/lyricswikia.cpp @@ -2,6 +2,7 @@ #include "../application/settings.h" #include "../misc/networkaccessmanager.h" +#include "../misc/utility.h" #include #include @@ -141,7 +142,7 @@ void LyricsWikiaResultsModel::parseInitialResults(const QByteArray &data) iftag("item") { songs << SongDescription(); songs.back().title = text; - songs.back().track = songs.size(); + songs.back().track = Utility::containerSizeToInt(songs.size()); } else_skip } @@ -157,7 +158,7 @@ void LyricsWikiaResultsModel::parseInitialResults(const QByteArray &data) && (!m_initialDescription.track || m_initialDescription.track == song.track)) { song.album = album; song.year = year; - song.totalTracks = songs.size(); + song.totalTracks = Utility::containerSizeToInt(songs.size()); m_results << std::move(song); } } @@ -376,14 +377,14 @@ void LyricsWikiaResultsModel::parseAlbumDetailsAndFetchCover(int row, const QByt SongDescription &assocDesc = m_results[row]; // convert data to QString - const QString html(data); + const auto html = QString(data); // parse cover URL from HTML - const int coverDivStart = html.indexOf(QLatin1String("
56) { - const int coverHrefStart = html.indexOf(QLatin1String("href=\""), coverDivStart) + 6; + const auto coverHrefStart = html.indexOf(QLatin1String("href=\""), coverDivStart) + 6; if (coverHrefStart > coverDivStart + 6) { - const int coverHrefEnd = html.indexOf(QLatin1String("\""), coverHrefStart); + const auto coverHrefEnd = html.indexOf(QLatin1String("\""), coverHrefStart); if (coverHrefEnd > 0) { assocDesc.coverUrl = html.mid(coverHrefStart, coverHrefEnd - coverHrefStart); } diff --git a/gui/attachmentsmodel.cpp b/gui/attachmentsmodel.cpp index 68b2f3f..2d3b439 100644 --- a/gui/attachmentsmodel.cpp +++ b/gui/attachmentsmodel.cpp @@ -1,5 +1,7 @@ #include "./attachmentsmodel.h" +#include "../misc/utility.h" + #include #include @@ -233,7 +235,7 @@ int AttachmentsModel::rowCount(const QModelIndex &parent) const if (parent.isValid()) { return 0; } else { - return m_attachments.size(); + return Utility::containerSizeToInt(m_attachments.size()); } } @@ -251,7 +253,7 @@ void AttachmentsModel::revert() for (auto &item : m_attachments) { item.revert(); } - emit dataChanged(index(0, 0), index(m_attachments.size() - 1, 0), QVector() << Qt::CheckStateRole); + emit dataChanged(index(0, 0), index(Utility::containerSizeToInt(m_attachments.size()) - 1, 0), QVector() << Qt::CheckStateRole); } bool AttachmentsModel::submit() @@ -268,7 +270,7 @@ void AttachmentsModel::repealSelection() for (auto &item : m_attachments) { item.setActivated(false); } - emit dataChanged(index(0, 0), index(m_attachments.size() - 1, 0), QVector() << Qt::CheckStateRole); + emit dataChanged(index(0, 0), index(Utility::containerSizeToInt(m_attachments.size()) - 1, 0), QVector() << Qt::CheckStateRole); } } @@ -283,7 +285,7 @@ AbstractAttachment *AttachmentsModel::attachment(const QModelIndex &index) void AttachmentsModel::addAttachment(int row, AbstractAttachment *attachment, bool activated, const QString &location) { if (row < 0 || row > m_attachments.size()) { - row = m_attachments.size(); + row = Utility::containerSizeToInt(m_attachments.size()); } beginInsertRows(QModelIndex(), row, row); m_attachments.insert(row, AttachmentItem(attachment, activated, location)); diff --git a/gui/codeedit.cpp b/gui/codeedit.cpp index 30898ff..1227955 100644 --- a/gui/codeedit.cpp +++ b/gui/codeedit.cpp @@ -1,5 +1,7 @@ #include "./codeedit.h" +#include "../misc/utility.h" + #include #include @@ -49,7 +51,7 @@ void CodeEdit::handleReturn(QKeyEvent *) if (index < line.size() && line.at(index) == QChar('}')) { if (index > 0) { int beg = index; - index -= m_indentation.size(); + index -= Utility::containerSizeToInt(m_indentation.size()); cursor.select(QTextCursor::BlockUnderCursor); cursor.deleteChar(); cursor.insertBlock(); diff --git a/gui/dbquerywidget.cpp b/gui/dbquerywidget.cpp index d72fd0b..1142ae8 100644 --- a/gui/dbquerywidget.cpp +++ b/gui/dbquerywidget.cpp @@ -279,7 +279,7 @@ void DbQueryWidget::showResults() if (m_model->results().isEmpty()) { m_ui->notificationLabel->setText(tr("No results available")); } else { - m_ui->notificationLabel->setText(tr("%1 result(s) available", nullptr, m_model->results().size()).arg(m_model->results().size())); + m_ui->notificationLabel->setText(tr("%1 result(s) available", nullptr, Utility::containerSizeToInt(m_model->results().size())).arg(m_model->results().size())); } } else { m_ui->notificationLabel->setNotificationType(NotificationType::Critical); diff --git a/gui/javascripthighlighter.cpp b/gui/javascripthighlighter.cpp index 127b031..38ffd0f 100644 --- a/gui/javascripthighlighter.cpp +++ b/gui/javascripthighlighter.cpp @@ -1,5 +1,7 @@ #include "./javascripthighlighter.h" +#include "../misc/utility.h" + namespace QtGui { JavaScriptHighlighter::JavaScriptHighlighter(QTextDocument *parent) @@ -55,8 +57,8 @@ void JavaScriptHighlighter::highlightBlock(const QString &text) const auto &expression(rule.pattern); auto match = expression.match(text); while (match.hasMatch()) { - const auto index = match.capturedStart(); - const auto length = match.capturedLength(); + const auto index = Utility::containerSizeToInt(match.capturedStart()); + const auto length = Utility::containerSizeToInt(match.capturedLength()); setFormat(index, length, rule.format); match = expression.match(text, index + length); } @@ -65,21 +67,21 @@ void JavaScriptHighlighter::highlightBlock(const QString &text) auto startIndex = 0; if (previousBlockState() != 1) { - startIndex = m_commentStartExpression.match(text).capturedStart(); + startIndex = Utility::containerSizeToInt(m_commentStartExpression.match(text).capturedStart()); } while (startIndex >= 0) { const auto endMatch = m_commentEndExpression.match(text, startIndex); - const auto endIndex = endMatch.capturedStart(); + const auto endIndex = Utility::containerSizeToInt(endMatch.capturedStart()); const auto commentLength = [&] { if (endIndex >= 0) { - return endIndex - startIndex + endMatch.capturedLength(); + return endIndex - startIndex + Utility::containerSizeToInt(endMatch.capturedLength()); } setCurrentBlockState(1); - return text.length() - startIndex; + return Utility::containerSizeToInt(text.length()) - startIndex; }(); setFormat(startIndex, commentLength, m_multiLineCommentFormat); - startIndex = m_commentStartExpression.match(text, startIndex + commentLength).capturedStart(); + startIndex = Utility::containerSizeToInt(m_commentStartExpression.match(text, startIndex + commentLength).capturedStart()); } } diff --git a/gui/notificationlabel.cpp b/gui/notificationlabel.cpp index e2519b9..483b9b0 100644 --- a/gui/notificationlabel.cpp +++ b/gui/notificationlabel.cpp @@ -191,9 +191,9 @@ void NotificationLabel::applyMaxLineCount() return; } - int newStart = 0; + auto newStart = QString::size_type(); for (; m_currentLineCount > m_maxLineCount; --m_currentLineCount) { - const int nextBullet = m_text.indexOf(s_bulletLine, newStart); + const auto nextBullet = m_text.indexOf(s_bulletLine, newStart); if (nextBullet < 0) { break; } diff --git a/gui/tageditorwidget.cpp b/gui/tageditorwidget.cpp index 9eebd70..85f1d7d 100644 --- a/gui/tageditorwidget.cpp +++ b/gui/tageditorwidget.cpp @@ -362,14 +362,14 @@ void TagEditorWidget::updateTagEditsAndAttachmentEdits(bool updateUi, PreviousVa // add/update TagEdit widgets if (m_tags.size()) { // create a lists of the targets and tags - QList targets; - QList> tagsByTarget; - for (Tag *tag : m_tags) { - const TagTarget &target = tag->target(); - int index = targets.indexOf(target); + auto targets = QList(); + auto tagsByTarget = QList>(); + for (auto *const tag : m_tags) { + const auto &target = tag->target(); + auto index = targets.indexOf(target); if (index < 0) { targets << target; - tagsByTarget << (QList() << tag); + tagsByTarget << QList({tag}); } else { tagsByTarget[index] << tag; } @@ -379,7 +379,7 @@ void TagEditorWidget::updateTagEditsAndAttachmentEdits(bool updateUi, PreviousVa switch (Settings::values().editor.multipleTagHandling) { case Settings::MultipleTagHandling::SingleEditorPerTarget: // iterate through all targets in both cases - for (int targetIndex = 0, targetCount = targets.size(); targetIndex < targetCount; ++targetIndex) { + for (auto targetIndex = QList::size_type(), targetCount = targets.size(); targetIndex < targetCount; ++targetIndex) { fetchNextEdit(); edit->setTags(tagsByTarget.at(targetIndex), updateUi); // set all tags with the same target to a single edit if (!hasAutoCorrectionBeenApplied) { @@ -390,7 +390,7 @@ void TagEditorWidget::updateTagEditsAndAttachmentEdits(bool updateUi, PreviousVa break; case Settings::MultipleTagHandling::SeparateEditors: // iterate through all targets in both cases - for (int targetIndex = 0, targetCount = targets.size(); targetIndex < targetCount; ++targetIndex) { + for (auto targetIndex = QList::size_type(), targetCount = targets.size(); targetIndex < targetCount; ++targetIndex) { for (Tag *tag : tagsByTarget.at(targetIndex)) { fetchNextEdit(); edit->setTag(tag, updateUi); // use a separate edit for each tag diff --git a/misc/utility.cpp b/misc/utility.cpp index 5e732f2..4b6c696 100644 --- a/misc/utility.cpp +++ b/misc/utility.cpp @@ -165,10 +165,10 @@ QString elementPositionToQString(ElementPosition elementPosition) QString formatName(const QString &str, bool underscoreToWhitespace) { - QString res; + auto res = QString(); res.reserve(str.size()); - bool whitespace = true; - for (int i = 0, size = str.size(); i != size; ++i) { + auto whitespace = true; + for (auto i = QString::size_type(), size = str.size(); i != size; ++i) { const QChar current = str.at(i); if (current.isSpace() || current == QChar('(') || current == QChar('[')) { whitespace = true; @@ -228,7 +228,7 @@ void parseFileName(const QString &fileName, QString &title, int &trackNumber) { title = fileName.trimmed(); trackNumber = 0; - int lastPoint = title.lastIndexOf(QChar('.')); + auto lastPoint = title.lastIndexOf(QChar('.')); if (lastPoint > 0) { title.truncate(lastPoint); } else if (lastPoint == 0) { @@ -236,13 +236,13 @@ void parseFileName(const QString &fileName, QString &title, int &trackNumber) } static const QLatin1String delims[] = { QLatin1String(" - "), QLatin1String(", "), QLatin1String("-"), QLatin1String(" ") }; for (const auto &delim : delims) { - int lastDelimIndex = 0; - int delimIndex = title.indexOf(delim); + auto lastDelimIndex = QString::size_type(); + auto delimIndex = title.indexOf(delim); while (delimIndex > lastDelimIndex) { bool ok = false; trackNumber = QtUtilities::midRef(title, lastDelimIndex, delimIndex - lastDelimIndex).toInt(&ok); if (ok) { - int titleStart = delimIndex + delim.size(); + auto titleStart = delimIndex + delim.size(); for (const auto &delim2 : delims) { if (QtUtilities::midRef(title, titleStart).startsWith(delim2)) { titleStart += delim2.size(); diff --git a/misc/utility.h b/misc/utility.h index 6b11b1a..00e2a1a 100644 --- a/misc/utility.h +++ b/misc/utility.h @@ -4,6 +4,10 @@ #include #include +#include + +#include +#include QT_FORWARD_DECLARE_CLASS(QDir) QT_FORWARD_DECLARE_CLASS(QAbstractItemModel) @@ -35,6 +39,15 @@ constexpr int sizeToInt(std::size_t size) return size > std::numeric_limits::max() ? std::numeric_limits::max() : static_cast(size); } +constexpr int containerSizeToInt(typename QStringList::size_type size) +{ + if constexpr (std::is_same_v) { + return size; + } else { + return size > std::numeric_limits::max() ? std::numeric_limits::max() : static_cast(size); + } +} + constexpr int trQuandity(quint64 quandity) { return quandity > std::numeric_limits::max() ? std::numeric_limits::max() : static_cast(quandity); diff --git a/renamingutility/filesystemitem.h b/renamingutility/filesystemitem.h index 94cb3bc..25784ff 100644 --- a/renamingutility/filesystemitem.h +++ b/renamingutility/filesystemitem.h @@ -1,6 +1,8 @@ #ifndef FILESYSTEMITEM_H #define FILESYSTEMITEM_H +#include "../misc/utility.h" + #include #include @@ -188,7 +190,7 @@ inline void FileSystemItem::setCheckable(bool checkable) inline int FileSystemItem::row() const { - return m_parent ? m_parent->children().indexOf(const_cast(this)) : -1; + return m_parent ? Utility::containerSizeToInt(m_parent->children().indexOf(const_cast(this))) : -1; } } // namespace RenamingUtility diff --git a/renamingutility/filesystemitemmodel.cpp b/renamingutility/filesystemitemmodel.cpp index 0ac4de5..78afd49 100644 --- a/renamingutility/filesystemitemmodel.cpp +++ b/renamingutility/filesystemitemmodel.cpp @@ -1,6 +1,8 @@ #include "./filesystemitemmodel.h" #include "./filesystemitem.h" +#include "../misc/utility.h" + #include #include #include @@ -232,7 +234,7 @@ QModelIndex FileSystemItemModel::counterpart(const QModelIndex &index, int colum int FileSystemItemModel::rowCount(const QModelIndex &parent) const { if (const auto *const parentItem = (parent.isValid() ? reinterpret_cast(parent.internalPointer()) : m_rootItem)) { - return parentItem->children().size(); + return Utility::containerSizeToInt(parentItem->children().size()); } else { return 0; } diff --git a/renamingutility/renamingengine.cpp b/renamingutility/renamingengine.cpp index cc61d0a..84d2545 100644 --- a/renamingutility/renamingengine.cpp +++ b/renamingutility/renamingengine.cpp @@ -294,7 +294,7 @@ void RenamingEngine::applyChangings(FileSystemItem *parentItem) applyChangings(item); } } - m_itemsProcessed += parentItem->children().size(); + m_itemsProcessed += Utility::containerSizeToInt(parentItem->children().size()); emit progress(m_itemsProcessed, m_errorsOccured); }