diff --git a/src/plugins/qt4projectmanager/qmakestep.cpp b/src/plugins/qt4projectmanager/qmakestep.cpp index 3890c04b9c2..355c3386fec 100644 --- a/src/plugins/qt4projectmanager/qmakestep.cpp +++ b/src/plugins/qt4projectmanager/qmakestep.cpp @@ -49,6 +49,7 @@ #include #include +#include #include #include #include @@ -417,18 +418,14 @@ void QMakeStep::setLinkQmlDebuggingLibrary(bool enable) qt4BuildConfiguration()->emitQMakeBuildConfigurationChanged(); qt4BuildConfiguration()->emitProFileEvaluateNeeded(); - int button = QMessageBox::question(QApplication::activeWindow(), tr("QML Debugging"), - tr("The option will only take effect if the project is recompiled. Do you want to recompile now?"), - QMessageBox::Yes, QMessageBox::No); - - if (button == QMessageBox::Yes) { - Qt4BuildConfiguration *bc = qt4BuildConfiguration(); - - QList stepLists; - stepLists << bc->stepList(ProjectExplorer::Constants::BUILDSTEPS_CLEAN); - stepLists << bc->stepList(ProjectExplorer::Constants::BUILDSTEPS_BUILD); - ProjectExplorerPlugin::instance()->buildManager()->buildLists(stepLists); - } + Core::ICore * const core = Core::ICore::instance(); + QMessageBox *question = new QMessageBox(core->mainWindow()); + question->setWindowTitle(tr("QML Debugging")); + question->setText(tr("The option will only take effect if the project is recompiled. Do you want to recompile now?")); + question->setStandardButtons(QMessageBox::Yes | QMessageBox::No); + question->setModal(true); + connect(question, SIGNAL(finished(int)), this, SLOT(recompileMessageBoxFinished(int))); + question->show(); } QStringList QMakeStep::parserArguments() @@ -491,6 +488,20 @@ bool QMakeStep::fromMap(const QVariantMap &map) return BuildStep::fromMap(map); } +void QMakeStep::recompileMessageBoxFinished(int button) +{ + if (button == QMessageBox::Yes) { + Qt4BuildConfiguration *bc = qt4BuildConfiguration(); + if (!bc) + return; + + QList stepLists; + stepLists << bc->stepList(ProjectExplorer::Constants::BUILDSTEPS_CLEAN); + stepLists << bc->stepList(ProjectExplorer::Constants::BUILDSTEPS_BUILD); + ProjectExplorerPlugin::instance()->buildManager()->buildLists(stepLists); + } +} + //// // QMakeStepConfigWidget //// diff --git a/src/plugins/qt4projectmanager/qmakestep.h b/src/plugins/qt4projectmanager/qmakestep.h index 2dfd631310b..28a30434b6e 100644 --- a/src/plugins/qt4projectmanager/qmakestep.h +++ b/src/plugins/qt4projectmanager/qmakestep.h @@ -115,6 +115,9 @@ signals: void userArgumentsChanged(); void linkQmlDebuggingLibraryChanged(); +private slots: + void recompileMessageBoxFinished(int button); + protected: QMakeStep(ProjectExplorer::BuildStepList *parent, QMakeStep *source); QMakeStep(ProjectExplorer::BuildStepList *parent, const QString &id);