forked from qt-creator/qt-creator
ClangFormat: Inline *.ui files
Change-Id: Ie6bcb486c70896894121434b1030861b029a46a2 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
This commit is contained in:
@@ -28,31 +28,56 @@
|
||||
#include "clangformatconstants.h"
|
||||
#include "clangformatsettings.h"
|
||||
|
||||
#include "ui_clangformatglobalconfigwidget.h"
|
||||
|
||||
#include <projectexplorer/project.h>
|
||||
|
||||
#include <utils/layoutbuilder.h>
|
||||
|
||||
#include <QCheckBox>
|
||||
#include <QComboBox>
|
||||
#include <QLabel>
|
||||
#include <QWidget>
|
||||
|
||||
#include <sstream>
|
||||
|
||||
using namespace ProjectExplorer;
|
||||
using namespace Utils;
|
||||
|
||||
namespace ClangFormat {
|
||||
|
||||
ClangFormatGlobalConfigWidget::ClangFormatGlobalConfigWidget(ProjectExplorer::Project *project,
|
||||
QWidget *parent)
|
||||
: CppCodeStyleWidget(parent)
|
||||
, m_ui(std::make_unique<Ui::ClangFormatGlobalConfigWidget>())
|
||||
{
|
||||
m_ui->setupUi(this);
|
||||
resize(489, 305);
|
||||
|
||||
m_formattingModeLabel = new QLabel(tr("Formatting mode:"));
|
||||
m_indentingOrFormatting = new QComboBox(this);
|
||||
m_formatWhileTyping = new QCheckBox(tr("Format while typing"));
|
||||
m_formatOnSave = new QCheckBox(tr("Format edited code on file save"));
|
||||
|
||||
using namespace Layouting;
|
||||
|
||||
Group globalSettingsGroupBox {
|
||||
title(tr("ClangFormat global setting:")),
|
||||
Column {
|
||||
Row { m_formattingModeLabel, m_indentingOrFormatting, st },
|
||||
m_formatWhileTyping,
|
||||
m_formatOnSave
|
||||
}
|
||||
};
|
||||
|
||||
Column {
|
||||
globalSettingsGroupBox
|
||||
}.attachTo(this);
|
||||
|
||||
initCheckBoxes();
|
||||
initIndentationOrFormattingCombobox();
|
||||
|
||||
if (project) {
|
||||
m_ui->settingsGroupBox->hide();
|
||||
globalSettingsGroupBox.widget->hide();
|
||||
return;
|
||||
}
|
||||
m_ui->settingsGroupBox->show();
|
||||
globalSettingsGroupBox.widget->show();
|
||||
}
|
||||
|
||||
ClangFormatGlobalConfigWidget::~ClangFormatGlobalConfigWidget() = default;
|
||||
@@ -62,27 +87,27 @@ void ClangFormatGlobalConfigWidget::initCheckBoxes()
|
||||
auto setEnableCheckBoxes = [this](int index) {
|
||||
bool isFormatting = index == static_cast<int>(ClangFormatSettings::Mode::Formatting);
|
||||
|
||||
m_ui->formatOnSave->setEnabled(isFormatting);
|
||||
m_ui->formatWhileTyping->setEnabled(isFormatting);
|
||||
m_formatOnSave->setEnabled(isFormatting);
|
||||
m_formatWhileTyping->setEnabled(isFormatting);
|
||||
};
|
||||
setEnableCheckBoxes(m_ui->indentingOrFormatting->currentIndex());
|
||||
connect(m_ui->indentingOrFormatting, &QComboBox::currentIndexChanged,
|
||||
setEnableCheckBoxes(m_indentingOrFormatting->currentIndex());
|
||||
connect(m_indentingOrFormatting, &QComboBox::currentIndexChanged,
|
||||
this, setEnableCheckBoxes);
|
||||
|
||||
m_ui->formatOnSave->setChecked(ClangFormatSettings::instance().formatOnSave());
|
||||
m_ui->formatWhileTyping->setChecked(ClangFormatSettings::instance().formatWhileTyping());
|
||||
m_formatOnSave->setChecked(ClangFormatSettings::instance().formatOnSave());
|
||||
m_formatWhileTyping->setChecked(ClangFormatSettings::instance().formatWhileTyping());
|
||||
}
|
||||
|
||||
void ClangFormatGlobalConfigWidget::initIndentationOrFormattingCombobox()
|
||||
{
|
||||
m_ui->indentingOrFormatting->insertItem(static_cast<int>(ClangFormatSettings::Mode::Indenting),
|
||||
tr("Indenting only"));
|
||||
m_ui->indentingOrFormatting->insertItem(static_cast<int>(ClangFormatSettings::Mode::Formatting),
|
||||
tr("Full formatting"));
|
||||
m_ui->indentingOrFormatting->insertItem(static_cast<int>(ClangFormatSettings::Mode::Disable),
|
||||
tr("Disable"));
|
||||
m_indentingOrFormatting->insertItem(static_cast<int>(ClangFormatSettings::Mode::Indenting),
|
||||
tr("Indenting only"));
|
||||
m_indentingOrFormatting->insertItem(static_cast<int>(ClangFormatSettings::Mode::Formatting),
|
||||
tr("Full formatting"));
|
||||
m_indentingOrFormatting->insertItem(static_cast<int>(ClangFormatSettings::Mode::Disable),
|
||||
tr("Disable"));
|
||||
|
||||
m_ui->indentingOrFormatting->setCurrentIndex(
|
||||
m_indentingOrFormatting->setCurrentIndex(
|
||||
static_cast<int>(ClangFormatSettings::instance().mode()));
|
||||
}
|
||||
|
||||
@@ -90,9 +115,9 @@ void ClangFormatGlobalConfigWidget::initIndentationOrFormattingCombobox()
|
||||
void ClangFormatGlobalConfigWidget::apply()
|
||||
{
|
||||
ClangFormatSettings &settings = ClangFormatSettings::instance();
|
||||
settings.setFormatOnSave(m_ui->formatOnSave->isChecked());
|
||||
settings.setFormatWhileTyping(m_ui->formatWhileTyping->isChecked());
|
||||
settings.setMode(static_cast<ClangFormatSettings::Mode>(m_ui->indentingOrFormatting->currentIndex()));
|
||||
settings.setFormatOnSave(m_formatOnSave->isChecked());
|
||||
settings.setFormatWhileTyping(m_formatWhileTyping->isChecked());
|
||||
settings.setMode(static_cast<ClangFormatSettings::Mode>(m_indentingOrFormatting->currentIndex()));
|
||||
settings.write();
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user