+
+class DragTabBar : public QTabBar
+{
+ Q_OBJECT
+public:
+ ///
+ DragTabBar(QWidget * parent = 0);
+
+#if QT_VERSION < 0x040300
+ ///
+ int tabAt(QPoint const & position) const;
+#endif
+
+protected:
+ ///
+ void mousePressEvent(QMouseEvent * event);
+ ///
+ void mouseMoveEvent(QMouseEvent * event);
+ ///
+ void dragEnterEvent(QDragEnterEvent * event);
+ ///
+ void dropEvent(QDropEvent * event);
+
+private:
+ ///
+ QPoint dragStartPos_;
+ ///
+ int dragCurrentIndex_;
+
+Q_SIGNALS:
+ ///
+ void tabMoveRequested(int fromIndex, int toIndex);
+};
+