diff options
Diffstat (limited to 'src/dolphincolumnview.cpp')
| -rw-r--r-- | src/dolphincolumnview.cpp | 46 |
1 files changed, 41 insertions, 5 deletions
diff --git a/src/dolphincolumnview.cpp b/src/dolphincolumnview.cpp index bfbc5d9f1..7257cd830 100644 --- a/src/dolphincolumnview.cpp +++ b/src/dolphincolumnview.cpp @@ -59,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()), @@ -334,6 +338,16 @@ void DolphinColumnView::resizeEvent(QResizeEvent* event) 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()) { @@ -370,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<DolphinColumnWidget*>(object); - widget->setDecorationSize(QSize(iconSize, iconSize)); + widget->setDecorationSize(size); } } @@ -393,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) { @@ -402,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(); @@ -503,8 +537,9 @@ void DolphinColumnView::assureVisibleActiveColumn() } else { m_animation->setFrameRange(-m_contentX, -newContentX); } - if(m_animation->state() != QTimeLine::Running) + if (m_animation->state() != QTimeLine::Running) { m_animation->start(); + } } else if (x < 0) { const int newContentX = m_contentX - x; if (isRightToLeft()) { @@ -512,8 +547,9 @@ void DolphinColumnView::assureVisibleActiveColumn() } else { m_animation->setFrameRange(-m_contentX, -newContentX); } - if(m_animation->state() != QTimeLine::Running) + if (m_animation->state() != QTimeLine::Running) { m_animation->start(); + } } } |
