diff --git a/src/plugins/android/androidconfigurations.cpp b/src/plugins/android/androidconfigurations.cpp index 1c6f8c7cbce..37e9c148c59 100644 --- a/src/plugins/android/androidconfigurations.cpp +++ b/src/plugins/android/androidconfigurations.cpp @@ -1104,6 +1104,19 @@ FilePath AndroidConfig::defaultSdkPath() /////////////////////////////////// // AndroidConfigurations /////////////////////////////////// + +AndroidConfigurations *m_instance = nullptr; + +AndroidConfigurations::AndroidConfigurations() + : m_sdkManager(new AndroidSdkManager(m_config)) +{ + load(); + connect(DeviceManager::instance(), &DeviceManager::devicesLoaded, + this, &AndroidConfigurations::updateAndroidDevice); + + m_instance = this; +} + void AndroidConfigurations::setConfig(const AndroidConfig &devConfigs) { emit m_instance->aboutToUpdate(); @@ -1452,18 +1465,6 @@ void AndroidConfigurations::save() settings->endGroup(); } -AndroidConfigurations::AndroidConfigurations() - : m_sdkManager(new AndroidSdkManager(m_config)) -{ - load(); - connect(DeviceManager::instance(), &DeviceManager::devicesLoaded, - this, &AndroidConfigurations::updateAndroidDevice); - - m_instance = this; -} - -AndroidConfigurations::~AndroidConfigurations() = default; - static FilePath androidStudioPath() { #if defined(Q_OS_WIN) @@ -1562,8 +1563,6 @@ void AndroidConfigurations::updateAndroidDevice() AndroidDeviceManager::instance()->setupDevicesWatcher(); } -AndroidConfigurations *AndroidConfigurations::m_instance = nullptr; - #ifdef WITH_TESTS void AndroidPlugin::testAndroidConfigAvailableNdkPlatforms_data() { @@ -1620,6 +1619,12 @@ void AndroidPlugin::testAndroidConfigAvailableNdkPlatforms() const QList foundPlatforms = availableNdkPlatformsImpl(ndkPath, abis, hostOs); QCOMPARE(foundPlatforms, expectedPlatforms); } + #endif // WITH_TESTS +void setupAndroidConfigurations() +{ + static AndroidConfigurations theAndroidConfigurations; +} + } // namespace Android diff --git a/src/plugins/android/androidconfigurations.h b/src/plugins/android/androidconfigurations.h index c92deec331c..aa956bb4e09 100644 --- a/src/plugins/android/androidconfigurations.h +++ b/src/plugins/android/androidconfigurations.h @@ -23,10 +23,7 @@ namespace ProjectExplorer { class Abi; } namespace Android { -namespace Internal { -class AndroidSdkManager; -class AndroidPluginPrivate; -} +namespace Internal { class AndroidSdkManager; } class CreateAvdInfo { @@ -200,18 +197,19 @@ signals: void updated(); private: - friend class Android::Internal::AndroidPluginPrivate; + friend void setupAndroidConfigurations(); AndroidConfigurations(); - ~AndroidConfigurations() override; + void load(); void save(); static void updateAndroidDevice(); - static AndroidConfigurations *m_instance; AndroidConfig m_config; std::unique_ptr m_sdkManager; }; +void setupAndroidConfigurations(); + } // namespace Android Q_DECLARE_METATYPE(ProjectExplorer::Abis) diff --git a/src/plugins/android/androiddevice.cpp b/src/plugins/android/androiddevice.cpp index 23cfa76592f..3e42b42a930 100644 --- a/src/plugins/android/androiddevice.cpp +++ b/src/plugins/android/androiddevice.cpp @@ -41,8 +41,7 @@ namespace { static Q_LOGGING_CATEGORY(androidDeviceLog, "qtc.android.androiddevice", QtWarningMsg) } -namespace Android { -namespace Internal { +namespace Android::Internal { static constexpr char ipRegexStr[] = "(\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3})"; static const QRegularExpression ipRegex = QRegularExpression(ipRegexStr); @@ -831,33 +830,44 @@ AndroidDeviceManager::~AndroidDeviceManager() // Factory -AndroidDeviceFactory::AndroidDeviceFactory() - : IDeviceFactory(Constants::ANDROID_DEVICE_TYPE), - m_androidConfig(AndroidConfigurations::currentConfig()) +class AndroidDeviceFactory final : public ProjectExplorer::IDeviceFactory { - setDisplayName(Tr::tr("Android Device")); - setCombinedIcon(":/android/images/androiddevicesmall.png", - ":/android/images/androiddevice.png"); - setConstructionFunction(&AndroidDevice::create); - if (m_androidConfig.sdkToolsOk()) { - setCreator([this] { - AvdDialog dialog = AvdDialog(m_androidConfig, Core::ICore::dialogParent()); - if (dialog.exec() != QDialog::Accepted) - return IDevice::Ptr(); +public: + AndroidDeviceFactory() + : IDeviceFactory(Constants::ANDROID_DEVICE_TYPE), + m_androidConfig(AndroidConfigurations::currentConfig()) + { + setDisplayName(Tr::tr("Android Device")); + setCombinedIcon(":/android/images/androiddevicesmall.png", + ":/android/images/androiddevice.png"); + setConstructionFunction(&AndroidDevice::create); + if (m_androidConfig.sdkToolsOk()) { + setCreator([this] { + AvdDialog dialog = AvdDialog(m_androidConfig, Core::ICore::dialogParent()); + if (dialog.exec() != QDialog::Accepted) + return IDevice::Ptr(); - const IDevice::Ptr dev = dialog.device(); - if (const auto androidDev = static_cast(dev.data())) { - qCDebug(androidDeviceLog, "Created new Android AVD id \"%s\".", - qPrintable(androidDev->avdName())); - } else { - AndroidDeviceWidget::criticalDialog( + const IDevice::Ptr dev = dialog.device(); + if (const auto androidDev = static_cast(dev.data())) { + qCDebug(androidDeviceLog, "Created new Android AVD id \"%s\".", + qPrintable(androidDev->avdName())); + } else { + AndroidDeviceWidget::criticalDialog( Tr::tr("The device info returned from AvdDialog is invalid.")); - } + } - return IDevice::Ptr(dev); - }); + return IDevice::Ptr(dev); + }); + } } + +private: + const AndroidConfig &m_androidConfig; +}; + +void setupAndroidDevice() +{ + static AndroidDeviceFactory theAndroidDeviceFactory; } -} // namespace Internal -} // namespace Android +} // Android::Internal diff --git a/src/plugins/android/androiddevice.h b/src/plugins/android/androiddevice.h index 2ac753e50ab..80f1e365c9f 100644 --- a/src/plugins/android/androiddevice.h +++ b/src/plugins/android/androiddevice.h @@ -17,8 +17,7 @@ namespace Utils { class Process; } -namespace Android { -namespace Internal { +namespace Android::Internal { class AndroidDevice final : public ProjectExplorer::IDevice { @@ -70,15 +69,6 @@ private: std::unique_ptr m_avdSettings; }; -class AndroidDeviceFactory final : public ProjectExplorer::IDeviceFactory -{ -public: - AndroidDeviceFactory(); - -private: - const AndroidConfig &m_androidConfig; -}; - class AndroidDeviceManager : public QObject { public: @@ -114,5 +104,6 @@ private: friend class AndroidPluginPrivate; }; -} // namespace Internal -} // namespace Android +void setupAndroidDevice(); + +} // Android::Internal diff --git a/src/plugins/android/androidmanifesteditorfactory.cpp b/src/plugins/android/androidmanifesteditorfactory.cpp index 93f0d9a4ea7..7a900a687ec 100644 --- a/src/plugins/android/androidmanifesteditorfactory.cpp +++ b/src/plugins/android/androidmanifesteditorfactory.cpp @@ -7,22 +7,39 @@ #include "androidmanifesteditorwidget.h" #include "androidtr.h" +#include + +#include #include -using namespace Android; -using namespace Android::Internal; +namespace Android::Internal { -AndroidManifestEditorFactory::AndroidManifestEditorFactory() - : m_actionHandler(Constants::ANDROID_MANIFEST_EDITOR_ID, - Constants::ANDROID_MANIFEST_EDITOR_CONTEXT, - TextEditor::TextEditorActionHandler::UnCommentSelection, - [](Core::IEditor *editor) { return static_cast(editor)->textEditor(); }) +class AndroidManifestEditorFactory final : public Core::IEditorFactory { - setId(Constants::ANDROID_MANIFEST_EDITOR_ID); - setDisplayName(Tr::tr("Android Manifest editor")); - addMimeType(Constants::ANDROID_MANIFEST_MIME_TYPE); - setEditorCreator([] { - auto androidManifestEditorWidget = new AndroidManifestEditorWidget; - return androidManifestEditorWidget->editor(); - }); +public: + AndroidManifestEditorFactory() + : m_actionHandler(Constants::ANDROID_MANIFEST_EDITOR_ID, + Constants::ANDROID_MANIFEST_EDITOR_CONTEXT, + TextEditor::TextEditorActionHandler::UnCommentSelection, + [](Core::IEditor *editor) { return static_cast(editor)->textEditor(); }) + { + setId(Constants::ANDROID_MANIFEST_EDITOR_ID); + setDisplayName(Tr::tr("Android Manifest editor")); + addMimeType(Constants::ANDROID_MANIFEST_MIME_TYPE); + setEditorCreator([] { + auto androidManifestEditorWidget = new AndroidManifestEditorWidget; + return androidManifestEditorWidget->editor(); + }); + } + +private: + TextEditor::TextEditorActionHandler m_actionHandler; +}; + +void setupAndroidManifestEditor() +{ + static AndroidManifestEditorFactory theAndroidManifestEditorFactory; } + +} // Android::Internal + diff --git a/src/plugins/android/androidmanifesteditorfactory.h b/src/plugins/android/androidmanifesteditorfactory.h index 4ced1260c62..fe812fd94a6 100644 --- a/src/plugins/android/androidmanifesteditorfactory.h +++ b/src/plugins/android/androidmanifesteditorfactory.h @@ -3,21 +3,8 @@ #pragma once -#include +namespace Android::Internal { -#include +void setupAndroidManifestEditor(); -namespace Android { -namespace Internal { - -class AndroidManifestEditorFactory final : public Core::IEditorFactory -{ -public: - AndroidManifestEditorFactory(); - -private: - TextEditor::TextEditorActionHandler m_actionHandler; -}; - -} // namespace Internal -} // namespace Android +} // Android::Internal diff --git a/src/plugins/android/androidpackageinstallationstep.cpp b/src/plugins/android/androidpackageinstallationstep.cpp index e5398654b84..dc5b8ffc478 100644 --- a/src/plugins/android/androidpackageinstallationstep.cpp +++ b/src/plugins/android/androidpackageinstallationstep.cpp @@ -34,8 +34,7 @@ namespace { static Q_LOGGING_CATEGORY(packageInstallationStepLog, "qtc.android.packageinstallationstep", QtWarningMsg) } -namespace Android { -namespace Internal { +namespace Android::Internal { class AndroidPackageInstallationStep final : public AbstractProcessStep { @@ -182,18 +181,24 @@ void AndroidPackageInstallationStep::reportWarningOrError(const QString &message TaskHub::addTask(BuildSystemTask(type, message)); } -// // AndroidPackageInstallationStepFactory -// -AndroidPackageInstallationFactory::AndroidPackageInstallationFactory() +class AndroidPackageInstallationStepFactory final : public ProjectExplorer::BuildStepFactory { - registerStep(Constants::ANDROID_PACKAGE_INSTALL_STEP_ID); - setSupportedStepList(ProjectExplorer::Constants::BUILDSTEPS_BUILD); - setSupportedDeviceType(Android::Constants::ANDROID_DEVICE_TYPE); - setRepeatable(false); - setDisplayName(Tr::tr("Deploy to device")); +public: + AndroidPackageInstallationStepFactory() + { + registerStep(Constants::ANDROID_PACKAGE_INSTALL_STEP_ID); + setSupportedStepList(ProjectExplorer::Constants::BUILDSTEPS_BUILD); + setSupportedDeviceType(Android::Constants::ANDROID_DEVICE_TYPE); + setRepeatable(false); + setDisplayName(Tr::tr("Deploy to device")); + } +}; + +void setupAndroidPackageInstallationStep() +{ + static AndroidPackageInstallationStepFactory theAndroidPackageInstallationStepFactory; } -} // namespace Internal -} // namespace Android +} // Android::Internal diff --git a/src/plugins/android/androidpackageinstallationstep.h b/src/plugins/android/androidpackageinstallationstep.h index debc2a3cdbb..9226e27fe48 100644 --- a/src/plugins/android/androidpackageinstallationstep.h +++ b/src/plugins/android/androidpackageinstallationstep.h @@ -3,16 +3,8 @@ #pragma once -#include +namespace Android::Internal { -namespace Android { -namespace Internal { +void setupAndroidPackageInstallationStep(); -class AndroidPackageInstallationFactory final : public ProjectExplorer::BuildStepFactory -{ -public: - AndroidPackageInstallationFactory(); -}; - -} // namespace Internal -} // namespace Android +} // Android::Internal diff --git a/src/plugins/android/androidplugin.cpp b/src/plugins/android/androidplugin.cpp index 82ddfaf5141..2ad8e2c6851 100644 --- a/src/plugins/android/androidplugin.cpp +++ b/src/plugins/android/androidplugin.cpp @@ -81,14 +81,6 @@ void setupAndroidDeployConfiguration() class AndroidPluginPrivate : public QObject { public: - AndroidConfigurations androidConfiguration; - AndroidQtVersionFactory qtVersionFactory; - AndroidToolChainFactory toolChainFactory; - AndroidDeviceFactory deviceFactory; - AndroidPotentialKit potentialKit; - JavaEditorFactory javaEditorFactory; - AndroidPackageInstallationFactory packackeInstallationFactory; - AndroidManifestEditorFactory manifestEditorFactory; AndroidDeviceManager deviceManager; }; @@ -99,10 +91,18 @@ AndroidPlugin::~AndroidPlugin() void AndroidPlugin::initialize() { + setupAndroidConfigurations(); + + setupAndroidPotentialKit(); + setupAndroidDevice(); + setupAndroidQtVersion(); + setupAndroidToolchain(); + d = new AndroidPluginPrivate; setupAndroidSettingsPage(); + setupAndroidPackageInstallationStep(); setupAndroidBuildApkStep(); setupAndroidDeployConfiguration(); @@ -114,6 +114,9 @@ void AndroidPlugin::initialize() setupAndroidQmlToolingSupport(); setupAndroidQmlPreviewWorker(); + setupJavaEditor(); + setupAndroidManifestEditor(); + connect(KitManager::instance(), &KitManager::kitsLoaded, this, &AndroidPlugin::kitsRestored); @@ -166,7 +169,9 @@ void AndroidPlugin::askUserAboutAndroidSetup() info.addCustomButton(Tr::tr("Configure Android"), [this] { Core::ICore::infoBar()->removeInfo(kSetupAndroidSetting); Core::ICore::infoBar()->globallySuppressInfo(kSetupAndroidSetting); - QTimer::singleShot(0, this, [this] { d->potentialKit.executeFromMenu(); }); + QTimer::singleShot(0, this, [] { + Core::ICore::showOptionsDialog(Constants::ANDROID_SETTINGS_ID); + }); }); Core::ICore::infoBar()->addInfo(info); } diff --git a/src/plugins/android/androidpotentialkit.cpp b/src/plugins/android/androidpotentialkit.cpp index 08089d5f7f3..59b6e43eb17 100644 --- a/src/plugins/android/androidpotentialkit.cpp +++ b/src/plugins/android/androidpotentialkit.cpp @@ -9,6 +9,7 @@ #include #include +#include #include #include #include @@ -24,6 +25,8 @@ #include #include +using namespace ProjectExplorer; + namespace Android::Internal { class AndroidPotentialKitWidget : public Utils::DetailsWidget @@ -36,37 +39,6 @@ private: void recheck(); }; -QString AndroidPotentialKit::displayName() const -{ - return Tr::tr("Configure Android..."); -} - -void AndroidPotentialKit::executeFromMenu() -{ - Core::ICore::showOptionsDialog(Constants::ANDROID_SETTINGS_ID); -} - -QWidget *AndroidPotentialKit::createWidget(QWidget *parent) const -{ - if (!isEnabled()) - return nullptr; - return new AndroidPotentialKitWidget(parent); -} - -bool AndroidPotentialKit::isEnabled() const -{ - const QList kits = ProjectExplorer::KitManager::kits(); - for (const ProjectExplorer::Kit *kit : kits) { - if (kit->isAutoDetected() && !kit->isSdkProvided()) { - return false; - } - } - - return QtSupport::QtVersionManager::version([](const QtSupport::QtVersion *v) { - return v->type() == QString::fromLatin1(Constants::ANDROID_QT_TYPE); - }); -} - AndroidPotentialKitWidget::AndroidPotentialKitWidget(QWidget *parent) : Utils::DetailsWidget(parent) { @@ -104,8 +76,8 @@ void AndroidPotentialKitWidget::openOptions() void AndroidPotentialKitWidget::recheck() { - const QList kits = ProjectExplorer::KitManager::kits(); - for (const ProjectExplorer::Kit *kit : kits) { + const QList kits = KitManager::kits(); + for (const Kit *kit : kits) { if (kit->isAutoDetected() && !kit->isSdkProvided()) { setVisible(false); return; @@ -113,4 +85,44 @@ void AndroidPotentialKitWidget::recheck() } } +class AndroidPotentialKit final : public IPotentialKit +{ +public: + QString displayName() const final + { + return Tr::tr("Configure Android..."); + } + + void executeFromMenu() final + { + Core::ICore::showOptionsDialog(Constants::ANDROID_SETTINGS_ID); + } + + QWidget *createWidget(QWidget *parent) const final + { + if (!isEnabled()) + return nullptr; + return new AndroidPotentialKitWidget(parent); + } + + bool isEnabled() const final + { + const QList kits = KitManager::kits(); + for (const Kit *kit : kits) { + if (kit->isAutoDetected() && !kit->isSdkProvided()) { + return false; + } + } + + return QtSupport::QtVersionManager::version([](const QtSupport::QtVersion *v) { + return v->type() == QString::fromLatin1(Constants::ANDROID_QT_TYPE); + }); + } +}; + +void setupAndroidPotentialKit() +{ + static AndroidPotentialKit theAndroidPotentialKit; +} + } // Android::Internal diff --git a/src/plugins/android/androidpotentialkit.h b/src/plugins/android/androidpotentialkit.h index d1110294756..bc1ba9acc8c 100644 --- a/src/plugins/android/androidpotentialkit.h +++ b/src/plugins/android/androidpotentialkit.h @@ -3,17 +3,8 @@ #pragma once -#include - namespace Android::Internal { -class AndroidPotentialKit : public ProjectExplorer::IPotentialKit -{ -public: - QString displayName() const override; - void executeFromMenu() override; - QWidget *createWidget(QWidget *parent) const override; - bool isEnabled() const override; -}; +void setupAndroidPotentialKit(); } // Android::Internal diff --git a/src/plugins/android/androidqtversion.cpp b/src/plugins/android/androidqtversion.cpp index 5ba8775b67e..695202c051a 100644 --- a/src/plugins/android/androidqtversion.cpp +++ b/src/plugins/android/androidqtversion.cpp @@ -38,12 +38,10 @@ using namespace ProjectExplorer; -namespace Android { -namespace Internal { +namespace Android::Internal { AndroidQtVersion::AndroidQtVersion() - : QtSupport::QtVersion() - , m_guard(std::make_unique()) + : m_guard(std::make_unique()) { QObject::connect(AndroidConfigurations::instance(), &AndroidConfigurations::aboutToUpdate, @@ -265,17 +263,26 @@ QSet AndroidQtVersion::targetDeviceTypes() const // Factory -AndroidQtVersionFactory::AndroidQtVersionFactory() +class AndroidQtVersionFactory : public QtSupport::QtVersionFactory { - setQtVersionCreator([] { return new AndroidQtVersion; }); - setSupportedType(Constants::ANDROID_QT_TYPE); - setPriority(90); +public: + AndroidQtVersionFactory() + { + setQtVersionCreator([] { return new AndroidQtVersion; }); + setSupportedType(Constants::ANDROID_QT_TYPE); + setPriority(90); - setRestrictionChecker([](const SetupData &setup) { - return !setup.config.contains("android-no-sdk") - && (setup.config.contains("android") - || setup.platforms.contains("android")); - }); + setRestrictionChecker([](const SetupData &setup) { + return !setup.config.contains("android-no-sdk") + && (setup.config.contains("android") + || setup.platforms.contains("android")); + }); + } +}; + +void setupAndroidQtVersion() +{ + static AndroidQtVersionFactory theAndroidQtVersionFactory; } #ifdef WITH_TESTS @@ -341,5 +348,4 @@ void AndroidPlugin::testAndroidQtVersionParseBuiltWith() } #endif // WITH_TESTS -} // Internal -} // Android +} // Android::Internal diff --git a/src/plugins/android/androidqtversion.h b/src/plugins/android/androidqtversion.h index 95a69a6c2ea..80005a0315c 100644 --- a/src/plugins/android/androidqtversion.h +++ b/src/plugins/android/androidqtversion.h @@ -6,10 +6,7 @@ #include #include -#include - -namespace Android { -namespace Internal { +namespace Android::Internal { class AndroidQtVersion : public QtSupport::QtVersion { @@ -45,17 +42,13 @@ public: protected: void parseMkSpec(ProFileEvaluator *) const override; + private: std::unique_ptr m_guard; mutable QStringList m_androidAbis; mutable int m_minNdk = -1; }; -class AndroidQtVersionFactory : public QtSupport::QtVersionFactory -{ -public: - AndroidQtVersionFactory(); -}; +void setupAndroidQtVersion(); -} // namespace Internal -} // namespace Android +} // Android::Internal diff --git a/src/plugins/android/androidtoolchain.cpp b/src/plugins/android/androidtoolchain.cpp index 5d96d8c4bdc..e2c9bfd59d8 100644 --- a/src/plugins/android/androidtoolchain.cpp +++ b/src/plugins/android/androidtoolchain.cpp @@ -18,8 +18,7 @@ using namespace ProjectExplorer; using namespace Utils; -namespace Android { -namespace Internal { +namespace Android::Internal { static Q_LOGGING_CATEGORY(androidTCLog, "qtc.android.toolchainmanagement", QtWarningMsg); @@ -252,5 +251,9 @@ ToolChainList AndroidToolChainFactory::autodetectToolChainsFromNdks( return result; } -} // namespace Internal -} // namespace Android +void setupAndroidToolchain() +{ + static AndroidToolChainFactory theAndroidToolchainFactory; +} + +} // Android::Internal diff --git a/src/plugins/android/androidtoolchain.h b/src/plugins/android/androidtoolchain.h index bd33dc75704..1d5bdf5af86 100644 --- a/src/plugins/android/androidtoolchain.h +++ b/src/plugins/android/androidtoolchain.h @@ -7,8 +7,7 @@ #include -namespace Android { -namespace Internal { +namespace Android::Internal { using ToolChainList = QList; @@ -58,5 +57,6 @@ public: const bool isCustom = false); }; -} // namespace Internal -} // namespace Android +void setupAndroidToolchain(); + +} // Android diff --git a/src/plugins/android/javaeditor.cpp b/src/plugins/android/javaeditor.cpp index edd63e073bb..b0b844c1563 100644 --- a/src/plugins/android/javaeditor.cpp +++ b/src/plugins/android/javaeditor.cpp @@ -14,7 +14,6 @@ #include #include -#include #include #include @@ -29,29 +28,34 @@ static TextEditor::TextDocument *createJavaDocument() return doc; } -// -// JavaEditorFactory -// - -JavaEditorFactory::JavaEditorFactory() +class JavaEditorFactory : public TextEditor::TextEditorFactory { - static QStringList keywords = { - "abstract", "assert", "boolean", "break", "byte", "case", "catch", "char", "class", "const", - "continue", "default", "do", "double", "else", "enum", "extends", "final", "finally", - "float", "for", "goto", "if", "implements", "import", "instanceof", "int", "interface", - "long", "native", "new", "package", "private", "protected", "public", "return", "short", - "static", "strictfp", "super", "switch", "synchronized", "this", "throw", "throws", - "transient", "try", "void", "volatile", "while" - }; - setId(Constants::JAVA_EDITOR_ID); - setDisplayName(::Core::Tr::tr("Java Editor")); - addMimeType(Utils::Constants::JAVA_MIMETYPE); +public: + JavaEditorFactory() + { + static QStringList keywords = { + "abstract", "assert", "boolean", "break", "byte", "case", "catch", "char", "class", "const", + "continue", "default", "do", "double", "else", "enum", "extends", "final", "finally", + "float", "for", "goto", "if", "implements", "import", "instanceof", "int", "interface", + "long", "native", "new", "package", "private", "protected", "public", "return", "short", + "static", "strictfp", "super", "switch", "synchronized", "this", "throw", "throws", + "transient", "try", "void", "volatile", "while" + }; + setId(Constants::JAVA_EDITOR_ID); + setDisplayName(::Core::Tr::tr("Java Editor")); + addMimeType(Utils::Constants::JAVA_MIMETYPE); - setDocumentCreator(createJavaDocument); - setUseGenericHighlighter(true); - setCommentDefinition(Utils::CommentDefinition::CppStyle); - setEditorActionHandlers(TextEditor::TextEditorActionHandler::UnCommentSelection); - setCompletionAssistProvider(new TextEditor::KeywordsCompletionAssistProvider(keywords)); + setDocumentCreator(createJavaDocument); + setUseGenericHighlighter(true); + setCommentDefinition(Utils::CommentDefinition::CppStyle); + setEditorActionHandlers(TextEditor::TextEditorActionHandler::UnCommentSelection); + setCompletionAssistProvider(new TextEditor::KeywordsCompletionAssistProvider(keywords)); + } +}; + +void setupJavaEditor() +{ + static JavaEditorFactory theJavaEditorFactory; } } // Android::Internal diff --git a/src/plugins/android/javaeditor.h b/src/plugins/android/javaeditor.h index dee2d0c712e..7a044564ad5 100644 --- a/src/plugins/android/javaeditor.h +++ b/src/plugins/android/javaeditor.h @@ -3,14 +3,8 @@ #pragma once -#include - namespace Android::Internal { -class JavaEditorFactory : public TextEditor::TextEditorFactory -{ -public: - JavaEditorFactory(); -}; +void setupJavaEditor(); } // Android::Internal