diff options
author | Christian Kamm <christian.d.kamm@nokia.com> | 2011-02-03 15:48:14 +0100 |
---|---|---|
committer | Christian Kamm <christian.d.kamm@nokia.com> | 2011-05-24 12:45:07 +0200 |
commit | 779fafcbfe6f92dd1288664fae512f69bc12418b (patch) | |
tree | 38a3b75cc3a18f386ab72102e97f06ffa24d4d29 /src/plugins/cpptools/cppcodestylesettings.cpp | |
parent | f69eb52944a7fc8306cbb72b7325a610045dea7a (diff) | |
download | qt-creator-779fafcbfe6f92dd1288664fae512f69bc12418b.tar.gz |
Make C++ code style configurable.
Change-Id: Iaf08edb2361146e6b5e1cbafdb716a23c938875b
Done-with: Jarek Kobus
Task-number: QTCREATORBUG-2670
Task-number: QTCREATORBUG-4310
Task-number: QTCREATORBUG-2763
Task-number: QTCREATORBUG-3623
Task-number: QTCREATORBUG-567
Reviewed-on: http://codereview.qt.nokia.com/74
Reviewed-by: Leandro T. C. Melo <leandro.melo@nokia.com>
Reviewed-by: Jarek Kobus <jaroslaw.kobus@nokia.com>
Reviewed-by: Roberto Raggi <roberto.raggi@nokia.com>
Diffstat (limited to 'src/plugins/cpptools/cppcodestylesettings.cpp')
-rw-r--r-- | src/plugins/cpptools/cppcodestylesettings.cpp | 133 |
1 files changed, 133 insertions, 0 deletions
diff --git a/src/plugins/cpptools/cppcodestylesettings.cpp b/src/plugins/cpptools/cppcodestylesettings.cpp new file mode 100644 index 0000000000..13a06e2633 --- /dev/null +++ b/src/plugins/cpptools/cppcodestylesettings.cpp @@ -0,0 +1,133 @@ +#include "cppcodestylesettings.h" + +#include <utils/settingsutils.h> + +static const char *groupPostfix = "IndentSettings"; +static const char *indentBlockBracesKey = "IndentBlockBraces"; +static const char *indentBlockBodyKey = "IndentBlockBody"; +static const char *indentClassBracesKey = "IndentClassBraces"; +static const char *indentEnumBracesKey = "IndentEnumBraces"; +static const char *indentNamespaceBracesKey = "IndentNamespaceBraces"; +static const char *indentNamespaceBodyKey = "IndentNamespaceBody"; +static const char *indentAccessSpecifiersKey = "IndentAccessSpecifiers"; +static const char *indentDeclarationsRelativeToAccessSpecifiersKey = "IndentDeclarationsRelativeToAccessSpecifiers"; +static const char *indentFunctionBodyKey = "IndentFunctionBody"; +static const char *indentFunctionBracesKey = "IndentFunctionBraces"; +static const char *indentSwitchLabelsKey = "IndentSwitchLabels"; +static const char *indentStatementsRelativeToSwitchLabelsKey = "IndentStatementsRelativeToSwitchLabels"; +static const char *indentBlocksRelativeToSwitchLabelsKey = "IndentBlocksRelativeToSwitchLabels"; +static const char *indentControlFlowRelativeToSwitchLabelsKey = "IndentControlFlowRelativeToSwitchLabels"; +static const char *extraPaddingForConditionsIfConfusingAlignKey = "ExtraPaddingForConditionsIfConfusingAlign"; +static const char *alignAssignmentsKey = "AlignAssignments"; + +using namespace CppTools; + +// ------------------ CppCodeStyleSettingsWidget + +CppCodeStyleSettings::CppCodeStyleSettings() : + indentBlockBraces(false) + , indentBlockBody(true) + , indentClassBraces(false) + , indentEnumBraces(false) + , indentNamespaceBraces(false) + , indentNamespaceBody(false) + , indentAccessSpecifiers(false) + , indentDeclarationsRelativeToAccessSpecifiers(true) + , indentFunctionBody(true) + , indentFunctionBraces(false) + , indentSwitchLabels(false) + , indentStatementsRelativeToSwitchLabels(true) + , indentBlocksRelativeToSwitchLabels(false) + , indentControlFlowRelativeToSwitchLabels(true) + , extraPaddingForConditionsIfConfusingAlign(true) + , alignAssignments(false) +{ +} + +void CppCodeStyleSettings::toSettings(const QString &category, QSettings *s) const +{ + Utils::toSettings(QLatin1String(groupPostfix), category, s, this); +} + +void CppCodeStyleSettings::fromSettings(const QString &category, const QSettings *s) +{ + *this = CppCodeStyleSettings(); // Assign defaults + Utils::fromSettings(QLatin1String(groupPostfix), category, s, this); +} + +void CppCodeStyleSettings::toMap(const QString &prefix, QVariantMap *map) const +{ + map->insert(prefix + QLatin1String(indentBlockBracesKey), indentBlockBraces); + map->insert(prefix + QLatin1String(indentBlockBodyKey), indentBlockBody); + map->insert(prefix + QLatin1String(indentClassBracesKey), indentClassBraces); + map->insert(prefix + QLatin1String(indentEnumBracesKey), indentEnumBraces); + map->insert(prefix + QLatin1String(indentNamespaceBracesKey), indentNamespaceBraces); + map->insert(prefix + QLatin1String(indentNamespaceBodyKey), indentNamespaceBody); + map->insert(prefix + QLatin1String(indentAccessSpecifiersKey), indentAccessSpecifiers); + map->insert(prefix + QLatin1String(indentDeclarationsRelativeToAccessSpecifiersKey), indentDeclarationsRelativeToAccessSpecifiers); + map->insert(prefix + QLatin1String(indentFunctionBodyKey), indentFunctionBody); + map->insert(prefix + QLatin1String(indentFunctionBracesKey), indentFunctionBraces); + map->insert(prefix + QLatin1String(indentSwitchLabelsKey), indentSwitchLabels); + map->insert(prefix + QLatin1String(indentStatementsRelativeToSwitchLabelsKey), indentStatementsRelativeToSwitchLabels); + map->insert(prefix + QLatin1String(indentBlocksRelativeToSwitchLabelsKey), indentBlocksRelativeToSwitchLabels); + map->insert(prefix + QLatin1String(indentControlFlowRelativeToSwitchLabelsKey), indentControlFlowRelativeToSwitchLabels); + map->insert(prefix + QLatin1String(extraPaddingForConditionsIfConfusingAlignKey), extraPaddingForConditionsIfConfusingAlign); + map->insert(prefix + QLatin1String(alignAssignmentsKey), alignAssignments); +} + +void CppCodeStyleSettings::fromMap(const QString &prefix, const QVariantMap &map) +{ + indentBlockBraces = map.value(prefix + QLatin1String(indentBlockBracesKey), + indentBlockBraces).toBool(); + indentBlockBody = map.value(prefix + QLatin1String(indentBlockBodyKey), + indentBlockBody).toBool(); + indentClassBraces = map.value(prefix + QLatin1String(indentClassBracesKey), + indentClassBraces).toBool(); + indentEnumBraces = map.value(prefix + QLatin1String(indentEnumBracesKey), + indentEnumBraces).toBool(); + indentNamespaceBraces = map.value(prefix + QLatin1String(indentNamespaceBracesKey), + indentNamespaceBraces).toBool(); + indentNamespaceBody = map.value(prefix + QLatin1String(indentNamespaceBodyKey), + indentNamespaceBody).toBool(); + indentAccessSpecifiers = map.value(prefix + QLatin1String(indentAccessSpecifiersKey), + indentAccessSpecifiers).toBool(); + indentDeclarationsRelativeToAccessSpecifiers = map.value(prefix + QLatin1String(indentDeclarationsRelativeToAccessSpecifiersKey), + indentDeclarationsRelativeToAccessSpecifiers).toBool(); + indentFunctionBody = map.value(prefix + QLatin1String(indentFunctionBodyKey), + indentFunctionBody).toBool(); + indentFunctionBraces = map.value(prefix + QLatin1String(indentFunctionBracesKey), + indentFunctionBraces).toBool(); + indentSwitchLabels = map.value(prefix + QLatin1String(indentSwitchLabelsKey), + indentSwitchLabels).toBool(); + indentStatementsRelativeToSwitchLabels = map.value(prefix + QLatin1String(indentStatementsRelativeToSwitchLabelsKey), + indentStatementsRelativeToSwitchLabels).toBool(); + indentBlocksRelativeToSwitchLabels = map.value(prefix + QLatin1String(indentBlocksRelativeToSwitchLabelsKey), + indentBlocksRelativeToSwitchLabels).toBool(); + indentControlFlowRelativeToSwitchLabels = map.value(prefix + QLatin1String(indentControlFlowRelativeToSwitchLabelsKey), + indentControlFlowRelativeToSwitchLabels).toBool(); + extraPaddingForConditionsIfConfusingAlign = map.value(prefix + QLatin1String(extraPaddingForConditionsIfConfusingAlignKey), + extraPaddingForConditionsIfConfusingAlign).toBool(); + alignAssignments = map.value(prefix + QLatin1String(alignAssignmentsKey), + alignAssignments).toBool(); +} + +bool CppCodeStyleSettings::equals(const CppCodeStyleSettings &rhs) const +{ + return indentBlockBraces == rhs.indentBlockBraces + && indentBlockBody == rhs.indentBlockBody + && indentClassBraces == rhs.indentClassBraces + && indentEnumBraces == rhs.indentEnumBraces + && indentNamespaceBraces == rhs.indentNamespaceBraces + && indentNamespaceBody == rhs.indentNamespaceBody + && indentAccessSpecifiers == rhs.indentAccessSpecifiers + && indentDeclarationsRelativeToAccessSpecifiers == rhs.indentDeclarationsRelativeToAccessSpecifiers + && indentFunctionBody == rhs.indentFunctionBody + && indentFunctionBraces == rhs.indentFunctionBraces + && indentSwitchLabels == rhs.indentSwitchLabels + && indentStatementsRelativeToSwitchLabels == rhs.indentStatementsRelativeToSwitchLabels + && indentBlocksRelativeToSwitchLabels == rhs.indentBlocksRelativeToSwitchLabels + && indentControlFlowRelativeToSwitchLabels == rhs.indentControlFlowRelativeToSwitchLabels + && extraPaddingForConditionsIfConfusingAlign == rhs.extraPaddingForConditionsIfConfusingAlign + && alignAssignments == rhs.alignAssignments; +} + |