aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/clangformat
diff options
context:
space:
mode:
authorIvan Donchevskii <ivan.donchevskii@qt.io>2019-04-26 10:49:48 +0200
committerIvan Donchevskii <ivan.donchevskii@qt.io>2019-04-29 11:22:12 +0000
commitc2ab89cc126549c63e14d5a7249c82e4f1c220d2 (patch)
tree4d53f8ff61d81348b3a074f0ab5764eb2ee08ca5 /src/plugins/clangformat
parent7167656a8db6ef26e2a7f977ace45157ce57c555 (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.cpp48
-rw-r--r--src/plugins/clangformat/clangformatconfigwidget.h2
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();