diff --git a/src/plugins/cppeditor/cppeditor.cpp b/src/plugins/cppeditor/cppeditor.cpp index 244369a1308..2c5d65ece71 100644 --- a/src/plugins/cppeditor/cppeditor.cpp +++ b/src/plugins/cppeditor/cppeditor.cpp @@ -949,16 +949,22 @@ void CPPEditor::updateMethodBoxIndex() static void highlightUses(QTextDocument *doc, const QTextCharFormat &format, + const QTextCharFormat &unusedFormat, const QList &uses, QList *selections) { - if (uses.size() <= 1) - return; + bool isUnused = false; + if (uses.size() == 1) + isUnused = true; foreach (const SemanticInfo::Use &use, uses) { QTextEdit::ExtraSelection sel; - sel.format = format; + if (isUnused) + sel.format = unusedFormat; + else + sel.format = format; + sel.cursor = QTextCursor(doc); const int anchor = doc->findBlockByNumber(use.line - 1).position() + use.column - 1; @@ -1708,6 +1714,7 @@ void CPPEditor::setFontSettings(const TextEditor::FontSettings &fs) highlighter->rehighlight(); m_occurrencesFormat = fs.toTextCharFormat(QLatin1String(TextEditor::Constants::C_OCCURRENCES)); + m_occurrencesUnusedFormat = fs.toTextCharFormat(QLatin1String(TextEditor::Constants::C_OCCURRENCES_UNUSED)); m_occurrenceRenameFormat = fs.toTextCharFormat(QLatin1String(TextEditor::Constants::C_OCCURRENCES_RENAME)); } @@ -1786,11 +1793,9 @@ void CPPEditor::updateSemanticInfo(const SemanticInfo &semanticInfo) } } - if (! good) - continue; - - highlightUses(document(), m_occurrencesFormat, uses, &selections); - break; // done + if (uses.size() == 1 || good) + highlightUses(document(), m_occurrencesFormat, m_occurrencesUnusedFormat, + uses, &selections); } setExtraSelections(CodeSemanticsSelection, selections); diff --git a/src/plugins/cppeditor/cppeditor.h b/src/plugins/cppeditor/cppeditor.h index 90663ed5f03..39e384a1012 100644 --- a/src/plugins/cppeditor/cppeditor.h +++ b/src/plugins/cppeditor/cppeditor.h @@ -281,6 +281,7 @@ private: QTimer *m_updateMethodBoxTimer; QTimer *m_updateUsesTimer; QTextCharFormat m_occurrencesFormat; + QTextCharFormat m_occurrencesUnusedFormat; QTextCharFormat m_occurrenceRenameFormat; QList m_renameSelections; diff --git a/src/plugins/texteditor/fontsettingspage.cpp b/src/plugins/texteditor/fontsettingspage.cpp index e8105246495..5812a6df8f7 100644 --- a/src/plugins/texteditor/fontsettingspage.cpp +++ b/src/plugins/texteditor/fontsettingspage.cpp @@ -251,6 +251,8 @@ QColor FormatDescription::foreground() const } else { return m_format.foreground(); } + } else if (m_name == QLatin1String(Constants::C_OCCURRENCES_UNUSED)) { + return Qt::lightGray; } else if (m_name == QLatin1String(Constants::C_PARENTHESES)) { return QColor(Qt::red); } @@ -596,11 +598,11 @@ void FontSettingsPage::apply() void FontSettingsPage::saveSettings() { if (d_ptr->m_value != d_ptr->m_lastValue) { - d_ptr->m_lastValue = d_ptr->m_value; - if (QSettings *settings = Core::ICore::instance()->settings()) - d_ptr->m_value.toSettings(d_ptr->m_settingsGroup, settings); + d_ptr->m_lastValue = d_ptr->m_value; + if (QSettings *settings = Core::ICore::instance()->settings()) + d_ptr->m_value.toSettings(d_ptr->m_settingsGroup, settings); - QTimer::singleShot(0, this, SLOT(delayedChange())); + QTimer::singleShot(0, this, SLOT(delayedChange())); } } diff --git a/src/plugins/texteditor/texteditorconstants.h b/src/plugins/texteditor/texteditorconstants.h index 6f9aec0bb1a..721d8e330bd 100644 --- a/src/plugins/texteditor/texteditorconstants.h +++ b/src/plugins/texteditor/texteditorconstants.h @@ -80,6 +80,7 @@ const char * const C_PARENTHESES = "Parentheses"; const char * const C_CURRENT_LINE = "CurrentLine"; const char * const C_CURRENT_LINE_NUMBER = "CurrentLineNumber"; const char * const C_OCCURRENCES = "Occurrences"; +const char * const C_OCCURRENCES_UNUSED = "Occurrences.Unused"; const char * const C_OCCURRENCES_RENAME = "Occurrences.Rename"; const char * const C_NUMBER = "Number"; diff --git a/src/plugins/texteditor/texteditorsettings.cpp b/src/plugins/texteditor/texteditorsettings.cpp index 240289eb5e2..7b0b8a4e330 100644 --- a/src/plugins/texteditor/texteditorsettings.cpp +++ b/src/plugins/texteditor/texteditorsettings.cpp @@ -78,6 +78,7 @@ TextEditorSettings::TextEditorSettings(QObject *parent) formatDescriptions.append(currentLineNumber); formatDescriptions.append(FormatDescription(QLatin1String(C_OCCURRENCES), tr("Occurrences"))); + formatDescriptions.append(FormatDescription(QLatin1String(C_OCCURRENCES_UNUSED), tr("Unused Occurrence"))); formatDescriptions.append(FormatDescription(QLatin1String(C_OCCURRENCES_RENAME), tr("Renaming Occurrence"))); // Standard categories @@ -155,7 +156,7 @@ void TextEditorSettings::initializeEditor(BaseTextEditor *editor) { // Connect to settings change signals connect(this, SIGNAL(fontSettingsChanged(TextEditor::FontSettings)), - editor, SLOT(setFontSettingsIfVisible(TextEditor::FontSettings))); + editor, SLOT(setFontSettingsIfVisible(TextEditor::FontSettings))); connect(this, SIGNAL(tabSettingsChanged(TextEditor::TabSettings)), editor, SLOT(setTabSettings(TextEditor::TabSettings))); connect(this, SIGNAL(storageSettingsChanged(TextEditor::StorageSettings)), @@ -164,7 +165,7 @@ void TextEditorSettings::initializeEditor(BaseTextEditor *editor) editor, SLOT(setDisplaySettings(TextEditor::DisplaySettings))); connect(editor, SIGNAL(requestFontSize(int)), - this, SLOT(fontSizeRequested(int))); + this, SLOT(fontSizeRequested(int))); // Apply current settings (tab settings depend on font settings) editor->setFontSettings(fontSettings());