From 0811754fb92536d2d6af4bd44b2d4eb48c329fdb Mon Sep 17 00:00:00 2001 From: hjk Date: Mon, 29 Jul 2024 17:42:15 +0200 Subject: [PATCH] Android: Hide AndroidManifestEditorWidget definition in .cpp Smaller visible interface. Change-Id: I3baae92bbc13f6ad4231b21b074d030877a701a6 Reviewed-by: Alessandro Portale --- src/plugins/android/androidmanifesteditor.cpp | 122 +++++++++++++++- src/plugins/android/androidmanifesteditor.h | 135 ------------------ 2 files changed, 120 insertions(+), 137 deletions(-) diff --git a/src/plugins/android/androidmanifesteditor.cpp b/src/plugins/android/androidmanifesteditor.cpp index f58afe2b4a0..a87679d14ba 100644 --- a/src/plugins/android/androidmanifesteditor.cpp +++ b/src/plugins/android/androidmanifesteditor.cpp @@ -65,6 +65,8 @@ using namespace Utils; namespace Android::Internal { +class AndroidManifestEditor; + const char infoBarId[] = "Android.AndroidManifestEditor.InfoBar"; static bool checkPackageName(const QString &packageName) @@ -103,6 +105,119 @@ private: QStringList m_permissions; }; +// AndroidManifestEditorWidget + +class AndroidManifestEditorWidget : public QStackedWidget +{ + Q_OBJECT + +public: + enum EditorPage { + General = 0, + Source = 1 + }; + + explicit AndroidManifestEditorWidget(); + + bool isModified() const; + + EditorPage activePage() const; + bool setActivePage(EditorPage page); + + void preSave(); + void postSave(); + + Core::IEditor *editor() const; + TextEditor::TextEditorWidget *textEditorWidget() const; + + void setDirty(bool dirty = true); + +signals: + void guiChanged(); + +protected: + void focusInEvent(QFocusEvent *event) override; + +private: + void defaultPermissionOrFeatureCheckBoxClicked(); + void addPermission(); + void removePermission(); + void updateAddRemovePermissionButtons(); + void setPackageName(); + void updateInfoBar(); + void updateSdkVersions(); + void startParseCheck(); + void delayedParseCheck(); + void initializePage(); + bool syncToWidgets(); + void syncToWidgets(const QDomDocument &doc); + void syncToEditor(); + void updateAfterFileLoad(); + + bool checkDocument(const QDomDocument &doc, QString *errorMessage, + int *errorLine, int *errorColumn); + + void updateInfoBar(const QString &errorMessage, int line, int column); + void hideInfoBar(); + + void parseManifest(QXmlStreamReader &reader, QXmlStreamWriter &writer); + void parseApplication(QXmlStreamReader &reader, QXmlStreamWriter &writer); + void parseSplashScreen(QXmlStreamWriter &writer); + void parseActivity(QXmlStreamReader &reader, QXmlStreamWriter &writer); + bool parseMetaData(QXmlStreamReader &reader, QXmlStreamWriter &writer); + void parseUsesSdk(QXmlStreamReader &reader, QXmlStreamWriter &writer); + QString parseUsesPermission(QXmlStreamReader &reader, + QXmlStreamWriter &writer, + const QSet &permissions); + QString parseComment(QXmlStreamReader &reader, QXmlStreamWriter &writer); + void parseUnknownElement(QXmlStreamReader &reader, QXmlStreamWriter &writer); + + QGroupBox *createPermissionsGroupBox(QWidget *parent); + QGroupBox *createPackageFormLayout(QWidget *parent); + QGroupBox *createApplicationGroupBox(QWidget *parent); + QGroupBox *createAdvancedGroupBox(QWidget *parent); + + bool m_dirty = false; // indicates that we need to call syncToEditor() + bool m_stayClean = false; + int m_errorLine; + int m_errorColumn; + QString m_currentsplashImageName[3]; + bool m_currentsplashSticky = false; + + QLineEdit *m_packageNameLineEdit; + QLabel *m_packageNameWarningIcon; + QLabel *m_packageNameWarning; + QLineEdit *m_versionCodeLineEdit; + QLineEdit *m_versionNameLinedit; + QComboBox *m_androidMinSdkVersion; + QComboBox *m_androidTargetSdkVersion; + + // Application + QLineEdit *m_appNameLineEdit; + QLineEdit *m_activityNameLineEdit; + QComboBox *m_styleExtractMethod; + QComboBox *m_screenOrientation; + AndroidManifestEditorIconContainerWidget *m_iconButtons; + SplashScreenContainerWidget *m_splashButtons; + + // Permissions + QCheckBox *m_defaultPermissonsCheckBox; + QCheckBox *m_defaultFeaturesCheckBox; + PermissionsModel *m_permissionsModel; + QListView *m_permissionsListView; + QPushButton *m_addPermissionButton; + QPushButton *m_removePermissionButton; + QComboBox *m_permissionsComboBox; + + QTimer m_timerParseCheck; + TextEditor::TextEditorWidget *m_textEditorWidget; + AndroidManifestEditor *m_editor; + QString m_androidNdkPlatform; + QTabWidget *m_advanvedTabWidget = nullptr; +}; + +// AndroidManifestEditor + class AndroidManifestEditor : public Core::IEditor { public: @@ -746,8 +861,8 @@ void AndroidManifestEditorWidget::updateInfoBar(const QString &errorMessage, int void AndroidManifestEditorWidget::hideInfoBar() { InfoBar *infoBar = m_textEditorWidget->textDocument()->infoBar(); - infoBar->removeInfo(infoBarId); - m_timerParseCheck.stop(); + infoBar->removeInfo(infoBarId); + m_timerParseCheck.stop(); } void setApiLevel(QComboBox *box, const QDomElement &element, const QString &attribute) @@ -1571,3 +1686,6 @@ void setupAndroidManifestEditor() } } // Android::Internal + + +#include "androidmanifesteditor.moc" diff --git a/src/plugins/android/androidmanifesteditor.h b/src/plugins/android/androidmanifesteditor.h index 6225b9de955..fe812fd94a6 100644 --- a/src/plugins/android/androidmanifesteditor.h +++ b/src/plugins/android/androidmanifesteditor.h @@ -3,143 +3,8 @@ #pragma once -#include - -#include -#include - -QT_BEGIN_NAMESPACE -class QCheckBox; -class QDomDocument; -class QComboBox; -class QGroupBox; -class QPushButton; -class QLabel; -class QLineEdit; -class QListView; -class QTabWidget; -class QXmlStreamReader; -class QXmlStreamWriter; -QT_END_NAMESPACE - -namespace Core { class IEditor; } - namespace Android::Internal { -class AndroidManifestEditor; -class AndroidManifestEditorIconContainerWidget; -class PermissionsModel; -class SplashScreenContainerWidget; - -class AndroidManifestEditorWidget : public QStackedWidget -{ - Q_OBJECT - -public: - enum EditorPage { - General = 0, - Source = 1 - }; - - explicit AndroidManifestEditorWidget(); - - bool isModified() const; - - EditorPage activePage() const; - bool setActivePage(EditorPage page); - - void preSave(); - void postSave(); - - Core::IEditor *editor() const; - TextEditor::TextEditorWidget *textEditorWidget() const; - - void setDirty(bool dirty = true); - -signals: - void guiChanged(); - -protected: - void focusInEvent(QFocusEvent *event) override; - -private: - void defaultPermissionOrFeatureCheckBoxClicked(); - void addPermission(); - void removePermission(); - void updateAddRemovePermissionButtons(); - void setPackageName(); - void updateInfoBar(); - void updateSdkVersions(); - void startParseCheck(); - void delayedParseCheck(); - void initializePage(); - bool syncToWidgets(); - void syncToWidgets(const QDomDocument &doc); - void syncToEditor(); - void updateAfterFileLoad(); - - bool checkDocument(const QDomDocument &doc, QString *errorMessage, - int *errorLine, int *errorColumn); - - void updateInfoBar(const QString &errorMessage, int line, int column); - void hideInfoBar(); - - void parseManifest(QXmlStreamReader &reader, QXmlStreamWriter &writer); - void parseApplication(QXmlStreamReader &reader, QXmlStreamWriter &writer); - void parseSplashScreen(QXmlStreamWriter &writer); - void parseActivity(QXmlStreamReader &reader, QXmlStreamWriter &writer); - bool parseMetaData(QXmlStreamReader &reader, QXmlStreamWriter &writer); - void parseUsesSdk(QXmlStreamReader &reader, QXmlStreamWriter &writer); - QString parseUsesPermission(QXmlStreamReader &reader, - QXmlStreamWriter &writer, - const QSet &permissions); - QString parseComment(QXmlStreamReader &reader, QXmlStreamWriter &writer); - void parseUnknownElement(QXmlStreamReader &reader, QXmlStreamWriter &writer); - - QGroupBox *createPermissionsGroupBox(QWidget *parent); - QGroupBox *createPackageFormLayout(QWidget *parent); - QGroupBox *createApplicationGroupBox(QWidget *parent); - QGroupBox *createAdvancedGroupBox(QWidget *parent); - - bool m_dirty = false; // indicates that we need to call syncToEditor() - bool m_stayClean = false; - int m_errorLine; - int m_errorColumn; - QString m_currentsplashImageName[3]; - bool m_currentsplashSticky = false; - - QLineEdit *m_packageNameLineEdit; - QLabel *m_packageNameWarningIcon; - QLabel *m_packageNameWarning; - QLineEdit *m_versionCodeLineEdit; - QLineEdit *m_versionNameLinedit; - QComboBox *m_androidMinSdkVersion; - QComboBox *m_androidTargetSdkVersion; - - // Application - QLineEdit *m_appNameLineEdit; - QLineEdit *m_activityNameLineEdit; - QComboBox *m_styleExtractMethod; - QComboBox *m_screenOrientation; - AndroidManifestEditorIconContainerWidget *m_iconButtons; - SplashScreenContainerWidget *m_splashButtons; - - // Permissions - QCheckBox *m_defaultPermissonsCheckBox; - QCheckBox *m_defaultFeaturesCheckBox; - PermissionsModel *m_permissionsModel; - QListView *m_permissionsListView; - QPushButton *m_addPermissionButton; - QPushButton *m_removePermissionButton; - QComboBox *m_permissionsComboBox; - - QTimer m_timerParseCheck; - TextEditor::TextEditorWidget *m_textEditorWidget; - AndroidManifestEditor *m_editor; - QString m_androidNdkPlatform; - QTabWidget *m_advanvedTabWidget = nullptr; -}; - void setupAndroidManifestEditor(); } // Android::Internal