Changeset View
Changeset View
Standalone View
Standalone View
src/DetachableTabBar.cpp
- This file was added.
1 | #include "DetachableTabBar.h" | ||||
---|---|---|---|---|---|
2 | #include <QMouseEvent> | ||||
3 | | ||||
4 | DetachableTabBar::DetachableTabBar(QWidget *parent) : | ||||
5 | QTabBar(parent), | ||||
6 | _draggingOutside(false) {} | ||||
7 | | ||||
8 | void DetachableTabBar::mouseMoveEvent(QMouseEvent *event) | ||||
9 | { | ||||
10 | QTabBar::mouseMoveEvent(event); | ||||
11 | if (!contentsRect().adjusted(-30,-30,30,30).contains(event->pos())) { | ||||
12 | if (!_draggingOutside) { | ||||
13 | _draggingOutside = true; | ||||
14 | _originalCursor = cursor(); | ||||
15 | setCursor(QCursor(Qt::DragCopyCursor)); | ||||
16 | } | ||||
17 | } else if (_draggingOutside) { | ||||
18 | _draggingOutside = false; | ||||
19 | setCursor(_originalCursor); | ||||
20 | } | ||||
21 | } | ||||
22 | | ||||
23 | void DetachableTabBar::mouseReleaseEvent(QMouseEvent *event) | ||||
24 | { | ||||
25 | QTabBar::mouseReleaseEvent(event); | ||||
26 | if (!contentsRect().adjusted(-30,-30,30,30).contains(event->pos())) { | ||||
27 | setCursor(_originalCursor); | ||||
28 | emit detachTab(currentIndex()); | ||||
29 | } | ||||
30 | } |