This means
1) We don't leak memory switching to and from column view
2) Selection is preserved when switching views
3) We don't have 2 models running for the root directory
CCMAIL:peter.penz@gmx.at
svn path=/trunk/KDE/kdebase/apps/; revision=744386
assureVisibleActiveColumn();
}
assureVisibleActiveColumn();
}
+void DolphinColumnView::setModel ( QAbstractItemModel * model )
+{
+ QAbstractItemView::setModel(model);
+ if(m_columns[0]) {
+ m_columns[0]->setModel(model);
+ m_columns[0]->setSelectionModel(selectionModel());
+ }
+}
+void DolphinColumnView::setSelectionModel ( QItemSelectionModel * selectionModel )
+{
+ if(m_columns[0])
+ m_columns[0]->setSelectionModel(selectionModel);
+ QAbstractItemView::setSelectionModel(selectionModel);
+}
+
#include "dolphincolumnview.moc"
#include "dolphincolumnview.moc"
virtual void mousePressEvent(QMouseEvent* event);
virtual void resizeEvent(QResizeEvent* event);
virtual void mousePressEvent(QMouseEvent* event);
virtual void resizeEvent(QResizeEvent* event);
+ virtual void setSelectionModel ( QItemSelectionModel * selectionModel );
+ virtual void setModel ( QAbstractItemModel * model );
private slots:
void zoomIn();
private slots:
void zoomIn();
m_dirLister->setShowingDotFiles(showHiddenFiles);
connect(m_dirLister, SIGNAL(newItems(const KFileItemList&)),
this, SLOT(generatePreviews(const KFileItemList&)));
m_dirLister->setShowingDotFiles(showHiddenFiles);
connect(m_dirLister, SIGNAL(newItems(const KFileItemList&)),
this, SLOT(generatePreviews(const KFileItemList&)));
- m_dolphinModel = new DolphinModel(this);
- m_dolphinModel->setDirLister(m_dirLister);
- m_dolphinModel->setDropsAllowed(DolphinModel::DropOnDirectory);
-
- m_proxyModel = new DolphinSortFilterProxyModel(this);
- m_proxyModel->setSourceModel(m_dolphinModel);
-
- setModel(m_proxyModel);
+void DolphinColumnWidget::setModel ( QAbstractItemModel * model )
+{
+ m_proxyModel = dynamic_cast<DolphinSortFilterProxyModel *>(model);
+ if(m_proxyModel)
+ m_dolphinModel = dynamic_cast<DolphinModel *>(m_proxyModel->sourceModel());
new KMimeTypeResolver(this, m_dolphinModel);
new KMimeTypeResolver(this, m_dolphinModel);
-
- m_dirLister->openUrl(url, KDirLister::NoFlags);
+ m_dirLister->openUrl(m_url, KDirLister::NoFlags);
+ QListView::setModel(m_proxyModel);
}
DolphinColumnWidget::~DolphinColumnWidget()
}
DolphinColumnWidget::~DolphinColumnWidget()
* which contain the given filter string will be shown.
*/
void setNameFilter(const QString& nameFilter);
* which contain the given filter string will be shown.
*/
void setNameFilter(const QString& nameFilter);
+ virtual void setModel ( QAbstractItemModel * model );
protected:
virtual QStyleOptionViewItem viewOptions() const;
protected:
virtual QStyleOptionViewItem viewOptions() const;