Support dragging tab out of current window and into its own window

Thanks to makis marimpis<makhsm@gmail.com> for the patch!

REVIEW: 104933
FEATURE: 56749
FIXED-IN: 4.9.0
wilder-portage
Jekyll Wu 14 years ago
parent 79e7c013cf
commit b8b8ef7405
  1. 12
      src/ViewContainer.cpp

@ -620,9 +620,6 @@ void TabbedViewContainer::startTabDrag(int tab)
// start drag, if drag-and-drop is successful the view at 'tab' will be
// deleted
//
// if the tab was dragged onto another application
// which blindly accepted the drop then ignore it
if (drag->exec() == Qt::MoveAction && drag->target() != 0) {
// Deleting the view may cause the view container to be deleted, which
// will also delete the QDrag object.
@ -635,6 +632,15 @@ void TabbedViewContainer::startTabDrag(int tab)
// FIXME: Resolve this properly
drag->setParent(0);
removeView(view);
} else {
// if the tab was dragged onto another application
// which blindly accepted the drop, then detach the tab to achieve
// the effect of "dragging tab into its own window"
//
// It feels unnatural to do the detach when this is only one tab
// in the tabbar
if (_tabBar->count() > 1)
emit detachTab(this, view);
}
}

Loading…
Cancel
Save