X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/da88d222838ea0fa5788c3cac4b88efb53f5f8fc..de4ffa3322c8d919ebdb0cdb51115bace8aa8d11:/src/dolphinview.cpp diff --git a/src/dolphinview.cpp b/src/dolphinview.cpp index 1efe33384..c0c18f90e 100644 --- a/src/dolphinview.cpp +++ b/src/dolphinview.cpp @@ -31,7 +31,7 @@ #include #include #include -#include +#include #include #include @@ -105,6 +105,7 @@ DolphinView::DolphinView(DolphinMainWindow *mainWindow, m_dirModel = new KDirModel(); m_dirModel->setDirLister(m_dirLister); + m_dirModel->setDropsAllowed(KDirModel::DropOnDirectory); m_proxyModel = new DolphinSortFilterProxyModel(this); m_proxyModel->setSourceModel(m_dirModel); @@ -137,7 +138,7 @@ DolphinView::DolphinView(DolphinMainWindow *mainWindow, connect(m_iconsView->selectionModel(), SIGNAL(selectionChanged(const QItemSelection&, const QItemSelection&)), this, SLOT(emitSelectionChangedSignal())); - startDirLister(m_urlNavigator->url()); + loadDirectory(m_urlNavigator->url()); } DolphinView::~DolphinView() @@ -478,21 +479,19 @@ bool DolphinView::hasSelection() const return m_iconsView->selectionModel()->hasSelection(); } -/* - * Our view has a selection, we will map them back to the DirModel - * and then fill the KFileItemList - */ KFileItemList DolphinView::selectedItems() const { - assert( m_iconsView && m_iconsView->selectionModel() ); + // Our view has a selection, we will map them back to the DirModel + // and then fill the KFileItemList. + assert(m_iconsView && m_iconsView->selectionModel()); - const QItemSelection selection = m_proxyModel->mapSelectionToSource( m_iconsView->selectionModel()->selection() ); + const QItemSelection selection = m_proxyModel->mapSelectionToSource(m_iconsView->selectionModel()->selection()); KFileItemList itemList; const QModelIndexList indexList = selection.indexes(); QModelIndexList::const_iterator end = indexList.end(); for (QModelIndexList::const_iterator it = indexList.begin(); it != end; ++it) { - assert( (*it).isValid() ); + assert((*it).isValid()); KFileItem* item = m_dirModel->itemForIndex(*it); if (item != 0) { @@ -547,11 +546,11 @@ void DolphinView::rename(const KUrl& source, const QString& newName) if (destExists) { // the destination already exists, hence ask the user // how to proceed... - KIO::RenameDlg renameDialog(this, - i18n("File Already Exists"), - source.path(), - dest.path(), - KIO::M_OVERWRITE); + KIO::RenameDialog renameDialog(this, + i18n("File Already Exists"), + source.path(), + dest.path(), + KIO::M_OVERWRITE); switch (renameDialog.exec()) { case KIO::R_OVERWRITE: // the destination should be overwritten @@ -968,8 +967,18 @@ void DolphinView::slotChangeNameFilter(const QString& nameFilter) adjustedFilter.insert(0, '*'); adjustedFilter.append('*'); + // Use the ProxyModel to filter: + // This code is #ifdefed as setNameFilter behaves + // slightly different than the QSortFilterProxyModel + // as it will not remove directories. I will ask + // our beloved usability experts for input + // -- z. +#if 0 m_dirLister->setNameFilter(adjustedFilter); m_dirLister->emitChanges(); +#else + m_proxyModel->setFilterRegExp( nameFilter ); +#endif } void DolphinView::applyModeToView()