diff --git a/src/plugins/android/androidconfigurations.cpp b/src/plugins/android/androidconfigurations.cpp index 3a31ca90af8..a4097c0dc95 100644 --- a/src/plugins/android/androidconfigurations.cpp +++ b/src/plugins/android/androidconfigurations.cpp @@ -1138,9 +1138,8 @@ void AndroidConfigurations::save() settings->endGroup(); } -AndroidConfigurations::AndroidConfigurations(QObject *parent) - : QObject(parent), - m_sdkManager(new AndroidSdkManager(m_config)) +AndroidConfigurations::AndroidConfigurations() + : m_sdkManager(new AndroidSdkManager(m_config)) { load(); diff --git a/src/plugins/android/androidconfigurations.h b/src/plugins/android/androidconfigurations.h index 9145d07cd4b..23d4f4ea146 100644 --- a/src/plugins/android/androidconfigurations.h +++ b/src/plugins/android/androidconfigurations.h @@ -50,11 +50,10 @@ class Abi; class Project; } -namespace Utils { class Environment; } - namespace Android { -class AndroidPlugin; +class AndroidPluginRunData; + namespace Internal { class AndroidSdkManager; } class AndroidDeviceInfo @@ -188,7 +187,6 @@ private: class ANDROID_EXPORT AndroidConfigurations : public QObject { - friend class Android::AndroidPlugin; Q_OBJECT public: @@ -212,7 +210,8 @@ signals: void updated(); private: - AndroidConfigurations(QObject *parent); + friend class Android::AndroidPluginRunData; + AndroidConfigurations(); ~AndroidConfigurations(); void load(); void save(); diff --git a/src/plugins/android/androidmanifesteditorfactory.cpp b/src/plugins/android/androidmanifesteditorfactory.cpp index dfb18265067..1d0bee2390c 100644 --- a/src/plugins/android/androidmanifesteditorfactory.cpp +++ b/src/plugins/android/androidmanifesteditorfactory.cpp @@ -35,8 +35,7 @@ using namespace Android; using namespace Android::Internal; -AndroidManifestEditorFactory::AndroidManifestEditorFactory(QObject *parent) - : Core::IEditorFactory(parent) +AndroidManifestEditorFactory::AndroidManifestEditorFactory() { setId(Constants::ANDROID_MANIFEST_EDITOR_ID); setDisplayName(tr("Android Manifest editor")); diff --git a/src/plugins/android/androidmanifesteditorfactory.h b/src/plugins/android/androidmanifesteditorfactory.h index a25e02cef56..c13d4e14b0a 100644 --- a/src/plugins/android/androidmanifesteditorfactory.h +++ b/src/plugins/android/androidmanifesteditorfactory.h @@ -35,7 +35,7 @@ class AndroidManifestEditorFactory : public Core::IEditorFactory Q_OBJECT public: - explicit AndroidManifestEditorFactory(QObject *parent = 0); + AndroidManifestEditorFactory(); Core::IEditor *createEditor(); }; diff --git a/src/plugins/android/androidpackageinstallationstep.h b/src/plugins/android/androidpackageinstallationstep.h index ad3b2dd7aa3..55c69cb5211 100644 --- a/src/plugins/android/androidpackageinstallationstep.h +++ b/src/plugins/android/androidpackageinstallationstep.h @@ -31,11 +31,12 @@ #include namespace Android { +namespace Internal { class AndroidPackageInstallationFactory; } class ANDROID_EXPORT AndroidPackageInstallationStep : public ProjectExplorer::AbstractProcessStep { Q_OBJECT - friend class AndroidPackageInstallationFactory; + friend class Internal::AndroidPackageInstallationFactory; public: explicit AndroidPackageInstallationStep(ProjectExplorer::BuildStepList *bsl); diff --git a/src/plugins/android/androidplugin.cpp b/src/plugins/android/androidplugin.cpp index 3f14c090771..7e1b88d754d 100644 --- a/src/plugins/android/androidplugin.cpp +++ b/src/plugins/android/androidplugin.cpp @@ -49,24 +49,41 @@ # include "androidqbspropertyprovider.h" #endif -#include - #include #include #include -#include - using namespace ProjectExplorer; using namespace ProjectExplorer::Constants; using namespace Android::Internal; namespace Android { +class AndroidPluginRunData +{ +public: + AndroidConfigurations androidConfiguration; + AndroidSettingsPage settingsPage; + AndroidDeployQtStepFactory deployQtStepFactory; + AndroidQtVersionFactory qtVersionFactory; + AndroidToolChainFactory toolChainFactory; + AndroidDeployConfigurationFactory deployConfigurationFactory; + AndroidDeviceFactory deviceFactory; + AndroidPotentialKit potentialKit; + JavaEditorFactory javaEditorFactory; + AndroidPackageInstallationFactory packackeInstallationFactory; + AndroidManifestEditorFactory manifestEditorFactory; +}; + AndroidPlugin::AndroidPlugin() { } +AndroidPlugin::~AndroidPlugin() +{ + delete m_runData; +} + bool AndroidPlugin::initialize(const QStringList &arguments, QString *errorMessage) { Q_UNUSED(arguments); @@ -79,21 +96,10 @@ bool AndroidPlugin::initialize(const QStringList &arguments, QString *errorMessa RunControl::registerWorker( QML_PREVIEW_RUN_MODE); - new AndroidConfigurations(this); + m_runData = new AndroidPluginRunData; - addAutoReleasedObject(new Internal::AndroidDeployQtStepFactory); - addAutoReleasedObject(new Internal::AndroidSettingsPage); - addAutoReleasedObject(new Internal::AndroidQtVersionFactory); - addAutoReleasedObject(new Internal::AndroidToolChainFactory); - addAutoReleasedObject(new Internal::AndroidDeployConfigurationFactory); - addAutoReleasedObject(new Internal::AndroidDeviceFactory); - addAutoReleasedObject(new Internal::AndroidPotentialKit); - addAutoReleasedObject(new Internal::JavaEditorFactory); - addAutoReleasedObject(new Internal::AndroidPackageInstallationFactory); KitManager::registerKitInformation(new Internal::AndroidGdbServerKitInformation); - addAutoReleasedObject(new Internal::AndroidManifestEditorFactory); - connect(KitManager::instance(), &KitManager::kitsLoaded, this, &AndroidPlugin::kitsRestored); diff --git a/src/plugins/android/androidplugin.h b/src/plugins/android/androidplugin.h index 83e45b61afd..3c539b0c4e2 100644 --- a/src/plugins/android/androidplugin.h +++ b/src/plugins/android/androidplugin.h @@ -29,6 +29,8 @@ namespace Android { +class AndroidPluginRunData; + class AndroidPlugin : public ExtensionSystem::IPlugin { Q_OBJECT @@ -37,12 +39,16 @@ class AndroidPlugin : public ExtensionSystem::IPlugin public: AndroidPlugin(); - bool initialize(const QStringList &arguments, QString *errorMessage); - void extensionsInitialized() { } - private: + ~AndroidPlugin() final; + + bool initialize(const QStringList &arguments, QString *errorMessage) final; + void extensionsInitialized() final { } + void updateDevice(); void kitsRestored(); + + AndroidPluginRunData *m_runData = nullptr; }; } // namespace Android