diff options
author | Lorenz Haas <lorenz.haas@histomatics.de> | 2017-03-20 22:54:27 +0100 |
---|---|---|
committer | Lorenz Haas <lorenz.haas@histomatics.de> | 2017-03-28 11:42:23 +0000 |
commit | a5574bc8029e931c75504f4f82f1bfd421df32f0 (patch) | |
tree | aedbba5adb1f4b45eef80140c681f87091df406c /src/plugins/beautifier | |
parent | 016767b2a681551ced79b95651b175e348228ed4 (diff) | |
download | qt-creator-a5574bc8029e931c75504f4f82f1bfd421df32f0.tar.gz |
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>
Diffstat (limited to 'src/plugins/beautifier')
5 files changed, 62 insertions, 4 deletions
diff --git a/src/plugins/beautifier/artisticstyle/artisticstyle.cpp b/src/plugins/beautifier/artisticstyle/artisticstyle.cpp index 3a34747838..c28d1037fe 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 a2086def12..95afae7aea 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 2697a93448..99ec88b4b6 100644 --- a/src/plugins/beautifier/artisticstyle/artisticstyleoptionspage.ui +++ b/src/plugins/beautifier/artisticstyle/artisticstyleoptionspage.ui @@ -57,6 +57,20 @@ </widget> </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> <widget class="QCheckBox" name="useHomeFile"> <property name="text"> <string extracomment="HOME is replaced by the user's home directory">Use file .astylerc or astylerc in HOME</string> diff --git a/src/plugins/beautifier/artisticstyle/artisticstylesettings.cpp b/src/plugins/beautifier/artisticstyle/artisticstylesettings.cpp index da73a5a47e..c6b9c60f07 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 3f5cd4cc17..9e3c60e435 100644 --- a/src/plugins/beautifier/artisticstyle/artisticstylesettings.h +++ b/src/plugins/beautifier/artisticstyle/artisticstylesettings.h @@ -27,6 +27,8 @@ #include "../abstractsettings.h" +#include <utils/fileutils.h> + #include <QFuture> #include <QFutureWatcher> @@ -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); |