From 66a353067dede13587e91fc29d4931cd9b644605 Mon Sep 17 00:00:00 2001
From: Roberto Raggi <roberto.raggi@nokia.com>
Date: Thu, 5 Nov 2009 16:50:24 +0100
Subject: [PATCH] Don't show the warning message (about the dangerous world of
 code refactoring) if the user pressed the "Yes, I know I am doing" button.

---
 src/plugins/cppeditor/cppeditor.cpp | 35 +++++++++++++++++++++++++----
 src/plugins/cppeditor/cppeditor.h   |  3 +++
 2 files changed, 34 insertions(+), 4 deletions(-)

diff --git a/src/plugins/cppeditor/cppeditor.cpp b/src/plugins/cppeditor/cppeditor.cpp
index dcec76f3673..53a471bae0a 100644
--- a/src/plugins/cppeditor/cppeditor.cpp
+++ b/src/plugins/cppeditor/cppeditor.cpp
@@ -81,6 +81,7 @@
 #include <QtCore/QTime>
 #include <QtCore/QTimer>
 #include <QtCore/QStack>
+#include <QtCore/QSettings>
 #include <QtGui/QAction>
 #include <QtGui/QApplication>
 #include <QtGui/QHeaderView>
@@ -765,8 +766,32 @@ void CPPEditor::renameUsages()
     renameUsagesNow();
 }
 
+bool CPPEditor::showWarningMessage() const
+{
+    // Restore settings
+    QSettings *settings = Core::ICore::instance()->settings();
+    settings->beginGroup(QLatin1String("CppEditor"));
+    settings->beginGroup(QLatin1String("Rename"));
+    const bool showWarningMessage = settings->value(QLatin1String("ShowWarningMessage"), true).toBool();
+    settings->endGroup();
+    settings->endGroup();
+    return showWarningMessage;
+}
+
+void CPPEditor::setShowWarningMessage(bool showWarningMessage)
+{
+    // Restore settings
+    QSettings *settings = Core::ICore::instance()->settings();
+    settings->beginGroup(QLatin1String("CppEditor"));
+    settings->beginGroup(QLatin1String("Rename"));
+    settings->setValue(QLatin1String("ShowWarningMessage"), showWarningMessage);
+    settings->endGroup();
+    settings->endGroup();
+}
+
 void CPPEditor::hideRenameNotification()
 {
+    setShowWarningMessage(false);
     Core::EditorManager::instance()->hideEditorInfoBar(QLatin1String("CppEditor.Rename"));
 }
 
@@ -774,10 +799,12 @@ void CPPEditor::renameUsagesNow()
 {
     if (Symbol *canonicalSymbol = markSymbols()) {
         if (canonicalSymbol->identifier() != 0) {
-            Core::EditorManager::instance()->showEditorInfoBar(QLatin1String("CppEditor.Rename"),
-                                                               tr("This change cannot be undone."),
-                                                               tr("Yes, I know what I am doing."),
-                                                               this, SLOT(hideRenameNotification()));
+            if (showWarningMessage()) {
+                Core::EditorManager::instance()->showEditorInfoBar(QLatin1String("CppEditor.Rename"),
+                                                                   tr("This change cannot be undone."),
+                                                                   tr("Yes, I know what I am doing."),
+                                                                   this, SLOT(hideRenameNotification()));
+            }
 
             m_modelManager->renameUsages(canonicalSymbol);
         }
diff --git a/src/plugins/cppeditor/cppeditor.h b/src/plugins/cppeditor/cppeditor.h
index c0c323a93d9..9518e27a21e 100644
--- a/src/plugins/cppeditor/cppeditor.h
+++ b/src/plugins/cppeditor/cppeditor.h
@@ -235,6 +235,9 @@ private Q_SLOTS:
     void updateSemanticInfo(const SemanticInfo &semanticInfo);
 
 private:
+    bool showWarningMessage() const;
+    void setShowWarningMessage(bool showWarningMessage);
+
     CPlusPlus::Symbol *markSymbols();
     bool sortedMethodOverview() const;
     CPlusPlus::Symbol *findDefinition(CPlusPlus::Symbol *symbol);
-- 
GitLab