diff options
-rw-r--r-- | src/plugins/clangformat/clangformatconfigwidget.cpp | 13 | ||||
-rw-r--r-- | src/plugins/clangformat/clangformatconfigwidget.h | 6 | ||||
-rw-r--r-- | src/plugins/clangformat/clangformatconstants.h | 4 | ||||
-rw-r--r-- | src/plugins/clangformat/clangformatplugin.cpp | 5 | ||||
-rw-r--r-- | src/plugins/clangformat/clangformatutils.cpp | 14 | ||||
-rw-r--r-- | src/plugins/cpptools/cppcodestylesettingspage.cpp | 2 | ||||
-rw-r--r-- | src/plugins/cpptools/cppcodestylesettingspage.h | 4 | ||||
-rw-r--r-- | src/plugins/texteditor/codestyleeditor.cpp | 2 | ||||
-rw-r--r-- | src/plugins/texteditor/codestyleeditor.h | 4 | ||||
-rw-r--r-- | src/plugins/texteditor/icodestylepreferencesfactory.cpp | 4 | ||||
-rw-r--r-- | src/plugins/texteditor/icodestylepreferencesfactory.h | 16 |
11 files changed, 47 insertions, 27 deletions
diff --git a/src/plugins/clangformat/clangformatconfigwidget.cpp b/src/plugins/clangformat/clangformatconfigwidget.cpp index 10125a5710..349f92905d 100644 --- a/src/plugins/clangformat/clangformatconfigwidget.cpp +++ b/src/plugins/clangformat/clangformatconfigwidget.cpp @@ -117,7 +117,7 @@ static QByteArray tableToYAML(QTableWidget *table) ClangFormatConfigWidget::ClangFormatConfigWidget(ProjectExplorer::Project *project, QWidget *parent) - : QWidget(parent) + : CodeStyleEditorWidget(parent) , m_project(project) , m_ui(std::make_unique<Ui::ClangFormatConfigWidget>()) { @@ -136,7 +136,8 @@ void ClangFormatConfigWidget::initialize() if (lastItem->spacerItem()) m_ui->verticalLayout->removeItem(lastItem); - if (m_project && !m_project->projectDirectory().appendPath(SETTINGS_FILE_NAME).exists()) { + if (m_project + && !m_project->projectDirectory().appendPath(Constants::SETTINGS_FILE_NAME).exists()) { m_ui->projectHasClangFormat->setText(tr("No .clang-format file for the project.")); m_ui->clangFormatOptionsTable->hide(); m_ui->applyButton->hide(); @@ -158,7 +159,9 @@ void ClangFormatConfigWidget::initialize() } else { const Project *currentProject = SessionManager::startupProject(); if (!currentProject - || !currentProject->projectDirectory().appendPath(SETTINGS_FILE_NAME).exists()) { + || !currentProject->projectDirectory() + .appendPath(Constants::SETTINGS_FILE_NAME) + .exists()) { m_ui->projectHasClangFormat->hide(); } else { m_ui->projectHasClangFormat->setText( @@ -189,9 +192,9 @@ void ClangFormatConfigWidget::apply() const QByteArray text = tableToYAML(m_ui->clangFormatOptionsTable); QString filePath; if (m_project) - filePath = m_project->projectDirectory().appendPath(SETTINGS_FILE_NAME).toString(); + filePath = m_project->projectDirectory().appendPath(Constants::SETTINGS_FILE_NAME).toString(); else - filePath = Core::ICore::userResourcePath() + "/" + SETTINGS_FILE_NAME; + filePath = Core::ICore::userResourcePath() + "/" + Constants::SETTINGS_FILE_NAME; QFile file(filePath); if (!file.open(QFile::WriteOnly)) return; diff --git a/src/plugins/clangformat/clangformatconfigwidget.h b/src/plugins/clangformat/clangformatconfigwidget.h index 951e0cc408..5db16e3c96 100644 --- a/src/plugins/clangformat/clangformatconfigwidget.h +++ b/src/plugins/clangformat/clangformatconfigwidget.h @@ -25,7 +25,7 @@ #pragma once -#include <QWidget> +#include <texteditor/icodestylepreferencesfactory.h> #include <memory> @@ -37,7 +37,7 @@ namespace Ui { class ClangFormatConfigWidget; } -class ClangFormatConfigWidget : public QWidget +class ClangFormatConfigWidget : public TextEditor::CodeStyleEditorWidget { Q_OBJECT @@ -45,7 +45,7 @@ public: explicit ClangFormatConfigWidget(ProjectExplorer::Project *project = nullptr, QWidget *parent = nullptr); ~ClangFormatConfigWidget() override; - void apply(); + void apply() override; private: void initialize(); diff --git a/src/plugins/clangformat/clangformatconstants.h b/src/plugins/clangformat/clangformatconstants.h index 7b616f74f6..f2ff6a470e 100644 --- a/src/plugins/clangformat/clangformatconstants.h +++ b/src/plugins/clangformat/clangformatconstants.h @@ -26,7 +26,9 @@ #pragma once namespace ClangFormat { +namespace Constants { static const char SETTINGS_FILE_NAME[] = ".clang-format"; static const char SETTINGS_FILE_ALT_NAME[] = "_clang-format"; static const char SAMPLE_FILE_NAME[] = "test.cpp"; -} +} // namespace Constants +} // namespace ClangFormat diff --git a/src/plugins/clangformat/clangformatplugin.cpp b/src/plugins/clangformat/clangformatplugin.cpp index 2d848d9501..d1251c75f2 100644 --- a/src/plugins/clangformat/clangformatplugin.cpp +++ b/src/plugins/clangformat/clangformatplugin.cpp @@ -46,6 +46,7 @@ #include <projectexplorer/session.h> #include <projectexplorer/target.h> +#include <texteditor/icodestylepreferences.h> #include <texteditor/texteditorsettings.h> #include <clang/Format/Format.h> @@ -71,8 +72,8 @@ ClangFormatPlugin::~ClangFormatPlugin() = default; class ClangFormatStyleFactory : public CppTools::CppCodeStylePreferencesFactory { public: - QWidget *createCodeStyleEditor(TextEditor::ICodeStylePreferences *, - QWidget *parent = nullptr) override + TextEditor::CodeStyleEditorWidget *createCodeStyleEditor( + TextEditor::ICodeStylePreferences *preferences, QWidget *parent = nullptr) override { if (!parent) return new ClangFormatConfigWidget; diff --git a/src/plugins/clangformat/clangformatutils.cpp b/src/plugins/clangformat/clangformatutils.cpp index 76af9956c0..6b151020d6 100644 --- a/src/plugins/clangformat/clangformatutils.cpp +++ b/src/plugins/clangformat/clangformatutils.cpp @@ -106,9 +106,11 @@ static Utils::FileName globalPath() return Utils::FileName::fromString(Core::ICore::userResourcePath()); } -static bool configForFileExists(Utils::FileName fileName) { +static bool configForFileExists(Utils::FileName fileName) +{ QDir projectDir(fileName.parentDir().toString()); - while (!projectDir.exists(SETTINGS_FILE_NAME) && !projectDir.exists(SETTINGS_FILE_ALT_NAME)) { + while (!projectDir.exists(Constants::SETTINGS_FILE_NAME) + && !projectDir.exists(Constants::SETTINGS_FILE_ALT_NAME)) { if (!projectDir.cdUp()) return false; } @@ -137,7 +139,7 @@ static clang::format::FormatStyle constructStyle(bool isGlobal) void createStyleFileIfNeeded(bool isGlobal) { Utils::FileName path = isGlobal ? globalPath() : projectPath(); - const QString configFile = path.appendPath(SETTINGS_FILE_NAME).toString(); + const QString configFile = path.appendPath(Constants::SETTINGS_FILE_NAME).toString(); if (QFile::exists(configFile)) return; @@ -159,7 +161,7 @@ clang::format::FormatStyle styleForFile(Utils::FileName fileName) fileName = globalPath(); isGlobal = true; } - fileName.appendPath(SAMPLE_FILE_NAME); + fileName.appendPath(Constants::SAMPLE_FILE_NAME); createStyleFileIfNeeded(isGlobal); } @@ -178,12 +180,12 @@ clang::format::FormatStyle styleForFile(Utils::FileName fileName) clang::format::FormatStyle currentProjectStyle() { - return styleForFile(projectPath().appendPath(SAMPLE_FILE_NAME)); + return styleForFile(projectPath().appendPath(Constants::SAMPLE_FILE_NAME)); } clang::format::FormatStyle currentGlobalStyle() { - return styleForFile(globalPath().appendPath(SAMPLE_FILE_NAME)); + return styleForFile(globalPath().appendPath(Constants::SAMPLE_FILE_NAME)); } } diff --git a/src/plugins/cpptools/cppcodestylesettingspage.cpp b/src/plugins/cpptools/cppcodestylesettingspage.cpp index f803516358..39517e6e35 100644 --- a/src/plugins/cpptools/cppcodestylesettingspage.cpp +++ b/src/plugins/cpptools/cppcodestylesettingspage.cpp @@ -556,6 +556,8 @@ void CppCodeStyleSettingsPage::apply() originalCppCodeStylePreferences->setCurrentDelegate(m_pageCppCodeStylePreferences->currentDelegate()); originalCppCodeStylePreferences->toSettings(QLatin1String(CppTools::Constants::CPP_SETTINGS_ID), s); } + + m_widget->apply(); } } diff --git a/src/plugins/cpptools/cppcodestylesettingspage.h b/src/plugins/cpptools/cppcodestylesettingspage.h index b8f82fc302..780a650a9e 100644 --- a/src/plugins/cpptools/cppcodestylesettingspage.h +++ b/src/plugins/cpptools/cppcodestylesettingspage.h @@ -30,6 +30,7 @@ #include "cppcodeformatter.h" #include <coreplugin/dialogs/ioptionspage.h> +#include <texteditor/icodestylepreferencesfactory.h> #include <QWidget> #include <QPointer> @@ -37,7 +38,6 @@ namespace TextEditor { class FontSettings; class TabSettings; - class ICodeStylePreferences; class SnippetEditorWidget; class CodeStyleEditor; } @@ -91,7 +91,7 @@ public: private: CppCodeStylePreferences *m_pageCppCodeStylePreferences = nullptr; - QPointer<QWidget> m_widget; + QPointer<TextEditor::CodeStyleEditorWidget> m_widget; }; } // namespace Internal diff --git a/src/plugins/texteditor/codestyleeditor.cpp b/src/plugins/texteditor/codestyleeditor.cpp index edfc40d12b..8dc50286f8 100644 --- a/src/plugins/texteditor/codestyleeditor.cpp +++ b/src/plugins/texteditor/codestyleeditor.cpp @@ -43,7 +43,7 @@ using namespace TextEditor; CodeStyleEditor::CodeStyleEditor(ICodeStylePreferencesFactory *factory, ICodeStylePreferences *codeStyle, QWidget *parent) - : QWidget(parent), + : CodeStyleEditorWidget(parent), m_factory(factory), m_codeStyle(codeStyle) { diff --git a/src/plugins/texteditor/codestyleeditor.h b/src/plugins/texteditor/codestyleeditor.h index edd04db171..613463c75b 100644 --- a/src/plugins/texteditor/codestyleeditor.h +++ b/src/plugins/texteditor/codestyleeditor.h @@ -27,7 +27,7 @@ #include "texteditor_global.h" -#include <QWidget> +#include "icodestylepreferencesfactory.h" QT_BEGIN_NAMESPACE class QVBoxLayout; @@ -39,7 +39,7 @@ class ICodeStylePreferencesFactory; class ICodeStylePreferences; class SnippetEditorWidget; -class TEXTEDITOR_EXPORT CodeStyleEditor : public QWidget +class TEXTEDITOR_EXPORT CodeStyleEditor : public CodeStyleEditorWidget { Q_OBJECT public: diff --git a/src/plugins/texteditor/icodestylepreferencesfactory.cpp b/src/plugins/texteditor/icodestylepreferencesfactory.cpp index 245d9b695c..adeaaa6b3b 100644 --- a/src/plugins/texteditor/icodestylepreferencesfactory.cpp +++ b/src/plugins/texteditor/icodestylepreferencesfactory.cpp @@ -34,8 +34,8 @@ ICodeStylePreferencesFactory::ICodeStylePreferencesFactory(QObject *parent) : { } -QWidget *ICodeStylePreferencesFactory::createCodeStyleEditor(ICodeStylePreferences *codeStyle, - QWidget *parent) +CodeStyleEditorWidget *ICodeStylePreferencesFactory::createCodeStyleEditor( + ICodeStylePreferences *codeStyle, QWidget *parent) { return new CodeStyleEditor(this, codeStyle, parent); } diff --git a/src/plugins/texteditor/icodestylepreferencesfactory.h b/src/plugins/texteditor/icodestylepreferencesfactory.h index 2acc0a5fa4..07c6e0f308 100644 --- a/src/plugins/texteditor/icodestylepreferencesfactory.h +++ b/src/plugins/texteditor/icodestylepreferencesfactory.h @@ -29,7 +29,7 @@ #include "indenter.h" -#include <QObject> +#include <QWidget> namespace Core { class Id; } namespace TextEditor { @@ -37,14 +37,24 @@ namespace TextEditor { class ICodeStylePreferences; class SnippetProvider; +class TEXTEDITOR_EXPORT CodeStyleEditorWidget : public QWidget +{ + Q_OBJECT +public: + CodeStyleEditorWidget(QWidget *parent = nullptr) + : QWidget(parent) + {} + virtual void apply() {} +}; + class TEXTEDITOR_EXPORT ICodeStylePreferencesFactory : public QObject { Q_OBJECT public: explicit ICodeStylePreferencesFactory(QObject *parent = nullptr); - virtual QWidget *createCodeStyleEditor(ICodeStylePreferences *codeStyle, - QWidget *parent = nullptr); + virtual CodeStyleEditorWidget *createCodeStyleEditor(ICodeStylePreferences *codeStyle, + QWidget *parent = nullptr); virtual Core::Id languageId() = 0; virtual QString displayName() = 0; virtual ICodeStylePreferences *createCodeStyle() const = 0; |