X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/d8669c68e40a6571dfcbdf38e3281a4aeb8c2be6..418cfc1d7420eec3b8624b03e1e8250ba31dc08b:/src/dolphinview.cpp diff --git a/src/dolphinview.cpp b/src/dolphinview.cpp index 9a647af4d..1dba37ad5 100644 --- a/src/dolphinview.cpp +++ b/src/dolphinview.cpp @@ -176,14 +176,14 @@ DolphinView::Mode DolphinView::mode() const return m_mode; } -void DolphinView::setShowHiddenFilesEnabled(bool show) +void DolphinView::setShowHiddenFiles(bool show) { if (m_dirLister->showingDotFiles() == show) { return; } ViewProperties props(m_urlNavigator->url()); - props.setShowHiddenFilesEnabled(show); + props.setShowHiddenFiles(show); props.save(); m_dirLister->setShowingDotFiles(show); @@ -193,7 +193,7 @@ void DolphinView::setShowHiddenFilesEnabled(bool show) reload(); } -bool DolphinView::isShowHiddenFilesEnabled() const +bool DolphinView::showHiddenFiles() const { return m_dirLister->showingDotFiles(); } @@ -203,7 +203,7 @@ void DolphinView::setViewProperties(const ViewProperties& props) setMode(props.viewMode()); setSorting(props.sorting()); setSortOrder(props.sortOrder()); - setShowHiddenFilesEnabled(props.isShowHiddenFilesEnabled()); + setShowHiddenFiles(props.showHiddenFiles()); } void DolphinView::renameSelectedItems() @@ -302,12 +302,12 @@ void DolphinView::renameSelectedItems() void DolphinView::selectAll() { - //fileView()->selectAll(); + selectAll(QItemSelectionModel::Select); } void DolphinView::invertSelection() { - //fileView()->invertSelection(); + selectAll(QItemSelectionModel::Toggle); } DolphinStatusBar* DolphinView::statusBar() const @@ -392,61 +392,43 @@ bool DolphinView::isZoomOutPossible() const void DolphinView::setSorting(Sorting sorting) { if (sorting != this->sorting()) { - /*KFileView* view = fileView(); - int spec = view->sorting() & ~QDir::Name & ~QDir::Size & ~QDir::Time & ~QDir::Unsorted; - - switch (sorting) { - case SortByName: spec = spec | QDir::Name; break; - case SortBySize: spec = spec | QDir::Size; break; - case SortByDate: spec = spec | QDir::Time; break; - default: break; - } - ViewProperties props(url()); props.setSorting(sorting); - view->setSorting(static_cast(spec)); + KDirModel* dirModel = static_cast(m_iconsView->model()); + dirModel->sort(columnIndex(sorting), props.sortOrder()); - emit signalSortingChanged(sorting);*/ + emit sortingChanged(sorting); } } DolphinView::Sorting DolphinView::sorting() const { - /*const QDir::SortFlags spec = fileView()->sorting(); - - if (spec & QDir::Time) { - return SortByDate; - } - - if (spec & QDir::Size) { - return SortBySize; - }*/ - - return SortByName; + // TODO: instead of getting the sorting from the properties just fetch + // them from KDirModel, if such an interface will be offered (David?) + ViewProperties props(url()); + return props.sorting(); } void DolphinView::setSortOrder(Qt::SortOrder order) { if (sortOrder() != order) { - /*KFileView* view = fileView(); - int sorting = view->sorting(); - sorting = (order == Qt::Ascending) ? (sorting & ~QDir::Reversed) : - (sorting | QDir::Reversed); - ViewProperties props(url()); props.setSortOrder(order); - view->setSorting(static_cast(sorting)); + KDirModel* dirModel = static_cast(m_iconsView->model()); + dirModel->sort(columnIndex(props.sorting()), order); - emit signalSortOrderChanged(order);*/ + emit sortOrderChanged(order); } } Qt::SortOrder DolphinView::sortOrder() const { - //return fileView()->isReversed() ? Qt::Descending : Qt::Ascending; - return Qt::Descending; + // TODO: instead of getting the order from the properties just fetch + // them from KDirModel, if such an interface will be offered (David?) + ViewProperties props(url()); + return props.sortOrder(); } void DolphinView::goBack() @@ -635,8 +617,8 @@ void DolphinView::loadDirectory(const KUrl& url) const ViewProperties props(url); setMode(props.viewMode()); - const bool showHiddenFiles = props.isShowHiddenFilesEnabled(); - setShowHiddenFilesEnabled(showHiddenFiles); + const bool showHiddenFiles = props.showHiddenFiles(); + setShowHiddenFiles(showHiddenFiles); m_dirLister->setShowingDotFiles(showHiddenFiles); setSorting(props.sorting()); @@ -832,23 +814,6 @@ void DolphinView::slotContentsMoving(int x, int y) } } -/*KFileView* DolphinView::fileView() const -{ - return (m_mode == DetailsView) ? static_cast(m_iconsView) : - static_cast(m_iconsView); -}*/ - -Q3ScrollView* DolphinView::scrollView() const -{ - return 0; //(m_mode == DetailsView) ? static_cast(m_iconsView) : - // static_cast(m_iconsView); -} - -ItemEffectsManager* DolphinView::itemEffectsManager() const -{ - return 0; -} - void DolphinView::startDirLister(const KUrl& url, bool reload) { if (!url.isValid()) { @@ -1015,19 +980,6 @@ void DolphinView::slotChangeNameFilter(const QString& nameFilter) m_dirLister->setNameFilter(adjustedFilter); m_dirLister->emitChanges(); - - // TODO: this is a workaround for QIconView: the item position - // stay as they are by filtering, only an inserting of an item - // results to an automatic adjusting of the item position. In Qt4/KDE4 - // this workaround should get obsolete due to Interview. - /*KFileView* view = fileView(); - if (view == m_iconsView) { - KFileItem* first = view->firstFileItem(); - if (first != 0) { - view->removeItem(first); - view->insertItem(first); - } - }*/ } void DolphinView::applyModeToView() @@ -1046,12 +998,32 @@ void DolphinView::applyModeToView() m_iconsView->setViewMode(QListView::ListMode); m_iconsView->setGridSize(QSize(256, 24)); break; + } +} - case PreviewsView: - m_iconsView->setViewMode(QListView::IconMode); - m_iconsView->setGridSize(QSize(128, 128)); - break; +int DolphinView::columnIndex(Sorting sorting) const +{ + int index = 0; + switch (sorting) { + case SortByName: index = KDirModel::Name; break; + case SortBySize: index = KDirModel::Size; break; + case SortByDate: index = KDirModel::ModifiedTime; break; + default: assert(false); } + return index; +} + +void DolphinView::selectAll(QItemSelectionModel::SelectionFlags flags) +{ + QItemSelectionModel* selectionModel = m_iconsView->selectionModel(); + const QAbstractItemModel* itemModel = selectionModel->model(); + + const QModelIndex topLeft = itemModel->index(0, 0); + const QModelIndex bottomRight = itemModel->index(itemModel->rowCount() - 1, + itemModel->columnCount() - 1); + + QItemSelection selection(topLeft, bottomRight); + selectionModel->select(selection, flags); } #include "dolphinview.moc"