X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/0e56e0ddcea8db8bb98b387158e0b0cae2a00a26..cd65336b8cfa38756bc63e7203b2b7397d8639ec:/src/dolphincolumnwidget.cpp diff --git a/src/dolphincolumnwidget.cpp b/src/dolphincolumnwidget.cpp index 3bb1f36c2..c2ba385ad 100644 --- a/src/dolphincolumnwidget.cpp +++ b/src/dolphincolumnwidget.cpp @@ -26,7 +26,9 @@ #include "dolphinsortfilterproxymodel.h" #include "dolphinsettings.h" #include "dolphin_columnmodesettings.h" +#include "dolphin_generalsettings.h" #include "draganddrophelper.h" +#include "selectionmanager.h" #include #include @@ -64,7 +66,7 @@ DolphinColumnWidget::DolphinColumnWidget(QWidget* parent, setMouseTracking(true); viewport()->setAttribute(Qt::WA_Hover); setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); - setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOn); + setVerticalScrollBarPolicy(Qt::ScrollBarAsNeeded); setSelectionBehavior(SelectItems); setSelectionMode(QAbstractItemView::ExtendedSelection); setDragDropMode(QAbstractItemView::DragDrop); @@ -89,7 +91,7 @@ DolphinColumnWidget::DolphinColumnWidget(QWidget* parent, m_font.setBold(settings->boldFont()); const int iconSize = settings->iconSize(); - m_decorationSize = QSize(iconSize, iconSize); + setDecorationSize(QSize(iconSize, iconSize)); KFileItemDelegate* delegate = new KFileItemDelegate(this); setItemDelegate(delegate); @@ -118,6 +120,15 @@ DolphinColumnWidget::DolphinColumnWidget(QWidget* parent, m_proxyModel->setFilterCaseSensitivity(Qt::CaseInsensitive); setModel(m_proxyModel); + const bool useSelManager = KGlobalSettings::singleClick() && + DolphinSettings::instance().generalSettings()->showSelectionToggle(); + if (useSelManager) { + SelectionManager* selManager = new SelectionManager(this); + connect(selManager, SIGNAL(selectionChanged()), + this, SLOT(requestActivation())); + connect(m_view->m_controller, SIGNAL(urlChanged(const KUrl&)), + selManager, SLOT(reset())); +} new KMimeTypeResolver(this, m_dolphinModel); m_iconManager = new IconManager(this, m_proxyModel); m_iconManager->setShowPreview(m_view->m_controller->dolphinView()->showPreview()); @@ -136,6 +147,7 @@ DolphinColumnWidget::~DolphinColumnWidget() void DolphinColumnWidget::setDecorationSize(const QSize& size) { + setIconSize(size); m_decorationSize = size; doItemsLayout(); } @@ -303,12 +315,7 @@ void DolphinColumnWidget::paintEvent(QPaintEvent* event) void DolphinColumnWidget::mousePressEvent(QMouseEvent* event) { - m_view->m_controller->requestActivation(); - if (!m_active) { - m_view->requestActivation(this); - m_view->m_controller->triggerUrlChangeRequest(m_url); - } - + requestActivation(); QListView::mousePressEvent(event); } @@ -366,6 +373,16 @@ void DolphinColumnWidget::slotEntered(const QModelIndex& index) m_view->m_controller->emitItemEntered(item); } +void DolphinColumnWidget::requestActivation() +{ + m_view->m_controller->requestActivation(); + if (!m_active) { + m_view->requestActivation(this); + m_view->m_controller->triggerUrlChangeRequest(m_url); + selectionModel()->clear(); + } +} + void DolphinColumnWidget::activate() { setFocus(Qt::OtherFocusReason);