diff options
author | Jarek Kobus <jkobus@trolltech.com> | 2008-12-11 13:49:12 +0100 |
---|---|---|
committer | Jarek Kobus <jkobus@trolltech.com> | 2008-12-11 13:49:12 +0100 |
commit | ec01200d3bdc9e5222dc92e0832bb6335312f1cf (patch) | |
tree | 04af376a3550a040ff8c1d0610355c3486958dd4 /src/plugins/cpptools/cpphoverhandler.cpp | |
parent | 103ba3594f45161ad5407c15c78a8ad6591f0c0b (diff) | |
parent | f52fc4589df2e2b8da3158e248a53d881e9cecb1 (diff) | |
download | qt-creator-ec01200d3bdc9e5222dc92e0832bb6335312f1cf.tar.gz |
Merge branch 'master' of git@scm.dev.nokia.troll.no:creator/mainline
Diffstat (limited to 'src/plugins/cpptools/cpphoverhandler.cpp')
-rw-r--r-- | src/plugins/cpptools/cpphoverhandler.cpp | 29 |
1 files changed, 18 insertions, 11 deletions
diff --git a/src/plugins/cpptools/cpphoverhandler.cpp b/src/plugins/cpptools/cpphoverhandler.cpp index 16ed8a9215..338123bc5e 100644 --- a/src/plugins/cpptools/cpphoverhandler.cpp +++ b/src/plugins/cpptools/cpphoverhandler.cpp @@ -37,6 +37,7 @@ #include <coreplugin/icore.h> #include <coreplugin/uniqueidmanager.h> #include <texteditor/itexteditor.h> +#include <texteditor/basetexteditor.h> #include <debugger/debuggerconstants.h> #include <CoreTypes.h> @@ -51,13 +52,13 @@ #include <cplusplus/TypeOfExpression.h> #include <QtGui/QToolTip> -#include <QtGui/QPlainTextEdit> #include <QtGui/QTextCursor> #include <QtGui/QTextBlock> #include <QtHelp/QHelpEngineCore> #include <QtCore/QtCore> 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<QPlainTextEdit *>(editor->widget()); + TextEditor::BaseTextEditor *edit = qobject_cast<TextEditor::BaseTextEditor *>(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()) { @@ -235,6 +231,16 @@ 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(); + m_helpId = use.macro().name; + break; + } + } + } + if (m_helpEngineNeedsSetup && m_helpEngine->registeredDocumentations().count() > 0) { m_helpEngine->setupData(); @@ -243,7 +249,8 @@ void CppHoverHandler::updateHelpIdAndTooltip(TextEditor::ITextEditor *editor, in if (!m_helpId.isEmpty() && !m_helpEngine->linksForIdentifier(m_helpId).isEmpty()) { m_toolTip = QString(QLatin1String("<table><tr><td valign=middle><nobr>%1</td>" - "<td><img src=\":/cpptools/images/f1.svg\"></td></tr></table>")).arg(Qt::escape(m_toolTip)); + "<td><img src=\":/cpptools/images/f1.svg\"></td></tr></table>")) + .arg(Qt::escape(m_toolTip)); editor->setContextHelpId(m_helpId); } else if (!m_toolTip.isEmpty()) { m_toolTip = QString(QLatin1String("<nobr>%1")).arg(Qt::escape(m_toolTip)); |