X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/e1d76541ba62e2eec5874ace02049be96bf3378e..ca7aaecbdbddb27f7442e69d2770b97b4307f338:/src/dolphinview.cpp diff --git a/src/dolphinview.cpp b/src/dolphinview.cpp index 24b331d84..45fdfebaf 100644 --- a/src/dolphinview.cpp +++ b/src/dolphinview.cpp @@ -53,13 +53,16 @@ #include "dolphincontroller.h" #include "dolphinsortfilterproxymodel.h" #include "dolphindetailsview.h" +#include "dolphin_detailsmodesettings.h" #include "dolphiniconsview.h" #include "dolphinsettings.h" #include "dolphin_generalsettings.h" +#include "folderexpander.h" #include "iconmanager.h" #include "renamedialog.h" #include "tooltipmanager.h" #include "viewproperties.h" +#include "zoomlevelinfo.h" DolphinView::DolphinView(QWidget* parent, const KUrl& url, @@ -362,10 +365,10 @@ QPoint DolphinView::contentsPosition() const void DolphinView::setZoomLevel(int level) { - if (level < zoomLevelMinimum()) { - level = zoomLevelMinimum(); - } else if (level > zoomLevelMaximum()) { - level = zoomLevelMaximum(); + if (level < ZoomLevelInfo::minimumLevel()) { + level = ZoomLevelInfo::minimumLevel(); + } else if (level > ZoomLevelInfo::maximumLevel()) { + level = ZoomLevelInfo::maximumLevel(); } if (level != zoomLevel()) { @@ -380,16 +383,6 @@ int DolphinView::zoomLevel() const return m_controller->zoomLevel(); } -int DolphinView::zoomLevelMinimum() const -{ - return m_controller->zoomLevelMinimum(); -} - -int DolphinView::zoomLevelMaximum() const -{ - return m_controller->zoomLevelMaximum(); -} - void DolphinView::setSorting(Sorting sorting) { if (sorting != this->sorting()) { @@ -603,12 +596,13 @@ void DolphinView::renameSelectedItems() void DolphinView::trashSelectedItems() { emit doingOperation(KIO::FileUndoManager::Trash); - KonqOperations::del(this, KonqOperations::TRASH, selectedUrls()); + const KUrl::List list = simplifiedSelectedUrls(); + KonqOperations::del(this, KonqOperations::TRASH, list); } void DolphinView::deleteSelectedItems() { - const KUrl::List list = selectedUrls(); + const KUrl::List list = simplifiedSelectedUrls(); const bool del = KonqOperations::askDeleteConfirmation(list, KonqOperations::DEL, KonqOperations::DEFAULT_CONFIRMATION, @@ -624,7 +618,7 @@ void DolphinView::deleteSelectedItems() void DolphinView::cutSelectedItems() { QMimeData* mimeData = new QMimeData(); - const KUrl::List kdeUrls = selectedUrls(); + const KUrl::List kdeUrls = simplifiedSelectedUrls(); const KUrl::List mostLocalUrls; KonqMimeData::populateMimeData(mimeData, kdeUrls, mostLocalUrls, true); QApplication::clipboard()->setMimeData(mimeData); @@ -741,7 +735,6 @@ void DolphinView::toggleAdditionalInfo(QAction* action) } } - void DolphinView::mouseReleaseEvent(QMouseEvent* event) { QWidget::mouseReleaseEvent(event); @@ -1155,6 +1148,20 @@ void DolphinView::createView() Q_ASSERT(view != 0); view->installEventFilter(this); + if (m_mode != ColumnView) { + // Give the view the ability to auto-expand its directories on hovering + // (the column view takes care about this itself). If the details view + // uses expandable folders, the auto-expanding should be used always. + DolphinSettings& settings = DolphinSettings::instance(); + const bool enabled = settings.generalSettings()->autoExpandFolders() || + ((m_detailsView != 0) && settings.detailsModeSettings()->expandableFolders()); + + FolderExpander* folderExpander = new FolderExpander(view, m_proxyModel); + folderExpander->setEnabled(enabled); + connect(folderExpander, SIGNAL(enterDir(const QModelIndex&)), + m_controller, SLOT(triggerItem(const QModelIndex&))); + } + m_controller->setItemView(view); m_fileItemDelegate = new KFileItemDelegate(view); @@ -1260,11 +1267,20 @@ void DolphinView::pasteToUrl(const KUrl& url) void DolphinView::updateZoomLevel(int oldZoomLevel) { - const int newZoomLevel = DolphinController::zoomLevelForIconSize(itemView()->iconSize()); + const int newZoomLevel = ZoomLevelInfo::zoomLevelForIconSize(itemView()->iconSize()); if (oldZoomLevel != newZoomLevel) { m_controller->setZoomLevel(newZoomLevel); emit zoomLevelChanged(newZoomLevel); } } +KUrl::List DolphinView::simplifiedSelectedUrls() const +{ + KUrl::List list = selectedUrls(); + if ((m_detailsView != 0) && m_detailsView->itemsExpandable()) { + list = KonqOperations::simplifiedUrlList(list); + } + return list; +} + #include "dolphinview.moc"