ClangFormat: Move ClangFormat settings page

- Move ClangFormat settings page to TabWidget in the dialog
that opens when a user press "Edit" button in the CodeStyle tab

Change-Id: Ibd285344f07a6b2b20e275f2134976c50f91a019
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
This commit is contained in:
Artem Sokolovskii
2021-10-07 15:08:46 +02:00
parent c2d9495b62
commit 9cb0bd94f0
5 changed files with 26 additions and 14 deletions

View File

@@ -75,25 +75,19 @@ namespace ClangFormat {
class ClangFormatStyleFactory : public CppEditor::CppCodeStylePreferencesFactory class ClangFormatStyleFactory : public CppEditor::CppCodeStylePreferencesFactory
{ {
Q_DECLARE_TR_FUNCTIONS(ClangFormatStyleFactory)
public: public:
TextEditor::CodeStyleEditorWidget *createCodeStyleEditor(
TextEditor::ICodeStylePreferences *preferences, QWidget *parent) override
{
Q_UNUSED(preferences);
if (!parent)
return new ClangFormatConfigWidget;
return new ClangFormatConfigWidget(SessionManager::startupProject());
}
QWidget *createEditor(TextEditor::ICodeStylePreferences *, QWidget *) const override
{
return nullptr;
}
TextEditor::Indenter *createIndenter(QTextDocument *doc) const override TextEditor::Indenter *createIndenter(QTextDocument *doc) const override
{ {
return new ClangFormatIndenter(doc); return new ClangFormatIndenter(doc);
} }
std::pair<QWidget *, QString> additionalTab(QWidget *parent) const override
{
if (!parent)
return {new ClangFormatConfigWidget(), tr("ClangFormat")};
return {new ClangFormatConfigWidget(SessionManager::startupProject()), tr("ClangFormat")};
}
}; };
static void replaceCppCodeStyle() static void replaceCppCodeStyle()

View File

@@ -104,6 +104,12 @@ QWidget *CppCodeStylePreferencesFactory::createEditor(TextEditor::ICodeStylePref
if (!cppPreferences) if (!cppPreferences)
return nullptr; return nullptr;
auto widget = new Internal::CppCodeStylePreferencesWidget(parent); auto widget = new Internal::CppCodeStylePreferencesWidget(parent);
const auto tab = additionalTab(parent);
if (tab.first) {
widget->addTab(tab.first, tab.second);
}
widget->layout()->setContentsMargins(0, 0, 0, 0); widget->layout()->setContentsMargins(0, 0, 0, 0);
widget->setCodeStyle(cppPreferences); widget->setCodeStyle(cppPreferences);
return widget; return widget;
@@ -124,4 +130,10 @@ QString CppCodeStylePreferencesFactory::previewText() const
return QLatin1String(defaultPreviewText); return QLatin1String(defaultPreviewText);
} }
std::pair<QWidget *, QString> CppCodeStylePreferencesFactory::additionalTab(QWidget *parent) const
{
Q_UNUSED(parent)
return {nullptr, ""};
}
} // namespace CppEditor } // namespace CppEditor

View File

@@ -44,6 +44,7 @@ public:
TextEditor::Indenter *createIndenter(QTextDocument *doc) const override; TextEditor::Indenter *createIndenter(QTextDocument *doc) const override;
QString snippetProviderGroupId() const override; QString snippetProviderGroupId() const override;
QString previewText() const override; QString previewText() const override;
virtual std::pair<QWidget *, QString> additionalTab(QWidget *parent) const;
}; };
} // namespace CppEditor } // namespace CppEditor

View File

@@ -337,6 +337,10 @@ void CppCodeStylePreferencesWidget::setVisualizeWhitespace(bool on)
} }
} }
void CppCodeStylePreferencesWidget::addTab(QWidget *page, QString tabName)
{
m_ui->categoryTab->addTab(page, tabName);
}
// ------------------ CppCodeStyleSettingsPage // ------------------ CppCodeStyleSettingsPage

View File

@@ -56,6 +56,7 @@ public:
~CppCodeStylePreferencesWidget() override; ~CppCodeStylePreferencesWidget() override;
void setCodeStyle(CppCodeStylePreferences *codeStylePreferences); void setCodeStyle(CppCodeStylePreferences *codeStylePreferences);
void addTab(QWidget *page, QString tabName);
private: private:
void decorateEditors(const TextEditor::FontSettings &fontSettings); void decorateEditors(const TextEditor::FontSettings &fontSettings);