X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/e80f07735774cfd8e4debef48cbef7869506e585..bd925ea49a7e4e7c6e652f4529dcd0c4e25fd19a:/src/dolphincolumnview.cpp diff --git a/src/dolphincolumnview.cpp b/src/dolphincolumnview.cpp index d6bd08a42..b0ce52172 100644 --- a/src/dolphincolumnview.cpp +++ b/src/dolphincolumnview.cpp @@ -19,25 +19,14 @@ #include "dolphincolumnview.h" -#include "dolphinmodel.h" #include "dolphincolumnwidget.h" #include "dolphincontroller.h" -#include "dolphindirlister.h" -#include "dolphinmodel.h" -#include "dolphinsortfilterproxymodel.h" #include "dolphinsettings.h" #include "dolphin_columnmodesettings.h" -#include -#include -#include - -#include -#include #include #include -#include #include DolphinColumnView::DolphinColumnView(QWidget* parent, DolphinController* controller) : @@ -70,6 +59,10 @@ DolphinColumnView::DolphinColumnView(QWidget* parent, DolphinController* control this, SLOT(updateColumnsBackground(bool))); const DolphinView* view = controller->dolphinView(); + connect(view, SIGNAL(sortingChanged(DolphinView::Sorting)), + this, SLOT(slotSortingChanged(DolphinView::Sorting))); + connect(view, SIGNAL(sortOrderChanged(Qt::SortOrder)), + this, SLOT(slotSortOrderChanged(Qt::SortOrder))); connect(view, SIGNAL(showHiddenFilesChanged()), this, SLOT(slotShowHiddenFilesChanged())); connect(view, SIGNAL(showPreviewChanged()), @@ -341,9 +334,20 @@ void DolphinColumnView::resizeEvent(QResizeEvent* event) { QAbstractItemView::resizeEvent(event); layoutColumns(); + updateScrollBar(); assureVisibleActiveColumn(); } +void DolphinColumnView::wheelEvent(QWheelEvent* event) +{ + // let Ctrl+wheel events propagate to the DolphinView for icon zooming + if ((event->modifiers() & Qt::ControlModifier) == Qt::ControlModifier) { + event->ignore(); + return; + } + QAbstractItemView::wheelEvent(event); +} + void DolphinColumnView::zoomIn() { if (isZoomInPossible()) { @@ -380,11 +384,13 @@ void DolphinColumnView::updateDecorationSize() { ColumnModeSettings* settings = DolphinSettings::instance().columnModeSettings(); const int iconSize = settings->iconSize(); + const QSize size(iconSize, iconSize); + setIconSize(size); foreach (QObject* object, viewport()->children()) { if (object->inherits("QListView")) { DolphinColumnWidget* widget = static_cast(object); - widget->setDecorationSize(QSize(iconSize, iconSize)); + widget->setDecorationSize(size); } } @@ -403,8 +409,12 @@ void DolphinColumnView::updateColumnsBackground(bool active) m_active = active; // dim the background of the viewport - QPalette palette; - palette.setColor(viewport()->backgroundRole(), QColor(0, 0, 0, 0)); + const QPalette::ColorRole role = viewport()->backgroundRole(); + QColor background = viewport()->palette().color(role); + background.setAlpha(0); // make background transparent + + QPalette palette = viewport()->palette(); + palette.setColor(role, background); viewport()->setPalette(palette); foreach (DolphinColumnWidget* column, m_columns) { @@ -412,6 +422,20 @@ void DolphinColumnView::updateColumnsBackground(bool active) } } +void DolphinColumnView::slotSortingChanged(DolphinView::Sorting sorting) +{ + foreach (DolphinColumnWidget* column, m_columns) { + column->setSorting(sorting); + } +} + +void DolphinColumnView::slotSortOrderChanged(Qt::SortOrder order) +{ + foreach (DolphinColumnWidget* column, m_columns) { + column->setSortOrder(order); + } +} + void DolphinColumnView::slotShowHiddenFilesChanged() { const bool show = m_controller->dolphinView()->showHiddenFiles(); @@ -513,7 +537,9 @@ void DolphinColumnView::assureVisibleActiveColumn() } else { m_animation->setFrameRange(-m_contentX, -newContentX); } - m_animation->start(); + if (m_animation->state() != QTimeLine::Running) { + m_animation->start(); + } } else if (x < 0) { const int newContentX = m_contentX - x; if (isRightToLeft()) { @@ -521,12 +547,15 @@ void DolphinColumnView::assureVisibleActiveColumn() } else { m_animation->setFrameRange(-m_contentX, -newContentX); } - m_animation->start(); + if (m_animation->state() != QTimeLine::Running) { + m_animation->start(); + } } } void DolphinColumnView::requestActivation(DolphinColumnWidget* column) { + m_controller->setItemView(column); if (column->isActive()) { assureVisibleActiveColumn(); } else { @@ -554,19 +583,4 @@ void DolphinColumnView::removeAllColumns() assureVisibleActiveColumn(); } -void DolphinColumnView::setModel ( QAbstractItemModel * model ) -{ - QAbstractItemView::setModel(model); - if(m_columns[0]) { - m_columns[0]->setModel(model); - m_columns[0]->setSelectionModel(selectionModel()); - } -} -void DolphinColumnView::setSelectionModel ( QItemSelectionModel * selectionModel ) -{ - if(m_columns[0]) - m_columns[0]->setSelectionModel(selectionModel); - QAbstractItemView::setSelectionModel(selectionModel); -} - #include "dolphincolumnview.moc"