diff options
author | Olivier Goffart <ogoffart@woboq.com> | 2015-03-04 15:07:53 +0100 |
---|---|---|
committer | Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com> | 2015-04-11 09:26:56 +0000 |
commit | 02a13a86fab1f928d5dd40069d121ded549366f1 (patch) | |
tree | d9082cc7869ec5094bad4d240178af91395cccf3 /src/widgets/widgets/qdockarealayout.cpp | |
parent | 60e8519544b9194d4a44db61fb5b0b10572282cc (diff) |
Allow for rearranging tabified QDockWidgets
Allow to drag and drop tabs
[ChangeLog][QtWidgets][Important Behavior Changes] The tabs
for the tabified docks can be moved by the user.
Task-number: QTBUG-1049
Task-number: QTBUG-2295
Task-number: QTBUG-4532
Task-number: QTBUG-18883
Task-number: QTBUG-35148
Change-Id: I7ef9d4987db081654bd5d648e14370b3d381a720
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Reviewed-by: Jørgen Lind <jorgen.lind@theqtcompany.com>
Reviewed-by: Paul Olav Tvete <paul.tvete@theqtcompany.com>
Diffstat (limited to 'src/widgets/widgets/qdockarealayout.cpp')
-rw-r--r-- | src/widgets/widgets/qdockarealayout.cpp | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/src/widgets/widgets/qdockarealayout.cpp b/src/widgets/widgets/qdockarealayout.cpp index e71b9616fc..af0f2515fe 100644 --- a/src/widgets/widgets/qdockarealayout.cpp +++ b/src/widgets/widgets/qdockarealayout.cpp @@ -2244,6 +2244,22 @@ QRect QDockAreaLayoutInfo::tabContentRect() const return result; } + +int QDockAreaLayoutInfo::tabIndexToListIndex(int tabIndex) const +{ + Q_ASSERT(tabbed && tabBar); + quintptr data = qvariant_cast<quintptr>(tabBar->tabData(tabIndex)); + for (int i = 0; i < item_list.count(); ++i) { + if (tabId(item_list.at(i)) == data) + return i; + } + return -1; +} + +void QDockAreaLayoutInfo::moveTab(int from, int to) +{ + item_list.move(tabIndexToListIndex(from), tabIndexToListIndex(to)); +} #endif // QT_NO_TABBAR /****************************************************************************** |