mirror of
https://invent.kde.org/system/dolphin
synced 2024-10-28 03:21:56 +00:00
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
This commit is contained in:
parent
5d7de69ae6
commit
8a51f70377
|
@ -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"
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -57,9 +57,11 @@ void DolphinController::setItemView(QAbstractItemView* view)
|
|||
|
||||
m_itemView = view;
|
||||
|
||||
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)
|
||||
|
|
Loading…
Reference in a new issue