summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJarek Kobus <jaroslaw.kobus@qt.io>2023-03-21 00:07:22 +0100
committerJarek Kobus <jaroslaw.kobus@qt.io>2023-04-05 05:33:57 +0000
commita22e3acf2841632bcca5fccdbb7718543deb5079 (patch)
treec90d21c7739d5c7cdffdfc22fbffc2db25193d32 /src
parent79c8e60a220b998cac3e60a50d0c5e2cd92e03be (diff)
downloadqt-creator-a22e3acf2841632bcca5fccdbb7718543deb5079.tar.gz
LocatorFilterEntry: Discourage the use of internalData
Drop internalData from c'tor. The internalData is going to be removed, soon. Drop also the icon arg from c'tor since LocatorFilterEntry instances are usually created in non-main thread, while operating on QIcon instances isn't really safe in non-main thread. The use of QIcon inside this struct is a subject to change in the future, in a way like it was done in other parts of code that generated icons from non-main thread. Change-Id: Ic6aa719a64e5fbd65883c54149796057c632780e Reviewed-by: David Schulz <david.schulz@qt.io> Reviewed-by: <github-actions-qt-creator@cristianadam.eu> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Diffstat (limited to 'src')
-rw-r--r--src/plugins/bookmarks/bookmarkfilter.cpp4
-rw-r--r--src/plugins/coreplugin/actionsfilter.cpp14
-rw-r--r--src/plugins/coreplugin/locator/commandlocator.cpp3
-rw-r--r--src/plugins/coreplugin/locator/externaltoolsfilter.cpp5
-rw-r--r--src/plugins/coreplugin/locator/ilocatorfilter.h9
-rw-r--r--src/plugins/coreplugin/locator/javascriptfilter.cpp16
-rw-r--r--src/plugins/coreplugin/locator/locatorfiltersfilter.cpp7
-rw-r--r--src/plugins/cppeditor/cppcurrentdocumentfilter.cpp3
-rw-r--r--src/plugins/cppeditor/cpplocatorfilter.cpp9
-rw-r--r--src/plugins/help/helpindexfilter.cpp3
-rw-r--r--src/plugins/macros/macrolocatorfilter.cpp3
-rw-r--r--src/plugins/texteditor/linenumberfilter.cpp4
12 files changed, 49 insertions, 31 deletions
diff --git a/src/plugins/bookmarks/bookmarkfilter.cpp b/src/plugins/bookmarks/bookmarkfilter.cpp
index d659885a54..2fad930d37 100644
--- a/src/plugins/bookmarks/bookmarkfilter.cpp
+++ b/src/plugins/bookmarks/bookmarkfilter.cpp
@@ -59,8 +59,8 @@ void BookmarkFilter::prepareSearch(const QString &entry)
const Bookmark *bookmark = m_manager->bookmarkForIndex(idx);
const QString filename = bookmark->filePath().fileName();
LocatorFilterEntry filterEntry(this,
- QString("%1:%2").arg(filename).arg(bookmark->lineNumber()),
- QVariant::fromValue(idx));
+ QString("%1:%2").arg(filename).arg(bookmark->lineNumber()));
+ filterEntry.internalData = QVariant::fromValue(idx);
if (!bookmark->note().isEmpty())
filterEntry.extraInfo = bookmark->note();
else if (!bookmark->lineText().isEmpty())
diff --git a/src/plugins/coreplugin/actionsfilter.cpp b/src/plugins/coreplugin/actionsfilter.cpp
index 00c1be83e5..9aaf5a1db7 100644
--- a/src/plugins/coreplugin/actionsfilter.cpp
+++ b/src/plugins/coreplugin/actionsfilter.cpp
@@ -215,7 +215,9 @@ void ActionsFilter::collectEntriesForAction(QAction *action,
}
} else if (!text.isEmpty()) {
const ActionFilterEntryData data{action, {}};
- LocatorFilterEntry filterEntry(this, text, QVariant::fromValue(data), action->icon());
+ LocatorFilterEntry filterEntry(this, text);
+ filterEntry.internalData = QVariant::fromValue(data);
+ filterEntry.displayIcon = action->icon();
filterEntry.extraInfo = path.join(" > ");
updateEntry(action, filterEntry);
}
@@ -241,8 +243,10 @@ void ActionsFilter::collectEntriesForCommands()
const QString identifier = command->id().toString();
const QStringList path = identifier.split(QLatin1Char('.'));
- const ActionFilterEntryData data{action, command->id()};
- LocatorFilterEntry filterEntry(this, text, QVariant::fromValue(data), action->icon());
+ const ActionFilterEntryData data{};
+ LocatorFilterEntry filterEntry(this, text);
+ filterEntry.internalData = QVariant::fromValue(ActionFilterEntryData{action, command->id()});
+ filterEntry.displayIcon = action->icon();
filterEntry.displayExtra = command->keySequence().toString(QKeySequence::NativeText);
if (path.size() >= 2)
filterEntry.extraInfo = path.mid(0, path.size() - 1).join(" > ");
@@ -260,7 +264,9 @@ void ActionsFilter::collectEntriesForLastTriggered()
if (!data.action || !m_enabledActions.contains(data.action))
continue;
const QString text = actionText(data.action);
- LocatorFilterEntry filterEntry(this, text, QVariant::fromValue(data), data.action->icon());
+ LocatorFilterEntry filterEntry(this, text);
+ filterEntry.internalData = QVariant::fromValue(data);
+ filterEntry.displayIcon = data.action->icon();
updateEntry(data.action, filterEntry);
}
}
diff --git a/src/plugins/coreplugin/locator/commandlocator.cpp b/src/plugins/coreplugin/locator/commandlocator.cpp
index de2989bc17..387cae9fef 100644
--- a/src/plugins/coreplugin/locator/commandlocator.cpp
+++ b/src/plugins/coreplugin/locator/commandlocator.cpp
@@ -77,7 +77,8 @@ QList<LocatorFilterEntry> CommandLocator::matchesFor(QFutureInterface<LocatorFil
const QString text = Utils::stripAccelerator(pair.second);
const int index = text.indexOf(entry, 0, entryCaseSensitivity);
if (index >= 0) {
- LocatorFilterEntry filterEntry(this, text, QVariant(pair.first));
+ LocatorFilterEntry filterEntry(this, text);
+ filterEntry.internalData = QVariant(pair.first);
filterEntry.highlightInfo = {index, int(entry.length())};
if (index == 0)
diff --git a/src/plugins/coreplugin/locator/externaltoolsfilter.cpp b/src/plugins/coreplugin/locator/externaltoolsfilter.cpp
index 96ce58e20b..7828cc1372 100644
--- a/src/plugins/coreplugin/locator/externaltoolsfilter.cpp
+++ b/src/plugins/coreplugin/locator/externaltoolsfilter.cpp
@@ -66,7 +66,8 @@ void ExternalToolsFilter::prepareSearch(const QString &entry)
}
if (index >= 0) {
- LocatorFilterEntry filterEntry(this, tool->displayName(), QVariant::fromValue(tool));
+ LocatorFilterEntry filterEntry(this, tool->displayName());
+ filterEntry.internalData = QVariant::fromValue(tool);
filterEntry.extraInfo = tool->description();
filterEntry.highlightInfo = LocatorFilterEntry::HighlightInfo(index, entry.length(), hDataType);
@@ -78,7 +79,7 @@ void ExternalToolsFilter::prepareSearch(const QString &entry)
goodEntries.append(filterEntry);
}
}
- LocatorFilterEntry configEntry(this, "Configure External Tool...", {});
+ LocatorFilterEntry configEntry(this, "Configure External Tool...");
configEntry.extraInfo = "Opens External Tool settings";
m_results = {};
m_results << bestEntries << betterEntries << goodEntries << configEntry;
diff --git a/src/plugins/coreplugin/locator/ilocatorfilter.h b/src/plugins/coreplugin/locator/ilocatorfilter.h
index a8e30029d6..ca7a0dff76 100644
--- a/src/plugins/coreplugin/locator/ilocatorfilter.h
+++ b/src/plugins/coreplugin/locator/ilocatorfilter.h
@@ -72,14 +72,9 @@ public:
LocatorFilterEntry() = default;
- LocatorFilterEntry(ILocatorFilter *fromFilter,
- const QString &name,
- const QVariant &data = {},
- std::optional<QIcon> icon = std::nullopt)
+ LocatorFilterEntry(ILocatorFilter *fromFilter, const QString &name)
: filter(fromFilter)
, displayName(name)
- , internalData(data)
- , displayIcon(icon)
{}
/* backpointer to creating filter */
@@ -93,7 +88,7 @@ public:
/* additional tooltip */
QString toolTip;
/* can be used by the filter to save more information about the entry */
- QVariant internalData;
+ QVariant internalData; // DON'T USE IN NEW CODE, IT'S GOING TO BE REMOVED, SOON...
/* icon to display along with the entry */
std::optional<QIcon> displayIcon;
/* file path, if the entry is related to a file, is used e.g. for resolving a file icon */
diff --git a/src/plugins/coreplugin/locator/javascriptfilter.cpp b/src/plugins/coreplugin/locator/javascriptfilter.cpp
index b97b054051..37803abbaa 100644
--- a/src/plugins/coreplugin/locator/javascriptfilter.cpp
+++ b/src/plugins/coreplugin/locator/javascriptfilter.cpp
@@ -52,17 +52,25 @@ QList<LocatorFilterEntry> JavaScriptFilter::matchesFor(
QList<LocatorFilterEntry> entries;
if (entry.trimmed().isEmpty()) {
- entries.append({this, Tr::tr("Reset Engine"), QVariant::fromValue(EngineAction::Reset)});
+ LocatorFilterEntry entry{this, Tr::tr("Reset Engine")};
+ entry.internalData = QVariant::fromValue(EngineAction::Reset);
+ entries.append(entry);
} else {
const QString result = m_engine->evaluate(entry).toString();
if (m_aborted) {
const QString message = entry + " = " + Tr::tr("Engine aborted after timeout.");
- entries.append({this, message, QVariant::fromValue(EngineAction::Abort)});
+ LocatorFilterEntry entry(this, message);
+ entry.internalData = QVariant::fromValue(EngineAction::Abort);
+ entries.append(entry);
} else {
const QString expression = entry + " = " + result;
entries.append({this, expression});
- entries.append({this, Tr::tr("Copy to clipboard: %1").arg(result), result});
- entries.append({this, Tr::tr("Copy to clipboard: %1").arg(expression), expression});
+ LocatorFilterEntry resultEntry(this, Tr::tr("Copy to clipboard: %1").arg(result));
+ resultEntry.internalData = result;
+ entries.append(resultEntry);
+ LocatorFilterEntry expressionEntry(this, Tr::tr("Copy to clipboard: %1").arg(expression));
+ resultEntry.internalData = expression;
+ entries.append(expressionEntry);
}
}
diff --git a/src/plugins/coreplugin/locator/locatorfiltersfilter.cpp b/src/plugins/coreplugin/locator/locatorfiltersfilter.cpp
index 800c9171db..b8cd9ef300 100644
--- a/src/plugins/coreplugin/locator/locatorfiltersfilter.cpp
+++ b/src/plugins/coreplugin/locator/locatorfiltersfilter.cpp
@@ -60,10 +60,9 @@ QList<LocatorFilterEntry> LocatorFiltersFilter::matchesFor(QFutureInterface<Loca
for (int i = 0; i < m_filterShortcutStrings.size(); ++i) {
if (future.isCanceled())
break;
- LocatorFilterEntry filterEntry(this,
- m_filterShortcutStrings.at(i),
- i,
- m_icon);
+ LocatorFilterEntry filterEntry(this, m_filterShortcutStrings.at(i));
+ filterEntry.internalData = i;
+ filterEntry.displayIcon = m_icon;
filterEntry.extraInfo = m_filterDisplayNames.at(i);
filterEntry.toolTip = m_filterDescriptions.at(i);
filterEntry.displayExtra = m_filterKeyboardShortcuts.at(i);
diff --git a/src/plugins/cppeditor/cppcurrentdocumentfilter.cpp b/src/plugins/cppeditor/cppcurrentdocumentfilter.cpp
index 6c6a568fac..838160e918 100644
--- a/src/plugins/cppeditor/cppcurrentdocumentfilter.cpp
+++ b/src/plugins/cppeditor/cppcurrentdocumentfilter.cpp
@@ -87,7 +87,8 @@ QList<LocatorFilterEntry> CppCurrentDocumentFilter::matchesFor(
}
}
- LocatorFilterEntry filterEntry(this, name, {}, info->icon());
+ LocatorFilterEntry filterEntry(this, name);
+ filterEntry.displayIcon = info->icon();
filterEntry.linkForEditor = {info->filePath(), info->line(), info->column()};
filterEntry.extraInfo = extraInfo;
if (match.hasMatch()) {
diff --git a/src/plugins/cppeditor/cpplocatorfilter.cpp b/src/plugins/cppeditor/cpplocatorfilter.cpp
index c74fc73d50..541acb0515 100644
--- a/src/plugins/cppeditor/cpplocatorfilter.cpp
+++ b/src/plugins/cppeditor/cpplocatorfilter.cpp
@@ -25,7 +25,8 @@ CppLocatorFilter::CppLocatorFilter()
LocatorFilterEntry CppLocatorFilter::filterEntryFromIndexItem(IndexItem::Ptr info)
{
- LocatorFilterEntry filterEntry(this, info->scopedSymbolName(), {}, info->icon());
+ LocatorFilterEntry filterEntry(this, info->scopedSymbolName());
+ filterEntry.displayIcon = info->icon();
filterEntry.linkForEditor = {info->filePath(), info->line(), info->column()};
if (info->type() == IndexItem::Class || info->type() == IndexItem::Enum)
filterEntry.extraInfo = info->shortNativeFilePath();
@@ -120,7 +121,8 @@ CppClassesFilter::CppClassesFilter()
LocatorFilterEntry CppClassesFilter::filterEntryFromIndexItem(IndexItem::Ptr info)
{
- LocatorFilterEntry filterEntry(this, info->symbolName(), {}, info->icon());
+ LocatorFilterEntry filterEntry(this, info->symbolName());
+ filterEntry.displayIcon = info->icon();
filterEntry.linkForEditor = {info->filePath(), info->line(), info->column()};
filterEntry.extraInfo = info->symbolScope().isEmpty()
? info->shortNativeFilePath()
@@ -148,7 +150,8 @@ LocatorFilterEntry CppFunctionsFilter::filterEntryFromIndexItem(IndexItem::Ptr i
extraInfo.append(" (" + info->filePath().fileName() + ')');
}
- LocatorFilterEntry filterEntry(this, name + info->symbolType(), {}, info->icon());
+ LocatorFilterEntry filterEntry(this, name + info->symbolType());
+ filterEntry.displayIcon = info->icon();
filterEntry.linkForEditor = {info->filePath(), info->line(), info->column()};
filterEntry.extraInfo = extraInfo;
diff --git a/src/plugins/help/helpindexfilter.cpp b/src/plugins/help/helpindexfilter.cpp
index 63578ef944..9c2c7ada44 100644
--- a/src/plugins/help/helpindexfilter.cpp
+++ b/src/plugins/help/helpindexfilter.cpp
@@ -78,7 +78,8 @@ QList<LocatorFilterEntry> HelpIndexFilter::matchesFor(QFutureInterface<LocatorFi
QList<LocatorFilterEntry> entries;
for (const QString &keyword : std::as_const(m_lastIndicesCache)) {
const int index = keyword.indexOf(entry, 0, cs);
- LocatorFilterEntry filterEntry(this, keyword, {}, m_icon);
+ LocatorFilterEntry filterEntry(this, keyword);
+ filterEntry.displayIcon = m_icon;
filterEntry.highlightInfo = {index, int(entry.length())};
entries.append(filterEntry);
}
diff --git a/src/plugins/macros/macrolocatorfilter.cpp b/src/plugins/macros/macrolocatorfilter.cpp
index 43a9a48945..5749b187ee 100644
--- a/src/plugins/macros/macrolocatorfilter.cpp
+++ b/src/plugins/macros/macrolocatorfilter.cpp
@@ -50,7 +50,8 @@ QList<Core::LocatorFilterEntry> MacroLocatorFilter::matchesFor(QFutureInterface<
}
if (index >= 0) {
- Core::LocatorFilterEntry filterEntry(this, displayName, {}, m_icon);
+ Core::LocatorFilterEntry filterEntry(this, displayName);
+ filterEntry.displayIcon = m_icon;
filterEntry.extraInfo = description;
filterEntry.highlightInfo = Core::LocatorFilterEntry::HighlightInfo(index, entry.length(), hDataType);
diff --git a/src/plugins/texteditor/linenumberfilter.cpp b/src/plugins/texteditor/linenumberfilter.cpp
index 78a65c84d2..83f0adaf92 100644
--- a/src/plugins/texteditor/linenumberfilter.cpp
+++ b/src/plugins/texteditor/linenumberfilter.cpp
@@ -64,7 +64,9 @@ QList<LocatorFilterEntry> LineNumberFilter::matchesFor(QFutureInterface<LocatorF
text = Tr::tr("Line %1").arg(line);
else
text = Tr::tr("Column %1").arg(column);
- value.append(LocatorFilterEntry(this, text, QVariant::fromValue(data)));
+ LocatorFilterEntry entry(this, text);
+ entry.internalData = QVariant::fromValue(data);
+ value.append(entry);
}
return value;
}