- QAbstractItemView* view = itemView();
- if (view != 0) {
- if (DragAndDropHelper::instance().isDragSource(view)) {
- // The view is a drag source (the feature "Open folders
- // during drag operations" is used). Deleting the view
- // during an ongoing drag operation is not allowed, so
- // this will postponed.
- if (m_dragSource != 0) {
- // the old stored view is obviously not the drag source anymore
- m_dragSource->deleteLater();
- m_dragSource = 0;
+ if (m_columnsContainer != 0) {
+ m_columnsContainer->close();
+ m_columnsContainer->disconnect();
+ m_columnsContainer->deleteLater();
+ m_columnsContainer = 0;
+ } else {
+ QAbstractItemView* view = itemView();
+ if (view != 0) {
+ view->close();
+ view->disconnect();
+
+ if (DragAndDropHelper::instance().isDragSource(view)) {
+ // The view is a drag source (the feature "Open folders
+ // during drag operations" is used). Deleting the view
+ // during an ongoing drag operation is not allowed, so
+ // this will postponed.
+ if (m_dragSource != 0) {
+ // the old stored view is obviously not the drag source anymore
+ m_dragSource->deleteLater();
+ m_dragSource = 0;
+ }
+ view->hide();
+ m_dragSource = view;
+ } else {
+ view->deleteLater();
+ view = 0;