diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/libs/utils/tooltip/images/f1.png (renamed from src/plugins/texteditor/images/f1.png) | bin | 590 -> 590 bytes | |||
-rw-r--r-- | src/libs/utils/tooltip/images/f1.svg (renamed from src/plugins/texteditor/images/f1.svg) | 0 | ||||
-rw-r--r-- | src/libs/utils/tooltip/tips.cpp | 31 | ||||
-rw-r--r-- | src/libs/utils/tooltip/tips.h | 13 | ||||
-rw-r--r-- | src/libs/utils/tooltip/tooltip.cpp | 34 | ||||
-rw-r--r-- | src/libs/utils/tooltip/tooltip.h | 25 | ||||
-rw-r--r-- | src/libs/utils/utils.qrc | 1 | ||||
-rw-r--r-- | src/plugins/coreplugin/icore.cpp | 11 | ||||
-rw-r--r-- | src/plugins/coreplugin/icore.h | 11 | ||||
-rw-r--r-- | src/plugins/coreplugin/mainwindow.cpp | 24 | ||||
-rw-r--r-- | src/plugins/coreplugin/mainwindow.h | 6 | ||||
-rw-r--r-- | src/plugins/cppeditor/cpphoverhandler.cpp | 1 | ||||
-rw-r--r-- | src/plugins/help/helpplugin.cpp | 77 | ||||
-rw-r--r-- | src/plugins/texteditor/basehoverhandler.cpp | 12 | ||||
-rw-r--r-- | src/plugins/texteditor/basehoverhandler.h | 2 | ||||
-rw-r--r-- | src/plugins/texteditor/texteditor.cpp | 2 | ||||
-rw-r--r-- | src/plugins/texteditor/texteditor.qrc | 1 |
17 files changed, 157 insertions, 94 deletions
diff --git a/src/plugins/texteditor/images/f1.png b/src/libs/utils/tooltip/images/f1.png Binary files differindex 6332719c07..6332719c07 100644 --- a/src/plugins/texteditor/images/f1.png +++ b/src/libs/utils/tooltip/images/f1.png diff --git a/src/plugins/texteditor/images/f1.svg b/src/libs/utils/tooltip/images/f1.svg index 468594cb77..468594cb77 100644 --- a/src/plugins/texteditor/images/f1.svg +++ b/src/libs/utils/tooltip/images/f1.svg diff --git a/src/libs/utils/tooltip/tips.cpp b/src/libs/utils/tooltip/tips.cpp index 9fd0121a68..89000a30da 100644 --- a/src/libs/utils/tooltip/tips.cpp +++ b/src/libs/utils/tooltip/tips.cpp @@ -55,6 +55,17 @@ QTipLabel::QTipLabel(QWidget *parent) : QLabel(parent, Qt::ToolTip | Qt::BypassGraphicsProxyWidget) {} +void QTipLabel::setHelpId(const QString &id) +{ + m_helpId = id; + update(); +} + +QString QTipLabel::helpId() const +{ + return m_helpId; +} + ColorTip::ColorTip(QWidget *parent) : QTipLabel(parent) @@ -88,9 +99,9 @@ bool ColorTip::canHandleContentReplacement(int typeId) const return typeId == ToolTip::ColorContent; } -bool ColorTip::equals(int typeId, const QVariant &other) const +bool ColorTip::equals(int typeId, const QVariant &other, const QString &otherHelpId) const { - return typeId == ToolTip::ColorContent && other == m_color; + return typeId == ToolTip::ColorContent && otherHelpId == helpId() && other == m_color; } void ColorTip::paintEvent(QPaintEvent *event) @@ -131,7 +142,12 @@ void TextTip::setContent(const QVariant &content) void TextTip::configure(const QPoint &pos, QWidget *w) { - setText(m_text); + if (helpId().isEmpty()) + setText(m_text); + else + setText(QString::fromLatin1("<table><tr><td valign=middle>%1</td><td> " + "<img src=\":/utils/tooltip/images/f1.png\"></td>" + "</tr></table>").arg(m_text)); // Make it look good with the default ToolTip font on Mac, which has a small descent. QFontMetrics fm(font()); @@ -166,9 +182,9 @@ int TextTip::showTime() const return 10000 + 40 * qMax(0, m_text.size() - 100); } -bool TextTip::equals(int typeId, const QVariant &other) const +bool TextTip::equals(int typeId, const QVariant &other, const QString &otherHelpId) const { - return typeId == ToolTip::TextContent && other.toString() == m_text; + return typeId == ToolTip::TextContent && otherHelpId == helpId() && other.toString() == m_text; } void TextTip::paintEvent(QPaintEvent *event) @@ -245,9 +261,10 @@ bool WidgetTip::canHandleContentReplacement(int typeId) const return false; } -bool WidgetTip::equals(int typeId, const QVariant &other) const +bool WidgetTip::equals(int typeId, const QVariant &other, const QString &otherHelpId) const { - return typeId == ToolTip::WidgetContent && other.value<QWidget *>() == m_widget; + return typeId == ToolTip::WidgetContent && otherHelpId == helpId() + && other.value<QWidget *>() == m_widget; } // need to include it here to force it to be inside the namespaces diff --git a/src/libs/utils/tooltip/tips.h b/src/libs/utils/tooltip/tips.h index 86a9633e5d..748de44e2b 100644 --- a/src/libs/utils/tooltip/tips.h +++ b/src/libs/utils/tooltip/tips.h @@ -56,7 +56,12 @@ public: virtual int showTime() const = 0; virtual void configure(const QPoint &pos, QWidget *w) = 0; virtual bool canHandleContentReplacement(int typeId) const = 0; - virtual bool equals(int typeId, const QVariant &other) const = 0; + virtual bool equals(int typeId, const QVariant &other, const QString &helpId) const = 0; + virtual void setHelpId(const QString &id); + virtual QString helpId() const; + +private: + QString m_helpId; }; class TextTip : public QTipLabel @@ -68,7 +73,7 @@ public: virtual void configure(const QPoint &pos, QWidget *w); virtual bool canHandleContentReplacement(int typeId) const; virtual int showTime() const; - virtual bool equals(int typeId, const QVariant &other) const; + virtual bool equals(int typeId, const QVariant &other, const QString &otherHelpId) const; virtual void paintEvent(QPaintEvent *event); virtual void resizeEvent(QResizeEvent *event); @@ -85,7 +90,7 @@ public: virtual void configure(const QPoint &pos, QWidget *w); virtual bool canHandleContentReplacement(int typeId) const; virtual int showTime() const { return 4000; } - virtual bool equals(int typeId, const QVariant &other) const; + virtual bool equals(int typeId, const QVariant &other, const QString &otherHelpId) const; virtual void paintEvent(QPaintEvent *event); private: @@ -105,7 +110,7 @@ public: virtual void configure(const QPoint &pos, QWidget *w); virtual bool canHandleContentReplacement(int typeId) const; virtual int showTime() const { return 30000; } - virtual bool equals(int typeId, const QVariant &other) const; + virtual bool equals(int typeId, const QVariant &other, const QString &otherHelpId) const; virtual bool isInteractive() const { return true; } private: diff --git a/src/libs/utils/tooltip/tooltip.cpp b/src/libs/utils/tooltip/tooltip.cpp index b15ba4c519..38b280c561 100644 --- a/src/libs/utils/tooltip/tooltip.cpp +++ b/src/libs/utils/tooltip/tooltip.cpp @@ -66,28 +66,28 @@ ToolTip *ToolTip::instance() return &tooltip; } -void ToolTip::show(const QPoint &pos, const QString &content, QWidget *w, const QRect &rect) +void ToolTip::show(const QPoint &pos, const QString &content, QWidget *w, const QString &helpId, const QRect &rect) { if (content.isEmpty()) instance()->hideTipWithDelay(); else - instance()->showInternal(pos, QVariant(content), TextContent, w, rect); + instance()->showInternal(pos, QVariant(content), TextContent, w, helpId, rect); } -void ToolTip::show(const QPoint &pos, const QColor &color, QWidget *w, const QRect &rect) +void ToolTip::show(const QPoint &pos, const QColor &color, QWidget *w, const QString &helpId, const QRect &rect) { if (!color.isValid()) instance()->hideTipWithDelay(); else - instance()->showInternal(pos, QVariant(color), ColorContent, w, rect); + instance()->showInternal(pos, QVariant(color), ColorContent, w, helpId, rect); } -void ToolTip::show(const QPoint &pos, QWidget *content, QWidget *w, const QRect &rect) +void ToolTip::show(const QPoint &pos, QWidget *content, QWidget *w, const QString &helpId, const QRect &rect) { if (!content) instance()->hideTipWithDelay(); else - instance()->showInternal(pos, QVariant::fromValue(content), WidgetContent, w, rect); + instance()->showInternal(pos, QVariant::fromValue(content), WidgetContent, w, helpId, rect); } void ToolTip::move(const QPoint &pos, QWidget *w) @@ -111,10 +111,15 @@ bool ToolTip::pinToolTip(QWidget *w, QWidget *parent) return false; } +QString ToolTip::contextHelpId() +{ + return instance()->m_tip ? instance()->m_tip->helpId() : QString(); +} + bool ToolTip::acceptShow(const QVariant &content, int typeId, const QPoint &pos, - QWidget *w, + QWidget *w, const QString &helpId, const QRect &rect) { if (isVisible()) { @@ -123,8 +128,9 @@ bool ToolTip::acceptShow(const QVariant &content, QPoint localPos = pos; if (w) localPos = w->mapFromGlobal(pos); - if (tipChanged(localPos, content, typeId, w)) { + if (tipChanged(localPos, content, typeId, w, helpId)) { m_tip->setContent(content); + m_tip->setHelpId(helpId); setUp(pos, w, rect); } return false; @@ -155,9 +161,10 @@ void ToolTip::setUp(const QPoint &pos, QWidget *w, const QRect &rect) m_showTimer.start(m_tip->showTime()); } -bool ToolTip::tipChanged(const QPoint &pos, const QVariant &content, int typeId, QWidget *w) const +bool ToolTip::tipChanged(const QPoint &pos, const QVariant &content, int typeId, QWidget *w, + const QString &helpId) const { - if (!m_tip->equals(typeId, content) || m_widget != w) + if (!m_tip->equals(typeId, content, helpId) || m_widget != w) return true; if (!m_rect.isNull()) return !m_rect.contains(pos); @@ -220,12 +227,13 @@ void ToolTip::hideTipImmediately() m_showTimer.stop(); m_hideDelayTimer.stop(); qApp->removeEventFilter(this); + emit hidden(); } void ToolTip::showInternal(const QPoint &pos, const QVariant &content, - int typeId, QWidget *w, const QRect &rect) + int typeId, QWidget *w, const QString &helpId, const QRect &rect) { - if (acceptShow(content, typeId, pos, w, rect)) { + if (acceptShow(content, typeId, pos, w, helpId, rect)) { QWidget *target = 0; if (HostOsInfo::isWindowsHost()) target = QApplication::desktop()->screen(Internal::screenNumber(pos, w)); @@ -244,10 +252,12 @@ void ToolTip::showInternal(const QPoint &pos, const QVariant &content, break; } m_tip->setContent(content); + m_tip->setHelpId(helpId); setUp(pos, w, rect); qApp->installEventFilter(this); showTip(); } + emit shown(); } void ToolTip::placeTip(const QPoint &pos, QWidget *w) diff --git a/src/libs/utils/tooltip/tooltip.h b/src/libs/utils/tooltip/tooltip.h index f7c4be31dd..7356d3b207 100644 --- a/src/libs/utils/tooltip/tooltip.h +++ b/src/libs/utils/tooltip/tooltip.h @@ -75,9 +75,12 @@ public: static ToolTip *instance(); - static void show(const QPoint &pos, const QString &content, QWidget *w = 0, const QRect &rect = QRect()); - static void show(const QPoint &pos, const QColor &color, QWidget *w = 0, const QRect &rect = QRect()); - static void show(const QPoint &pos, QWidget *content, QWidget *w = 0, const QRect &rect = QRect()); + static void show(const QPoint &pos, const QString &content, QWidget *w = 0, + const QString &helpId = QString(), const QRect &rect = QRect()); + static void show(const QPoint &pos, const QColor &color, QWidget *w = 0, + const QString &helpId = QString(), const QRect &rect = QRect()); + static void show(const QPoint &pos, QWidget *content, QWidget *w = 0, + const QString &helpId = QString(), const QRect &rect = QRect()); static void move(const QPoint &pos, QWidget *w); static void hide(); static bool isVisible(); @@ -88,12 +91,21 @@ public: // using WidgetContent static bool pinToolTip(QWidget *w, QWidget *parent); + static QString contextHelpId(); + +signals: + void shown(); + void hidden(); + private: - void showInternal(const QPoint &pos, const QVariant &content, int typeId, QWidget *w, const QRect &rect); + void showInternal(const QPoint &pos, const QVariant &content, int typeId, QWidget *w, + const QString &helpId, const QRect &rect); void hideTipImmediately(); - bool acceptShow(const QVariant &content, int typeId, const QPoint &pos, QWidget *w, const QRect &rect); + bool acceptShow(const QVariant &content, int typeId, const QPoint &pos, QWidget *w, + const QString &helpId, const QRect &rect); void setUp(const QPoint &pos, QWidget *w, const QRect &rect); - bool tipChanged(const QPoint &pos, const QVariant &content, int typeId, QWidget *w) const; + bool tipChanged(const QPoint &pos, const QVariant &content, int typeId, QWidget *w, + const QString &helpId) const; void setTipRect(QWidget *w, const QRect &rect); void placeTip(const QPoint &pos, QWidget *w); void showTip(); @@ -104,6 +116,7 @@ private: QRect m_rect; QTimer m_showTimer; QTimer m_hideDelayTimer; + QString m_helpId; }; } // namespace Utils diff --git a/src/libs/utils/utils.qrc b/src/libs/utils/utils.qrc index c7be7e8de8..4bbc0be8b3 100644 --- a/src/libs/utils/utils.qrc +++ b/src/libs/utils/utils.qrc @@ -14,5 +14,6 @@ <file>images/progressindicator_small.png</file> <file>images/progressindicator_small@2x.png</file> <file>images/triangle_vert.png</file> + <file>tooltip/images/f1.png</file> </qresource> </RCC> diff --git a/src/plugins/coreplugin/icore.cpp b/src/plugins/coreplugin/icore.cpp index 6bb5ca9190..1efea803ec 100644 --- a/src/plugins/coreplugin/icore.cpp +++ b/src/plugins/coreplugin/icore.cpp @@ -528,19 +528,20 @@ void ICore::raiseWindow(QWidget *widget) } } -void ICore::updateAdditionalContexts(const Context &remove, const Context &add) +void ICore::updateAdditionalContexts(const Context &remove, const Context &add, + ContextPriority priority) { - m_mainwindow->updateAdditionalContexts(remove, add); + m_mainwindow->updateAdditionalContexts(remove, add, priority); } -void ICore::addAdditionalContext(const Context &context) +void ICore::addAdditionalContext(const Context &context, ContextPriority priority) { - m_mainwindow->updateAdditionalContexts(Context(), context); + m_mainwindow->updateAdditionalContexts(Context(), context, priority); } void ICore::removeAdditionalContext(const Context &context) { - m_mainwindow->updateAdditionalContexts(context, Context()); + m_mainwindow->updateAdditionalContexts(context, Context(), ContextPriority::Low); } void ICore::addContextObject(IContext *context) diff --git a/src/plugins/coreplugin/icore.h b/src/plugins/coreplugin/icore.h index 783753ebb7..6f5e98ddd8 100644 --- a/src/plugins/coreplugin/icore.h +++ b/src/plugins/coreplugin/icore.h @@ -65,6 +65,11 @@ class CORE_EXPORT ICore : public QObject ~ICore(); public: + enum class ContextPriority { + High, + Low + }; + // This should only be used to acccess the signals, so it could // theoretically return an QObject *. For source compatibility // it returns a ICore. @@ -107,8 +112,10 @@ public: static IContext *currentContextObject(); // Adds and removes additional active contexts, these contexts are appended // to the currently active contexts. - static void updateAdditionalContexts(const Context &remove, const Context &add); - static void addAdditionalContext(const Context &context); + static void updateAdditionalContexts(const Context &remove, const Context &add, + ContextPriority priority = ContextPriority::Low); + static void addAdditionalContext(const Context &context, + ContextPriority priority = ContextPriority::Low); static void removeAdditionalContext(const Context &context); static void addContextObject(IContext *context); static void removeContextObject(IContext *context); diff --git a/src/plugins/coreplugin/mainwindow.cpp b/src/plugins/coreplugin/mainwindow.cpp index ddb32436e3..1c6ab39548 100644 --- a/src/plugins/coreplugin/mainwindow.cpp +++ b/src/plugins/coreplugin/mainwindow.cpp @@ -112,7 +112,7 @@ enum { debugMainWindow = 0 }; MainWindow::MainWindow() : AppMainWindow(), m_coreImpl(new ICore(this)), - m_additionalContexts(Constants::C_GLOBAL), + m_lowPrioAdditionalContexts(Constants::C_GLOBAL), m_settingsDatabase(new SettingsDatabase(QFileInfo(PluginManager::settings()->fileName()).path(), QLatin1String("QtCreator"), this)), @@ -985,23 +985,27 @@ void MainWindow::writeSettings() m_navigationWidget->saveSettings(settings); } -void MainWindow::updateAdditionalContexts(const Context &remove, const Context &add) +void MainWindow::updateAdditionalContexts(const Context &remove, const Context &add, + ICore::ContextPriority priority) { foreach (const Id id, remove) { if (!id.isValid()) continue; - - int index = m_additionalContexts.indexOf(id); + int index = m_lowPrioAdditionalContexts.indexOf(id); + if (index != -1) + m_lowPrioAdditionalContexts.removeAt(index); + index = m_highPrioAdditionalContexts.indexOf(id); if (index != -1) - m_additionalContexts.removeAt(index); + m_highPrioAdditionalContexts.removeAt(index); } foreach (const Id id, add) { if (!id.isValid()) continue; - - if (!m_additionalContexts.contains(id)) - m_additionalContexts.prepend(id); + Context &cref = (priority == ICore::ContextPriority::High ? m_highPrioAdditionalContexts + : m_lowPrioAdditionalContexts); + if (!cref.contains(id)) + cref.prepend(id); } updateContext(); @@ -1009,12 +1013,12 @@ void MainWindow::updateAdditionalContexts(const Context &remove, const Context & void MainWindow::updateContext() { - Context contexts; + Context contexts = m_highPrioAdditionalContexts; foreach (IContext *context, m_activeContext) contexts.add(context->context()); - contexts.add(m_additionalContexts); + contexts.add(m_lowPrioAdditionalContexts); Context uniquecontexts; for (int i = 0; i < contexts.size(); ++i) { diff --git a/src/plugins/coreplugin/mainwindow.h b/src/plugins/coreplugin/mainwindow.h index b931f2652c..dff6096f81 100644 --- a/src/plugins/coreplugin/mainwindow.h +++ b/src/plugins/coreplugin/mainwindow.h @@ -103,7 +103,8 @@ public: IContext * currentContextObject() const; QStatusBar *statusBar() const; - void updateAdditionalContexts(const Context &remove, const Context &add); + void updateAdditionalContexts(const Context &remove, const Context &add, + ICore::ContextPriority priority); void setSuppressNavigationWidget(bool suppress); @@ -151,7 +152,8 @@ private: void writeSettings(); ICore *m_coreImpl; - Context m_additionalContexts; + Context m_highPrioAdditionalContexts; + Context m_lowPrioAdditionalContexts; SettingsDatabase *m_settingsDatabase; mutable QPrinter *m_printer; WindowSupport *m_windowSupport; diff --git a/src/plugins/cppeditor/cpphoverhandler.cpp b/src/plugins/cppeditor/cpphoverhandler.cpp index f5e5e5214d..94ed9efa9c 100644 --- a/src/plugins/cppeditor/cpphoverhandler.cpp +++ b/src/plugins/cppeditor/cpphoverhandler.cpp @@ -119,7 +119,6 @@ void CppHoverHandler::decorateToolTip() prefix = QLatin1String("enum "); setToolTip(prefix + help.helpId()); } - addF1ToToolTip(); } } diff --git a/src/plugins/help/helpplugin.cpp b/src/plugins/help/helpplugin.cpp index b8a83150c2..c51d5aa721 100644 --- a/src/plugins/help/helpplugin.cpp +++ b/src/plugins/help/helpplugin.cpp @@ -78,6 +78,7 @@ #include <utils/qtcassert.h> #include <utils/styledbar.h> #include <utils/theme/theme.h> +#include <utils/tooltip/tooltip.h> #include <QDir> #include <QFileInfo> @@ -101,6 +102,7 @@ using namespace Help::Internal; static const char kExternalWindowStateKey[] = "Help/ExternalWindowState"; +static const char kToolTipHelpContext[] = "Help.ToolTip"; using namespace Core; using namespace Utils; @@ -169,6 +171,13 @@ bool HelpPlugin::initialize(const QStringList &arguments, QString *error) connect(HelpManager::instance(), SIGNAL(collectionFileChanged()), this, SLOT(setupHelpEngineIfNeeded())); + connect(ToolTip::instance(), &ToolTip::shown, ICore::instance(), []() { + ICore::addAdditionalContext(Context(kToolTipHelpContext), ICore::ContextPriority::High); + }); + connect(ToolTip::instance(), &ToolTip::hidden,ICore::instance(), []() { + ICore::removeAdditionalContext(Context(kToolTipHelpContext)); + }); + Command *cmd; QAction *action; @@ -185,7 +194,8 @@ bool HelpPlugin::initialize(const QStringList &arguments, QString *error) connect(action, SIGNAL(triggered()), this, SLOT(activateIndex())); action = new QAction(tr("Context Help"), this); - cmd = ActionManager::registerAction(action, Help::Constants::CONTEXT_HELP); + cmd = ActionManager::registerAction(action, Help::Constants::CONTEXT_HELP, + Context(kToolTipHelpContext, Core::Constants::C_GLOBAL)); ActionManager::actionContainer(Core::Constants::M_HELP)->addAction(cmd, Core::Constants::G_HELP_HELP); cmd->setDefaultKeySequence(QKeySequence(Qt::Key_F1)); connect(action, SIGNAL(triggered()), this, SLOT(showContextHelp())); @@ -560,40 +570,43 @@ static QUrl findBestLink(const QMap<QString, QUrl> &links, QString *highlightId) void HelpPlugin::showContextHelp() { // Find out what to show - QMap<QString, QUrl> links; - QString idFromContext; - if (IContext *context = ICore::currentContextObject()) { - idFromContext = context->contextHelpId(); - links = HelpManager::linksForIdentifier(idFromContext); - // Maybe the id is already an URL - if (links.isEmpty() && LocalHelpManager::isValidUrl(idFromContext)) - links.insert(idFromContext, idFromContext); - } + QString contextHelpId = Utils::ToolTip::contextHelpId(); + IContext *context = ICore::currentContextObject(); + if (contextHelpId.isEmpty() && context) + contextHelpId = context->contextHelpId(); + + // get the viewer after getting the help id, + // because a new window might be opened and therefore focus be moved + HelpViewer *viewer = viewerForContextHelp(); + QTC_ASSERT(viewer, return); - if (HelpViewer *viewer = viewerForContextHelp()) { - QUrl source = findBestLink(links, &m_contextHelpHighlightId); - if (!source.isValid()) { - // No link found or no context object - viewer->setSource(QUrl(Help::Constants::AboutBlank)); - viewer->setHtml(tr("<html><head><title>No Documentation</title>" - "</head><body><br/><center>" - "<font color=\"%1\"><b>%2</b></font><br/>" - "<font color=\"%3\">No documentation available.</font>" - "</center></body></html>") - .arg(creatorTheme()->color(Theme::TextColorNormal).name()) - .arg(idFromContext) - .arg(creatorTheme()->color(Theme::TextColorNormal).name())); + QMap<QString, QUrl> links = HelpManager::linksForIdentifier(contextHelpId); + // Maybe the id is already an URL + if (links.isEmpty() && LocalHelpManager::isValidUrl(contextHelpId)) + links.insert(contextHelpId, contextHelpId); + + QUrl source = findBestLink(links, &m_contextHelpHighlightId); + if (!source.isValid()) { + // No link found or no context object + viewer->setSource(QUrl(Help::Constants::AboutBlank)); + viewer->setHtml(tr("<html><head><title>No Documentation</title>" + "</head><body><br/><center>" + "<font color=\"%1\"><b>%2</b></font><br/>" + "<font color=\"%3\">No documentation available.</font>" + "</center></body></html>") + .arg(creatorTheme()->color(Theme::TextColorNormal).name()) + .arg(contextHelpId) + .arg(creatorTheme()->color(Theme::TextColorNormal).name())); + } else { + const QUrl &oldSource = viewer->source(); + if (source != oldSource) { + viewer->stop(); + viewer->setSource(source); // triggers loadFinished which triggers id highlighting } else { - const QUrl &oldSource = viewer->source(); - if (source != oldSource) { - viewer->stop(); - viewer->setSource(source); // triggers loadFinished which triggers id highlighting - } else { - viewer->scrollToAnchor(source.fragment()); - } - viewer->setFocus(); - ICore::raiseWindow(viewer); + viewer->scrollToAnchor(source.fragment()); } + viewer->setFocus(); + ICore::raiseWindow(viewer); } } diff --git a/src/plugins/texteditor/basehoverhandler.cpp b/src/plugins/texteditor/basehoverhandler.cpp index 08e1bbcdb3..b76250a422 100644 --- a/src/plugins/texteditor/basehoverhandler.cpp +++ b/src/plugins/texteditor/basehoverhandler.cpp @@ -82,13 +82,6 @@ void BaseHoverHandler::appendToolTip(const QString &extension) m_toolTip.append(extension); } -void BaseHoverHandler::addF1ToToolTip() -{ - m_toolTip = QString::fromLatin1("<table><tr><td valign=middle>%1</td><td> " - "<img src=\":/texteditor/images/f1.png\"></td>" - "</tr></table>").arg(m_toolTip); -} - void BaseHoverHandler::setIsDiagnosticTooltip(bool isDiagnosticTooltip) { m_diagnosticTooltip = isDiagnosticTooltip; @@ -133,7 +126,6 @@ void BaseHoverHandler::decorateToolTip() if (!contents.isEmpty()) { setToolTip(toolTip().toHtmlEscaped()); appendToolTip(contents); - addF1ToToolTip(); } } } @@ -143,7 +135,9 @@ void BaseHoverHandler::operateTooltip(TextEditorWidget *editorWidget, const QPoi if (m_toolTip.isEmpty()) Utils::ToolTip::hide(); else - Utils::ToolTip::show(point, m_toolTip, editorWidget); + Utils::ToolTip::show(point, m_toolTip, editorWidget, m_lastHelpItemIdentified.isValid() + ? m_lastHelpItemIdentified.helpId() + : QString()); } } // namespace TextEditor diff --git a/src/plugins/texteditor/basehoverhandler.h b/src/plugins/texteditor/basehoverhandler.h index 00accf05b7..eff2b75a06 100644 --- a/src/plugins/texteditor/basehoverhandler.h +++ b/src/plugins/texteditor/basehoverhandler.h @@ -59,8 +59,6 @@ protected: void appendToolTip(const QString &extension); const QString &toolTip() const; - void addF1ToToolTip(); - void setIsDiagnosticTooltip(bool isDiagnosticTooltip); bool isDiagnosticTooltip() const; diff --git a/src/plugins/texteditor/texteditor.cpp b/src/plugins/texteditor/texteditor.cpp index 582b52fdcb..ea968f8e6a 100644 --- a/src/plugins/texteditor/texteditor.cpp +++ b/src/plugins/texteditor/texteditor.cpp @@ -3127,7 +3127,7 @@ bool TextEditorWidget::viewportEvent(QEvent *event) RefactorMarker refactorMarker = d->m_refactorOverlay->markerAt(pos); if (refactorMarker.isValid() && !refactorMarker.tooltip.isEmpty()) { ToolTip::show(he->globalPos(), refactorMarker.tooltip, - viewport(), refactorMarker.rect); + viewport(), QString(), refactorMarker.rect); return true; } diff --git a/src/plugins/texteditor/texteditor.qrc b/src/plugins/texteditor/texteditor.qrc index c58205cd2c..7f829e9159 100644 --- a/src/plugins/texteditor/texteditor.qrc +++ b/src/plugins/texteditor/texteditor.qrc @@ -4,6 +4,5 @@ <file>images/finddirectory.png</file> <file>images/refactormarker.png</file> <file>images/snippet.png</file> - <file>images/f1.png</file> </qresource> </RCC> |