diff --git a/doc/src/editors/creator-beautifier.qdoc b/doc/src/editors/creator-beautifier.qdoc
index 308aaf40a80..b8f7f36db55 100644
--- a/doc/src/editors/creator-beautifier.qdoc
+++ b/doc/src/editors/creator-beautifier.qdoc
@@ -117,6 +117,11 @@
selected tool. This option is available for Artistic Style
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
specified file in the user's home directory as the
configuration file for the selected tool. This option is
diff --git a/src/plugins/beautifier/artisticstyle/artisticstyle.cpp b/src/plugins/beautifier/artisticstyle/artisticstyle.cpp
index 3a347478387..c28d1037fe5 100644
--- a/src/plugins/beautifier/artisticstyle/artisticstyle.cpp
+++ b/src/plugins/beautifier/artisticstyle/artisticstyle.cpp
@@ -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()) {
const QDir homeDirectory = QDir::home();
QString file = homeDirectory.filePath(".astylerc");
diff --git a/src/plugins/beautifier/artisticstyle/artisticstyleoptionspage.cpp b/src/plugins/beautifier/artisticstyle/artisticstyleoptionspage.cpp
index a2086def126..95afae7aea2 100644
--- a/src/plugins/beautifier/artisticstyle/artisticstyleoptionspage.cpp
+++ b/src/plugins/beautifier/artisticstyle/artisticstyleoptionspage.cpp
@@ -48,6 +48,8 @@ ArtisticStyleOptionsPageWidget::ArtisticStyleOptionsPageWidget(ArtisticStyleSett
ui->setupUi(this);
ui->useHomeFile->setText(ui->useHomeFile->text().replace(
"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->setPromptDialogTitle(BeautifierPlugin::msgCommandPromptDialogTitle(
ArtisticStyle::tr(Constants::ArtisticStyle::DISPLAY_NAME)));
@@ -65,6 +67,8 @@ void ArtisticStyleOptionsPageWidget::restore()
ui->command->setPath(m_settings->command());
ui->mime->setText(m_settings->supportedMimeTypesAsString());
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->useCustomStyle->setChecked(m_settings->useCustomStyle());
ui->configurations->setCurrentConfiguration(m_settings->customStyle());
@@ -75,6 +79,8 @@ void ArtisticStyleOptionsPageWidget::apply()
m_settings->setCommand(ui->command->path());
m_settings->setSupportedMimeTypes(ui->mime->text());
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->setUseCustomStyle(ui->useCustomStyle->isChecked());
m_settings->setCustomStyle(ui->configurations->currentConfiguration());
diff --git a/src/plugins/beautifier/artisticstyle/artisticstyleoptionspage.ui b/src/plugins/beautifier/artisticstyle/artisticstyleoptionspage.ui
index 2697a934485..99ec88b4b69 100644
--- a/src/plugins/beautifier/artisticstyle/artisticstyleoptionspage.ui
+++ b/src/plugins/beautifier/artisticstyle/artisticstyleoptionspage.ui
@@ -56,6 +56,20 @@
+ -
+
+
-
+
+
+ Use specific config file:
+
+
+
+ -
+
+
+
+
-
diff --git a/src/plugins/beautifier/artisticstyle/artisticstylesettings.cpp b/src/plugins/beautifier/artisticstyle/artisticstylesettings.cpp
index da73a5a47ee..c6b9c60f07d 100644
--- a/src/plugins/beautifier/artisticstyle/artisticstylesettings.cpp
+++ b/src/plugins/beautifier/artisticstyle/artisticstylesettings.cpp
@@ -45,10 +45,12 @@ namespace Internal {
namespace ArtisticStyle {
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 USE_OTHER_FILES[] = "useOtherFiles";
+const char USE_SPECIFIC_CONFIG_FILE[] = "useSpecificConfigFile";
+const char SPECIFIC_CONFIG_FILE[] = "specificConfigFile";
+const char USE_HOME_FILE[] = "useHomeFile";
+const char USE_CUSTOM_STYLE[] = "useCustomStyle";
+const char CUSTOM_STYLE[] = "customStyle";
}
ArtisticStyleSettings::ArtisticStyleSettings() :
@@ -59,6 +61,8 @@ ArtisticStyleSettings::ArtisticStyleSettings() :
setCommand("astyle");
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_CUSTOM_STYLE, QVariant(false));
m_settings.insert(CUSTOM_STYLE, QVariant());
@@ -117,6 +121,26 @@ void ArtisticStyleSettings::setUseOtherFiles(bool 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
{
return m_settings.value(USE_HOME_FILE).toBool();
diff --git a/src/plugins/beautifier/artisticstyle/artisticstylesettings.h b/src/plugins/beautifier/artisticstyle/artisticstylesettings.h
index 3f5cd4cc17a..9e3c60e435a 100644
--- a/src/plugins/beautifier/artisticstyle/artisticstylesettings.h
+++ b/src/plugins/beautifier/artisticstyle/artisticstylesettings.h
@@ -27,6 +27,8 @@
#include "../abstractsettings.h"
+#include
+
#include
#include
@@ -51,6 +53,12 @@ public:
bool useOtherFiles() const;
void setUseOtherFiles(bool useOtherFiles);
+ bool useSpecificConfigFile() const;
+ void setUseSpecificConfigFile(bool useSpecificConfigFile);
+
+ Utils::FileName specificConfigFile() const;
+ void setSpecificConfigFile(const Utils::FileName &specificConfigFile);
+
bool useHomeFile() const;
void setUseHomeFile(bool useHomeFile);