Android: Make AndroidManifestEditor have a AndroidManifestEditorWidget

As the IEditor interface suggests, not the other way round.

This way the widget doesn't have to know about the editor.

Change-Id: I49e69047544dc89efdbcff51f2550ca827072c91
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
This commit is contained in:
hjk
2024-07-29 18:02:03 +02:00
parent 0811754fb9
commit 23959208c2

View File

@@ -65,8 +65,6 @@ using namespace Utils;
namespace Android::Internal { namespace Android::Internal {
class AndroidManifestEditor;
const char infoBarId[] = "Android.AndroidManifestEditor.InfoBar"; const char infoBarId[] = "Android.AndroidManifestEditor.InfoBar";
static bool checkPackageName(const QString &packageName) static bool checkPackageName(const QString &packageName)
@@ -127,7 +125,6 @@ public:
void preSave(); void preSave();
void postSave(); void postSave();
Core::IEditor *editor() const;
TextEditor::TextEditorWidget *textEditorWidget() const; TextEditor::TextEditorWidget *textEditorWidget() const;
void setDirty(bool dirty = true); void setDirty(bool dirty = true);
@@ -211,35 +208,10 @@ private:
QTimer m_timerParseCheck; QTimer m_timerParseCheck;
TextEditor::TextEditorWidget *m_textEditorWidget; TextEditor::TextEditorWidget *m_textEditorWidget;
AndroidManifestEditor *m_editor;
QString m_androidNdkPlatform; QString m_androidNdkPlatform;
QTabWidget *m_advanvedTabWidget = nullptr; QTabWidget *m_advanvedTabWidget = nullptr;
}; };
// AndroidManifestEditor
class AndroidManifestEditor : public Core::IEditor
{
public:
explicit AndroidManifestEditor(AndroidManifestEditorWidget *editorWidget);
QWidget *toolBar() override;
Core::IDocument *document() const override;
TextEditor::TextEditorWidget *textEditor() const;
int currentLine() const override;
int currentColumn() const override;
void gotoLine(int line, int column = 0, bool centerLine = true) override;
private:
AndroidManifestEditorWidget *ownWidget() const;
void changeEditorPage(QAction *action);
QString m_displayName;
QToolBar *m_toolBar;
QActionGroup *m_actionGroup;
};
class AndroidManifestTextEditorWidget : public TextEditor::TextEditorWidget class AndroidManifestTextEditorWidget : public TextEditor::TextEditorWidget
{ {
public: public:
@@ -259,8 +231,6 @@ AndroidManifestEditorWidget::AndroidManifestEditorWidget()
m_timerParseCheck.setInterval(800); m_timerParseCheck.setInterval(800);
m_timerParseCheck.setSingleShot(true); m_timerParseCheck.setSingleShot(true);
m_editor = new AndroidManifestEditor(this);
connect(&m_timerParseCheck, &QTimer::timeout, connect(&m_timerParseCheck, &QTimer::timeout,
this, &AndroidManifestEditorWidget::delayedParseCheck); this, &AndroidManifestEditorWidget::delayedParseCheck);
@@ -744,11 +714,6 @@ void AndroidManifestEditorWidget::postSave()
} }
} }
Core::IEditor *AndroidManifestEditorWidget::editor() const
{
return m_editor;
}
TextEditor::TextEditorWidget *AndroidManifestEditorWidget::textEditorWidget() const TextEditor::TextEditorWidget *AndroidManifestEditorWidget::textEditorWidget() const
{ {
return m_textEditorWidget; return m_textEditorWidget;
@@ -1591,6 +1556,28 @@ AndroidManifestTextEditorWidget::AndroidManifestTextEditorWidget(AndroidManifest
// AndroidManifestEditor // AndroidManifestEditor
class AndroidManifestEditor : public Core::IEditor
{
public:
explicit AndroidManifestEditor(AndroidManifestEditorWidget *editorWidget);
QWidget *toolBar() override;
Core::IDocument *document() const override;
TextEditor::TextEditorWidget *textEditor() const;
int currentLine() const override;
int currentColumn() const override;
void gotoLine(int line, int column = 0, bool centerLine = true) override;
private:
AndroidManifestEditorWidget *ownWidget() const;
void changeEditorPage(QAction *action);
QString m_displayName;
QToolBar *m_toolBar;
QActionGroup *m_actionGroup;
};
AndroidManifestEditor::AndroidManifestEditor(AndroidManifestEditorWidget *editorWidget) AndroidManifestEditor::AndroidManifestEditor(AndroidManifestEditorWidget *editorWidget)
: m_toolBar(nullptr) : m_toolBar(nullptr)
{ {
@@ -1674,8 +1661,9 @@ public:
setDisplayName(Tr::tr("Android Manifest editor")); setDisplayName(Tr::tr("Android Manifest editor"));
addMimeType(Constants::ANDROID_MANIFEST_MIME_TYPE); addMimeType(Constants::ANDROID_MANIFEST_MIME_TYPE);
setEditorCreator([] { setEditorCreator([] {
auto androidManifestEditorWidget = new AndroidManifestEditorWidget; auto widget = new AndroidManifestEditorWidget;
return androidManifestEditorWidget->editor(); auto editor = new AndroidManifestEditor(widget);
return editor;
}); });
} }
}; };