diff options
author | Daniel Teske <daniel.teske@theqtcompany.com> | 2015-09-18 14:29:59 +0200 |
---|---|---|
committer | Daniel Teske <daniel.teske@theqtcompany.com> | 2015-09-18 13:18:10 +0000 |
commit | 897718be05f712c84d847d518c485f91007d5c3b (patch) | |
tree | c719a41206b8b09172030da404dc6aec6a68e234 /src/plugins/projectexplorer/compileoutputwindow.cpp | |
parent | e298500379839b23e503d0aaa25df90cfaa83f8e (diff) |
CompileOutputWindow: Tweak clicking on "links"
Change the cursor to a HandCursor if hoovering over a link, and
make it single-click instead of double click.
Task-number: QTCREATORBUG-7542
Change-Id: I606510141eceece1f2b65f6ec1c6fffa838f2788
Reviewed-by: Tobias Hunger <tobias.hunger@theqtcompany.com>
Diffstat (limited to 'src/plugins/projectexplorer/compileoutputwindow.cpp')
-rw-r--r-- | src/plugins/projectexplorer/compileoutputwindow.cpp | 29 |
1 files changed, 25 insertions, 4 deletions
diff --git a/src/plugins/projectexplorer/compileoutputwindow.cpp b/src/plugins/projectexplorer/compileoutputwindow.cpp index 56126631e4..09cbfe319e 100644 --- a/src/plugins/projectexplorer/compileoutputwindow.cpp +++ b/src/plugins/projectexplorer/compileoutputwindow.cpp @@ -85,6 +85,8 @@ public: connect(Core::ICore::instance(), &Core::ICore::saveSettingsRequested, this, &CompileOutputTextEdit::saveSettings); + + setMouseTracking(true); } void saveSettings() @@ -109,17 +111,36 @@ private slots: } protected: - void mouseDoubleClickEvent(QMouseEvent *ev) + void mouseMoveEvent(QMouseEvent *ev) { int line = cursorForPosition(ev->pos()).block().blockNumber(); - if (unsigned taskid = m_taskids.value(line, 0)) - TaskHub::showTaskInEditor(taskid); + if (m_taskids.value(line, 0)) + viewport()->setCursor(Qt::PointingHandCursor); else - QPlainTextEdit::mouseDoubleClickEvent(ev); + viewport()->setCursor(Qt::IBeamCursor); + QPlainTextEdit::mouseMoveEvent(ev); + } + + void mousePressEvent(QMouseEvent *ev) + { + m_mousePressPosition = ev->pos(); + QPlainTextEdit::mousePressEvent(ev); + } + + void mouseReleaseEvent(QMouseEvent *ev) + { + if ((m_mousePressPosition - ev->pos()).manhattanLength() < 4) { + int line = cursorForPosition(ev->pos()).block().blockNumber(); + if (unsigned taskid = m_taskids.value(line, 0)) + TaskHub::showTaskInEditor(taskid); + } + + QPlainTextEdit::mouseReleaseEvent(ev); } private: QHash<int, unsigned int> m_taskids; //Map blocknumber to taskId + QPoint m_mousePressPosition; }; } // namespace Internal |