From 897718be05f712c84d847d518c485f91007d5c3b Mon Sep 17 00:00:00 2001 From: Daniel Teske Date: Fri, 18 Sep 2015 14:29:59 +0200 Subject: 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 --- .../projectexplorer/compileoutputwindow.cpp | 29 +++++++++++++++++++--- 1 file changed, 25 insertions(+), 4 deletions(-) (limited to 'src/plugins/projectexplorer/compileoutputwindow.cpp') 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 m_taskids; //Map blocknumber to taskId + QPoint m_mousePressPosition; }; } // namespace Internal -- cgit v1.2.3