mirror of
https://invent.kde.org/system/dolphin
synced 2024-09-17 15:31:20 +00:00
The first columns model and selection model should be the same as the view's model and selection model.
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
This commit is contained in:
parent
0f4ecd1c61
commit
e80f077357
|
@ -554,4 +554,19 @@ void DolphinColumnView::removeAllColumns()
|
|||
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"
|
||||
|
|
|
@ -103,6 +103,8 @@ protected:
|
|||
|
||||
virtual void mousePressEvent(QMouseEvent* event);
|
||||
virtual void resizeEvent(QResizeEvent* event);
|
||||
virtual void setSelectionModel ( QItemSelectionModel * selectionModel );
|
||||
virtual void setModel ( QAbstractItemModel * model );
|
||||
|
||||
private slots:
|
||||
void zoomIn();
|
||||
|
|
|
@ -115,18 +115,16 @@ DolphinColumnWidget::DolphinColumnWidget(QWidget* parent,
|
|||
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);
|
||||
|
||||
m_dirLister->openUrl(url, KDirLister::NoFlags);
|
||||
m_dirLister->openUrl(m_url, KDirLister::NoFlags);
|
||||
QListView::setModel(m_proxyModel);
|
||||
}
|
||||
|
||||
DolphinColumnWidget::~DolphinColumnWidget()
|
||||
|
|
|
@ -89,6 +89,7 @@ public:
|
|||
* which contain the given filter string will be shown.
|
||||
*/
|
||||
void setNameFilter(const QString& nameFilter);
|
||||
virtual void setModel ( QAbstractItemModel * model );
|
||||
|
||||
protected:
|
||||
virtual QStyleOptionViewItem viewOptions() const;
|
||||
|
|
Loading…
Reference in a new issue