X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/30cb4c1ef254b10f7f42ece4d8be01eec775294b..bc4e59dc39fedcbb323c48942f8c0fd85d75f270:/src/dolphinview.cpp diff --git a/src/dolphinview.cpp b/src/dolphinview.cpp index 0b04d0afa..d02059059 100644 --- a/src/dolphinview.cpp +++ b/src/dolphinview.cpp @@ -329,6 +329,17 @@ KUrl::List DolphinView::selectedUrls() const return urls; } +int DolphinView::selectedItemsCount() const +{ + if (isColumnViewActive()) { + // TODO: get rid of this special case by adjusting the dir lister + // to the current column + return m_columnView->selectedItems().count(); + } + + return itemView()->selectionModel()->selection().count(); +} + void DolphinView::setContentsPosition(int x, int y) { QAbstractItemView* view = itemView(); @@ -349,26 +360,34 @@ QPoint DolphinView::contentsPosition() const return QPoint(x, y); } -void DolphinView::zoomIn() +void DolphinView::setZoomLevel(int level) { - m_controller->triggerZoomIn(); - m_iconManager->updatePreviews(); + if (level < zoomLevelMinimum()) { + level = zoomLevelMinimum(); + } else if (level > zoomLevelMaximum()) { + level = zoomLevelMaximum(); + } + + if (level != zoomLevel()) { + m_controller->setZoomLevel(level); + m_iconManager->updatePreviews(); + emit zoomLevelChanged(level); + } } -void DolphinView::zoomOut() +int DolphinView::zoomLevel() const { - m_controller->triggerZoomOut(); - m_iconManager->updatePreviews(); + return m_controller->zoomLevel(); } -bool DolphinView::isZoomInPossible() const +int DolphinView::zoomLevelMinimum() const { - return m_controller->isZoomInPossible(); + return m_controller->zoomLevelMinimum(); } -bool DolphinView::isZoomOutPossible() const +int DolphinView::zoomLevelMaximum() const { - return m_controller->isZoomOutPossible(); + return m_controller->zoomLevelMaximum(); } void DolphinView::setSorting(Sorting sorting) @@ -511,7 +530,12 @@ void DolphinView::changeSelection(const KFileItemList& selection) void DolphinView::renameSelectedItems() { const KFileItemList items = selectedItems(); - if (items.count() > 1) { + const int itemCount = items.count(); + if (itemCount < 1) { + return; + } + + if (itemCount > 1) { // More than one item has been selected for renaming. Open // a rename dialog and rename all items afterwards. RenameDialog dialog(this, items); @@ -546,8 +570,8 @@ void DolphinView::renameSelectedItems() } } } else if (DolphinSettings::instance().generalSettings()->renameInline()) { - Q_ASSERT(items.count() == 1); - + Q_ASSERT(itemCount == 1); + if (isColumnViewActive()) { m_columnView->editItem(items.first()); } else { @@ -556,8 +580,8 @@ void DolphinView::renameSelectedItems() itemView()->edit(proxyIndex); } } else { - Q_ASSERT(items.count() == 1); - + Q_ASSERT(itemCount == 1); + RenameDialog dialog(this, items); if (dialog.exec() == QDialog::Rejected) { return; @@ -721,10 +745,11 @@ void DolphinView::wheelEvent(QWheelEvent* event) { if (event->modifiers() & Qt::ControlModifier) { const int delta = event->delta(); - if ((delta > 0) && isZoomInPossible()) { - zoomIn(); - } else if ((delta < 0) && isZoomOutPossible()) { - zoomOut(); + const int level = zoomLevel(); + if (delta > 0) { + setZoomLevel(level + 1); + } else if (delta < 0) { + setZoomLevel(level - 1); } event->accept(); }