diff options
author | Ivan Donchevskii <ivan.donchevskii@qt.io> | 2018-11-08 16:21:54 +0100 |
---|---|---|
committer | Ivan Donchevskii <ivan.donchevskii@qt.io> | 2018-11-12 08:56:20 +0000 |
commit | 8dc566e902bc854108d2021652bdaec57ff919ed (patch) | |
tree | 29df2c6906976fd6821116a7fffe93c2707bc947 /src/plugins/cpptools/cppcodestylesettings.cpp | |
parent | 1787eef68fd737faed2591a5e6ff04f6238db281 (diff) | |
download | qt-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>
Diffstat (limited to 'src/plugins/cpptools/cppcodestylesettings.cpp')
-rw-r--r-- | src/plugins/cpptools/cppcodestylesettings.cpp | 15 |
1 files changed, 9 insertions, 6 deletions
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; } |