CppEditor: Show info bar for project-less file

While at it, centralize the code for handling the info bars and actions.

Change-Id: Ied62e3db268aaff3ef87e246bfe2b50399341be3
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
Reviewed-by: David Schulz <david.schulz@qt.io>
This commit is contained in:
Nikolai Kosjar
2017-01-17 12:33:55 +01:00
parent 3080bda066
commit ec3dcfd6ad
12 changed files with 326 additions and 64 deletions

View File

@@ -50,6 +50,7 @@ const char LOWERCASE_CPPFILES_KEY[] = "LowerCaseFiles";
enum { lowerCaseFilesDefault = 1 };
const char CPPTOOLS_SORT_EDITOR_DOCUMENT_OUTLINE[] = "SortedMethodOverview";
const char CPPTOOLS_SHOW_INFO_BAR_FOR_HEADER_ERRORS[] = "ShowInfoBarForHeaderErrors";
const char CPPTOOLS_SHOW_INFO_BAR_FOR_FOR_NO_PROJECT[] = "ShowInfoBarForNoProject";
const char CPPTOOLS_MODEL_MANAGER_PCH_USAGE[] = "PCHUsage";
const char CPPTOOLS_INTERPRET_AMBIGIUOUS_HEADERS_AS_C_HEADERS[]
= "InterpretAmbiguousHeadersAsCHeaders";

View File

@@ -285,3 +285,21 @@ void CppToolsSettings::setShowHeaderErrorInfoBar(bool show)
ICore::settings()->setValue(showHeaderErrorInfoBarKey(), show);
emit showHeaderErrorInfoBarChanged(show);
}
static QString showNoProjectInfoBarKey()
{
return QLatin1String(CppTools::Constants::CPPTOOLS_SETTINGSGROUP)
+ QLatin1Char('/')
+ QLatin1String(CppTools::Constants::CPPTOOLS_SHOW_INFO_BAR_FOR_FOR_NO_PROJECT);
}
bool CppToolsSettings::showNoProjectInfoBar() const
{
return ICore::settings()->value(showNoProjectInfoBarKey(), true).toBool();
}
void CppToolsSettings::setShowNoProjectInfoBar(bool show)
{
ICore::settings()->setValue(showNoProjectInfoBarKey(), show);
emit showNoProjectInfoBarChanged(show);
}

View File

@@ -66,9 +66,13 @@ public:
bool showHeaderErrorInfoBar() const;
void setShowHeaderErrorInfoBar(bool show);
bool showNoProjectInfoBar() const;
void setShowNoProjectInfoBar(bool show);
signals:
void editorDocumentOutlineSortingChanged(bool isSorted);
void showHeaderErrorInfoBarChanged(bool isShown);
void showNoProjectInfoBarChanged(bool isShown);
private:
Internal::CppToolsSettingsPrivate *d;