diff options
| author | Peter Penz <[email protected]> | 2008-07-24 19:50:40 +0000 |
|---|---|---|
| committer | Peter Penz <[email protected]> | 2008-07-24 19:50:40 +0000 |
| commit | 8a51f70377a5133984426b3fa999aee3859cfa5e (patch) | |
| tree | 3db367b98f0714241642d184eb1b07d1b6146304 /src/dolphincolumnview.cpp | |
| parent | 5d7de69ae6cc55dc5d6fb020e7809a74e9eeebd8 (diff) | |
fix crash when opening a lot of columns and going back very fast by clicking on each breadcrumb of the URL navigator
BUG: 164304
svn path=/trunk/KDE/kdebase/apps/; revision=837486
Diffstat (limited to 'src/dolphincolumnview.cpp')
| -rw-r--r-- | src/dolphincolumnview.cpp | 15 |
1 files changed, 13 insertions, 2 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" |
