diff options
author | jkobus <jaroslaw.kobus@digia.com> | 2013-06-18 14:09:54 +0200 |
---|---|---|
committer | Jarek Kobus <jaroslaw.kobus@digia.com> | 2013-06-19 09:12:49 +0200 |
commit | b5be527eb9c2d7db287602101a29f11ea701f39d (patch) | |
tree | fbe3acaf6d4cea07c5587e46e4b295e154163730 /src/plugins/diffeditor | |
parent | f5a2c1469a54356e455a230b9dc5a3a130fcffac (diff) | |
download | qt-creator-b5be527eb9c2d7db287602101a29f11ea701f39d.tar.gz |
DiffEditor: Show tooltips with filenames
Change-Id: I32af3b310deb4c96bf1dc798392029cc361ced97
Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
Diffstat (limited to 'src/plugins/diffeditor')
-rw-r--r-- | src/plugins/diffeditor/diffeditorwidget.cpp | 33 |
1 files changed, 32 insertions, 1 deletions
diff --git a/src/plugins/diffeditor/diffeditorwidget.cpp b/src/plugins/diffeditor/diffeditorwidget.cpp index 059d5c8884..98b003a5be 100644 --- a/src/plugins/diffeditor/diffeditorwidget.cpp +++ b/src/plugins/diffeditor/diffeditorwidget.cpp @@ -48,6 +48,9 @@ #include <coreplugin/minisplitter.h> +#include <utils/tooltip/tipcontents.h> +#include <utils/tooltip/tooltip.h> + static const int BASE_LEVEL = 0; static const int FILE_LEVEL = 1; static const int CHUNK_LEVEL = 2; @@ -102,10 +105,19 @@ class DiffViewEditorEditable : public BaseTextEditor { Q_OBJECT public: - DiffViewEditorEditable(BaseTextEditorWidget *editorWidget) : BaseTextEditor(editorWidget) {} + DiffViewEditorEditable(BaseTextEditorWidget *editorWidget) + : BaseTextEditor(editorWidget) + { + connect(this, SIGNAL(tooltipRequested(TextEditor::ITextEditor*,QPoint,int)), + this, SLOT(slotTooltipRequested(TextEditor::ITextEditor*,QPoint, int))); + } Core::Id id() const { return "DiffViewEditor"; } bool isTemporary() const { return false; } + +private slots: + void slotTooltipRequested(TextEditor::ITextEditor *editor, const QPoint &globalPoint, int position); + }; @@ -125,6 +137,7 @@ public: } QMap<int, int> skippedLines() const { return m_skippedLines; } + QMap<int, DiffEditorWidget::DiffFileInfo> fileInfo() const { return m_fileInfo; } void setWorkingDirectory(const QString &workingDirectory) { m_workingDirectory = workingDirectory; } void setLineNumber(int blockNumber, int lineNumber); @@ -182,6 +195,24 @@ private: QColor m_textForeground; }; +void DiffViewEditorEditable::slotTooltipRequested(TextEditor::ITextEditor *editor, const QPoint &globalPoint, int position) +{ + DiffViewEditorWidget *ew = qobject_cast<DiffViewEditorWidget *>(editorWidget()); + if (!ew) + return; + + QMap<int, DiffEditorWidget::DiffFileInfo> fi = ew->fileInfo(); + QMap<int, DiffEditorWidget::DiffFileInfo>::const_iterator it + = fi.constFind(ew->document()->findBlock(position).blockNumber()); + if (it != fi.constEnd()) { + Utils::ToolTip::instance()->show(globalPoint, + Utils::TextContent(it.value().fileName), + editor->widget()); + } else { + Utils::ToolTip::instance()->hide(); + } +} + DiffViewEditorWidget::DiffViewEditorWidget(QWidget *parent) : SnippetEditorWidget(parent), m_lineNumberDigits(1), m_inPaintEvent(false) { |