forked from qt-creator/qt-creator
Convert macros from plain QByteArray to a vector of structs
The old code model expected the macros as C++ formatted text
("#define Foo 42) but newer targets like the Clang codemodel expect key
value arguments like "-DFoo=42". So instead of parsing the text again and
again we use an abstract data description.
Task-number: QTCREATORBUG-17915
Change-Id: I0179fd13c48a581e91ee79bba9d42d501c26f19f
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
This commit is contained in:
@@ -607,13 +607,13 @@ class FindMacroUsesInFile: public std::unary_function<QString, QList<Usage> >
|
||||
{
|
||||
const WorkingCopy workingCopy;
|
||||
const Snapshot snapshot;
|
||||
const Macro ¯o;
|
||||
const CPlusPlus::Macro ¯o;
|
||||
QFutureInterface<Usage> *future;
|
||||
|
||||
public:
|
||||
FindMacroUsesInFile(const WorkingCopy &workingCopy,
|
||||
const Snapshot snapshot,
|
||||
const Macro ¯o,
|
||||
const CPlusPlus::Macro ¯o,
|
||||
QFutureInterface<Usage> *future)
|
||||
: workingCopy(workingCopy), snapshot(snapshot), macro(macro), future(future)
|
||||
{ }
|
||||
@@ -632,7 +632,7 @@ restart_search:
|
||||
|
||||
usages.clear();
|
||||
foreach (const Document::MacroUse &use, doc->macroUses()) {
|
||||
const Macro &useMacro = use.macro();
|
||||
const CPlusPlus::Macro &useMacro = use.macro();
|
||||
|
||||
if (useMacro.fileName() == macro.fileName()) { // Check if this is a match, but possibly against an outdated document.
|
||||
if (source.isEmpty())
|
||||
@@ -687,7 +687,7 @@ restart_search:
|
||||
static void findMacroUses_helper(QFutureInterface<Usage> &future,
|
||||
const WorkingCopy workingCopy,
|
||||
const Snapshot snapshot,
|
||||
const Macro macro)
|
||||
const CPlusPlus::Macro macro)
|
||||
{
|
||||
const Utils::FileName sourceFile = Utils::FileName::fromString(macro.fileName());
|
||||
Utils::FileNameList files{sourceFile};
|
||||
@@ -704,12 +704,13 @@ static void findMacroUses_helper(QFutureInterface<Usage> &future,
|
||||
future.setProgressValue(files.size());
|
||||
}
|
||||
|
||||
void CppFindReferences::findMacroUses(const Macro ¯o)
|
||||
void CppFindReferences::findMacroUses(const CPlusPlus::Macro ¯o)
|
||||
{
|
||||
findMacroUses(macro, QString(), false);
|
||||
}
|
||||
|
||||
void CppFindReferences::findMacroUses(const Macro ¯o, const QString &replacement, bool replace)
|
||||
void CppFindReferences::findMacroUses(const CPlusPlus::Macro ¯o, const QString &replacement,
|
||||
bool replace)
|
||||
{
|
||||
SearchResult *search = SearchResultWindow::instance()->startNewSearch(
|
||||
tr("C++ Macro Usages:"),
|
||||
@@ -753,7 +754,7 @@ void CppFindReferences::findMacroUses(const Macro ¯o, const QString &replace
|
||||
connect(progress, &FutureProgress::clicked, search, &SearchResult::popup);
|
||||
}
|
||||
|
||||
void CppFindReferences::renameMacroUses(const Macro ¯o, const QString &replacement)
|
||||
void CppFindReferences::renameMacroUses(const CPlusPlus::Macro ¯o, const QString &replacement)
|
||||
{
|
||||
const QString textToReplace = replacement.isEmpty() ? macro.nameToQString() : replacement;
|
||||
findMacroUses(macro, textToReplace, true);
|
||||
|
||||
Reference in New Issue
Block a user