diff --git a/src/plugins/android/CMakeLists.txt b/src/plugins/android/CMakeLists.txt index c7802e1527e..c79134828ad 100644 --- a/src/plugins/android/CMakeLists.txt +++ b/src/plugins/android/CMakeLists.txt @@ -17,7 +17,6 @@ add_qtc_plugin(Android androidglobal.h androidmanager.cpp androidmanager.h androidmanifestdocument.cpp androidmanifestdocument.h - androidmanifesteditor.cpp androidmanifesteditor.h androidmanifesteditorwidget.cpp androidmanifesteditorwidget.h androidmanifesteditoriconwidget.cpp androidmanifesteditoriconwidget.h androidmanifesteditoriconcontainerwidget.cpp androidmanifesteditoriconcontainerwidget.h diff --git a/src/plugins/android/android.qbs b/src/plugins/android/android.qbs index 92a420c8efa..7c9c8f3bdb8 100644 --- a/src/plugins/android/android.qbs +++ b/src/plugins/android/android.qbs @@ -40,8 +40,6 @@ QtcPlugin { "androidmanager.h", "androidmanifestdocument.cpp", "androidmanifestdocument.h", - "androidmanifesteditor.cpp", - "androidmanifesteditor.h", "androidmanifesteditoriconwidget.cpp", "androidmanifesteditoriconwidget.h", "androidmanifesteditoriconcontainerwidget.cpp", diff --git a/src/plugins/android/androidmanifesteditor.cpp b/src/plugins/android/androidmanifesteditor.cpp deleted file mode 100644 index cdbf248d78d..00000000000 --- a/src/plugins/android/androidmanifesteditor.cpp +++ /dev/null @@ -1,112 +0,0 @@ -// Copyright (C) 2016 The Qt Company Ltd. -// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 - -#include "androidconstants.h" -#include "androidmanifestdocument.h" -#include "androidmanifesteditor.h" -#include "androidmanifesteditorwidget.h" -#include "androidtr.h" - -#include - -#include -#include -#include - -namespace Android::Internal { - -AndroidManifestEditor::AndroidManifestEditor(AndroidManifestEditorWidget *editorWidget) - : m_toolBar(nullptr) -{ - m_toolBar = new QToolBar(editorWidget); - m_actionGroup = new QActionGroup(this); - connect(m_actionGroup, &QActionGroup::triggered, - this, &AndroidManifestEditor::changeEditorPage); - - QAction *generalAction = m_toolBar->addAction(Tr::tr("General")); - generalAction->setData(AndroidManifestEditorWidget::General); - generalAction->setCheckable(true); - m_actionGroup->addAction(generalAction); - - QAction *sourceAction = m_toolBar->addAction(Tr::tr("XML Source")); - sourceAction->setData(AndroidManifestEditorWidget::Source); - sourceAction->setCheckable(true); - m_actionGroup->addAction(sourceAction); - - generalAction->setChecked(true); - - setWidget(editorWidget); -} - -QWidget *AndroidManifestEditor::toolBar() -{ - return m_toolBar; -} - -AndroidManifestEditorWidget *AndroidManifestEditor::ownWidget() const -{ - return static_cast(widget()); -} - -Core::IDocument *AndroidManifestEditor::document() const -{ - return textEditor()->textDocument(); -} - -TextEditor::TextEditorWidget *AndroidManifestEditor::textEditor() const -{ - return ownWidget()->textEditorWidget(); -} - -int AndroidManifestEditor::currentLine() const -{ - return textEditor()->textCursor().blockNumber() + 1; -} - -int AndroidManifestEditor::currentColumn() const -{ - QTextCursor cursor = textEditor()->textCursor(); - return cursor.position() - cursor.block().position() + 1; -} - -void AndroidManifestEditor::gotoLine(int line, int column, bool centerLine) -{ - textEditor()->gotoLine(line, column, centerLine); -} - -void AndroidManifestEditor::changeEditorPage(QAction *action) -{ - if (!ownWidget()->setActivePage(static_cast(action->data().toInt()))) { - const QList actions = m_actionGroup->actions(); - for (QAction *action : actions) { - if (action->data().toInt() == ownWidget()->activePage()) { - action->setChecked(true); - break; - } - } - } -} - -// Factory - -class AndroidManifestEditorFactory final : public Core::IEditorFactory -{ -public: - AndroidManifestEditorFactory() - { - 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(); - }); - } -}; - -void setupAndroidManifestEditor() -{ - static AndroidManifestEditorFactory theAndroidManifestEditorFactory; -} - -} // Android::Internal diff --git a/src/plugins/android/androidmanifesteditor.h b/src/plugins/android/androidmanifesteditor.h deleted file mode 100644 index 9583d7e0f99..00000000000 --- a/src/plugins/android/androidmanifesteditor.h +++ /dev/null @@ -1,45 +0,0 @@ -// Copyright (C) 2016 The Qt Company Ltd. -// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 - -#pragma once - -#include "androidmanifestdocument.h" -#include "androidmanifesteditorwidget.h" - -#include -#include - -QT_BEGIN_NAMESPACE -class QToolBar; -class QActionGroup; -QT_END_NAMESPACE - -namespace Android::Internal { - -class AndroidManifestEditor : public Core::IEditor -{ - Q_OBJECT - -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; -}; - -void setupAndroidManifestEditor(); - -} // Android::Internal diff --git a/src/plugins/android/androidmanifesteditorwidget.cpp b/src/plugins/android/androidmanifesteditorwidget.cpp index d0a44730662..bc18f03debe 100644 --- a/src/plugins/android/androidmanifesteditorwidget.cpp +++ b/src/plugins/android/androidmanifesteditorwidget.cpp @@ -5,7 +5,6 @@ #include "androidconstants.h" #include "androidmanager.h" #include "androidmanifestdocument.h" -#include "androidmanifesteditor.h" #include "androidmanifesteditoriconcontainerwidget.h" #include "androidmanifesteditorwidget.h" #include "androidtr.h" @@ -26,6 +25,7 @@ #include #include +#include #include #include @@ -33,12 +33,12 @@ #include #include +#include #include #include #include #include #include -#include #include #include #include @@ -50,13 +50,14 @@ #include #include #include +#include #include +#include #include #include #include #include -#include using namespace ProjectExplorer; using namespace Utils; @@ -101,6 +102,28 @@ private: QStringList m_permissions; }; +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 { public: @@ -1415,5 +1438,100 @@ AndroidManifestTextEditorWidget::AndroidManifestTextEditorWidget(AndroidManifest } +// AndroidManifestEditor + +AndroidManifestEditor::AndroidManifestEditor(AndroidManifestEditorWidget *editorWidget) + : m_toolBar(nullptr) +{ + m_toolBar = new QToolBar(editorWidget); + m_actionGroup = new QActionGroup(this); + connect(m_actionGroup, &QActionGroup::triggered, + this, &AndroidManifestEditor::changeEditorPage); + + QAction *generalAction = m_toolBar->addAction(Tr::tr("General")); + generalAction->setData(AndroidManifestEditorWidget::General); + generalAction->setCheckable(true); + m_actionGroup->addAction(generalAction); + + QAction *sourceAction = m_toolBar->addAction(Tr::tr("XML Source")); + sourceAction->setData(AndroidManifestEditorWidget::Source); + sourceAction->setCheckable(true); + m_actionGroup->addAction(sourceAction); + + generalAction->setChecked(true); + + setWidget(editorWidget); +} + +QWidget *AndroidManifestEditor::toolBar() +{ + return m_toolBar; +} + +AndroidManifestEditorWidget *AndroidManifestEditor::ownWidget() const +{ + return static_cast(widget()); +} + +Core::IDocument *AndroidManifestEditor::document() const +{ + return textEditor()->textDocument(); +} + +TextEditor::TextEditorWidget *AndroidManifestEditor::textEditor() const +{ + return ownWidget()->textEditorWidget(); +} + +int AndroidManifestEditor::currentLine() const +{ + return textEditor()->textCursor().blockNumber() + 1; +} + +int AndroidManifestEditor::currentColumn() const +{ + QTextCursor cursor = textEditor()->textCursor(); + return cursor.position() - cursor.block().position() + 1; +} + +void AndroidManifestEditor::gotoLine(int line, int column, bool centerLine) +{ + textEditor()->gotoLine(line, column, centerLine); +} + +void AndroidManifestEditor::changeEditorPage(QAction *action) +{ + if (!ownWidget()->setActivePage(static_cast(action->data().toInt()))) { + const QList actions = m_actionGroup->actions(); + for (QAction *action : actions) { + if (action->data().toInt() == ownWidget()->activePage()) { + action->setChecked(true); + break; + } + } + } +} + +// Factory + +class AndroidManifestEditorFactory final : public Core::IEditorFactory +{ +public: + AndroidManifestEditorFactory() + { + 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(); + }); + } +}; + +void setupAndroidManifestEditor() +{ + static AndroidManifestEditorFactory theAndroidManifestEditorFactory; +} } // Android::Internal diff --git a/src/plugins/android/androidmanifesteditorwidget.h b/src/plugins/android/androidmanifesteditorwidget.h index cfb59f38401..6225b9de955 100644 --- a/src/plugins/android/androidmanifesteditorwidget.h +++ b/src/plugins/android/androidmanifesteditorwidget.h @@ -140,4 +140,6 @@ private: QTabWidget *m_advanvedTabWidget = nullptr; }; +void setupAndroidManifestEditor(); + } // Android::Internal diff --git a/src/plugins/android/androidplugin.cpp b/src/plugins/android/androidplugin.cpp index 5f860134f8f..f55d01f1da5 100644 --- a/src/plugins/android/androidplugin.cpp +++ b/src/plugins/android/androidplugin.cpp @@ -7,7 +7,7 @@ #include "androiddebugsupport.h" #include "androiddeployqtstep.h" #include "androiddevice.h" -#include "androidmanifesteditor.h" +#include "androidmanifesteditorwidget.h" #include "androidpackageinstallationstep.h" #include "androidpotentialkit.h" #include "androidqmltoolingsupport.h"