aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArtem Sokolovskii <artem.sokolovskii@qt.io>2022-03-17 12:01:17 +0100
committerArtem Sokolovskii <artem.sokolovskii@qt.io>2022-05-10 09:40:53 +0000
commitbbc44cfb90ca0f43de3774021c28ad4e7163e12b (patch)
tree949252162bf03c8eeb68d4cd90e004c15029804e
parent81f33072b90ba2ff860654ad59eba7d651c5bfb7 (diff)
ClangFormat: Fix settings checkboxes disappearance
- Fixed settings checkboxes disappearance after open a project - Fixed impossibility to save settings Task-number: QTCREATORBUG-26948 Change-Id: Ia73a61bf56b99adea9ed45c9d656860b185a3d7e Reviewed-by: Christian Kandeler <christian.kandeler@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
-rw-r--r--src/plugins/clangformat/clangformatconfigwidget.cpp6
-rw-r--r--src/plugins/clangformat/clangformatplugin.cpp7
-rw-r--r--src/plugins/cppeditor/cppcodestylepreferencesfactory.cpp8
-rw-r--r--src/plugins/cppeditor/cppcodestylepreferencesfactory.h4
-rw-r--r--src/plugins/nim/settings/nimcodestylepreferencesfactory.cpp2
-rw-r--r--src/plugins/nim/settings/nimcodestylepreferencesfactory.h1
-rw-r--r--src/plugins/projectexplorer/codestylesettingspropertiespage.cpp2
-rw-r--r--src/plugins/qmljstools/qmljscodestylepreferencesfactory.cpp7
-rw-r--r--src/plugins/qmljstools/qmljscodestylepreferencesfactory.h1
-rw-r--r--src/plugins/texteditor/codestyleeditor.cpp12
-rw-r--r--src/plugins/texteditor/codestyleeditor.h5
-rw-r--r--src/plugins/texteditor/codestyleselectorwidget.cpp25
-rw-r--r--src/plugins/texteditor/codestyleselectorwidget.h6
-rw-r--r--src/plugins/texteditor/icodestylepreferencesfactory.cpp4
-rw-r--r--src/plugins/texteditor/icodestylepreferencesfactory.h7
15 files changed, 64 insertions, 33 deletions
diff --git a/src/plugins/clangformat/clangformatconfigwidget.cpp b/src/plugins/clangformat/clangformatconfigwidget.cpp
index 1a28f4d699..d6fa8721b1 100644
--- a/src/plugins/clangformat/clangformatconfigwidget.cpp
+++ b/src/plugins/clangformat/clangformatconfigwidget.cpp
@@ -131,14 +131,13 @@ ClangFormatConfigWidget::ClangFormatConfigWidget(ProjectExplorer::Project *proje
initChecksAndPreview();
+ m_ui->applyButton->show();
if (m_project) {
- m_ui->applyButton->show();
hideGlobalCheckboxes();
m_ui->fallbackConfig->hide();
m_ui->overrideDefault->setChecked(
m_project->namedSettings(Constants::OVERRIDE_FILE_ID).toBool());
} else {
- m_ui->applyButton->hide();
showGlobalCheckboxes();
m_ui->overrideDefault->setChecked(ClangFormatSettings::instance().overrideDefaultFile());
m_ui->overrideDefault->setToolTip(
@@ -179,12 +178,13 @@ void ClangFormatConfigWidget::initChecksAndPreview()
m_preview->textDocument()->setSyntaxHighlighter(new CppEditor::CppHighlighter);
Utils::FilePath fileName;
+ connect(m_ui->applyButton, &QPushButton::clicked, this, &ClangFormatConfigWidget::apply);
if (m_project) {
- connect(m_ui->applyButton, &QPushButton::clicked, this, &ClangFormatConfigWidget::apply);
fileName = m_project->projectFilePath().pathAppended("snippet.cpp");
} else {
fileName = Core::ICore::userResourcePath("snippet.cpp");
}
+
m_preview->textDocument()->indenter()->setFileName(fileName);
}
diff --git a/src/plugins/clangformat/clangformatplugin.cpp b/src/plugins/clangformat/clangformatplugin.cpp
index 0fbc44eefe..fbba24f24c 100644
--- a/src/plugins/clangformat/clangformatplugin.cpp
+++ b/src/plugins/clangformat/clangformatplugin.cpp
@@ -84,11 +84,10 @@ public:
return new ClangFormatIndenter(doc);
}
- std::pair<CppEditor::CppCodeStyleWidget *, QString> additionalTab(QWidget *parent) const override
+ std::pair<CppEditor::CppCodeStyleWidget *, QString> additionalTab(
+ ProjectExplorer::Project *project, QWidget *parent) const override
{
- if (!parent)
- return {new ClangFormatConfigWidget(), tr("ClangFormat")};
- return {new ClangFormatConfigWidget(SessionManager::startupProject()), tr("ClangFormat")};
+ return {new ClangFormatConfigWidget(project, parent), tr("ClangFormat")};
}
};
diff --git a/src/plugins/cppeditor/cppcodestylepreferencesfactory.cpp b/src/plugins/cppeditor/cppcodestylepreferencesfactory.cpp
index 33fa8d6103..344e834bcf 100644
--- a/src/plugins/cppeditor/cppcodestylepreferencesfactory.cpp
+++ b/src/plugins/cppeditor/cppcodestylepreferencesfactory.cpp
@@ -98,7 +98,8 @@ TextEditor::ICodeStylePreferences *CppCodeStylePreferencesFactory::createCodeSty
}
QWidget *CppCodeStylePreferencesFactory::createEditor(TextEditor::ICodeStylePreferences *preferences,
- QWidget *parent) const
+ ProjectExplorer::Project *project,
+ QWidget *parent) const
{
auto cppPreferences = qobject_cast<CppCodeStylePreferences *>(preferences);
if (!cppPreferences)
@@ -108,7 +109,7 @@ QWidget *CppCodeStylePreferencesFactory::createEditor(TextEditor::ICodeStylePref
widget->layout()->setContentsMargins(0, 0, 0, 0);
widget->setCodeStyle(cppPreferences);
- const auto tab = additionalTab(parent);
+ const auto tab = additionalTab(project, parent);
widget->addTab(tab.first, tab.second);
return widget;
@@ -129,9 +130,10 @@ QString CppCodeStylePreferencesFactory::previewText() const
return QLatin1String(defaultPreviewText);
}
-std::pair<CppCodeStyleWidget *, QString> CppCodeStylePreferencesFactory::additionalTab(QWidget *parent) const
+std::pair<CppCodeStyleWidget *, QString> CppCodeStylePreferencesFactory::additionalTab(ProjectExplorer::Project *project, QWidget *parent) const
{
Q_UNUSED(parent)
+ Q_UNUSED(project)
return {nullptr, ""};
}
diff --git a/src/plugins/cppeditor/cppcodestylepreferencesfactory.h b/src/plugins/cppeditor/cppcodestylepreferencesfactory.h
index ce38ae6fb7..d08baa8146 100644
--- a/src/plugins/cppeditor/cppcodestylepreferencesfactory.h
+++ b/src/plugins/cppeditor/cppcodestylepreferencesfactory.h
@@ -41,11 +41,13 @@ public:
QString displayName() override;
TextEditor::ICodeStylePreferences *createCodeStyle() const override;
QWidget *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<CppCodeStyleWidget *, QString> additionalTab(QWidget *parent) const;
+ virtual std::pair<CppCodeStyleWidget *, QString> additionalTab(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 ec54db7871..f84a7f0bf9 100644
--- a/src/plugins/nim/settings/nimcodestylepreferencesfactory.cpp
+++ b/src/plugins/nim/settings/nimcodestylepreferencesfactory.cpp
@@ -60,8 +60,10 @@ TextEditor::ICodeStylePreferences *NimCodeStylePreferencesFactory::createCodeSty
}
QWidget *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 9c3848ed21..157700574c 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;
QWidget *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 7c42b0bc49..7abca7b083 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 f47833d49e..7b280e6e4f 100644
--- a/src/plugins/qmljstools/qmljscodestylepreferencesfactory.cpp
+++ b/src/plugins/qmljstools/qmljscodestylepreferencesfactory.cpp
@@ -71,9 +71,12 @@ TextEditor::ICodeStylePreferences *QmlJSCodeStylePreferencesFactory::createCodeS
return new TextEditor::SimpleCodeStylePreferences();
}
-QWidget *QmlJSCodeStylePreferencesFactory::createEditor(TextEditor::ICodeStylePreferences *preferences,
- QWidget *parent) const
+QWidget *QmlJSCodeStylePreferencesFactory::createEditor(
+ TextEditor::ICodeStylePreferences *preferences,
+ ProjectExplorer::Project *project,
+ QWidget *parent) const
{
+ Q_UNUSED(project)
auto widget = new Internal::QmlJSCodeStylePreferencesWidget(parent);
widget->layout()->setContentsMargins(0, 0, 0, 0);
widget->setPreferences(preferences);
diff --git a/src/plugins/qmljstools/qmljscodestylepreferencesfactory.h b/src/plugins/qmljstools/qmljscodestylepreferencesfactory.h
index 42f904be7c..eee110704a 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;
QWidget *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 8dc50286f8..f51d32e2ab 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 613463c75b..688672b489 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 3e06dcea10..061e24d91b 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"));
@@ -104,7 +108,7 @@ CodeStyleDialog::CodeStyleDialog(ICodeStylePreferencesFactory *factory,
m_codeStyle->setValue(codeStyle->value());
m_codeStyle->setId(codeStyle->id());
m_codeStyle->setDisplayName(m_originalDisplayName);
- QWidget *editor = factory->createEditor(m_codeStyle, this);
+ QWidget *editor = factory->createEditor(m_codeStyle, project, this);
m_buttons = new QDialogButtonBox(
QDialogButtonBox::Ok | QDialogButtonBox::Cancel, Qt::Horizontal, this);
@@ -153,10 +157,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);
@@ -283,7 +290,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 bac911bc89..aca7f9bcac 100644
--- a/src/plugins/texteditor/codestyleselectorwidget.h
+++ b/src/plugins/texteditor/codestyleselectorwidget.h
@@ -29,6 +29,7 @@
#include <QWidget>
+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 e5efa95af0..89eb961b13 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 ab95039da3..123c88b873 100644
--- a/src/plugins/texteditor/icodestylepreferencesfactory.h
+++ b/src/plugins/texteditor/icodestylepreferencesfactory.h
@@ -33,6 +33,8 @@
#include <QWidget>
+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 QWidget *createEditor(ICodeStylePreferences *preferences, QWidget *parent) const = 0;
+ virtual QWidget *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;