From 8d09191d2d1d998da67a3bdc4a4c78bd062b95bc Mon Sep 17 00:00:00 2001 From: Eike Ziller Date: Mon, 7 Sep 2020 12:30:54 +0200 Subject: [PATCH] Core: Fix compilation issues with Qt 6 - qrand() is gone - adapt to incompatible change to QVariant constructor with custom types - QAbstractItemView::viewOptions() is gone Change-Id: I931d963fc4370077d628740ed90ca36c4e9ba1d5 Reviewed-by: hjk --- .../coreplugin/dialogs/externaltoolconfig.cpp | 3 ++- src/plugins/coreplugin/dialogs/settingsdialog.h | 4 ++++ .../coreplugin/locator/javascriptfilter.cpp | 15 +++++++-------- src/plugins/coreplugin/locator/locatorwidget.cpp | 3 +-- 4 files changed, 14 insertions(+), 11 deletions(-) diff --git a/src/plugins/coreplugin/dialogs/externaltoolconfig.cpp b/src/plugins/coreplugin/dialogs/externaltoolconfig.cpp index abd87ef73b5..467f4b78ee9 100644 --- a/src/plugins/coreplugin/dialogs/externaltoolconfig.cpp +++ b/src/plugins/coreplugin/dialogs/externaltoolconfig.cpp @@ -49,6 +49,7 @@ #include #include #include +#include #include using namespace Utils; @@ -644,7 +645,7 @@ static QString getUserFilePath(const QString &proposalFileName) if (++count > 15) return QString(); // add random number - const int number = qrand() % 1000; + const int number = QRandomGenerator().generate() % 1000; tryPath = newFilePath + QString::number(number) + suffix; } return tryPath; diff --git a/src/plugins/coreplugin/dialogs/settingsdialog.h b/src/plugins/coreplugin/dialogs/settingsdialog.h index fce450d8dd6..2f74b9c8ae3 100644 --- a/src/plugins/coreplugin/dialogs/settingsdialog.h +++ b/src/plugins/coreplugin/dialogs/settingsdialog.h @@ -27,6 +27,10 @@ #include +QT_BEGIN_NAMESPACE +class QWidget; +QT_END_NAMESPACE + namespace Core { namespace Internal { diff --git a/src/plugins/coreplugin/locator/javascriptfilter.cpp b/src/plugins/coreplugin/locator/javascriptfilter.cpp index b1f7f7719fa..245ddb61e20 100644 --- a/src/plugins/coreplugin/locator/javascriptfilter.cpp +++ b/src/plugins/coreplugin/locator/javascriptfilter.cpp @@ -32,11 +32,7 @@ namespace Core { namespace Internal { -enum JavaScriptAction -{ - ResetEngine = QVariant::UserType + 1, - AbortEngine -}; +enum class EngineAction { Reset, Abort }; JavaScriptFilter::JavaScriptFilter() { @@ -75,12 +71,12 @@ QList JavaScriptFilter::matchesFor( QList entries; if (entry.trimmed().isEmpty()) { - entries.append({this, tr("Reset Engine"), QVariant(ResetEngine, nullptr)}); + entries.append({this, tr("Reset Engine"), QVariant::fromValue(EngineAction::Reset)}); } else { const QString result = m_engine->evaluate(entry).toString(); if (m_aborted) { const QString message = entry + " = " + tr("Engine aborted after timeout."); - entries.append({this, message, QVariant(AbortEngine, nullptr)}); + entries.append({this, message, QVariant::fromValue(EngineAction::Abort)}); } else { const QString expression = entry + " = " + result; entries.append({this, expression, QVariant()}); @@ -102,7 +98,8 @@ void JavaScriptFilter::accept(Core::LocatorFilterEntry selection, QString *newTe if (selection.internalData.isNull()) return; - if (selection.internalData.userType() == ResetEngine) { + if (selection.internalData.canConvert() + && selection.internalData.value() == EngineAction::Reset) { m_engine.reset(); return; } @@ -148,3 +145,5 @@ void JavaScriptFilter::setupEngine() } // namespace Internal } // namespace Core + +Q_DECLARE_METATYPE(Core::Internal::EngineAction) diff --git a/src/plugins/coreplugin/locator/locatorwidget.cpp b/src/plugins/coreplugin/locator/locatorwidget.cpp index df44567207c..14d24f79963 100644 --- a/src/plugins/coreplugin/locator/locatorwidget.cpp +++ b/src/plugins/coreplugin/locator/locatorwidget.cpp @@ -279,8 +279,7 @@ void CompletionList::setModel(QAbstractItemModel *newModel) { const auto updateSize = [this] { if (model() && model()->rowCount() > 0) { - const QStyleOptionViewItem &option = viewOptions(); - const QSize shint = itemDelegate()->sizeHint(option, model()->index(0, 0)); + const QSize shint = sizeHintForIndex(model()->index(0, 0)); setFixedHeight(shint.height() * 17 + frameWidth() * 2); disconnect(m_updateSizeConnection); }