diff --git a/src/libs/utils/processhandle.cpp b/src/libs/utils/processhandle.cpp index 51e231b957dabdfd8d4ea59cb5b79b847d00118d..d95ecd1a86654a2ef9ba45c2becfa79d8337686c 100644 --- a/src/libs/utils/processhandle.cpp +++ b/src/libs/utils/processhandle.cpp @@ -68,7 +68,7 @@ bool ProcessHandle::equals(const ProcessHandle &rhs) const return m_pid == rhs.m_pid; } -#ifndef Q_OS_MACOS +#ifndef Q_OS_OSX bool ProcessHandle::activate() { return false; diff --git a/src/plugins/android/androidplugin.cpp b/src/plugins/android/androidplugin.cpp index e2636cd45481c72cab2a6dbb94f98633c4e6eb42..c73b73d4835caa8bbcd844aaf1e79674ee82a855 100644 --- a/src/plugins/android/androidplugin.cpp +++ b/src/plugins/android/androidplugin.cpp @@ -74,7 +74,6 @@ bool AndroidPlugin::initialize(const QStringList &arguments, QString *errorMessa RunControl::registerWorker<AndroidRunConfiguration, AndroidRunSupport>(NORMAL_RUN_MODE); RunControl::registerWorker<AndroidRunConfiguration, AndroidDebugSupport>(DEBUG_RUN_MODE); - RunControl::registerWorker<AndroidRunConfiguration, AndroidDebugSupport>(DEBUG_RUN_MODE_WITH_BREAK_ON_MAIN); RunControl::registerWorker<AndroidRunConfiguration, AndroidQmlProfilerSupport>(QML_PROFILER_RUN_MODE); new AndroidConfigurations(this); diff --git a/src/plugins/android/androidrunner.cpp b/src/plugins/android/androidrunner.cpp index 9b9c8578abb3c465d296f4d82aae9efced84c7d2..8dcd1333695baa7c3de52d3f218d26d9a6aa3184 100644 --- a/src/plugins/android/androidrunner.cpp +++ b/src/plugins/android/androidrunner.cpp @@ -280,9 +280,7 @@ AndroidRunnerWorker::AndroidRunnerWorker(RunControl *runControl, const AndroidRu auto runConfig = runControl->runConfiguration(); auto aspect = runConfig->extraAspect<Debugger::DebuggerRunConfigurationAspect>(); Core::Id runMode = runControl->runMode(); - const bool debuggingMode = - (runMode == ProjectExplorer::Constants::DEBUG_RUN_MODE - || runMode == ProjectExplorer::Constants::DEBUG_RUN_MODE_WITH_BREAK_ON_MAIN); + const bool debuggingMode = runMode == ProjectExplorer::Constants::DEBUG_RUN_MODE; m_useCppDebugger = debuggingMode && aspect->useCppDebugger(); if (debuggingMode && aspect->useQmlDebugger()) m_qmlDebugServices = QmlDebug::QmlDebuggerServices; diff --git a/src/plugins/autotest/testrunner.cpp b/src/plugins/autotest/testrunner.cpp index df6ce4206d74c555f9d5bf6b30a9549920a7d73a..7ab479dc0e3438f982d01d51c54ee403b571fda1 100644 --- a/src/plugins/autotest/testrunner.cpp +++ b/src/plugins/autotest/testrunner.cpp @@ -374,13 +374,13 @@ void TestRunner::debugTests() processOutput(outputreader, msg, format); }); - connect(runControl, &ProjectExplorer::RunControl::finished, + connect(runControl, &ProjectExplorer::RunControl::stopped, outputreader, &QObject::deleteLater); } connect(this, &TestRunner::requestStopTestRun, runControl, &ProjectExplorer::RunControl::initiateStop); - connect(runControl, &ProjectExplorer::RunControl::finished, this, &TestRunner::onFinished); + connect(runControl, &ProjectExplorer::RunControl::stopped, this, &TestRunner::onFinished); ProjectExplorer::ProjectExplorerPlugin::startRunControl(runControl); } diff --git a/src/plugins/baremetal/baremetalplugin.cpp b/src/plugins/baremetal/baremetalplugin.cpp index 2e978f72333e4aa7fc4a1a2f5c0d3bdade52891b..77687499c90bd41ad95461ea03d41e00c1510151 100644 --- a/src/plugins/baremetal/baremetalplugin.cpp +++ b/src/plugins/baremetal/baremetalplugin.cpp @@ -80,8 +80,6 @@ bool BareMetalPlugin::initialize(const QStringList &arguments, QString *errorStr (ProjectExplorer::Constants::NORMAL_RUN_MODE, constraint); RunControl::registerWorker<BareMetalDebugSupport> (ProjectExplorer::Constants::DEBUG_RUN_MODE, constraint); - RunControl::registerWorker<BareMetalDebugSupport> - (ProjectExplorer::Constants::DEBUG_RUN_MODE_WITH_BREAK_ON_MAIN, constraint); return true; } diff --git a/src/plugins/coreplugin/dialogs/readonlyfilesdialog.cpp b/src/plugins/coreplugin/dialogs/readonlyfilesdialog.cpp index 5f7ecedd2311a92b23399bccbe87490fd59dc44b..2b7b054a8d0203837a71d7e60c424ce206a5cd80 100644 --- a/src/plugins/coreplugin/dialogs/readonlyfilesdialog.cpp +++ b/src/plugins/coreplugin/dialogs/readonlyfilesdialog.cpp @@ -143,6 +143,7 @@ ReadOnlyFilesDialog::ReadOnlyFilesDialog(const QList<QString> &fileNames, QWidge : QDialog(parent) , d(new ReadOnlyFilesDialogPrivate(this)) { + setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint); d->initDialog(fileNames); } diff --git a/src/plugins/debugger/debuggerplugin.cpp b/src/plugins/debugger/debuggerplugin.cpp index 13e04e39dc91e86335144519a1ddad54a0c746c6..76de12c499fb8db6540cc7bbedf2869ccc7f875f 100644 --- a/src/plugins/debugger/debuggerplugin.cpp +++ b/src/plugins/debugger/debuggerplugin.cpp @@ -813,7 +813,8 @@ public: void handleExecStep() { if (currentEngine()->state() == DebuggerNotReady) { - ProjectExplorerPlugin::runStartupProject(ProjectExplorer::Constants::DEBUG_RUN_MODE_WITH_BREAK_ON_MAIN); + DebuggerRunTool::setBreakOnMainNextTime(); + ProjectExplorerPlugin::runStartupProject(ProjectExplorer::Constants::DEBUG_RUN_MODE); } else { currentEngine()->resetLocation(); if (boolSetting(OperateByInstruction)) @@ -826,7 +827,8 @@ public: void handleExecNext() { if (currentEngine()->state() == DebuggerNotReady) { - ProjectExplorerPlugin::runStartupProject(ProjectExplorer::Constants::DEBUG_RUN_MODE_WITH_BREAK_ON_MAIN); + DebuggerRunTool::setBreakOnMainNextTime(); + ProjectExplorerPlugin::runStartupProject(ProjectExplorer::Constants::DEBUG_RUN_MODE); } else { currentEngine()->resetLocation(); if (boolSetting(OperateByInstruction)) @@ -2079,7 +2081,7 @@ void DebuggerPluginPrivate::attachToUnstartedApplicationDialog() return; if (dlg->hideOnAttach()) - connect(rc, &RunControl::finished, dlg, &UnstartedAppWatcherDialog::startWatching); + connect(rc, &RunControl::stopped, dlg, &UnstartedAppWatcherDialog::startWatching); }); dlg->show(); @@ -2742,19 +2744,16 @@ void DebuggerPluginPrivate::updateDebugActions() // Step into/next: Start and break at 'main' unless a debugger is running. if (m_snapshotHandler->currentIndex() < 0) { - QString toolTip; - const bool canRunAndBreakMain - = ProjectExplorerPlugin::canRunStartupProject(ProjectExplorer::Constants::DEBUG_RUN_MODE_WITH_BREAK_ON_MAIN, &toolTip); - m_stepAction->setEnabled(canRunAndBreakMain); - m_nextAction->setEnabled(canRunAndBreakMain); - if (canRunAndBreakMain) { + m_stepAction->setEnabled(canRun); + m_nextAction->setEnabled(canRun); + if (canRun) { Project *project = SessionManager::startupProject(); QTC_ASSERT(project, return); - toolTip = tr("Start \"%1\" and break at function \"main()\"") - .arg(project->displayName()); + whyNot = tr("Start \"%1\" and break at function \"main()\"") + .arg(project->displayName()); } - m_stepAction->setToolTip(toolTip); - m_nextAction->setToolTip(toolTip); + m_stepAction->setToolTip(whyNot); + m_nextAction->setToolTip(whyNot); } } @@ -3064,8 +3063,6 @@ void DebuggerPluginPrivate::extensionsInitialized() RunControl::registerWorker<DebuggerRunTool> (ProjectExplorer::Constants::DEBUG_RUN_MODE, constraint); - RunControl::registerWorker<DebuggerRunTool> - (ProjectExplorer::Constants::DEBUG_RUN_MODE_WITH_BREAK_ON_MAIN, constraint); } DebuggerEngine *currentEngine() diff --git a/src/plugins/debugger/debuggerruncontrol.cpp b/src/plugins/debugger/debuggerruncontrol.cpp index a6156ec26a0ad27ea92f3b75b59b97d9a8812877..dca0a53e387c00aa563ca16859a2437c56116206 100644 --- a/src/plugins/debugger/debuggerruncontrol.cpp +++ b/src/plugins/debugger/debuggerruncontrol.cpp @@ -73,9 +73,6 @@ enum { debug = 0 }; namespace Debugger { namespace Internal { -const auto DebugRunMode = ProjectExplorer::Constants::DEBUG_RUN_MODE; -const auto DebugRunModeWithBreakOnMain = ProjectExplorer::Constants::DEBUG_RUN_MODE_WITH_BREAK_ON_MAIN; - DebuggerEngine *createCdbEngine(QStringList *error, DebuggerStartMode sm); DebuggerEngine *createGdbEngine(bool useTerminal, DebuggerStartMode sm); DebuggerEngine *createPdbEngine(); @@ -86,6 +83,13 @@ DebuggerEngine *createLldbEngine(); } // namespace Internal +static bool breakOnMainNextTime = false; + +void DebuggerRunTool::setBreakOnMainNextTime() +{ + breakOnMainNextTime = true; +} + static QLatin1String engineTypeName(DebuggerEngineType et) { switch (et) { @@ -272,7 +276,6 @@ static bool fixupParameters(DebuggerRunParameters &rp, RunControl *runControl, Q RunConfiguration *runConfig = runControl->runConfiguration(); if (!runConfig) return false; - Core::Id runMode = runControl->runMode(); const Kit *kit = runConfig->target()->kit(); QTC_ASSERT(kit, return false); @@ -449,8 +452,10 @@ static bool fixupParameters(DebuggerRunParameters &rp, RunControl *runControl, Q if (rp.startMode == NoStartMode) rp.startMode = StartInternal; - if (runMode == DebugRunModeWithBreakOnMain) + if (breakOnMainNextTime) { rp.breakOnMain = true; + breakOnMainNextTime = false; + } return true; } @@ -634,7 +639,7 @@ RunControl *createAndScheduleRun(const DebuggerRunParameters &rp, Kit *kit) { RunConfiguration *runConfig = dummyRunConfigForKit(kit); QTC_ASSERT(runConfig, return nullptr); - auto runControl = new RunControl(runConfig, DebugRunMode); + auto runControl = new RunControl(runConfig, ProjectExplorer::Constants::DEBUG_RUN_MODE); (void) new DebuggerRunTool(runControl, rp); ProjectExplorerPlugin::startRunControl(runControl); return runControl; diff --git a/src/plugins/debugger/debuggerruncontrol.h b/src/plugins/debugger/debuggerruncontrol.h index 71a72f25b32191a49b6b634f7d179aad8e00b0d0..ec5dffaac0e923f050df1d208653df654246c3f8 100644 --- a/src/plugins/debugger/debuggerruncontrol.h +++ b/src/plugins/debugger/debuggerruncontrol.h @@ -79,6 +79,8 @@ public: void appendSolibSearchPath(const QString &str); + static void setBreakOnMainNextTime(); + signals: void aboutToNotifyInferiorSetupOk(); diff --git a/src/plugins/help/helpplugin.cpp b/src/plugins/help/helpplugin.cpp index 45765dacaad0d73a560295818015aca38c9cafc5..e20b4cd8419edb0ba737b4c5087243cf463c36c2 100644 --- a/src/plugins/help/helpplugin.cpp +++ b/src/plugins/help/helpplugin.cpp @@ -200,12 +200,16 @@ bool HelpPlugin::initialize(const QStringList &arguments, QString *error) action = new QAction(tr("Technical Support"), this); cmd = ActionManager::registerAction(action, "Help.TechSupport"); ActionManager::actionContainer(Core::Constants::M_HELP)->addAction(cmd, Core::Constants::G_HELP_SUPPORT); - connect(action, &QAction::triggered, this, &HelpPlugin::slotOpenSupportPage); + connect(action, &QAction::triggered, this, [this] { + showLinkInHelpMode(QUrl("qthelp://org.qt-project.qtcreator/doc/technical-support.html")); + }); action = new QAction(tr("Report Bug..."), this); cmd = ActionManager::registerAction(action, "Help.ReportBug"); ActionManager::actionContainer(Core::Constants::M_HELP)->addAction(cmd, Core::Constants::G_HELP_SUPPORT); - connect(action, &QAction::triggered, this, &HelpPlugin::slotReportBug); + connect(action, &QAction::triggered, this, [] { + QDesktopServices::openUrl(QUrl("https://bugreports.qt.io")); + }); action = new QAction(tr("System Information..."), this); cmd = ActionManager::registerAction(action, "Help.SystemInformation"); @@ -638,16 +642,6 @@ void HelpPlugin::handleHelpRequest(const QUrl &url, HelpManager::HelpViewerLocat ICore::raiseWindow(viewer); } -void HelpPlugin::slotOpenSupportPage() -{ - showLinkInHelpMode(QUrl("qthelp://org.qt-project.qtcreator/doc/technical-support.html")); -} - -void HelpPlugin::slotReportBug() -{ - QDesktopServices::openUrl(QUrl("https://bugreports.qt.io")); -} - class DialogClosingOnEscape : public QDialog { public: diff --git a/src/plugins/help/helpplugin.h b/src/plugins/help/helpplugin.h index 4393e7953c87737b4d59ba1b437525ffe39a960a..07b31f12a8a66f6c0f808d5fe507e6724a90174f 100644 --- a/src/plugins/help/helpplugin.h +++ b/src/plugins/help/helpplugin.h @@ -98,8 +98,6 @@ private: void highlightSearchTermsInContextHelp(); void handleHelpRequest(const QUrl &url, Core::HelpManager::HelpViewerLocation location); - void slotOpenSupportPage(); - void slotReportBug(); void slotSystemInformation(); void resetFilter(); diff --git a/src/plugins/help/textbrowserhelpviewer.cpp b/src/plugins/help/textbrowserhelpviewer.cpp index 6d77aeadb69a9c1ea608d3e27e4fe3163b76a416..2dd128fd323171f30b67614ec23e3154a37dfe21 100644 --- a/src/plugins/help/textbrowserhelpviewer.cpp +++ b/src/plugins/help/textbrowserhelpviewer.cpp @@ -56,6 +56,7 @@ TextBrowserHelpViewer::TextBrowserHelpViewer(QWidget *parent) setLayout(layout); layout->setContentsMargins(0, 0, 0, 0); layout->addWidget(m_textBrowser, 10); + setFocusProxy(m_textBrowser); QPalette p = palette(); p.setColor(QPalette::Inactive, QPalette::Highlight, p.color(QPalette::Active, QPalette::Highlight)); diff --git a/src/plugins/ios/iosrunfactories.cpp b/src/plugins/ios/iosrunfactories.cpp index b4a1b8dad7ac90a107118c2ad38816bae307ba35..b2d42b671b5da90511608d2886ef960a239a8341 100644 --- a/src/plugins/ios/iosrunfactories.cpp +++ b/src/plugins/ios/iosrunfactories.cpp @@ -153,7 +153,6 @@ bool IosRunControlFactory::canRun(RunConfiguration *runConfiguration, { if (mode != ProjectExplorer::Constants::NORMAL_RUN_MODE && mode != ProjectExplorer::Constants::DEBUG_RUN_MODE - && mode != ProjectExplorer::Constants::DEBUG_RUN_MODE_WITH_BREAK_ON_MAIN && mode != ProjectExplorer::Constants::QML_PROFILER_RUN_MODE) { return false; } diff --git a/src/plugins/projectexplorer/appoutputpane.cpp b/src/plugins/projectexplorer/appoutputpane.cpp index 64a313a908043d340dc1bcbf8a0fd35d89d0f19f..9e0617454bd4e97f4e13a027f9927c14ba13bf86 100644 --- a/src/plugins/projectexplorer/appoutputpane.cpp +++ b/src/plugins/projectexplorer/appoutputpane.cpp @@ -406,7 +406,7 @@ void AppOutputPane::createNewOutputWindow(RunControl *rc) this, &AppOutputPane::slotRunControlChanged); connect(rc, &RunControl::started, this, &AppOutputPane::slotRunControlChanged); - connect(rc, &RunControl::finished, + connect(rc, &RunControl::stopped, this, &AppOutputPane::slotRunControlFinished); connect(rc, &RunControl::applicationProcessHandleChanged, this, &AppOutputPane::enableDefaultButtons); diff --git a/src/plugins/projectexplorer/projectexplorer.cpp b/src/plugins/projectexplorer/projectexplorer.cpp index f71cc7cb94b22e9e6677bdeac33bd6bc314a3d51..12c3e5f678e4eb05e1ff188a5d4f450a3aacdb58 100644 --- a/src/plugins/projectexplorer/projectexplorer.cpp +++ b/src/plugins/projectexplorer/projectexplorer.cpp @@ -2059,8 +2059,7 @@ void ProjectExplorerPluginPrivate::startRunControl(RunControl *runControl) m_outputPane->showTabFor(runControl); Core::Id runMode = runControl->runMode(); bool popup = (runMode == Constants::NORMAL_RUN_MODE && dd->m_projectExplorerSettings.showRunOutput) - || ((runMode == Constants::DEBUG_RUN_MODE || runMode == Constants::DEBUG_RUN_MODE_WITH_BREAK_ON_MAIN) - && m_projectExplorerSettings.showDebugOutput); + || (runMode == Constants::DEBUG_RUN_MODE && m_projectExplorerSettings.showDebugOutput); m_outputPane->setBehaviorOnOutput(runControl, popup ? AppOutputPane::Popup : AppOutputPane::Flash); runControl->initiateStart(); emit m_instance->updateRunActions(); diff --git a/src/plugins/projectexplorer/projectexplorerconstants.h b/src/plugins/projectexplorer/projectexplorerconstants.h index 62e70f1871a28c62d64bb727a21e41ff305a88e1..559b11fb6a61ceffe2b934e2b910cc015956da19 100644 --- a/src/plugins/projectexplorer/projectexplorerconstants.h +++ b/src/plugins/projectexplorer/projectexplorerconstants.h @@ -180,7 +180,6 @@ const char NORMAL_RUN_MODE[]="RunConfiguration.NormalRunMode"; const char QML_PROFILER_RUN_MODE[]="RunConfiguration.QmlProfilerRunMode"; const char PERFPROFILER_RUN_MODE[]="PerfProfiler.RunMode"; const char DEBUG_RUN_MODE[]="RunConfiguration.DebugRunMode"; -const char DEBUG_RUN_MODE_WITH_BREAK_ON_MAIN[]="RunConfiguration.DebugRunModeWithBreakOnMain"; // Navigation Widget const char PROJECTTREE_ID[] = "Projects"; diff --git a/src/plugins/projectexplorer/runconfiguration.cpp b/src/plugins/projectexplorer/runconfiguration.cpp index 75df5b6ff6cba9631cc3bb80853bc1fc593270ab..7d7c192670421d114f07677d48e3e35e71b71413 100644 --- a/src/plugins/projectexplorer/runconfiguration.cpp +++ b/src/plugins/projectexplorer/runconfiguration.cpp @@ -1216,7 +1216,7 @@ void RunControlPrivate::setState(RunControlState newState) foreach (auto worker, m_workers) if (worker) worker->onFinished(); - emit q->finished(); + emit q->stopped(); break; default: break; @@ -1525,11 +1525,6 @@ void RunWorker::setStopTimeout(int ms) d->stopWatchdogInterval = ms; } -void RunWorker::reportData(int channel, const QVariant &data) -{ - emit dataReported(channel, data); -} - void RunWorker::recordData(const QString &channel, const QVariant &data) { d->data[channel] = data; diff --git a/src/plugins/projectexplorer/runconfiguration.h b/src/plugins/projectexplorer/runconfiguration.h index b7a69ca2ebbe6c382ee4d65beffb87c8ed849191..eb408c204a0fd7a6b5e0022013919eee1e374ae2 100644 --- a/src/plugins/projectexplorer/runconfiguration.h +++ b/src/plugins/projectexplorer/runconfiguration.h @@ -340,8 +340,6 @@ public: void setStartTimeout(int ms); void setStopTimeout(int ms); - void reportData(int channel, const QVariant &data); - void recordData(const QString &channel, const QVariant &data); QVariant recordedData(const QString &channel) const; @@ -366,7 +364,6 @@ public: static QString userMessageForProcessError(QProcess::ProcessError, const QString &programName); signals: - void dataReported(int channel, const QVariant &data); void started(); void stopped(); @@ -481,7 +478,7 @@ signals: const QString &msg, Utils::OutputFormat format); void aboutToStart(); void started(); - void finished(); + void stopped(); void applicationProcessHandleChanged(QPrivateSignal); // Use setApplicationProcessHandle private: diff --git a/src/plugins/projectexplorer/waitforstopdialog.cpp b/src/plugins/projectexplorer/waitforstopdialog.cpp index e7006ecdbdedd100f7a4bfceeced18610e163a9a..1a7852989d9e34335ea1ebe867e69dc36c25763f 100644 --- a/src/plugins/projectexplorer/waitforstopdialog.cpp +++ b/src/plugins/projectexplorer/waitforstopdialog.cpp @@ -55,7 +55,7 @@ WaitForStopDialog::WaitForStopDialog(QList<ProjectExplorer::RunControl *> runCon updateProgressText(); foreach (RunControl *rc, runControls) - connect(rc, &RunControl::finished, this, &WaitForStopDialog::runControlFinished); + connect(rc, &RunControl::stopped, this, &WaitForStopDialog::runControlFinished); m_timer.start(); } diff --git a/src/plugins/qmlprofiler/qmlprofiler.pro b/src/plugins/qmlprofiler/qmlprofiler.pro index 0995840d2bc3c22a10f1b062151a15dee96f223a..a1edff0e2c20d97fb5392696dd752b71db10c047 100644 --- a/src/plugins/qmlprofiler/qmlprofiler.pro +++ b/src/plugins/qmlprofiler/qmlprofiler.pro @@ -28,7 +28,6 @@ SOURCES += \ qmlprofilerrangemodel.cpp \ qmlprofilerrunconfigurationaspect.cpp \ qmlprofilerruncontrol.cpp \ - qmlprofilerruncontrolfactory.cpp \ qmlprofilersettings.cpp \ qmlprofilerstatemanager.cpp \ qmlprofilerstatewidget.cpp \ @@ -72,7 +71,6 @@ HEADERS += \ qmlprofilerrangemodel.h \ qmlprofilerrunconfigurationaspect.h \ qmlprofilerruncontrol.h \ - qmlprofilerruncontrolfactory.h \ qmlprofilersettings.h \ qmlprofilerstatemanager.h \ qmlprofilerstatewidget.h \ diff --git a/src/plugins/qmlprofiler/qmlprofiler.qbs b/src/plugins/qmlprofiler/qmlprofiler.qbs index b509ac07a365d05f06ae422a848bd76f7ff5ca16..8bf7b5147b29bc1ae56532be3646a0cc6f62eb6d 100644 --- a/src/plugins/qmlprofiler/qmlprofiler.qbs +++ b/src/plugins/qmlprofiler/qmlprofiler.qbs @@ -45,7 +45,6 @@ QtcPlugin { "qmlprofileroptionspage.cpp", "qmlprofileroptionspage.h", "qmlprofilerplugin.cpp", "qmlprofilerplugin.h", "qmlprofilerrunconfigurationaspect.cpp", "qmlprofilerrunconfigurationaspect.h", - "qmlprofilerruncontrolfactory.cpp", "qmlprofilerruncontrolfactory.h", "qmlprofilerrangemodel.cpp", "qmlprofilerrangemodel.h", "qmlprofilerruncontrol.cpp", "qmlprofilerruncontrol.h", "qmlprofilersettings.cpp", "qmlprofilersettings.h", diff --git a/src/plugins/qmlprofiler/qmlprofilerplugin.cpp b/src/plugins/qmlprofiler/qmlprofilerplugin.cpp index 123a84bd17f5dd0dbbf14581dd5a444a0b886d3f..3b2585b5e7e76bbaa5e7d4b8ad9389606faa98c4 100644 --- a/src/plugins/qmlprofiler/qmlprofilerplugin.cpp +++ b/src/plugins/qmlprofiler/qmlprofilerplugin.cpp @@ -24,7 +24,7 @@ ****************************************************************************/ #include "qmlprofilerplugin.h" -#include "qmlprofilerruncontrolfactory.h" +#include "qmlprofilerrunconfigurationaspect.h" #include "qmlprofileroptionspage.h" #include "qmlprofilertool.h" #include "qmlprofilertimelinemodel.h" @@ -57,15 +57,34 @@ #endif // WITH_TESTS #include <extensionsystem/pluginmanager.h> + +#include <projectexplorer/environmentaspect.h> +#include <projectexplorer/kitinformation.h> +#include <projectexplorer/runconfiguration.h> +#include <projectexplorer/target.h> + #include <utils/hostosinfo.h> +#include <utils/qtcassert.h> #include <QtPlugin> +using namespace ProjectExplorer; + namespace QmlProfiler { namespace Internal { Q_GLOBAL_STATIC(QmlProfilerSettings, qmlProfilerGlobalSettings) + +class QmlProfilerRunControlFactory : public IRunControlFactory +{ +public: + IRunConfigurationAspect *createRunConfigurationAspect(RunConfiguration *rc) override + { + return new QmlProfilerRunConfigurationAspect(rc); + } +}; + bool QmlProfilerPlugin::initialize(const QStringList &arguments, QString *errorString) { Q_UNUSED(arguments) @@ -80,8 +99,21 @@ void QmlProfilerPlugin::extensionsInitialized() { (void) new QmlProfilerTool(this); - addAutoReleasedObject(new QmlProfilerRunControlFactory()); - addAutoReleasedObject(new Internal::QmlProfilerOptionsPage()); + addAutoReleasedObject(new QmlProfilerOptionsPage); + addAutoReleasedObject(new QmlProfilerRunControlFactory); + + auto constraint = [](RunConfiguration *runConfiguration) { + Target *target = runConfiguration ? runConfiguration->target() : nullptr; + Kit *kit = target ? target->kit() : nullptr; + return DeviceTypeKitInformation::deviceTypeId(kit) + == ProjectExplorer::Constants::DESKTOP_DEVICE_TYPE; + }; + + RunControl::registerWorkerCreator(ProjectExplorer::Constants::QML_PROFILER_RUN_MODE, + [this](RunControl *runControl) { return new QmlProfilerRunner(runControl); }); + + RunControl::registerWorker<LocalQmlProfilerSupport> + (ProjectExplorer::Constants::QML_PROFILER_RUN_MODE, constraint); } ExtensionSystem::IPlugin::ShutdownFlag QmlProfilerPlugin::aboutToShutdown() diff --git a/src/plugins/qmlprofiler/qmlprofilerruncontrolfactory.cpp b/src/plugins/qmlprofiler/qmlprofilerruncontrolfactory.cpp deleted file mode 100644 index 31c1198f67974752745b747273b6a18aa7593a55..0000000000000000000000000000000000000000 --- a/src/plugins/qmlprofiler/qmlprofilerruncontrolfactory.cpp +++ /dev/null @@ -1,74 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 Kläralvdalens Datakonsult AB, a KDAB Group company, info@kdab.com -** Contact: https://www.qt.io/licensing/ -** -** This file is part of Qt Creator. -** -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3 as published by the Free Software -** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-3.0.html. -** -****************************************************************************/ - -#include "qmlprofilerruncontrolfactory.h" -#include "qmlprofilerruncontrol.h" -#include "qmlprofilerrunconfigurationaspect.h" - -#include <projectexplorer/environmentaspect.h> -#include <projectexplorer/kitinformation.h> -#include <projectexplorer/target.h> - -#include <utils/qtcassert.h> - -using namespace ProjectExplorer; - -namespace QmlProfiler { -namespace Internal { - -static bool isLocal(RunConfiguration *runConfiguration) -{ - Target *target = runConfiguration ? runConfiguration->target() : 0; - Kit *kit = target ? target->kit() : 0; - return DeviceTypeKitInformation::deviceTypeId(kit) == ProjectExplorer::Constants::DESKTOP_DEVICE_TYPE; -} - -QmlProfilerRunControlFactory::QmlProfilerRunControlFactory(QObject *parent) : - IRunControlFactory(parent) -{ - RunControl::registerWorkerCreator(ProjectExplorer::Constants::QML_PROFILER_RUN_MODE, - [this](RunControl *runControl) { return new QmlProfilerRunner(runControl); }); -} - -bool QmlProfilerRunControlFactory::canRun(RunConfiguration *runConfiguration, Core::Id mode) const -{ - return mode == ProjectExplorer::Constants::QML_PROFILER_RUN_MODE && isLocal(runConfiguration); -} - -RunControl *QmlProfilerRunControlFactory::create(RunConfiguration *runConfiguration, Core::Id mode, QString *) -{ - auto runControl = new RunControl(runConfiguration, mode); - (void) new LocalQmlProfilerSupport(runControl); - return runControl; -} - -ProjectExplorer::IRunConfigurationAspect * -QmlProfilerRunControlFactory::createRunConfigurationAspect(ProjectExplorer::RunConfiguration *rc) -{ - return new QmlProfilerRunConfigurationAspect(rc); -} - -} // namespace Internal -} // namespace QmlProfiler diff --git a/src/plugins/qmlprofiler/qmlprofilerruncontrolfactory.h b/src/plugins/qmlprofiler/qmlprofilerruncontrolfactory.h deleted file mode 100644 index 5df3936673731396630b92caf607b71d996699c7..0000000000000000000000000000000000000000 --- a/src/plugins/qmlprofiler/qmlprofilerruncontrolfactory.h +++ /dev/null @@ -1,52 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 Kläralvdalens Datakonsult AB, a KDAB Group company, info@kdab.com -** Contact: https://www.qt.io/licensing/ -** -** This file is part of Qt Creator. -** -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3 as published by the Free Software -** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-3.0.html. -** -****************************************************************************/ - -#pragma once - -#include <projectexplorer/runconfiguration.h> - -namespace QmlProfiler { -namespace Internal { - -class QmlProfilerRunControlFactory : public ProjectExplorer::IRunControlFactory -{ - Q_OBJECT -public: - typedef ProjectExplorer::RunConfiguration RunConfiguration; - - explicit QmlProfilerRunControlFactory(QObject *parent = 0); - - // IRunControlFactory implementation - bool canRun(RunConfiguration *runConfiguration, Core::Id mode) const override; - - ProjectExplorer::RunControl *create(RunConfiguration *runConfiguration, Core::Id mode, - QString *errorMessage) override; - - ProjectExplorer::IRunConfigurationAspect *createRunConfigurationAspect( - ProjectExplorer::RunConfiguration *rc) override; -}; - -} // namespace Internal -} // namespace QmlProfiler diff --git a/src/plugins/qmlprofiler/qmlprofilertool.cpp b/src/plugins/qmlprofiler/qmlprofilertool.cpp index de6e744d5da7c25a6e20d936ae96d2a2f8a18126..227b6dff0b7fa80356b2c543923cc50eb13c0a12 100644 --- a/src/plugins/qmlprofiler/qmlprofilertool.cpp +++ b/src/plugins/qmlprofiler/qmlprofilertool.cpp @@ -339,7 +339,7 @@ void QmlProfilerTool::finalizeRunControl(QmlProfilerRunner *runWorker) } } - connect(runControl, &RunControl::finished, this, [this, runControl] { + connect(runControl, &RunControl::stopped, this, [this, runControl] { d->m_toolBusy = false; updateRunActions(); disconnect(d->m_stopAction, &QAction::triggered, runControl, &RunControl::initiateStop); diff --git a/src/plugins/remotelinux/remotelinuxplugin.cpp b/src/plugins/remotelinux/remotelinuxplugin.cpp index 15437952d9df8f26a55da6f22fef162bf54e945e..78b82378df174ce3f862d4f85bd68e21d8c381e3 100644 --- a/src/plugins/remotelinux/remotelinuxplugin.cpp +++ b/src/plugins/remotelinux/remotelinuxplugin.cpp @@ -62,8 +62,6 @@ bool RemoteLinuxPlugin::initialize(const QStringList &arguments, RunControl::registerWorker<SimpleTargetRunner>(NORMAL_RUN_MODE, constraint); RunControl::registerWorker<LinuxDeviceDebugSupport>(DEBUG_RUN_MODE, constraint); - RunControl::registerWorker<LinuxDeviceDebugSupport>(DEBUG_RUN_MODE_WITH_BREAK_ON_MAIN, - constraint); RunControl::registerWorker<RemoteLinuxQmlProfilerSupport>(QML_PROFILER_RUN_MODE, constraint); //RunControl::registerWorker<RemoteLinuxPerfSupport>(PERFPROFILER_RUN_MODE, constraint); diff --git a/src/plugins/valgrind/callgrindtool.cpp b/src/plugins/valgrind/callgrindtool.cpp index b5fa8b6a030cc7de700466c2d5a029ee81183c9b..23a72bfa492f78d2b30e7b125394bbe2be17cbdb 100644 --- a/src/plugins/valgrind/callgrindtool.cpp +++ b/src/plugins/valgrind/callgrindtool.cpp @@ -741,7 +741,7 @@ ValgrindToolRunner *CallgrindTool::createRunTool(RunControl *runControl) auto toolRunner = new CallgrindToolRunner(runControl); connect(toolRunner, &CallgrindToolRunner::parserDataReady, this, &CallgrindTool::takeParserDataFromRunControl); - connect(runControl, &RunControl::finished, this, &CallgrindTool::engineFinished); + connect(runControl, &RunControl::stopped, this, &CallgrindTool::engineFinished); connect(this, &CallgrindTool::dumpRequested, toolRunner, &CallgrindToolRunner::dump); connect(this, &CallgrindTool::resetRequested, toolRunner, &CallgrindToolRunner::reset); diff --git a/src/plugins/valgrind/memcheckengine.cpp b/src/plugins/valgrind/memcheckengine.cpp index 5be26e86bd210eefcb16cefa98bae709f09132b3..4e25251e4b05aa04931f260f2a182fa40fd03a0e 100644 --- a/src/plugins/valgrind/memcheckengine.cpp +++ b/src/plugins/valgrind/memcheckengine.cpp @@ -174,7 +174,7 @@ void MemcheckToolRunner::startDebugger(qint64 valgrindPid) auto gdbWorker = new Debugger::DebuggerRunTool(runControl()); gdbWorker->setStartParameters(sp); gdbWorker->initiateStart(); - connect(runControl(), &RunControl::finished, gdbWorker, &RunControl::deleteLater); + connect(runControl(), &RunControl::stopped, gdbWorker, &RunControl::deleteLater); } void MemcheckToolRunner::appendLog(const QByteArray &data) diff --git a/src/plugins/winrt/winrtplugin.cpp b/src/plugins/winrt/winrtplugin.cpp index dd55b0c3e68576434a07a446049225331e7fb140..3deedc6e45ce5060366cc56eeca2dc849c9f7ac2 100644 --- a/src/plugins/winrt/winrtplugin.cpp +++ b/src/plugins/winrt/winrtplugin.cpp @@ -85,8 +85,6 @@ bool WinRtPlugin::initialize(const QStringList &arguments, QString *errorMessage (ProjectExplorer::Constants::NORMAL_RUN_MODE, runConstraint); RunControl::registerWorker<WinRtDebugSupport> (ProjectExplorer::Constants::DEBUG_RUN_MODE, debugConstraint); - RunControl::registerWorker<WinRtDebugSupport> - (ProjectExplorer::Constants::DEBUG_RUN_MODE_WITH_BREAK_ON_MAIN, debugConstraint); return true; } diff --git a/tests/auto/debugger/tst_gdb.cpp b/tests/auto/debugger/tst_gdb.cpp index 7053c41f758dd3ba167edee59a034a087d8907c4..680c2c524f77875f3bd8a0b0b1610aa2bd4fba7b 100644 --- a/tests/auto/debugger/tst_gdb.cpp +++ b/tests/auto/debugger/tst_gdb.cpp @@ -121,6 +121,10 @@ void tst_gdb::version_data() QTest::newRow("openSUSE 13.2") << "GNU gdb (GDB; openSUSE 13.2) 7.8" << 70800 << 0 << false << false; + + QTest::newRow("Fedora 26") + << "GNU gdb (GDB) Fedora 8.0-13.fc26" + << 80000 << 13 << false << false; } static QString chopConst(QString type)