X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/f8a61efc8d03532d5b22cae0bdc65afc90303509..2060fa8d4676fb2d5116830c304db8fdb556d959:/src/dolphincolumnview.cpp diff --git a/src/dolphincolumnview.cpp b/src/dolphincolumnview.cpp index b01a85103..c50314c97 100644 --- a/src/dolphincolumnview.cpp +++ b/src/dolphincolumnview.cpp @@ -22,7 +22,7 @@ #include "dolphincontroller.h" #include "dolphinsettings.h" -//#include "dolphin_iconsmodesettings.h" +#include "dolphin_columnmodesettings.h" #include #include @@ -32,11 +32,16 @@ #include DolphinColumnView::DolphinColumnView(QWidget* parent, DolphinController* controller) : - QColumnView(parent), - m_controller(controller) + QColumnView(parent), + m_controller(controller) { Q_ASSERT(controller != 0); + setAcceptDrops(true); + setSelectionBehavior(SelectItems); + setDragDropMode(QAbstractItemView::DragDrop); + setDropIndicatorShown(false); + viewport()->setAttribute(Qt::WA_Hover); connect(this, SIGNAL(clicked(const QModelIndex&)), @@ -48,32 +53,22 @@ DolphinColumnView::DolphinColumnView(QWidget* parent, DolphinController* control connect(controller, SIGNAL(zoomOut()), this, SLOT(zoomOut())); - // apply the icons mode settings to the widget - //const IconsModeSettings* settings = DolphinSettings::instance().iconsModeSettings(); - //Q_ASSERT(settings != 0); + // apply the column mode settings to the widget + const ColumnModeSettings* settings = DolphinSettings::instance().columnModeSettings(); + Q_ASSERT(settings != 0); m_viewOptions = QColumnView::viewOptions(); - /*QFont font(settings->fontFamily(), settings->fontSize()); + QFont font(settings->fontFamily(), settings->fontSize()); font.setItalic(settings->italicFont()); font.setBold(settings->boldFont()); m_viewOptions.font = font; - updateGridSize(controller->showPreview()); - - if (settings->arrangement() == QColumnView::TopToBottom) { - setFlow(QColumnView::LeftToRight); - m_viewOptions.decorationPosition = QStyleOptionViewItem::Top; - } - else { - setFlow(QColumnView::TopToBottom); - m_viewOptions.decorationPosition = QStyleOptionViewItem::Left; - }*/ + updateDecorationSize(); } DolphinColumnView::~DolphinColumnView() -{ -} +{} QStyleOptionViewItem DolphinColumnView::viewOptions() const { @@ -113,20 +108,54 @@ void DolphinColumnView::dropEvent(QDropEvent* event) void DolphinColumnView::zoomIn() { + if (isZoomInPossible()) { + ColumnModeSettings* settings = DolphinSettings::instance().columnModeSettings(); + // TODO: get rid of K3Icon sizes + switch (settings->iconSize()) { + case K3Icon::SizeSmall: settings->setIconSize(K3Icon::SizeMedium); break; + case K3Icon::SizeMedium: settings->setIconSize(K3Icon::SizeLarge); break; + default: Q_ASSERT(false); break; + } + updateDecorationSize(); + } } void DolphinColumnView::zoomOut() { + if (isZoomOutPossible()) { + ColumnModeSettings* settings = DolphinSettings::instance().columnModeSettings(); + // TODO: get rid of K3Icon sizes + switch (settings->iconSize()) { + case K3Icon::SizeLarge: settings->setIconSize(K3Icon::SizeMedium); break; + case K3Icon::SizeMedium: settings->setIconSize(K3Icon::SizeSmall); break; + default: Q_ASSERT(false); break; + } + updateDecorationSize(); + } } bool DolphinColumnView::isZoomInPossible() const { - return false; + ColumnModeSettings* settings = DolphinSettings::instance().columnModeSettings(); + return settings->iconSize() < K3Icon::SizeLarge; } bool DolphinColumnView::isZoomOutPossible() const { - return false; + ColumnModeSettings* settings = DolphinSettings::instance().columnModeSettings(); + return settings->iconSize() > K3Icon::SizeSmall; +} + +void DolphinColumnView::updateDecorationSize() +{ + ColumnModeSettings* settings = DolphinSettings::instance().columnModeSettings(); + const int iconSize = settings->iconSize(); + m_viewOptions.decorationSize = QSize(iconSize, iconSize); + + m_controller->setZoomInPossible(isZoomInPossible()); + m_controller->setZoomOutPossible(isZoomOutPossible()); + + doItemsLayout(); } #include "dolphincolumnview.moc"