summaryrefslogtreecommitdiff
path: root/src/plugins/diffeditor
diff options
context:
space:
mode:
authorjkobus <jaroslaw.kobus@digia.com>2013-06-18 14:09:54 +0200
committerJarek Kobus <jaroslaw.kobus@digia.com>2013-06-19 09:12:49 +0200
commitb5be527eb9c2d7db287602101a29f11ea701f39d (patch)
treefbe3acaf6d4cea07c5587e46e4b295e154163730 /src/plugins/diffeditor
parentf5a2c1469a54356e455a230b9dc5a3a130fcffac (diff)
downloadqt-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.cpp33
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)
{