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()) { if (m_settings->useHomeFile()) {
const QString file = QDir::home().filePath("uncrustify.cfg"); const QString file = QDir::home().filePath("uncrustify.cfg");
if (QFile::exists(file)) if (QFile::exists(file))

View File

@@ -50,6 +50,10 @@ UncrustifyOptionsPageWidget::UncrustifyOptionsPageWidget(UncrustifySettings *set
ui->setupUi(this); ui->setupUi(this);
ui->useHomeFile->setText(ui->useHomeFile->text().replace( ui->useHomeFile->setText(ui->useHomeFile->text().replace(
"HOME", QDir::toNativeSeparators(QDir::home().absolutePath()))); "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->setExpectedKind(Utils::PathChooser::ExistingCommand);
ui->command->setPromptDialogTitle(BeautifierPlugin::msgCommandPromptDialogTitle( ui->command->setPromptDialogTitle(BeautifierPlugin::msgCommandPromptDialogTitle(
Uncrustify::tr(Constants::Uncrustify::DISPLAY_NAME))); Uncrustify::tr(Constants::Uncrustify::DISPLAY_NAME)));
@@ -68,6 +72,8 @@ void UncrustifyOptionsPageWidget::restore()
ui->mime->setText(m_settings->supportedMimeTypesAsString()); ui->mime->setText(m_settings->supportedMimeTypesAsString());
ui->useOtherFiles->setChecked(m_settings->useOtherFiles()); ui->useOtherFiles->setChecked(m_settings->useOtherFiles());
ui->useHomeFile->setChecked(m_settings->useHomeFile()); 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->useCustomStyle->setChecked(m_settings->useCustomStyle());
ui->configurations->setCurrentConfiguration(m_settings->customStyle()); ui->configurations->setCurrentConfiguration(m_settings->customStyle());
ui->formatEntireFileFallback->setChecked(m_settings->formatEntireFileFallback()); ui->formatEntireFileFallback->setChecked(m_settings->formatEntireFileFallback());
@@ -79,6 +85,8 @@ void UncrustifyOptionsPageWidget::apply()
m_settings->setSupportedMimeTypes(ui->mime->text()); m_settings->setSupportedMimeTypes(ui->mime->text());
m_settings->setUseOtherFiles(ui->useOtherFiles->isChecked()); m_settings->setUseOtherFiles(ui->useOtherFiles->isChecked());
m_settings->setUseHomeFile(ui->useHomeFile->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->setUseCustomStyle(ui->useCustomStyle->isChecked());
m_settings->setCustomStyle(ui->configurations->currentConfiguration()); m_settings->setCustomStyle(ui->configurations->currentConfiguration());
m_settings->setFormatEntireFileFallback(ui->formatEntireFileFallback->isChecked()); m_settings->setFormatEntireFileFallback(ui->formatEntireFileFallback->isChecked());

View File

@@ -56,6 +56,20 @@
</property> </property>
</widget> </widget>
</item> </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> <item>
<widget class="QCheckBox" name="useHomeFile"> <widget class="QCheckBox" name="useHomeFile">
<property name="text"> <property name="text">
@@ -122,6 +136,8 @@
<tabstops> <tabstops>
<tabstop>mime</tabstop> <tabstop>mime</tabstop>
<tabstop>useOtherFiles</tabstop> <tabstop>useOtherFiles</tabstop>
<tabstop>useSpecificFile</tabstop>
<tabstop>uncrusifyFilePath</tabstop>
<tabstop>useHomeFile</tabstop> <tabstop>useHomeFile</tabstop>
<tabstop>useCustomStyle</tabstop> <tabstop>useCustomStyle</tabstop>
<tabstop>formatEntireFileFallback</tabstop> <tabstop>formatEntireFileFallback</tabstop>

View File

@@ -46,6 +46,8 @@ namespace Uncrustify {
namespace { namespace {
const char USE_OTHER_FILES[] = "useOtherFiles"; const char USE_OTHER_FILES[] = "useOtherFiles";
const char USE_HOME_FILE[] = "useHomeFile"; 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 USE_CUSTOM_STYLE[] = "useCustomStyle";
const char CUSTOM_STYLE[] = "customStyle"; const char CUSTOM_STYLE[] = "customStyle";
const char FORMAT_ENTIRE_FILE_FALLBACK[] = "formatEntireFileFallback"; const char FORMAT_ENTIRE_FILE_FALLBACK[] = "formatEntireFileFallback";
@@ -62,8 +64,10 @@ UncrustifySettings::UncrustifySettings() :
m_settings.insert(USE_OTHER_FILES, QVariant(true)); m_settings.insert(USE_OTHER_FILES, QVariant(true));
m_settings.insert(USE_HOME_FILE, QVariant(false)); m_settings.insert(USE_HOME_FILE, QVariant(false));
m_settings.insert(USE_CUSTOM_STYLE, 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(CUSTOM_STYLE, QVariant());
m_settings.insert(FORMAT_ENTIRE_FILE_FALLBACK, QVariant(true)); m_settings.insert(FORMAT_ENTIRE_FILE_FALLBACK, QVariant(true));
m_settings.insert(SPECIFIC_CONFIG_FILE_PATH, QVariant());
read(); read();
} }
@@ -87,6 +91,26 @@ void UncrustifySettings::setUseHomeFile(bool useHomeFile)
m_settings.insert(USE_HOME_FILE, QVariant(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 bool UncrustifySettings::useCustomStyle() const
{ {
return m_settings.value(USE_CUSTOM_STYLE).toBool(); return m_settings.value(USE_CUSTOM_STYLE).toBool();

View File

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