#include "dolphincolumnwidget.h"
#include "dolphincontroller.h"
-#include "dolphinsettings.h"
+#include "settings/dolphinsettings.h"
+#include "zoomlevelinfo.h"
#include "dolphin_columnmodesettings.h"
+#include <kfilepreviewgenerator.h>
+
#include <QPoint>
#include <QScrollBar>
#include <QTimeLine>
setSelectionMode(ExtendedSelection);
setFocusPolicy(Qt::NoFocus);
setFrameShape(QFrame::NoFrame);
+ setLayoutDirection(Qt::LeftToRight);
connect(this, SIGNAL(viewportEntered()),
controller, SLOT(emitViewportEntered()));
m_emptyViewport = new QFrame(viewport());
m_emptyViewport->setFrameStyle(QFrame::StyledPanel | QFrame::Sunken);
- updateDecorationSize();
+ updateDecorationSize(view->showPreview());
updateColumnsBackground(true);
}
return activeColumn()->selectedItems();
}
+QMimeData* DolphinColumnView::selectionMimeData() const
+{
+ return activeColumn()->selectionMimeData();
+}
+
void DolphinColumnView::selectAll()
{
activeColumn()->selectAll();
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)
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);
void DolphinColumnView::slotShowPreviewChanged()
{
const bool show = m_controller->dolphinView()->showPreview();
+ updateDecorationSize(show);
foreach (DolphinColumnWidget* column, m_columns) {
column->setShowPreview(show);
}
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"