diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/dolphincolumnview.cpp | 15 | ||||
| -rw-r--r-- | src/dolphincolumnview.h | 6 | ||||
| -rw-r--r-- | src/dolphincontroller.cpp | 8 |
3 files changed, 24 insertions, 5 deletions
diff --git a/src/dolphincolumnview.cpp b/src/dolphincolumnview.cpp index 957b2064f..6d4801aea 100644 --- a/src/dolphincolumnview.cpp +++ b/src/dolphincolumnview.cpp @@ -190,7 +190,7 @@ void DolphinColumnView::showColumn(const KUrl& url) QList<DolphinColumnWidget*>::iterator start = m_columns.begin() + columnIndex; QList<DolphinColumnWidget*>::iterator end = m_columns.end(); for (QList<DolphinColumnWidget*>::iterator it = start; it != end; ++it) { - (*it)->deleteLater(); + deleteColumn(*it); } m_columns.erase(start, end); @@ -594,7 +594,7 @@ void DolphinColumnView::removeAllColumns() QList<DolphinColumnWidget*>::iterator start = m_columns.begin() + 1; QList<DolphinColumnWidget*>::iterator end = m_columns.end(); for (QList<DolphinColumnWidget*>::iterator it = start; it != end; ++it) { - (*it)->deleteLater(); + deleteColumn(*it); } m_columns.erase(start, end); m_index = 0; @@ -608,4 +608,15 @@ QPoint DolphinColumnView::columnPosition(DolphinColumnWidget* column, const QPoi return QPoint(point.x() - topLeft.x(), point.y() - topLeft.y()); } +void DolphinColumnView::deleteColumn(DolphinColumnWidget* column) +{ + if (column != 0) { + if (m_controller->itemView() == column) { + m_controller->setItemView(0); + } + column->disconnect(); + column->deleteLater(); + } +} + #include "dolphincolumnview.moc" diff --git a/src/dolphincolumnview.h b/src/dolphincolumnview.h index 62569a082..24353ad34 100644 --- a/src/dolphincolumnview.h +++ b/src/dolphincolumnview.h @@ -197,6 +197,12 @@ private: */ QPoint columnPosition(DolphinColumnWidget* column, const QPoint& point) const; + /** + * Deletes the column. If the itemview of the controller is set to the column, + * the controllers itemview is set to 0. + */ + void deleteColumn(DolphinColumnWidget* column); + private: DolphinController* m_controller; bool m_active; diff --git a/src/dolphincontroller.cpp b/src/dolphincontroller.cpp index b00ca7160..375eb4403 100644 --- a/src/dolphincontroller.cpp +++ b/src/dolphincontroller.cpp @@ -57,9 +57,11 @@ void DolphinController::setItemView(QAbstractItemView* view) m_itemView = view; - // TODO: this is a workaround until Qt-issue 176832 has been fixed - connect(m_itemView, SIGNAL(pressed(const QModelIndex&)), - this, SLOT(updateOpenTabState())); + if (m_itemView != 0) { + // TODO: this is a workaround until Qt-issue 176832 has been fixed + connect(m_itemView, SIGNAL(pressed(const QModelIndex&)), + this, SLOT(updateOpenTabState())); + } } void DolphinController::triggerUrlChangeRequest(const KUrl& url) |
