diff options
author | Ivan Donchevskii <ivan.donchevskii@qt.io> | 2019-04-26 10:49:48 +0200 |
---|---|---|
committer | Ivan Donchevskii <ivan.donchevskii@qt.io> | 2019-04-29 11:22:12 +0000 |
commit | c2ab89cc126549c63e14d5a7249c82e4f1c220d2 (patch) | |
tree | 4d53f8ff61d81348b3a074f0ab5764eb2ee08ca5 /src/plugins/clangformat | |
parent | 7167656a8db6ef26e2a7f977ace45157ce57c555 (diff) |
ClangFormat: Do not reinitialize the configuration and preview
Initialize them only once and only show/hide widgets later on.
Change-Id: I5ebad504709e34aeb6ce5bf1ead7d8e2ee0b2056
Reviewed-by: Marco Bubke <marco.bubke@qt.io>
Diffstat (limited to 'src/plugins/clangformat')
-rw-r--r-- | src/plugins/clangformat/clangformatconfigwidget.cpp | 48 | ||||
-rw-r--r-- | src/plugins/clangformat/clangformatconfigwidget.h | 2 |
2 files changed, 26 insertions, 24 deletions
diff --git a/src/plugins/clangformat/clangformatconfigwidget.cpp b/src/plugins/clangformat/clangformatconfigwidget.cpp index 459dfcbe37..61287bcb38 100644 --- a/src/plugins/clangformat/clangformatconfigwidget.cpp +++ b/src/plugins/clangformat/clangformatconfigwidget.cpp @@ -89,11 +89,12 @@ ClangFormatConfigWidget::ClangFormatConfigWidget(ProjectExplorer::Project *proje } connect(m_ui->overrideDefault, &QCheckBox::toggled, this, [this](bool checked) { - if (checked) - createStyleFileIfNeeded(!m_project); - initialize(); + showOrHideWidgets(); }); - initialize(); + showOrHideWidgets(); + + fillTable(); + updatePreview(); connectChecks(); } @@ -110,6 +111,24 @@ void ClangFormatConfigWidget::initChecksAndPreview() m_preview = new TextEditor::SnippetEditorWidget(this); m_ui->horizontalLayout_2->addWidget(m_preview); + + TextEditor::DisplaySettings displaySettings = m_preview->displaySettings(); + displaySettings.m_visualizeWhitespace = true; + m_preview->setDisplaySettings(displaySettings); + m_preview->setPlainText(QLatin1String(CppTools::Constants::DEFAULT_CODE_STYLE_SNIPPETS[0])); + m_preview->textDocument()->setIndenter(new ClangFormatIndenter(m_preview->document())); + m_preview->textDocument()->setFontSettings(TextEditor::TextEditorSettings::fontSettings()); + m_preview->textDocument()->setSyntaxHighlighter(new CppEditor::CppHighlighter); + + Utils::FileName fileName; + if (m_project) { + connect(m_ui->applyButton, &QPushButton::clicked, this, &ClangFormatConfigWidget::apply); + fileName = m_project->projectFilePath().appendPath("snippet.cpp"); + } else { + fileName = Utils::FileName::fromString(Core::ICore::userResourcePath()) + .appendPath("snippet.cpp"); + } + m_preview->textDocument()->indenter()->setFileName(fileName); } void ClangFormatConfigWidget::connectChecks() @@ -175,19 +194,10 @@ static bool projectConfigExists() .exists(); } -void ClangFormatConfigWidget::initialize() +void ClangFormatConfigWidget::showOrHideWidgets() { m_ui->projectHasClangFormat->hide(); - m_preview->setPlainText(QLatin1String(CppTools::Constants::DEFAULT_CODE_STYLE_SNIPPETS[0])); - m_preview->textDocument()->setIndenter(new ClangFormatIndenter(m_preview->document())); - m_preview->textDocument()->setFontSettings(TextEditor::TextEditorSettings::fontSettings()); - m_preview->textDocument()->setSyntaxHighlighter(new CppEditor::CppHighlighter); - - TextEditor::DisplaySettings displaySettings = m_preview->displaySettings(); - displaySettings.m_visualizeWhitespace = true; - m_preview->setDisplaySettings(displaySettings); - QLayoutItem *lastItem = m_ui->verticalLayout->itemAt(m_ui->verticalLayout->count() - 1); if (lastItem->spacerItem()) m_ui->verticalLayout->removeItem(lastItem); @@ -200,14 +210,12 @@ void ClangFormatConfigWidget::initialize() return; } + createStyleFileIfNeeded(!m_project); m_checksScrollArea->show(); m_preview->show(); - Utils::FileName fileName; if (m_project) { m_ui->projectHasClangFormat->hide(); - connect(m_ui->applyButton, &QPushButton::clicked, this, &ClangFormatConfigWidget::apply); - fileName = m_project->projectFilePath().appendPath("snippet.cpp"); } else { const Project *currentProject = SessionManager::startupProject(); if (!currentProject || !projectConfigExists()) { @@ -218,13 +226,7 @@ void ClangFormatConfigWidget::initialize() tr("Current project has its own overridden .clang-format file " "and can be configured in Projects > Code Style > C++.")); } - fileName = Utils::FileName::fromString(Core::ICore::userResourcePath()) - .appendPath("snippet.cpp"); } - - m_preview->textDocument()->indenter()->setFileName(fileName); - fillTable(); - updatePreview(); } void ClangFormatConfigWidget::updatePreview() diff --git a/src/plugins/clangformat/clangformatconfigwidget.h b/src/plugins/clangformat/clangformatconfigwidget.h index 55c35897cf..5da2bd35f2 100644 --- a/src/plugins/clangformat/clangformatconfigwidget.h +++ b/src/plugins/clangformat/clangformatconfigwidget.h @@ -60,7 +60,7 @@ private: bool eventFilter(QObject *object, QEvent *event) override; - void initialize(); + void showOrHideWidgets(); void initChecksAndPreview(); void connectChecks(); |