OSDN Git Service

Actually delete CONFIG+=declarative from list of user arguments
[qt-creator-jp/qt-creator-jp.git] / src / plugins / qt4projectmanager / qt4buildconfiguration.cpp
index 96dc194..9d172ac 100644 (file)
@@ -188,6 +188,8 @@ void Qt4BuildConfiguration::ctor()
             this, SLOT(emitBuildDirectoryChanged()));
     connect(this, SIGNAL(environmentChanged()),
             this, SLOT(emitProFileEvaluateNeeded()));
+    connect(qt4Target()->qt4Project(), SIGNAL(proFileUpdated(Qt4ProjectManager::Qt4ProFileNode*,bool,bool)),
+            this, SLOT(proFileUpdated()));
 
     QtSupport::QtVersionManager *vm = QtSupport::QtVersionManager::instance();
     connect(vm, SIGNAL(qtVersionsChanged(QList<int>)),
@@ -202,6 +204,14 @@ void Qt4BuildConfiguration::emitBuildDirectoryChanged()
     }
 }
 
+void Qt4BuildConfiguration::proFileUpdated()
+{
+    // Changing the included Qt modules from 0 to at least one might have caused the
+    // tool chain to become invalid.
+    if (!qt4Target()->possibleToolChains(this).contains(toolChain()))
+        setToolChain(qt4Target()->preferredToolChain(this));
+}
+
 Qt4BaseTarget *Qt4BuildConfiguration::qt4Target() const
 {
     return static_cast<Qt4BaseTarget *>(target());
@@ -368,6 +378,9 @@ void Qt4BuildConfiguration::setToolChain(ProjectExplorer::ToolChain *tc)
     if (tc != 0 && !qt4Target()->possibleToolChains(this).contains(tc))
         return;
 
+    if (toolChain() == tc)
+        return;
+
     BuildConfiguration::setToolChain(tc);
 
     emit proFileEvaluateNeeded(this);
@@ -538,6 +551,7 @@ bool Qt4BuildConfiguration::removeQMLInspectorFromArguments(QString *args)
         const QString arg = ait.value();
         if (arg.contains(QLatin1String(Constants::QMAKEVAR_QMLJSDEBUGGER_PATH))
                 || arg.contains(Constants::QMAKEVAR_DECLARATIVE_DEBUG)) {
+            ait.deleteArg();
             removedArgument = true;
         }
     }