X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/7308c7d03e182795d6b64d85a3f0725d8af32436..b1c9b5126d:/src/dolphincolumnview.cpp diff --git a/src/dolphincolumnview.cpp b/src/dolphincolumnview.cpp index 8ca4a6a9b..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 @@ -48,6 +51,7 @@ DolphinColumnView::DolphinColumnView(QWidget* parent, DolphinController* control setSelectionMode(ExtendedSelection); setFocusPolicy(Qt::NoFocus); setFrameShape(QFrame::NoFrame); + setLayoutDirection(Qt::LeftToRight); connect(this, SIGNAL(viewportEntered()), controller, SLOT(emitViewportEntered())); @@ -79,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); } @@ -267,6 +271,11 @@ KFileItemList DolphinColumnView::selectedItems() const return activeColumn()->selectedItems(); } +QMimeData* DolphinColumnView::selectionMimeData() const +{ + return activeColumn()->selectionMimeData(); +} + void DolphinColumnView::selectAll() { activeColumn()->selectAll(); @@ -367,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) @@ -380,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); @@ -444,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); } @@ -580,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"