From d672d70732da0efccc6ce0e65973d925c704f8fe Mon Sep 17 00:00:00 2001 From: hjk Date: Fri, 7 Jul 2023 08:43:59 +0200 Subject: [PATCH] Beautifier: Move functions from settings to tools [2/3] Change-Id: Ie0773c99d9f2c814da124259c015d7d0fdc1b497 Reviewed-by: Christian Stenger --- src/plugins/beautifier/CMakeLists.txt | 1 - .../beautifier/artisticstyle/artisticstyle.h | 4 +-- src/plugins/beautifier/beautifier.qbs | 1 - .../beautifier/beautifierabstracttool.h | 35 ------------------- src/plugins/beautifier/beautifierplugin.cpp | 8 ++--- src/plugins/beautifier/beautifiertool.h | 28 +++++++++++++-- .../beautifier/clangformat/clangformat.h | 4 +-- .../beautifier/uncrustify/uncrustify.h | 4 +-- 8 files changed, 36 insertions(+), 49 deletions(-) delete mode 100644 src/plugins/beautifier/beautifierabstracttool.h diff --git a/src/plugins/beautifier/CMakeLists.txt b/src/plugins/beautifier/CMakeLists.txt index fa9d27b23d4..e2ea02a75b9 100644 --- a/src/plugins/beautifier/CMakeLists.txt +++ b/src/plugins/beautifier/CMakeLists.txt @@ -4,7 +4,6 @@ add_qtc_plugin(Beautifier SOURCES artisticstyle/artisticstyle.cpp artisticstyle/artisticstyle.h beautifier.qrc - beautifierabstracttool.h beautifierconstants.h beautifierplugin.cpp beautifierplugin.h beautifiertool.cpp beautifiertool.h diff --git a/src/plugins/beautifier/artisticstyle/artisticstyle.h b/src/plugins/beautifier/artisticstyle/artisticstyle.h index 2f920924266..db0af2bc1c8 100644 --- a/src/plugins/beautifier/artisticstyle/artisticstyle.h +++ b/src/plugins/beautifier/artisticstyle/artisticstyle.h @@ -3,7 +3,7 @@ #pragma once -#include "../beautifierabstracttool.h" +#include "../beautifiertool.h" QT_BEGIN_NAMESPACE class QAction; @@ -11,7 +11,7 @@ QT_END_NAMESPACE namespace Beautifier::Internal { -class ArtisticStyle : public BeautifierAbstractTool +class ArtisticStyle : public BeautifierTool { public: ArtisticStyle(); diff --git a/src/plugins/beautifier/beautifier.qbs b/src/plugins/beautifier/beautifier.qbs index 4165a383876..1d540b96cca 100644 --- a/src/plugins/beautifier/beautifier.qbs +++ b/src/plugins/beautifier/beautifier.qbs @@ -12,7 +12,6 @@ QtcPlugin { files: [ "beautifier.qrc", - "beautifierabstracttool.h", "beautifierconstants.h", "beautifierplugin.cpp", "beautifierplugin.h", diff --git a/src/plugins/beautifier/beautifierabstracttool.h b/src/plugins/beautifier/beautifierabstracttool.h deleted file mode 100644 index 00454b60de8..00000000000 --- a/src/plugins/beautifier/beautifierabstracttool.h +++ /dev/null @@ -1,35 +0,0 @@ -// Copyright (C) 2016 Lorenz Haas -// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 - -#pragma once - -#include - -#include - -namespace Core { -class IDocument; -class IEditor; -} - -namespace Beautifier::Internal { - -class BeautifierAbstractTool : public QObject -{ -public: - BeautifierAbstractTool() = default; - - virtual QString id() const = 0; - virtual void updateActions(Core::IEditor *editor) = 0; - - /** - * Returns the tool's command to format an entire file. - * - * @note The received command may be invalid. - */ - virtual TextEditor::Command command() const = 0; - - virtual bool isApplicable(const Core::IDocument *document) const = 0; -}; - -} // Beautifier::Internal diff --git a/src/plugins/beautifier/beautifierplugin.cpp b/src/plugins/beautifier/beautifierplugin.cpp index b849976a05b..fe76fd1de7d 100644 --- a/src/plugins/beautifier/beautifierplugin.cpp +++ b/src/plugins/beautifier/beautifierplugin.cpp @@ -74,7 +74,7 @@ public: ClangFormat clangFormatBeautifier; Uncrustify uncrustifyBeautifier; - BeautifierAbstractTool *m_tools[3] { + BeautifierTool *m_tools[3] { &artisticStyleBeautifier, &uncrustifyBeautifier, &clangFormatBeautifier @@ -105,7 +105,7 @@ ExtensionSystem::IPlugin::ShutdownFlag BeautifierPlugin::aboutToShutdown() BeautifierPluginPrivate::BeautifierPluginPrivate() { - for (BeautifierAbstractTool *tool : m_tools) + for (BeautifierTool *tool : m_tools) generalSettings.autoFormatTools.addOption(tool->id()); updateActions(); @@ -119,7 +119,7 @@ BeautifierPluginPrivate::BeautifierPluginPrivate() void BeautifierPluginPrivate::updateActions(Core::IEditor *editor) { - for (BeautifierAbstractTool *tool : m_tools) + for (BeautifierTool *tool : m_tools) tool->updateActions(editor); } @@ -147,7 +147,7 @@ void BeautifierPluginPrivate::autoFormatOnSave(Core::IDocument *document) // Find tool to use by id and format file! const QString id = generalSettings.autoFormatTools.stringValue(); auto tool = std::find_if(std::begin(m_tools), std::end(m_tools), - [&id](const BeautifierAbstractTool *t){return t->id() == id;}); + [&id](const BeautifierTool *t){return t->id() == id;}); if (tool != std::end(m_tools)) { if (!(*tool)->isApplicable(document)) return; diff --git a/src/plugins/beautifier/beautifiertool.h b/src/plugins/beautifier/beautifiertool.h index 8e9ceea931d..392b460dc70 100644 --- a/src/plugins/beautifier/beautifiertool.h +++ b/src/plugins/beautifier/beautifiertool.h @@ -5,12 +5,15 @@ #include +#include + #include #include #include #include #include +#include #include #include #include @@ -22,9 +25,30 @@ class QRegularExpression; class QVersionNumber; QT_END_NAMESPACE -namespace Core { class IDocument; } +namespace Core { +class IDocument; +class IEditor; +} -namespace Beautifier::Internal { +namespace Beautifier::Internal { + +class BeautifierTool : public QObject +{ +public: + BeautifierTool() = default; + + virtual QString id() const = 0; + virtual void updateActions(Core::IEditor *editor) = 0; + + /** + * Returns the tool's command to format an entire file. + * + * @note The received command may be invalid. + */ + virtual TextEditor::Command command() const = 0; + + virtual bool isApplicable(const Core::IDocument *document) const = 0; +}; class VersionUpdater; diff --git a/src/plugins/beautifier/clangformat/clangformat.h b/src/plugins/beautifier/clangformat/clangformat.h index 22b8ce2a093..9b6b00df40b 100644 --- a/src/plugins/beautifier/clangformat/clangformat.h +++ b/src/plugins/beautifier/clangformat/clangformat.h @@ -3,7 +3,7 @@ #pragma once -#include "../beautifierabstracttool.h" +#include "../beautifiertool.h" QT_BEGIN_NAMESPACE class QAction; @@ -11,7 +11,7 @@ QT_END_NAMESPACE namespace Beautifier::Internal { -class ClangFormat : public BeautifierAbstractTool +class ClangFormat : public BeautifierTool { public: ClangFormat(); diff --git a/src/plugins/beautifier/uncrustify/uncrustify.h b/src/plugins/beautifier/uncrustify/uncrustify.h index 09f6c2273d1..71ee4730c14 100644 --- a/src/plugins/beautifier/uncrustify/uncrustify.h +++ b/src/plugins/beautifier/uncrustify/uncrustify.h @@ -3,7 +3,7 @@ #pragma once -#include "../beautifierabstracttool.h" +#include "../beautifiertool.h" QT_BEGIN_NAMESPACE class QAction; @@ -11,7 +11,7 @@ QT_END_NAMESPACE namespace Beautifier::Internal { -class Uncrustify : public BeautifierAbstractTool +class Uncrustify : public BeautifierTool { public: Uncrustify();