From 20e36cc364d5dce2bf5c5a91e2144d8ad289f6d2 Mon Sep 17 00:00:00 2001 From: Roberto Raggi Date: Tue, 9 Dec 2008 15:23:47 +0100 Subject: tooltip for macro definitions. --- src/plugins/cpptools/cpphoverhandler.cpp | 25 +++++++++++++++---------- 1 file changed, 15 insertions(+), 10 deletions(-) (limited to 'src/plugins/cpptools/cpphoverhandler.cpp') diff --git a/src/plugins/cpptools/cpphoverhandler.cpp b/src/plugins/cpptools/cpphoverhandler.cpp index 16ed8a9215..1265ef9da7 100644 --- a/src/plugins/cpptools/cpphoverhandler.cpp +++ b/src/plugins/cpptools/cpphoverhandler.cpp @@ -37,6 +37,7 @@ #include #include #include +#include #include #include @@ -51,13 +52,13 @@ #include #include -#include #include #include #include #include using namespace CppTools::Internal; +using namespace CPlusPlus; CppHoverHandler::CppHoverHandler(CppModelManager *manager, QObject *parent) : QObject(parent), m_manager(manager), m_helpEngineNeedsSetup(false) @@ -104,11 +105,9 @@ void CppHoverHandler::showToolTip(TextEditor::ITextEditor *editor, const QPoint } } -static QString buildHelpId(const CPlusPlus::FullySpecifiedType &type, - const CPlusPlus::Symbol *symbol) +static QString buildHelpId(const FullySpecifiedType &type, + const Symbol *symbol) { - using namespace CPlusPlus; - Name *name = 0; Scope *scope = 0; @@ -156,12 +155,10 @@ static QString buildHelpId(const CPlusPlus::FullySpecifiedType &type, void CppHoverHandler::updateHelpIdAndTooltip(TextEditor::ITextEditor *editor, int pos) { - using namespace CPlusPlus; - m_helpId.clear(); m_toolTip.clear(); - QPlainTextEdit *edit = qobject_cast(editor->widget()); + TextEditor::BaseTextEditor *edit = qobject_cast(editor->widget()); if (!edit) return; @@ -169,8 +166,7 @@ void CppHoverHandler::updateHelpIdAndTooltip(TextEditor::ITextEditor *editor, in tc.setPosition(pos); const int lineNumber = tc.block().blockNumber() + 1; - - QString fileName = editor->file()->fileName(); + const QString fileName = editor->file()->fileName(); Document::Ptr doc = m_manager->document(fileName); if (doc) { foreach (Document::DiagnosticMessage m, doc->diagnosticMessages()) { @@ -179,6 +175,15 @@ void CppHoverHandler::updateHelpIdAndTooltip(TextEditor::ITextEditor *editor, in break; } } + + if (m_toolTip.isEmpty()) { + foreach (const Document::MacroUse use, doc->macroUses()) { + if (use.contains(pos)) { + m_toolTip = use.macro().toString(); + break; + } + } + } } if (m_toolTip.isEmpty()) { -- cgit v1.2.1 From a6c6b2c4aeba6d87fc91e224223a81dd70b93bd5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thorbj=C3=B8rn=20Lindeijer?= Date: Wed, 10 Dec 2008 11:58:25 +0100 Subject: Fixed macro tooltip overriding type information The macro tooltip is supposed to be a fallback, since otherwise you won't be able to see type information for macro parameters. Reviewed-by: Roberto Raggi --- src/plugins/cpptools/cpphoverhandler.cpp | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) (limited to 'src/plugins/cpptools/cpphoverhandler.cpp') diff --git a/src/plugins/cpptools/cpphoverhandler.cpp b/src/plugins/cpptools/cpphoverhandler.cpp index 1265ef9da7..3cbb473e6d 100644 --- a/src/plugins/cpptools/cpphoverhandler.cpp +++ b/src/plugins/cpptools/cpphoverhandler.cpp @@ -175,15 +175,6 @@ void CppHoverHandler::updateHelpIdAndTooltip(TextEditor::ITextEditor *editor, in break; } } - - if (m_toolTip.isEmpty()) { - foreach (const Document::MacroUse use, doc->macroUses()) { - if (use.contains(pos)) { - m_toolTip = use.macro().toString(); - break; - } - } - } } if (m_toolTip.isEmpty()) { @@ -240,6 +231,15 @@ void CppHoverHandler::updateHelpIdAndTooltip(TextEditor::ITextEditor *editor, in } } + if (doc && m_toolTip.isEmpty()) { + foreach (const Document::MacroUse &use, doc->macroUses()) { + if (use.contains(pos)) { + m_toolTip = use.macro().toString(); + break; + } + } + } + if (m_helpEngineNeedsSetup && m_helpEngine->registeredDocumentations().count() > 0) { m_helpEngine->setupData(); @@ -248,7 +248,8 @@ void CppHoverHandler::updateHelpIdAndTooltip(TextEditor::ITextEditor *editor, in if (!m_helpId.isEmpty() && !m_helpEngine->linksForIdentifier(m_helpId).isEmpty()) { m_toolTip = QString(QLatin1String("" - "
%1
")).arg(Qt::escape(m_toolTip)); + "")) + .arg(Qt::escape(m_toolTip)); editor->setContextHelpId(m_helpId); } else if (!m_toolTip.isEmpty()) { m_toolTip = QString(QLatin1String("%1")).arg(Qt::escape(m_toolTip)); -- cgit v1.2.1 From 037a9bb57935dfa8ae825b6f0fb2800e3bd8a749 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thorbj=C3=B8rn=20Lindeijer?= Date: Wed, 10 Dec 2008 12:07:39 +0100 Subject: Set the help id for macros to their name Enables F1 for opening their help pages. Seems to work nicely. --- src/plugins/cpptools/cpphoverhandler.cpp | 1 + 1 file changed, 1 insertion(+) (limited to 'src/plugins/cpptools/cpphoverhandler.cpp') diff --git a/src/plugins/cpptools/cpphoverhandler.cpp b/src/plugins/cpptools/cpphoverhandler.cpp index 3cbb473e6d..338123bc5e 100644 --- a/src/plugins/cpptools/cpphoverhandler.cpp +++ b/src/plugins/cpptools/cpphoverhandler.cpp @@ -235,6 +235,7 @@ void CppHoverHandler::updateHelpIdAndTooltip(TextEditor::ITextEditor *editor, in foreach (const Document::MacroUse &use, doc->macroUses()) { if (use.contains(pos)) { m_toolTip = use.macro().toString(); + m_helpId = use.macro().name; break; } } -- cgit v1.2.1