Beautifier: Allow to define specific config file

Change-Id: Ic6410d7eae27a008cbb46f506ca5907f80d6ea68
Reviewed-by: Lorenz Haas <lorenz.haas@histomatics.de>
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
This commit is contained in:
Montel Laurent
2017-02-20 15:29:23 +01:00
committed by Laurent Montel
parent aafb17ae83
commit ac3710735b
5 changed files with 66 additions and 6 deletions

View File

@@ -168,6 +168,12 @@ QString Uncrustify::configurationFile() const
}
}
if (m_settings->useSpecificConfigFile()) {
const Utils::FileName file = m_settings->specificConfigFile();
if (file.exists())
return file.toString();
}
if (m_settings->useHomeFile()) {
const QString file = QDir::home().filePath("uncrustify.cfg");
if (QFile::exists(file))

View File

@@ -50,6 +50,10 @@ UncrustifyOptionsPageWidget::UncrustifyOptionsPageWidget(UncrustifySettings *set
ui->setupUi(this);
ui->useHomeFile->setText(ui->useHomeFile->text().replace(
"HOME", QDir::toNativeSeparators(QDir::home().absolutePath())));
ui->uncrusifyFilePath->setExpectedKind(Utils::PathChooser::File);
ui->uncrusifyFilePath->setPromptDialogFilter(tr("Uncrustify file (*.cfg)"));
ui->uncrusifyFilePath->setFileName(Utils::FileName::fromString(QDir::toNativeSeparators(QDir::home().absoluteFilePath("uncrustify.cfg"))));
ui->command->setExpectedKind(Utils::PathChooser::ExistingCommand);
ui->command->setPromptDialogTitle(BeautifierPlugin::msgCommandPromptDialogTitle(
Uncrustify::tr(Constants::Uncrustify::DISPLAY_NAME)));
@@ -68,6 +72,8 @@ void UncrustifyOptionsPageWidget::restore()
ui->mime->setText(m_settings->supportedMimeTypesAsString());
ui->useOtherFiles->setChecked(m_settings->useOtherFiles());
ui->useHomeFile->setChecked(m_settings->useHomeFile());
ui->useSpecificFile->setChecked(m_settings->useSpecificConfigFile());
ui->uncrusifyFilePath->setFileName(m_settings->specificConfigFile());
ui->useCustomStyle->setChecked(m_settings->useCustomStyle());
ui->configurations->setCurrentConfiguration(m_settings->customStyle());
ui->formatEntireFileFallback->setChecked(m_settings->formatEntireFileFallback());
@@ -79,6 +85,8 @@ void UncrustifyOptionsPageWidget::apply()
m_settings->setSupportedMimeTypes(ui->mime->text());
m_settings->setUseOtherFiles(ui->useOtherFiles->isChecked());
m_settings->setUseHomeFile(ui->useHomeFile->isChecked());
m_settings->setUseSpecificConfigFile(ui->useSpecificFile->isChecked());
m_settings->setSpecificConfigFile(ui->uncrusifyFilePath->fileName());
m_settings->setUseCustomStyle(ui->useCustomStyle->isChecked());
m_settings->setCustomStyle(ui->configurations->currentConfiguration());
m_settings->setFormatEntireFileFallback(ui->formatEntireFileFallback->isChecked());

View File

@@ -56,6 +56,20 @@
</property>
</widget>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<widget class="QCheckBox" name="useSpecificFile">
<property name="text">
<string>Use file specific uncrustify.cfg</string>
</property>
</widget>
</item>
<item>
<widget class="Utils::PathChooser" name="uncrusifyFilePath" native="true"/>
</item>
</layout>
</item>
<item>
<widget class="QCheckBox" name="useHomeFile">
<property name="text">
@@ -122,6 +136,8 @@
<tabstops>
<tabstop>mime</tabstop>
<tabstop>useOtherFiles</tabstop>
<tabstop>useSpecificFile</tabstop>
<tabstop>uncrusifyFilePath</tabstop>
<tabstop>useHomeFile</tabstop>
<tabstop>useCustomStyle</tabstop>
<tabstop>formatEntireFileFallback</tabstop>

View File

@@ -44,11 +44,13 @@ namespace Internal {
namespace Uncrustify {
namespace {
const char USE_OTHER_FILES[] = "useOtherFiles";
const char USE_HOME_FILE[] = "useHomeFile";
const char USE_CUSTOM_STYLE[] = "useCustomStyle";
const char CUSTOM_STYLE[] = "customStyle";
const char FORMAT_ENTIRE_FILE_FALLBACK[] = "formatEntireFileFallback";
const char USE_OTHER_FILES[] = "useOtherFiles";
const char USE_HOME_FILE[] = "useHomeFile";
const char USE_SPECIFIC_CONFIG_FILE_PATH[] = "useSpecificConfigFile";
const char SPECIFIC_CONFIG_FILE_PATH[] = "specificConfigFile";
const char USE_CUSTOM_STYLE[] = "useCustomStyle";
const char CUSTOM_STYLE[] = "customStyle";
const char FORMAT_ENTIRE_FILE_FALLBACK[] = "formatEntireFileFallback";
}
UncrustifySettings::UncrustifySettings() :
@@ -62,8 +64,10 @@ UncrustifySettings::UncrustifySettings() :
m_settings.insert(USE_OTHER_FILES, QVariant(true));
m_settings.insert(USE_HOME_FILE, QVariant(false));
m_settings.insert(USE_CUSTOM_STYLE, QVariant(false));
m_settings.insert(USE_SPECIFIC_CONFIG_FILE_PATH, QVariant(false));
m_settings.insert(CUSTOM_STYLE, QVariant());
m_settings.insert(FORMAT_ENTIRE_FILE_FALLBACK, QVariant(true));
m_settings.insert(SPECIFIC_CONFIG_FILE_PATH, QVariant());
read();
}
@@ -87,6 +91,26 @@ void UncrustifySettings::setUseHomeFile(bool useHomeFile)
m_settings.insert(USE_HOME_FILE, QVariant(useHomeFile));
}
Utils::FileName UncrustifySettings::specificConfigFile() const
{
return Utils::FileName::fromString(m_settings.value(SPECIFIC_CONFIG_FILE_PATH).toString());
}
void UncrustifySettings::setSpecificConfigFile(const Utils::FileName &filePath)
{
m_settings.insert(SPECIFIC_CONFIG_FILE_PATH, QVariant(filePath.toString()));
}
bool UncrustifySettings::useSpecificConfigFile() const
{
return m_settings.value(USE_SPECIFIC_CONFIG_FILE_PATH).toBool();
}
void UncrustifySettings::setUseSpecificConfigFile(bool useConfigFile)
{
m_settings.insert(USE_SPECIFIC_CONFIG_FILE_PATH, QVariant(useConfigFile));
}
bool UncrustifySettings::useCustomStyle() const
{
return m_settings.value(USE_CUSTOM_STYLE).toBool();

View File

@@ -26,7 +26,7 @@
#pragma once
#include "../abstractsettings.h"
#include <utils/fileutils.h>
#include <QProcess>
namespace Beautifier {
@@ -60,6 +60,12 @@ public:
void updateVersion() override;
Utils::FileName specificConfigFile() const;
void setSpecificConfigFile(const Utils::FileName &filePath);
bool useSpecificConfigFile() const;
void setUseSpecificConfigFile(bool useConfigFile);
private:
QProcess m_versionProcess;
void parseVersionProcessResult(int exitCode, QProcess::ExitStatus exitStatus);