#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 <kcolorutils.h>
-#include <kcolorscheme.h>
-#include <kdirlister.h>
-
-#include <QAbstractProxyModel>
-#include <QApplication>
#include <QPoint>
#include <QScrollBar>
-#include <QTimer>
#include <QTimeLine>
DolphinColumnView::DolphinColumnView(QWidget* parent, DolphinController* controller) :
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()),
{
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()) {
{
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);
}
}
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) {
}
}
+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();
} 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()) {
} 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 {
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"