Designer: Update C++ code model on an object name change in designer

We try to locate the old symbol name in the generated ui header and
rename the symbol in the background.

Task-number: QTCREATORBUG-1179
Change-Id: Iaf68e3922cd728cbc87d0dc97125e34b8bdaa6be
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: David Schulz <david.schulz@qt.io>
This commit is contained in:
Christian Kandeler
2023-01-16 17:03:26 +01:00
parent b4b2600715
commit 0d909c353c
36 changed files with 470 additions and 63 deletions

View File

@@ -6,6 +6,7 @@
#include "abstracteditorsupport.h"
#include "baseeditordocumentprocessor.h"
#include "compileroptionsbuilder.h"
#include "cppcanonicalsymbol.h"
#include "cppcodemodelinspectordumper.h"
#include "cppcodemodelsettings.h"
#include "cppcurrentdocumentfilter.h"
@@ -325,9 +326,9 @@ void CppModelManager::startLocalRenaming(const CursorInEditor &data,
}
void CppModelManager::globalRename(const CursorInEditor &data, const QString &replacement,
Backend backend)
const std::function<void()> &callback, Backend backend)
{
instance()->modelManagerSupport(backend)->globalRename(data, replacement);
instance()->modelManagerSupport(backend)->globalRename(data, replacement, callback);
}
void CppModelManager::findUsages(const CursorInEditor &data, Backend backend)
@@ -1170,10 +1171,21 @@ void CppModelManager::findUsages(Symbol *symbol, const LookupContext &context)
void CppModelManager::renameUsages(Symbol *symbol,
const LookupContext &context,
const QString &replacement)
const QString &replacement,
const std::function<void()> &callback)
{
if (symbol->identifier())
d->m_findReferences->renameUsages(symbol, context, replacement);
d->m_findReferences->renameUsages(symbol, context, replacement, callback);
}
void CppModelManager::renameUsages(const Document::Ptr &doc, const QTextCursor &cursor,
const Snapshot &snapshot, const QString &replacement,
const std::function<void ()> &callback)
{
Internal::CanonicalSymbol cs(doc, snapshot);
CPlusPlus::Symbol *canonicalSymbol = cs(cursor);
if (canonicalSymbol)
renameUsages(canonicalSymbol, cs.context(), replacement, callback);
}
void CppModelManager::findMacroUsages(const CPlusPlus::Macro &macro)