summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIvan Donchevskii <ivan.donchevskii@qt.io>2018-11-08 16:21:54 +0100
committerIvan Donchevskii <ivan.donchevskii@qt.io>2018-11-12 08:56:20 +0000
commit8dc566e902bc854108d2021652bdaec57ff919ed (patch)
tree29df2c6906976fd6821116a7fffe93c2707bc947
parent1787eef68fd737faed2591a5e6ff04f6238db281 (diff)
downloadqt-creator-8dc566e902bc854108d2021652bdaec57ff919ed.tar.gz
CppTools: Allow to check whether project code style exists
The calling code can anyways fallback to the global style without extra help if no project style exists. It is useful when you want to get the project style if it exists and understand at the same time that it is not a global one. Change-Id: I265de3f436f90623385427fc8a1abad09c8c3577 Reviewed-by: Nikolai Kosjar <nikolai.kosjar@qt.io>
-rw-r--r--src/plugins/clangformat/clangformatutils.cpp6
-rw-r--r--src/plugins/cppeditor/cppquickfixes.cpp5
-rw-r--r--src/plugins/cpptools/cppcodestylesettings.cpp15
-rw-r--r--src/plugins/cpptools/cppcodestylesettings.h4
4 files changed, 19 insertions, 11 deletions
diff --git a/src/plugins/clangformat/clangformatutils.cpp b/src/plugins/clangformat/clangformatutils.cpp
index 4e901ab563..6bb153b3b3 100644
--- a/src/plugins/clangformat/clangformatutils.cpp
+++ b/src/plugins/clangformat/clangformatutils.cpp
@@ -118,7 +118,8 @@ static clang::format::FormatStyle constructStyle(bool isGlobal)
FormatStyle style = getLLVMStyle();
const CppCodeStyleSettings codeStyleSettings = isGlobal
? CppCodeStyleSettings::currentGlobalCodeStyle()
- : CppCodeStyleSettings::currentProjectCodeStyle();
+ : CppCodeStyleSettings::currentProjectCodeStyle()
+ .value_or(CppCodeStyleSettings::currentGlobalCodeStyle());
const TabSettings tabSettings = isGlobal
? CppCodeStyleSettings::currentGlobalTabSettings()
: CppCodeStyleSettings::currentProjectTabSettings();
@@ -171,8 +172,7 @@ clang::format::FormatStyle currentGlobalStyle()
clang::format::FormatStyle currentStyle()
{
- const bool isGlobal = (CppCodeStyleSettings::currentProjectCodeStyle()
- == CppCodeStyleSettings::currentGlobalCodeStyle());
+ const bool isGlobal = !CppCodeStyleSettings::currentProjectCodeStyle().has_value();
return currentStyle(isGlobal);
}
diff --git a/src/plugins/cppeditor/cppquickfixes.cpp b/src/plugins/cppeditor/cppquickfixes.cpp
index afc777be1a..a785d9565e 100644
--- a/src/plugins/cppeditor/cppquickfixes.cpp
+++ b/src/plugins/cppeditor/cppquickfixes.cpp
@@ -2988,7 +2988,10 @@ public:
m_baseName = QLatin1String("value");
// Getter Name
- const CppCodeStyleSettings settings = CppCodeStyleSettings::currentProjectCodeStyle();
+ const Utils::optional<CppCodeStyleSettings> codeStyleSettings
+ = CppCodeStyleSettings::currentProjectCodeStyle();
+ const CppCodeStyleSettings settings
+ = codeStyleSettings.value_or(CppCodeStyleSettings::currentGlobalCodeStyle());
const bool hasValidBaseName = m_baseName != m_variableString;
const bool getPrefixIsAlreadyUsed = hasClassMemberWithGetPrefix(m_classSpecifier->symbol);
if (settings.preferGetterNameWithoutGetPrefix && hasValidBaseName && !getPrefixIsAlreadyUsed) {
diff --git a/src/plugins/cpptools/cppcodestylesettings.cpp b/src/plugins/cpptools/cppcodestylesettings.cpp
index 723ae2c222..379c32d0b3 100644
--- a/src/plugins/cpptools/cppcodestylesettings.cpp
+++ b/src/plugins/cpptools/cppcodestylesettings.cpp
@@ -200,22 +200,23 @@ bool CppCodeStyleSettings::equals(const CppCodeStyleSettings &rhs) const
;
}
-CppCodeStyleSettings CppCodeStyleSettings::currentProjectCodeStyle()
+Utils::optional<CppCodeStyleSettings> CppCodeStyleSettings::currentProjectCodeStyle()
{
ProjectExplorer::Project *project = ProjectExplorer::ProjectTree::currentProject();
if (!project)
- return currentGlobalCodeStyle();
+ return Utils::optional<CppCodeStyleSettings>();
ProjectExplorer::EditorConfiguration *editorConfiguration = project->editorConfiguration();
- QTC_ASSERT(editorConfiguration, return currentGlobalCodeStyle());
+ QTC_ASSERT(editorConfiguration, return Utils::optional<CppCodeStyleSettings>());
TextEditor::ICodeStylePreferences *codeStylePreferences
= editorConfiguration->codeStyle(Constants::CPP_SETTINGS_ID);
- QTC_ASSERT(codeStylePreferences, return currentGlobalCodeStyle());
+ QTC_ASSERT(codeStylePreferences, return Utils::optional<CppCodeStyleSettings>());
CppCodeStylePreferences *cppCodeStylePreferences
= dynamic_cast<CppCodeStylePreferences *>(codeStylePreferences);
- QTC_ASSERT(cppCodeStylePreferences, return currentGlobalCodeStyle());
+ if (!cppCodeStylePreferences)
+ return Utils::optional<CppCodeStyleSettings>();
return cppCodeStylePreferences->currentCodeStyleSettings();
}
@@ -270,7 +271,9 @@ static void configureOverviewWithCodeStyleSettings(CPlusPlus::Overview &overview
CPlusPlus::Overview CppCodeStyleSettings::currentProjectCodeStyleOverview()
{
CPlusPlus::Overview overview;
- configureOverviewWithCodeStyleSettings(overview, currentProjectCodeStyle());
+ const Utils::optional<CppCodeStyleSettings> codeStyleSettings = currentProjectCodeStyle();
+ configureOverviewWithCodeStyleSettings(overview,
+ codeStyleSettings.value_or(currentGlobalCodeStyle()));
return overview;
}
diff --git a/src/plugins/cpptools/cppcodestylesettings.h b/src/plugins/cpptools/cppcodestylesettings.h
index 4af18fbdbc..4e39e05afc 100644
--- a/src/plugins/cpptools/cppcodestylesettings.h
+++ b/src/plugins/cpptools/cppcodestylesettings.h
@@ -27,6 +27,8 @@
#include "cpptools_global.h"
+#include <utils/optional.h>
+
#include <QVariantMap>
QT_BEGIN_NAMESPACE
@@ -93,7 +95,7 @@ public:
bool operator==(const CppCodeStyleSettings &s) const { return equals(s); }
bool operator!=(const CppCodeStyleSettings &s) const { return !equals(s); }
- static CppCodeStyleSettings currentProjectCodeStyle();
+ static Utils::optional<CppCodeStyleSettings> currentProjectCodeStyle();
static CppCodeStyleSettings currentGlobalCodeStyle();
static TextEditor::TabSettings currentProjectTabSettings();
static TextEditor::TabSettings currentGlobalTabSettings();