diff --git a/src/plugins/clangformat/clangformatplugin.cpp b/src/plugins/clangformat/clangformatplugin.cpp index 78204ae3696..69ef7235fee 100644 --- a/src/plugins/clangformat/clangformatplugin.cpp +++ b/src/plugins/clangformat/clangformatplugin.cpp @@ -85,12 +85,11 @@ public: } std::pair additionalTab( - TextEditor::ICodeStylePreferences *codeStyle, QWidget *parent) const override + TextEditor::ICodeStylePreferences *codeStyle, + ProjectExplorer::Project *project, + QWidget *parent) const override { - if (!parent) - return {new ClangFormatConfigWidget(codeStyle), tr("ClangFormat")}; - return {new ClangFormatConfigWidget(codeStyle, SessionManager::startupProject()), - tr("ClangFormat")}; + return {new ClangFormatConfigWidget(codeStyle, project, parent), tr("ClangFormat")}; } }; diff --git a/src/plugins/cppeditor/cppcodestylepreferencesfactory.cpp b/src/plugins/cppeditor/cppcodestylepreferencesfactory.cpp index c3ec1b345eb..695b5c931d5 100644 --- a/src/plugins/cppeditor/cppcodestylepreferencesfactory.cpp +++ b/src/plugins/cppeditor/cppcodestylepreferencesfactory.cpp @@ -99,6 +99,7 @@ TextEditor::ICodeStylePreferences *CppCodeStylePreferencesFactory::createCodeSty TextEditor::CodeStyleEditorWidget *CppCodeStylePreferencesFactory::createEditor( TextEditor::ICodeStylePreferences *preferences, + ProjectExplorer::Project *project, QWidget *parent) const { auto cppPreferences = qobject_cast(preferences); @@ -109,7 +110,7 @@ TextEditor::CodeStyleEditorWidget *CppCodeStylePreferencesFactory::createEditor( widget->layout()->setContentsMargins(0, 0, 0, 0); widget->setCodeStyle(cppPreferences); - const auto tab = additionalTab(preferences, parent); + const auto tab = additionalTab(preferences, project, parent); widget->addTab(tab.first, tab.second); return widget; @@ -131,10 +132,13 @@ QString CppCodeStylePreferencesFactory::previewText() const } std::pair CppCodeStylePreferencesFactory::additionalTab( - TextEditor::ICodeStylePreferences *codeStyle, QWidget *parent) const + TextEditor::ICodeStylePreferences *codeStyle, + ProjectExplorer::Project *project, + QWidget *parent) const { Q_UNUSED(codeStyle) Q_UNUSED(parent) + Q_UNUSED(project) return {nullptr, ""}; } diff --git a/src/plugins/cppeditor/cppcodestylepreferencesfactory.h b/src/plugins/cppeditor/cppcodestylepreferencesfactory.h index 8c5848bb87a..a2241783dce 100644 --- a/src/plugins/cppeditor/cppcodestylepreferencesfactory.h +++ b/src/plugins/cppeditor/cppcodestylepreferencesfactory.h @@ -41,12 +41,15 @@ public: QString displayName() override; TextEditor::ICodeStylePreferences *createCodeStyle() const override; TextEditor::CodeStyleEditorWidget *createEditor(TextEditor::ICodeStylePreferences *settings, + ProjectExplorer::Project *project, QWidget *parent) const override; TextEditor::Indenter *createIndenter(QTextDocument *doc) const override; QString snippetProviderGroupId() const override; QString previewText() const override; virtual std::pair additionalTab( - TextEditor::ICodeStylePreferences *codeStyle, QWidget *parent) const; + TextEditor::ICodeStylePreferences *codeStyle, + ProjectExplorer::Project *project, + QWidget *parent) const; }; } // namespace CppEditor diff --git a/src/plugins/nim/settings/nimcodestylepreferencesfactory.cpp b/src/plugins/nim/settings/nimcodestylepreferencesfactory.cpp index 21526d8e3dd..0d5b5c9c4b1 100644 --- a/src/plugins/nim/settings/nimcodestylepreferencesfactory.cpp +++ b/src/plugins/nim/settings/nimcodestylepreferencesfactory.cpp @@ -61,8 +61,10 @@ TextEditor::ICodeStylePreferences *NimCodeStylePreferencesFactory::createCodeSty TextEditor::CodeStyleEditorWidget *NimCodeStylePreferencesFactory::createEditor( TextEditor::ICodeStylePreferences *preferences, + ProjectExplorer::Project *project, QWidget *parent) const { + Q_UNUSED(project) auto result = new NimCodeStylePreferencesWidget(preferences, parent); result->layout()->setContentsMargins(0, 0, 0, 0); return result; diff --git a/src/plugins/nim/settings/nimcodestylepreferencesfactory.h b/src/plugins/nim/settings/nimcodestylepreferencesfactory.h index 7855027aa4d..774e2c4e587 100644 --- a/src/plugins/nim/settings/nimcodestylepreferencesfactory.h +++ b/src/plugins/nim/settings/nimcodestylepreferencesfactory.h @@ -40,6 +40,7 @@ public: QString displayName() override; TextEditor::ICodeStylePreferences *createCodeStyle() const override; TextEditor::CodeStyleEditorWidget *createEditor(TextEditor::ICodeStylePreferences *settings, + ProjectExplorer::Project *project, QWidget *parent) const override; TextEditor::Indenter *createIndenter(QTextDocument *doc) const override; QString snippetProviderGroupId() const override; diff --git a/src/plugins/projectexplorer/codestylesettingspropertiespage.cpp b/src/plugins/projectexplorer/codestylesettingspropertiespage.cpp index 7c42b0bc49b..7abca7b0834 100644 --- a/src/plugins/projectexplorer/codestylesettingspropertiespage.cpp +++ b/src/plugins/projectexplorer/codestylesettingspropertiespage.cpp @@ -44,7 +44,7 @@ CodeStyleSettingsWidget::CodeStyleSettingsWidget(Project *project) : QWidget(), Utils::Id languageId = factory->languageId(); ICodeStylePreferences *codeStylePreferences = config->codeStyle(languageId); - auto preview = factory->createCodeStyleEditor(codeStylePreferences, m_ui.stackedWidget); + auto preview = factory->createCodeStyleEditor(codeStylePreferences, project, m_ui.stackedWidget); if (preview && preview->layout()) preview->layout()->setContentsMargins(QMargins()); m_ui.stackedWidget->addWidget(preview); diff --git a/src/plugins/qmljstools/qmljscodestylepreferencesfactory.cpp b/src/plugins/qmljstools/qmljscodestylepreferencesfactory.cpp index 5dbfd1ca96a..d774bcad2ce 100644 --- a/src/plugins/qmljstools/qmljscodestylepreferencesfactory.cpp +++ b/src/plugins/qmljstools/qmljscodestylepreferencesfactory.cpp @@ -74,8 +74,10 @@ TextEditor::ICodeStylePreferences *QmlJSCodeStylePreferencesFactory::createCodeS TextEditor::CodeStyleEditorWidget *QmlJSCodeStylePreferencesFactory::createEditor( TextEditor::ICodeStylePreferences *preferences, + ProjectExplorer::Project *project, QWidget *parent) const { + Q_UNUSED(project) auto qmlJSPreferences = qobject_cast(preferences); if (!qmlJSPreferences) return nullptr; diff --git a/src/plugins/qmljstools/qmljscodestylepreferencesfactory.h b/src/plugins/qmljstools/qmljscodestylepreferencesfactory.h index b9b248ebf15..3625a2474fa 100644 --- a/src/plugins/qmljstools/qmljscodestylepreferencesfactory.h +++ b/src/plugins/qmljstools/qmljscodestylepreferencesfactory.h @@ -38,6 +38,7 @@ public: QString displayName() override; TextEditor::ICodeStylePreferences *createCodeStyle() const override; TextEditor::CodeStyleEditorWidget *createEditor(TextEditor::ICodeStylePreferences *settings, + ProjectExplorer::Project *project, QWidget *parent) const override; TextEditor::Indenter *createIndenter(QTextDocument *doc) const override; QString snippetProviderGroupId() const override; diff --git a/src/plugins/texteditor/codestyleeditor.cpp b/src/plugins/texteditor/codestyleeditor.cpp index 8dc50286f89..f51d32e2ab6 100644 --- a/src/plugins/texteditor/codestyleeditor.cpp +++ b/src/plugins/texteditor/codestyleeditor.cpp @@ -42,13 +42,15 @@ using namespace TextEditor; CodeStyleEditor::CodeStyleEditor(ICodeStylePreferencesFactory *factory, - ICodeStylePreferences *codeStyle, QWidget *parent) - : CodeStyleEditorWidget(parent), - m_factory(factory), - m_codeStyle(codeStyle) + ICodeStylePreferences *codeStyle, + ProjectExplorer::Project *project, + QWidget *parent) + : CodeStyleEditorWidget(parent) + , m_factory(factory) + , m_codeStyle(codeStyle) { m_layout = new QVBoxLayout(this); - auto selector = new CodeStyleSelectorWidget(factory, this); + auto selector = new CodeStyleSelectorWidget(factory, project, this); selector->setCodeStyle(codeStyle); m_preview = new SnippetEditorWidget(this); DisplaySettings displaySettings = m_preview->displaySettings(); diff --git a/src/plugins/texteditor/codestyleeditor.h b/src/plugins/texteditor/codestyleeditor.h index 613463c75bb..688672b4896 100644 --- a/src/plugins/texteditor/codestyleeditor.h +++ b/src/plugins/texteditor/codestyleeditor.h @@ -33,6 +33,7 @@ QT_BEGIN_NAMESPACE class QVBoxLayout; QT_END_NAMESPACE +namespace ProjectExplorer { class Project; } namespace TextEditor { class ICodeStylePreferencesFactory; @@ -44,7 +45,9 @@ class TEXTEDITOR_EXPORT CodeStyleEditor : public CodeStyleEditorWidget Q_OBJECT public: CodeStyleEditor(ICodeStylePreferencesFactory *factory, - ICodeStylePreferences *codeStyle, QWidget *parent = nullptr); + ICodeStylePreferences *codeStyle, + ProjectExplorer::Project *project = nullptr, + QWidget *parent = nullptr); private: void updatePreview(); diff --git a/src/plugins/texteditor/codestyleselectorwidget.cpp b/src/plugins/texteditor/codestyleselectorwidget.cpp index ca1616cb1cc..b62612e535c 100644 --- a/src/plugins/texteditor/codestyleselectorwidget.cpp +++ b/src/plugins/texteditor/codestyleselectorwidget.cpp @@ -52,8 +52,10 @@ class CodeStyleDialog : public QDialog { Q_OBJECT public: - CodeStyleDialog(ICodeStylePreferencesFactory *factory, - ICodeStylePreferences *codeStyle, QWidget *parent = nullptr); + explicit CodeStyleDialog(ICodeStylePreferencesFactory *factory, + ICodeStylePreferences *codeStyle, + ProjectExplorer::Project *project = nullptr, + QWidget *parent = nullptr); ~CodeStyleDialog() override; ICodeStylePreferences *codeStyle() const; private: @@ -69,7 +71,9 @@ private: }; CodeStyleDialog::CodeStyleDialog(ICodeStylePreferencesFactory *factory, - ICodeStylePreferences *codeStyle, QWidget *parent) + ICodeStylePreferences *codeStyle, + ProjectExplorer::Project *project, + QWidget *parent) : QDialog(parent) { setWindowTitle(tr("Edit Code Style")); @@ -105,7 +109,7 @@ CodeStyleDialog::CodeStyleDialog(ICodeStylePreferencesFactory *factory, m_codeStyle->setId(codeStyle->id()); m_codeStyle->setDisplayName(m_originalDisplayName); m_codeStyle->setReadOnly(codeStyle->isReadOnly()); - TextEditor::CodeStyleEditorWidget *editor = factory->createEditor(m_codeStyle, this); + TextEditor::CodeStyleEditorWidget *editor = factory->createEditor(m_codeStyle, project, this); m_buttons = new QDialogButtonBox( QDialogButtonBox::Ok | QDialogButtonBox::Cancel, Qt::Horizontal, this); @@ -155,10 +159,13 @@ CodeStyleDialog::~CodeStyleDialog() } // Internal -CodeStyleSelectorWidget::CodeStyleSelectorWidget(ICodeStylePreferencesFactory *factory, QWidget *parent) : - QWidget(parent), - m_factory(factory), - m_ui(new Internal::Ui::CodeStyleSelectorWidget) +CodeStyleSelectorWidget::CodeStyleSelectorWidget(ICodeStylePreferencesFactory *factory, + ProjectExplorer::Project *project, + QWidget *parent) + : QWidget(parent) + , m_factory(factory) + , m_project(project) + , m_ui(new Internal::Ui::CodeStyleSelectorWidget) { m_ui->setupUi(this); m_ui->importButton->setEnabled(false); @@ -285,7 +292,7 @@ void CodeStyleSelectorWidget::slotEditClicked() ICodeStylePreferences *codeStyle = m_codeStyle->currentPreferences(); // check if it's read-only - Internal::CodeStyleDialog dialog(m_factory, codeStyle, this); + Internal::CodeStyleDialog dialog(m_factory, codeStyle, m_project, this); if (dialog.exec() == QDialog::Accepted) { ICodeStylePreferences *dialogCodeStyle = dialog.codeStyle(); if (codeStyle->isReadOnly()) { diff --git a/src/plugins/texteditor/codestyleselectorwidget.h b/src/plugins/texteditor/codestyleselectorwidget.h index bac911bc899..aca7f9bcacc 100644 --- a/src/plugins/texteditor/codestyleselectorwidget.h +++ b/src/plugins/texteditor/codestyleselectorwidget.h @@ -29,6 +29,7 @@ #include +namespace ProjectExplorer { class Project; } namespace TextEditor { namespace Internal { namespace Ui { class CodeStyleSelectorWidget; } } @@ -40,7 +41,9 @@ class TEXTEDITOR_EXPORT CodeStyleSelectorWidget : public QWidget { Q_OBJECT public: - explicit CodeStyleSelectorWidget(ICodeStylePreferencesFactory *factory, QWidget *parent = nullptr); + explicit CodeStyleSelectorWidget(ICodeStylePreferencesFactory *factory, + ProjectExplorer::Project *project = nullptr, + QWidget *parent = nullptr); ~CodeStyleSelectorWidget() override; void setCodeStyle(TextEditor::ICodeStylePreferences *codeStyle); @@ -60,6 +63,7 @@ private: void updateName(ICodeStylePreferences *codeStyle); ICodeStylePreferencesFactory *m_factory; ICodeStylePreferences *m_codeStyle = nullptr; + ProjectExplorer::Project *m_project = nullptr; QString displayName(ICodeStylePreferences *codeStyle) const; diff --git a/src/plugins/texteditor/icodestylepreferencesfactory.cpp b/src/plugins/texteditor/icodestylepreferencesfactory.cpp index e5efa95af05..89eb961b131 100644 --- a/src/plugins/texteditor/icodestylepreferencesfactory.cpp +++ b/src/plugins/texteditor/icodestylepreferencesfactory.cpp @@ -34,7 +34,7 @@ ICodeStylePreferencesFactory::ICodeStylePreferencesFactory() } CodeStyleEditorWidget *ICodeStylePreferencesFactory::createCodeStyleEditor( - ICodeStylePreferences *codeStyle, QWidget *parent) + ICodeStylePreferences *codeStyle, ProjectExplorer::Project *project, QWidget *parent) { - return new CodeStyleEditor(this, codeStyle, parent); + return new CodeStyleEditor(this, codeStyle, project, parent); } diff --git a/src/plugins/texteditor/icodestylepreferencesfactory.h b/src/plugins/texteditor/icodestylepreferencesfactory.h index 7230772670c..c3d18b5514a 100644 --- a/src/plugins/texteditor/icodestylepreferencesfactory.h +++ b/src/plugins/texteditor/icodestylepreferencesfactory.h @@ -33,6 +33,8 @@ #include +namespace ProjectExplorer { class Project; } + namespace TextEditor { class ICodeStylePreferences; @@ -57,11 +59,14 @@ public: virtual ~ICodeStylePreferencesFactory() = default; virtual CodeStyleEditorWidget *createCodeStyleEditor(ICodeStylePreferences *codeStyle, + ProjectExplorer::Project *project = nullptr, QWidget *parent = nullptr); virtual Utils::Id languageId() = 0; virtual QString displayName() = 0; virtual ICodeStylePreferences *createCodeStyle() const = 0; - virtual CodeStyleEditorWidget *createEditor(ICodeStylePreferences *preferences, QWidget *parent) const = 0; + virtual CodeStyleEditorWidget *createEditor(ICodeStylePreferences *preferences, + ProjectExplorer::Project *project = nullptr, + QWidget *parent = nullptr) const = 0; virtual TextEditor::Indenter *createIndenter(QTextDocument *doc) const = 0; virtual QString snippetProviderGroupId() const = 0; virtual QString previewText() const = 0;