diff --git a/src/dolphincolumnview.cpp b/src/dolphincolumnview.cpp index a6fda66d0e..d6bd08a422 100644 --- a/src/dolphincolumnview.cpp +++ b/src/dolphincolumnview.cpp @@ -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" diff --git a/src/dolphincolumnview.h b/src/dolphincolumnview.h index 30ac7ae710..0030c69ce0 100644 --- a/src/dolphincolumnview.h +++ b/src/dolphincolumnview.h @@ -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(); diff --git a/src/dolphincolumnwidget.cpp b/src/dolphincolumnwidget.cpp index 677215972d..abd236c7dd 100644 --- a/src/dolphincolumnwidget.cpp +++ b/src/dolphincolumnwidget.cpp @@ -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(model); + if(m_proxyModel) + m_dolphinModel = dynamic_cast(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() diff --git a/src/dolphincolumnwidget.h b/src/dolphincolumnwidget.h index e8fea3bf59..14b4c87517 100644 --- a/src/dolphincolumnwidget.h +++ b/src/dolphincolumnwidget.h @@ -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;