OSDN Git Service

Show a warning message when using global renaming.
authorRoberto Raggi <roberto.raggi@nokia.com>
Tue, 6 Oct 2009 14:00:32 +0000 (16:00 +0200)
committerRoberto Raggi <roberto.raggi@nokia.com>
Tue, 6 Oct 2009 14:00:55 +0000 (16:00 +0200)
src/plugins/cppeditor/cppeditor.cpp
src/plugins/cppeditor/cppeditor.h
src/plugins/cpptools/cppfindreferences.cpp
src/plugins/find/searchresultwindow.cpp
src/plugins/find/searchresultwindow.h

index d8ebf6a..d048f6d 100644 (file)
@@ -869,6 +869,16 @@ void CPPEditor::findUsages()
 
 void CPPEditor::renameUsages()
 {
+    Core::EditorManager::instance()->showEditorInfoBar(QLatin1String("CppEditor.Rename"),
+                                                       tr("This change cannot be undone."),
+                                                       tr("Yes, I know what I am doing."),
+                                                       this, SLOT(renameUsagesNow()));
+}
+
+void CPPEditor::renameUsagesNow()
+{
+    Core::EditorManager::instance()->hideEditorInfoBar(QLatin1String("CppEditor.Rename"));
+
     m_currentRenameSelection = -1;
 
     QList<QTextEdit::ExtraSelection> selections;
index dfba054..b15e7d7 100644 (file)
@@ -192,6 +192,7 @@ public Q_SLOTS:
     void renameSymbolUnderCursor();
     void renameUsages();
     void findUsages();
+    void renameUsagesNow();
 
     void moveToPreviousToken();
     void moveToNextToken();
index 8faca99..a5fd9c7 100644 (file)
@@ -58,7 +58,7 @@
 #include <QtCore/QTime>
 #include <QtCore/QtConcurrentRun>
 #include <QtCore/QDir>
-
+#include <QtGui/QApplication>
 #include <qtconcurrent/runextensions.h>
 
 using namespace CppTools::Internal;
@@ -545,15 +545,20 @@ void CppFindReferences::findUsages(Symbol *symbol)
 
 void CppFindReferences::renameUsages(Symbol *symbol)
 {
-    Find::SearchResult *search = _resultWindow->startNewSearch(Find::SearchResultWindow::SearchAndReplace);
+    if (Identifier *id = symbol->identifier()) {
+        const QString textToReplace = QString::fromUtf8(id->chars(), id->size());
 
-    connect(search, SIGNAL(activated(Find::SearchResultItem)),
-            this, SLOT(openEditor(Find::SearchResultItem)));
+        Find::SearchResult *search = _resultWindow->startNewSearch(Find::SearchResultWindow::SearchAndReplace);
+        _resultWindow->setTextToReplace(textToReplace);
 
-    connect(search, SIGNAL(replaceButtonClicked(QString,QList<Find::SearchResultItem>)),
-            SLOT(onReplaceButtonClicked(QString,QList<Find::SearchResultItem>)));
+        connect(search, SIGNAL(activated(Find::SearchResultItem)),
+                this, SLOT(openEditor(Find::SearchResultItem)));
 
-    findAll_helper(symbol);
+        connect(search, SIGNAL(replaceButtonClicked(QString,QList<Find::SearchResultItem>)),
+                SLOT(onReplaceButtonClicked(QString,QList<Find::SearchResultItem>)));
+
+        findAll_helper(symbol);
+    }
 }
 
 void CppFindReferences::findAll_helper(Symbol *symbol)
@@ -651,6 +656,7 @@ void CppFindReferences::onReplaceButtonClicked(const QString &text,
 
     const QStringList fileNames = changes.keys();
     _modelManager->updateSourceFiles(fileNames);
+    _resultWindow->hide();
 }
 
 void CppFindReferences::displayResult(int index)
index 2f846cd..a995dfc 100644 (file)
@@ -104,6 +104,17 @@ SearchResultWindow::~SearchResultWindow()
     m_items.clear();
 }
 
+void SearchResultWindow::setTextToReplace(const QString &textToReplace)
+{
+    m_replaceTextEdit->setText(textToReplace);
+    m_replaceTextEdit->selectAll();
+}
+
+QString SearchResultWindow::textToReplace() const
+{
+    return m_replaceTextEdit->text();
+}
+
 void SearchResultWindow::setShowReplaceUI(bool show)
 {
     m_searchResultTreeView->model()->setShowReplaceUI(show);
@@ -169,6 +180,7 @@ SearchResult *SearchResultWindow::startNewSearch(SearchMode searchOrSearchAndRep
 void SearchResultWindow::clearContents()
 {
     setReplaceUIEnabled(false);
+    m_replaceTextEdit->clear();
     m_searchResultTreeView->clear();
     m_items.clear();
     m_widget->setCurrentWidget(m_searchResultTreeView);
index 093eb26..c41ca34 100644 (file)
@@ -106,6 +106,9 @@ public:
     void setShowReplaceUI(bool show);
     bool isShowingReplaceUI() const;
 
+    void setTextToReplace(const QString &textToReplace);
+    QString textToReplace() const;
+
     // search result object only lives till next startnewsearch call
     SearchResult *startNewSearch(SearchMode searchOrSearchAndReplace = SearchOnly);