X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/3c57174a787d110e40d8fab0015a3c76f7229a98..b1c9b5126d:/src/dolphincolumnview.cpp diff --git a/src/dolphincolumnview.cpp b/src/dolphincolumnview.cpp index 98b62f83d..3b3e86a75 100644 --- a/src/dolphincolumnview.cpp +++ b/src/dolphincolumnview.cpp @@ -21,10 +21,13 @@ #include "dolphincolumnwidget.h" #include "dolphincontroller.h" -#include "dolphinsettings.h" +#include "settings/dolphinsettings.h" +#include "zoomlevelinfo.h" #include "dolphin_columnmodesettings.h" +#include + #include #include #include @@ -80,7 +83,7 @@ DolphinColumnView::DolphinColumnView(QWidget* parent, DolphinController* control m_emptyViewport = new QFrame(viewport()); m_emptyViewport->setFrameStyle(QFrame::StyledPanel | QFrame::Sunken); - updateDecorationSize(); + updateDecorationSize(view->showPreview()); updateColumnsBackground(true); } @@ -268,6 +271,11 @@ KFileItemList DolphinColumnView::selectedItems() const return activeColumn()->selectedItems(); } +QMimeData* DolphinColumnView::selectionMimeData() const +{ + return activeColumn()->selectionMimeData(); +} + void DolphinColumnView::selectAll() { activeColumn()->selectAll(); @@ -368,11 +376,17 @@ void DolphinColumnView::wheelEvent(QWheelEvent* event) void DolphinColumnView::setZoomLevel(int level) { - const int size = DolphinController::iconSizeForZoomLevel(level); + const int size = ZoomLevelInfo::iconSizeForZoomLevel(level); ColumnModeSettings* settings = DolphinSettings::instance().columnModeSettings(); - settings->setIconSize(size); - - updateDecorationSize(); + + const bool showPreview = m_controller->dolphinView()->showPreview(); + if (showPreview) { + settings->setPreviewSize(size); + } else { + settings->setIconSize(size); + } + + updateDecorationSize(showPreview); } void DolphinColumnView::moveContentHorizontally(int x) @@ -381,10 +395,10 @@ void DolphinColumnView::moveContentHorizontally(int x) layoutColumns(); } -void DolphinColumnView::updateDecorationSize() +void DolphinColumnView::updateDecorationSize(bool showPreview) { ColumnModeSettings* settings = DolphinSettings::instance().columnModeSettings(); - const int iconSize = settings->iconSize(); + const int iconSize = showPreview ? settings->previewSize() : settings->iconSize(); const QSize size(iconSize, iconSize); setIconSize(size); @@ -445,6 +459,7 @@ void DolphinColumnView::slotShowHiddenFilesChanged() void DolphinColumnView::slotShowPreviewChanged() { const bool show = m_controller->dolphinView()->showPreview(); + updateDecorationSize(show); foreach (DolphinColumnWidget* column, m_columns) { column->setShowPreview(show); } @@ -581,9 +596,17 @@ void DolphinColumnView::deleteColumn(DolphinColumnWidget* column) if (m_controller->itemView() == column) { m_controller->setItemView(0); } + // deleteWhenNotDragSource(column) does not necessarily delete column, + // and we want its preview generator destroyed immediately. + column->m_previewGenerator->deleteLater(); + column->m_previewGenerator = 0; + column->hide(); + // Prevent automatic destruction of column when this DolphinColumnView + // is destroyed. + column->setParent(0); column->disconnect(); - column->deleteLater(); - } + emit requestColumnDeletion(column); + } } #include "dolphincolumnview.moc"