diff options
author | hjk <hjk@qt.io> | 2017-06-20 12:41:19 +0200 |
---|---|---|
committer | hjk <hjk@qt.io> | 2017-06-30 10:41:24 +0000 |
commit | df61f129702245161d86d6e84796dd96111cd577 (patch) | |
tree | d45ccafb61feb7afcf6c58f61b062a56bb145267 | |
parent | 04b03f79d96fe6c095e12e74f0c0d4471b6c258f (diff) | |
download | qt-creator-df61f129702245161d86d6e84796dd96111cd577.tar.gz |
Android: Simplify run control construction
Take advantage of new infrastructure.
Change-Id: If2d2f839b8be1fad2be3b79e21de3c0e475d88cf
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
-rw-r--r-- | src/plugins/android/android.pro | 2 | ||||
-rw-r--r-- | src/plugins/android/android.qbs | 2 | ||||
-rw-r--r-- | src/plugins/android/androidplugin.cpp | 26 | ||||
-rw-r--r-- | src/plugins/android/androidrunfactories.cpp | 82 | ||||
-rw-r--r-- | src/plugins/android/androidrunfactories.h | 56 | ||||
-rw-r--r-- | src/plugins/qmakeandroidsupport/qmakeandroidrunfactories.h | 3 |
6 files changed, 18 insertions, 153 deletions
diff --git a/src/plugins/android/android.pro b/src/plugins/android/android.pro index 6ef13cc781..702bb4d7cf 100644 --- a/src/plugins/android/android.pro +++ b/src/plugins/android/android.pro @@ -12,7 +12,6 @@ HEADERS += \ androidmanager.h \ androidrunconfiguration.h \ androidruncontrol.h \ - androidrunfactories.h \ androidsettingspage.h \ androidsettingswidget.h \ androidtoolchain.h \ @@ -58,7 +57,6 @@ SOURCES += \ androidmanager.cpp \ androidrunconfiguration.cpp \ androidruncontrol.cpp \ - androidrunfactories.cpp \ androidsettingspage.cpp \ androidsettingswidget.cpp \ androidtoolchain.cpp \ diff --git a/src/plugins/android/android.qbs b/src/plugins/android/android.qbs index 5e5d5a4574..fcc2e9e52e 100644 --- a/src/plugins/android/android.qbs +++ b/src/plugins/android/android.qbs @@ -83,8 +83,6 @@ Project { "androidrunconfigurationwidget.ui", "androidruncontrol.cpp", "androidruncontrol.h", - "androidrunfactories.cpp", - "androidrunfactories.h", "androidrunnable.cpp", "androidrunnable.h", "androidrunner.cpp", diff --git a/src/plugins/android/androidplugin.cpp b/src/plugins/android/androidplugin.cpp index 5619958ac1..e2636cd454 100644 --- a/src/plugins/android/androidplugin.cpp +++ b/src/plugins/android/androidplugin.cpp @@ -25,22 +25,26 @@ #include "androidplugin.h" -#include "androidconstants.h" +#include "androidanalyzesupport.h" #include "androidconfigurations.h" +#include "androidconstants.h" +#include "androiddebugsupport.h" +#include "androiddeployconfiguration.h" #include "androiddeployqtstep.h" #include "androiddevice.h" #include "androiddevicefactory.h" -#include "androidmanager.h" -#include "androidrunfactories.h" -#include "androidsettingspage.h" -#include "androidtoolchain.h" -#include "androidqtversionfactory.h" -#include "androiddeployconfiguration.h" #include "androidgdbserverkitinformation.h" +#include "androidmanager.h" #include "androidmanifesteditorfactory.h" #include "androidpotentialkit.h" +#include "androidqtversionfactory.h" +#include "androidrunconfiguration.h" +#include "androidruncontrol.h" +#include "androidsettingspage.h" +#include "androidtoolchain.h" #include "javacompletionassistprovider.h" #include "javaeditor.h" + #ifdef HAVE_QBS # include "androidqbspropertyprovider.h" #endif @@ -55,6 +59,8 @@ #include <QtPlugin> using namespace ProjectExplorer; +using namespace ProjectExplorer::Constants; +using namespace Android::Internal; namespace Android { @@ -66,9 +72,13 @@ bool AndroidPlugin::initialize(const QStringList &arguments, QString *errorMessa Q_UNUSED(arguments); Q_UNUSED(errorMessage); + 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); - addAutoReleasedObject(new Internal::AndroidRunControlFactory); addAutoReleasedObject(new Internal::AndroidDeployQtStepFactory); addAutoReleasedObject(new Internal::AndroidSettingsPage); addAutoReleasedObject(new Internal::AndroidQtVersionFactory); diff --git a/src/plugins/android/androidrunfactories.cpp b/src/plugins/android/androidrunfactories.cpp deleted file mode 100644 index 3f894783c7..0000000000 --- a/src/plugins/android/androidrunfactories.cpp +++ /dev/null @@ -1,82 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 BogDan Vatra <bog_dan_ro@yahoo.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 "androidrunfactories.h" - -#include "androidconstants.h" -#include "androiddebugsupport.h" -#include "androidanalyzesupport.h" -#include "androidrunconfiguration.h" -#include "androidruncontrol.h" -#include "androidmanager.h" - -#include <debugger/debuggerconstants.h> - -using namespace ProjectExplorer; - -namespace Android { -namespace Internal { - -AndroidRunControlFactory::AndroidRunControlFactory(QObject *parent) - : IRunControlFactory(parent) -{ -} - -bool AndroidRunControlFactory::canRun(RunConfiguration *runConfiguration, Core::Id mode) const -{ - 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; - } - return qobject_cast<AndroidRunConfiguration *>(runConfiguration); -} - -RunControl *AndroidRunControlFactory::create(RunConfiguration *runConfig, Core::Id mode, QString *) -{ - Q_ASSERT(canRun(runConfig, mode)); - if (mode == ProjectExplorer::Constants::NORMAL_RUN_MODE) { - auto runControl = new RunControl(runConfig, mode); - (void) new AndroidRunSupport(runControl); - return runControl; - } - if (mode == ProjectExplorer::Constants::DEBUG_RUN_MODE - || mode == ProjectExplorer::Constants::DEBUG_RUN_MODE_WITH_BREAK_ON_MAIN) { - auto runControl = new RunControl(runConfig, mode); - (void) new AndroidDebugSupport(runControl); - return runControl; - } - if (mode == ProjectExplorer::Constants::QML_PROFILER_RUN_MODE) { - auto runControl = new RunControl(runConfig, mode); - (void) new AndroidQmlProfilerSupport(runControl); - return runControl; - } - QTC_CHECK(false); // The other run modes are not supported - return 0; -} - -} // namespace Internal -} // namespace Android diff --git a/src/plugins/android/androidrunfactories.h b/src/plugins/android/androidrunfactories.h deleted file mode 100644 index 5556b44f48..0000000000 --- a/src/plugins/android/androidrunfactories.h +++ /dev/null @@ -1,56 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 BogDan Vatra <bog_dan_ro@yahoo.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 "android_global.h" -#include <projectexplorer/runconfiguration.h> - - -namespace ProjectExplorer { -class RunControl; -class RunConfigWidget; -class Target; -class Node; -} // namespace ProjectExplorer - -namespace Android { -namespace Internal { - -class AndroidRunControlFactory : public ProjectExplorer::IRunControlFactory -{ - Q_OBJECT - -public: - explicit AndroidRunControlFactory(QObject *parent = 0); - - bool canRun(ProjectExplorer::RunConfiguration *runConfiguration, - Core::Id mode) const override; - ProjectExplorer::RunControl *create(ProjectExplorer::RunConfiguration *runConfiguration, - Core::Id mode, QString *errorMessage) override; -}; - -} // namespace Internal -} // namespace Android diff --git a/src/plugins/qmakeandroidsupport/qmakeandroidrunfactories.h b/src/plugins/qmakeandroidsupport/qmakeandroidrunfactories.h index 03c6702631..0580e0f017 100644 --- a/src/plugins/qmakeandroidsupport/qmakeandroidrunfactories.h +++ b/src/plugins/qmakeandroidsupport/qmakeandroidrunfactories.h @@ -25,13 +25,10 @@ #pragma once -#include <android/androidrunfactories.h> #include <projectexplorer/runconfiguration.h> #include <qmakeprojectmanager/qmakerunconfigurationfactory.h> namespace ProjectExplorer { -class RunControl; -class RunConfigWidget; class Target; class Node; } // namespace ProjectExplorer |