Beautifier: Allow to define specific config file for AStyle

Change-Id: I3ea1a0bfb0f39d99606204a5699b01128138259e
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
Reviewed-by: David Schulz <david.schulz@qt.io>
This commit is contained in:
Lorenz Haas
2017-03-20 22:54:27 +01:00
parent 016767b2a6
commit a5574bc802
6 changed files with 67 additions and 4 deletions

View File

@@ -117,6 +117,11 @@
selected tool. This option is available for Artistic Style selected tool. This option is available for Artistic Style
and Uncrustify. and Uncrustify.
\li Select the \uicontrol {Use specific config file} option to
use the specified file as the configuration file for the
selected tool. This option is available for Artistic Style
and Uncrustify.
\li Select the \uicontrol {Use file in $HOME} option to use the \li Select the \uicontrol {Use file in $HOME} option to use the
specified file in the user's home directory as the specified file in the user's home directory as the
configuration file for the selected tool. This option is configuration file for the selected tool. This option is

View File

@@ -129,6 +129,12 @@ QString ArtisticStyle::configurationFile() const
} }
} }
if (m_settings->useSpecificConfigFile()) {
const Utils::FileName file = m_settings->specificConfigFile();
if (file.exists())
return file.toUserOutput();
}
if (m_settings->useHomeFile()) { if (m_settings->useHomeFile()) {
const QDir homeDirectory = QDir::home(); const QDir homeDirectory = QDir::home();
QString file = homeDirectory.filePath(".astylerc"); QString file = homeDirectory.filePath(".astylerc");

View File

@@ -48,6 +48,8 @@ ArtisticStyleOptionsPageWidget::ArtisticStyleOptionsPageWidget(ArtisticStyleSett
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->specificConfigFile->setExpectedKind(Utils::PathChooser::File);
ui->specificConfigFile->setPromptDialogFilter(tr("AStyle (*.astylerc)"));
ui->command->setExpectedKind(Utils::PathChooser::ExistingCommand); ui->command->setExpectedKind(Utils::PathChooser::ExistingCommand);
ui->command->setPromptDialogTitle(BeautifierPlugin::msgCommandPromptDialogTitle( ui->command->setPromptDialogTitle(BeautifierPlugin::msgCommandPromptDialogTitle(
ArtisticStyle::tr(Constants::ArtisticStyle::DISPLAY_NAME))); ArtisticStyle::tr(Constants::ArtisticStyle::DISPLAY_NAME)));
@@ -65,6 +67,8 @@ void ArtisticStyleOptionsPageWidget::restore()
ui->command->setPath(m_settings->command()); ui->command->setPath(m_settings->command());
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->useSpecificConfigFile->setChecked(m_settings->useSpecificConfigFile());
ui->specificConfigFile->setFileName(m_settings->specificConfigFile());
ui->useHomeFile->setChecked(m_settings->useHomeFile()); ui->useHomeFile->setChecked(m_settings->useHomeFile());
ui->useCustomStyle->setChecked(m_settings->useCustomStyle()); ui->useCustomStyle->setChecked(m_settings->useCustomStyle());
ui->configurations->setCurrentConfiguration(m_settings->customStyle()); ui->configurations->setCurrentConfiguration(m_settings->customStyle());
@@ -75,6 +79,8 @@ void ArtisticStyleOptionsPageWidget::apply()
m_settings->setCommand(ui->command->path()); m_settings->setCommand(ui->command->path());
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->setUseSpecificConfigFile(ui->useSpecificConfigFile->isChecked());
m_settings->setSpecificConfigFile(ui->specificConfigFile->fileName());
m_settings->setUseHomeFile(ui->useHomeFile->isChecked()); m_settings->setUseHomeFile(ui->useHomeFile->isChecked());
m_settings->setUseCustomStyle(ui->useCustomStyle->isChecked()); m_settings->setUseCustomStyle(ui->useCustomStyle->isChecked());
m_settings->setCustomStyle(ui->configurations->currentConfiguration()); m_settings->setCustomStyle(ui->configurations->currentConfiguration());

View File

@@ -56,6 +56,20 @@
</property> </property>
</widget> </widget>
</item> </item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout" stretch="0,1">
<item>
<widget class="QCheckBox" name="useSpecificConfigFile">
<property name="text">
<string>Use specific config file:</string>
</property>
</widget>
</item>
<item>
<widget class="Utils::PathChooser" name="specificConfigFile" native="true"/>
</item>
</layout>
</item>
<item> <item>
<widget class="QCheckBox" name="useHomeFile"> <widget class="QCheckBox" name="useHomeFile">
<property name="text"> <property name="text">

View File

@@ -45,10 +45,12 @@ namespace Internal {
namespace ArtisticStyle { namespace ArtisticStyle {
namespace { namespace {
const char USE_OTHER_FILES[] = "useOtherFiles"; const char USE_OTHER_FILES[] = "useOtherFiles";
const char USE_HOME_FILE[] = "useHomeFile"; const char USE_SPECIFIC_CONFIG_FILE[] = "useSpecificConfigFile";
const char USE_CUSTOM_STYLE[] = "useCustomStyle"; const char SPECIFIC_CONFIG_FILE[] = "specificConfigFile";
const char CUSTOM_STYLE[] = "customStyle"; const char USE_HOME_FILE[] = "useHomeFile";
const char USE_CUSTOM_STYLE[] = "useCustomStyle";
const char CUSTOM_STYLE[] = "customStyle";
} }
ArtisticStyleSettings::ArtisticStyleSettings() : ArtisticStyleSettings::ArtisticStyleSettings() :
@@ -59,6 +61,8 @@ ArtisticStyleSettings::ArtisticStyleSettings() :
setCommand("astyle"); setCommand("astyle");
m_settings.insert(USE_OTHER_FILES, QVariant(true)); m_settings.insert(USE_OTHER_FILES, QVariant(true));
m_settings.insert(USE_SPECIFIC_CONFIG_FILE, QVariant(false));
m_settings.insert(SPECIFIC_CONFIG_FILE, QVariant());
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(CUSTOM_STYLE, QVariant()); m_settings.insert(CUSTOM_STYLE, QVariant());
@@ -117,6 +121,26 @@ void ArtisticStyleSettings::setUseOtherFiles(bool useOtherFiles)
m_settings.insert(USE_OTHER_FILES, QVariant(useOtherFiles)); m_settings.insert(USE_OTHER_FILES, QVariant(useOtherFiles));
} }
bool ArtisticStyleSettings::useSpecificConfigFile() const
{
return m_settings.value(USE_SPECIFIC_CONFIG_FILE).toBool();
}
void ArtisticStyleSettings::setUseSpecificConfigFile(bool useSpecificConfigFile)
{
m_settings.insert(USE_SPECIFIC_CONFIG_FILE, QVariant(useSpecificConfigFile));
}
Utils::FileName ArtisticStyleSettings::specificConfigFile() const
{
return Utils::FileName::fromString(m_settings.value(SPECIFIC_CONFIG_FILE).toString());
}
void ArtisticStyleSettings::setSpecificConfigFile(const Utils::FileName &specificConfigFile)
{
m_settings.insert(SPECIFIC_CONFIG_FILE, QVariant(specificConfigFile.toString()));
}
bool ArtisticStyleSettings::useHomeFile() const bool ArtisticStyleSettings::useHomeFile() const
{ {
return m_settings.value(USE_HOME_FILE).toBool(); return m_settings.value(USE_HOME_FILE).toBool();

View File

@@ -27,6 +27,8 @@
#include "../abstractsettings.h" #include "../abstractsettings.h"
#include <utils/fileutils.h>
#include <QFuture> #include <QFuture>
#include <QFutureWatcher> #include <QFutureWatcher>
@@ -51,6 +53,12 @@ public:
bool useOtherFiles() const; bool useOtherFiles() const;
void setUseOtherFiles(bool useOtherFiles); void setUseOtherFiles(bool useOtherFiles);
bool useSpecificConfigFile() const;
void setUseSpecificConfigFile(bool useSpecificConfigFile);
Utils::FileName specificConfigFile() const;
void setSpecificConfigFile(const Utils::FileName &specificConfigFile);
bool useHomeFile() const; bool useHomeFile() const;
void setUseHomeFile(bool useHomeFile); void setUseHomeFile(bool useHomeFile);