From 813cd709fb777272ed4edb6784d77257a026d060 Mon Sep 17 00:00:00 2001 From: David Schulz Date: Mon, 27 Aug 2012 10:55:13 +0200 Subject: [PATCH] Editor: Tooltips for color scheme items in Fonts & collors settingspage Change-Id: Ia067e86a31a12301458a5d49e1096e7b2aa0f118 Reviewed-by: hjk --- src/plugins/texteditor/colorschemeedit.cpp | 3 + src/plugins/texteditor/fontsettingspage.cpp | 20 ++- src/plugins/texteditor/fontsettingspage.h | 8 +- src/plugins/texteditor/texteditorsettings.cpp | 161 +++++++++++++----- 4 files changed, 134 insertions(+), 58 deletions(-) diff --git a/src/plugins/texteditor/colorschemeedit.cpp b/src/plugins/texteditor/colorschemeedit.cpp index 7877db87ef1..c03b58f95e8 100644 --- a/src/plugins/texteditor/colorschemeedit.cpp +++ b/src/plugins/texteditor/colorschemeedit.cpp @@ -115,6 +115,9 @@ public: font.setItalic(m_scheme->formatFor(description.id()).italic()); return font; } + case Qt::ToolTipRole: { + return description.tooltipText(); + } } return QVariant(); } diff --git a/src/plugins/texteditor/fontsettingspage.cpp b/src/plugins/texteditor/fontsettingspage.cpp index 2f7da138190..d3ae74d931e 100644 --- a/src/plugins/texteditor/fontsettingspage.cpp +++ b/src/plugins/texteditor/fontsettingspage.cpp @@ -228,17 +228,19 @@ FontSettingsPagePrivate::~FontSettingsPagePrivate() // ------- FormatDescription -FormatDescription::FormatDescription(TextStyle id, const QString &displayName, const QColor &color) : - m_id(id), - m_displayName(displayName) -{ - m_format.setForeground(color); -} - -FormatDescription::FormatDescription(TextStyle id, const QString &displayName, const Format &format) : +FormatDescription::FormatDescription(TextStyle id, const QString &displayName, const QString &tooltipText, const QColor &foreground) : m_id(id), m_displayName(displayName), - m_format(format) + m_tooltipText(tooltipText) +{ + m_format.setForeground(foreground); +} + +FormatDescription::FormatDescription(TextStyle id, const QString &displayName, const QString &tooltipText, const Format &format) : + m_id(id), + m_displayName(displayName), + m_format(format), + m_tooltipText(tooltipText) { } diff --git a/src/plugins/texteditor/fontsettingspage.h b/src/plugins/texteditor/fontsettingspage.h index 915d73d0d33..d6c3de92edb 100644 --- a/src/plugins/texteditor/fontsettingspage.h +++ b/src/plugins/texteditor/fontsettingspage.h @@ -56,9 +56,9 @@ class FontSettingsPagePrivate; class TEXTEDITOR_EXPORT FormatDescription { public: - FormatDescription(TextStyle id, const QString &displayName, + FormatDescription(TextStyle id, const QString &displayName, const QString &tooltipText, const QColor &foreground = Qt::black); - FormatDescription(TextStyle id, const QString &displayName, + FormatDescription(TextStyle id, const QString &displayName, const QString &tooltipText, const Format &format); TextStyle id() const { return m_id; } @@ -72,10 +72,14 @@ public: const Format &format() const { return m_format; } Format &format() { return m_format; } + QString tooltipText() const + { return m_tooltipText; } + private: TextStyle m_id; // Name of the category QString m_displayName; // Displayed name of the category Format m_format; // Default format + QString m_tooltipText; // Description text for category }; typedef QList FormatDescriptions; diff --git a/src/plugins/texteditor/texteditorsettings.cpp b/src/plugins/texteditor/texteditorsettings.cpp index 3c4ed91adc0..02afdf49068 100644 --- a/src/plugins/texteditor/texteditorsettings.cpp +++ b/src/plugins/texteditor/texteditorsettings.cpp @@ -112,84 +112,151 @@ TextEditorSettings::TextEditorSettings(QObject *parent) // Note: default background colors are coming from FormatDescription::background() // Add font preference page - FormatDescriptions formatDescriptions; - formatDescriptions.append(FormatDescription(C_TEXT, tr("Text"))); + FormatDescriptions formatDescr; + formatDescr.append(FormatDescription(C_TEXT, tr("Text"), tr("Generic text.\nApplied for " + "text, if no other " + "rules matching."))); // Special categories const QPalette p = QApplication::palette(); - formatDescriptions.append(FormatDescription(C_LINK, tr("Link"), Qt::blue)); - formatDescriptions.append(FormatDescription(C_SELECTION, tr("Selection"), p.color(QPalette::HighlightedText))); - formatDescriptions.append(FormatDescription(C_LINE_NUMBER, tr("Line Number"))); - formatDescriptions.append(FormatDescription(C_SEARCH_RESULT, tr("Search Result"))); - formatDescriptions.append(FormatDescription(C_SEARCH_SCOPE, tr("Search Scope"))); - formatDescriptions.append(FormatDescription(C_PARENTHESES, tr("Parentheses"))); - formatDescriptions.append(FormatDescription(C_CURRENT_LINE, tr("Current Line"))); + formatDescr.append(FormatDescription(C_LINK, tr("Link"), + tr("Links that follow symbol under cursor."), Qt::blue)); + formatDescr.append(FormatDescription(C_SELECTION, tr("Selection"), tr("Selected text."), + p.color(QPalette::HighlightedText))); + formatDescr.append(FormatDescription(C_LINE_NUMBER, tr("Line Number"), + tr("Line numbers located on the " + "left side of the editor."))); + formatDescr.append(FormatDescription(C_SEARCH_RESULT, tr("Search Result"), + tr("Highlighted search results inside the editor."))); + formatDescr.append(FormatDescription(C_SEARCH_SCOPE, tr("Search Scope"), + tr("Section where the pattern is searched in."))); + formatDescr.append(FormatDescription(C_PARENTHESES, tr("Parentheses"), + tr("Displayed when matching parantheses, square brackets " + "or curly brackets are found."))); + formatDescr.append(FormatDescription(C_CURRENT_LINE, tr("Current Line"), + tr("Line where the cursor is placed in."))); - FormatDescription currentLineNumber = FormatDescription(C_CURRENT_LINE_NUMBER, tr("Current Line Number"), Qt::darkGray); + FormatDescription currentLineNumber = + FormatDescription(C_CURRENT_LINE_NUMBER, tr("Current Line Number"), + tr("Line number located on the left side of the " + "editor where the cursor is placed in."), Qt::darkGray); currentLineNumber.format().setBold(true); - formatDescriptions.append(currentLineNumber); + formatDescr.append(currentLineNumber); - formatDescriptions.append(FormatDescription(C_OCCURRENCES, tr("Occurrences"))); - formatDescriptions.append(FormatDescription(C_OCCURRENCES_UNUSED, tr("Unused Occurrence"))); - formatDescriptions.append(FormatDescription(C_OCCURRENCES_RENAME, tr("Renaming Occurrence"))); + + formatDescr.append(FormatDescription(C_OCCURRENCES, tr("Occurrences"), + tr("Occurences of the symbol under the cursor.\n" + "(Only the backgroud will be applied.)"))); + formatDescr.append(FormatDescription(C_OCCURRENCES_UNUSED, tr("Unused Occurrence"), + tr("Occurences of unused variables."))); + formatDescr.append(FormatDescription(C_OCCURRENCES_RENAME, tr("Renaming Occurrence"), + tr("Occurences of a symbol that will be renamed."))); // Standard categories - formatDescriptions.append(FormatDescription(C_NUMBER, tr("Number"), Qt::darkBlue)); - formatDescriptions.append(FormatDescription(C_STRING, tr("String"), Qt::darkGreen)); - formatDescriptions.append(FormatDescription(C_TYPE, tr("Type"), Qt::darkMagenta)); - formatDescriptions.append(FormatDescription(C_LOCAL, tr("Local"))); - formatDescriptions.append(FormatDescription(C_FIELD, tr("Field"), Qt::darkRed)); - formatDescriptions.append(FormatDescription(C_ENUMERATION, tr("Enumeration"), Qt::darkMagenta)); + formatDescr.append(FormatDescription(C_NUMBER, tr("Number"), tr("Number literal."), + Qt::darkBlue)); + formatDescr.append(FormatDescription(C_STRING, tr("String"), + tr("Character and string literals."), Qt::darkGreen)); + formatDescr.append(FormatDescription(C_TYPE, tr("Type"), tr("Name of a type."), + Qt::darkMagenta)); + formatDescr.append(FormatDescription(C_LOCAL, tr("Local"), tr("Local variables."))); + formatDescr.append(FormatDescription(C_FIELD, tr("Field"), + tr("Class' data members."), Qt::darkRed)); + formatDescr.append(FormatDescription(C_ENUMERATION, tr("Enumeration"), + tr("Applied for Enumeration Items."), Qt::darkMagenta)); Format functionFormat; - formatDescriptions.append(FormatDescription(C_FUNCTION, tr("Function"), functionFormat)); + formatDescr.append(FormatDescription(C_FUNCTION, tr("Function"), tr("Name of a function."), + functionFormat)); functionFormat.setItalic(true); - formatDescriptions.append(FormatDescription(C_VIRTUAL_METHOD, tr("Virtual Method"), functionFormat)); + formatDescr.append(FormatDescription(C_VIRTUAL_METHOD, tr("Virtual Method"), + tr("Name of method declared as virtual."), + functionFormat)); - formatDescriptions.append(FormatDescription(C_BINDING, tr("QML Binding"), Qt::darkRed)); + formatDescr.append(FormatDescription(C_BINDING, tr("QML Binding"), + tr("QML item property, that allows a " + "binding to another property."), + Qt::darkRed)); Format qmlLocalNameFormat; qmlLocalNameFormat.setItalic(true); - formatDescriptions.append(FormatDescription(C_QML_LOCAL_ID, tr("QML Local Id"), qmlLocalNameFormat)); - formatDescriptions.append(FormatDescription(C_QML_ROOT_OBJECT_PROPERTY, tr("QML Root Object Property"), qmlLocalNameFormat)); - formatDescriptions.append(FormatDescription(C_QML_SCOPE_OBJECT_PROPERTY, tr("QML Scope Object Property"), qmlLocalNameFormat)); - formatDescriptions.append(FormatDescription(C_QML_STATE_NAME, tr("QML State Name"), qmlLocalNameFormat)); + formatDescr.append(FormatDescription(C_QML_LOCAL_ID, tr("QML Local Id"), + tr("QML item id within a QML file."), qmlLocalNameFormat)); + formatDescr.append(FormatDescription(C_QML_ROOT_OBJECT_PROPERTY, + tr("QML root Object Property"), + tr("QML property of a parent item."), qmlLocalNameFormat)); + formatDescr.append(FormatDescription(C_QML_SCOPE_OBJECT_PROPERTY, + tr("QML scope Object Property"), + tr("Property of the same QML item."), qmlLocalNameFormat)); + formatDescr.append(FormatDescription(C_QML_STATE_NAME, tr("QML State Name"), + tr("Name of a QML state."), qmlLocalNameFormat)); - formatDescriptions.append(FormatDescription(C_QML_TYPE_ID, tr("QML Type Name"), Qt::darkMagenta)); + formatDescr.append(FormatDescription(C_QML_TYPE_ID, tr("QML Type Name"), + tr("Name of a QML type."), Qt::darkMagenta)); Format qmlExternalNameFormat = qmlLocalNameFormat; qmlExternalNameFormat.setForeground(Qt::darkBlue); - formatDescriptions.append(FormatDescription(C_QML_EXTERNAL_ID, tr("QML External Id"), qmlExternalNameFormat)); - formatDescriptions.append(FormatDescription(C_QML_EXTERNAL_OBJECT_PROPERTY, tr("QML External Object Property"), qmlExternalNameFormat)); + formatDescr.append(FormatDescription(C_QML_EXTERNAL_ID, tr("QML External Id"), + tr("QML id defined in another QML file."), + qmlExternalNameFormat)); + formatDescr.append(FormatDescription(C_QML_EXTERNAL_OBJECT_PROPERTY, + tr("QML External Object Property"), + tr("QML property defined in another QML file."), + qmlExternalNameFormat)); Format jsLocalFormat; jsLocalFormat.setForeground(QColor(41, 133, 199)); // very light blue jsLocalFormat.setItalic(true); - formatDescriptions.append(FormatDescription(C_JS_SCOPE_VAR, tr("JavaScript Scope Var"), jsLocalFormat)); + formatDescr.append(FormatDescription(C_JS_SCOPE_VAR, tr("JavaScript Scope Var"), + tr("Variables defined inside the JavaScript file."), + jsLocalFormat)); Format jsGlobalFormat; jsGlobalFormat.setForeground(QColor(0, 85, 175)); // light blue jsGlobalFormat.setItalic(true); - formatDescriptions.append(FormatDescription(C_JS_IMPORT_VAR, tr("JavaScript Import"), jsGlobalFormat)); - formatDescriptions.append(FormatDescription(C_JS_GLOBAL_VAR, tr("JavaScript Global Variable"), jsGlobalFormat)); + formatDescr.append(FormatDescription(C_JS_IMPORT_VAR, tr("JavaScript Import"), + tr("Name of a JavaScript import inside a QML file."), + jsGlobalFormat)); + formatDescr.append(FormatDescription(C_JS_GLOBAL_VAR, tr("JavaScript Global Variable"), + tr("Variables defined outside the script."), + jsGlobalFormat)); - formatDescriptions.append(FormatDescription(C_KEYWORD, tr("Keyword"), Qt::darkYellow)); - formatDescriptions.append(FormatDescription(C_OPERATOR, tr("Operator"))); - formatDescriptions.append(FormatDescription(C_PREPROCESSOR, tr("Preprocessor"), Qt::darkBlue)); - formatDescriptions.append(FormatDescription(C_LABEL, tr("Label"), Qt::darkRed)); - formatDescriptions.append(FormatDescription(C_COMMENT, tr("Comment"), Qt::darkGreen)); - formatDescriptions.append(FormatDescription(C_DOXYGEN_COMMENT, tr("Doxygen Comment"), Qt::darkBlue)); - formatDescriptions.append(FormatDescription(C_DOXYGEN_TAG, tr("Doxygen Tag"), Qt::blue)); - formatDescriptions.append(FormatDescription(C_VISUAL_WHITESPACE, tr("Visual Whitespace"), Qt::lightGray)); - formatDescriptions.append(FormatDescription(C_DISABLED_CODE, tr("Disabled Code"))); + formatDescr.append(FormatDescription(C_KEYWORD, tr("Keyword"), + tr("Reserved keywords of the programming language."), + Qt::darkYellow)); + formatDescr.append(FormatDescription(C_OPERATOR, tr("Operator"), + tr("Operators. (for example operator++ operator-=)"))); + formatDescr.append(FormatDescription(C_PREPROCESSOR, tr("Preprocessor"), + tr("Preprocessor directives."), Qt::darkBlue)); + formatDescr.append(FormatDescription(C_LABEL, tr("Label"), tr("Labels for goto steatments."), + Qt::darkRed)); + formatDescr.append(FormatDescription(C_COMMENT, tr("Comment"), + tr("All style of comments except Doxygen comments."), + Qt::darkGreen)); + formatDescr.append(FormatDescription(C_DOXYGEN_COMMENT, tr("Doxygen Comment"), + tr("Doxygen comments."), Qt::darkBlue)); + formatDescr.append(FormatDescription(C_DOXYGEN_TAG, tr("Doxygen Tag"), tr("Doxygen tags"), + Qt::blue)); + formatDescr.append(FormatDescription(C_VISUAL_WHITESPACE, tr("Visual Whitespace"), + tr("Whitespace\nWill not be applied for whitespace " + "in comments and strings."), Qt::lightGray)); + formatDescr.append(FormatDescription(C_DISABLED_CODE, tr("Disabled Code"), + tr("Code disabled by preprocessor directives."))); // Diff categories - formatDescriptions.append(FormatDescription(C_ADDED_LINE, tr("Added Line"), QColor(0, 170, 0))); - formatDescriptions.append(FormatDescription(C_REMOVED_LINE, tr("Removed Line"), Qt::red)); - formatDescriptions.append(FormatDescription(C_DIFF_FILE, tr("Diff File"), Qt::darkBlue)); - formatDescriptions.append(FormatDescription(C_DIFF_LOCATION, tr("Diff Location"), Qt::blue)); + formatDescr.append(FormatDescription(C_ADDED_LINE, tr("Added Line"), + tr("Applied for added lines in differences " + "(in diff editor)."), QColor(0, 170, 0))); + formatDescr.append(FormatDescription(C_REMOVED_LINE, tr("Removed Line"), + tr("Applied for removed lines " + "in differences (in diff editor)."), Qt::red)); + formatDescr.append(FormatDescription(C_DIFF_FILE, tr("Diff File"), + tr("Compared files (in diff editor)."), Qt::darkBlue)); + formatDescr.append(FormatDescription(C_DIFF_LOCATION, tr("Diff Location"), + tr("Location in the files where the difference is " + "(in diff editor)."), Qt::blue)); - m_d->m_fontSettingsPage = new FontSettingsPage(formatDescriptions, + m_d->m_fontSettingsPage = new FontSettingsPage(formatDescr, QLatin1String(Constants::TEXT_EDITOR_FONT_SETTINGS), this); ExtensionSystem::PluginManager::addObject(m_d->m_fontSettingsPage);