#include "draganddrophelper.h"
#include "folderexpander.h"
#include "tooltips/tooltipmanager.h"
-#include "versioncontrolobserver.h"
#include "viewextensionsfactory.h"
#include "zoomlevelinfo.h"
connect(KGlobalSettings::self(), SIGNAL(kdisplayFontChanged()),
this, SLOT(updateFont()));
- /*FolderExpander* folderExpander = new FolderExpander(this, m_proxyModel);
- folderExpander->setEnabled(DolphinSettings::instance().generalSettings()->autoExpandFolders());
- connect (folderExpander, SIGNAL(enterDir(const QModelIndex&)),
- m_container->m_controller, SLOT(triggerItem(const QModelIndex&)));
-
- new VersionControlObserver(this);*/
-
DolphinController* controller = m_container->m_controller;
connect(controller, SIGNAL(zoomLevelChanged(int)),
this, SLOT(setZoomLevel(int)));
const QString nameFilter = controller->nameFilter();
if (!nameFilter.isEmpty()) {
- m_proxyModel->setFilterRegExp(nameFilter);
+ m_proxyModel->setFilterFixedString(nameFilter);
}
- connect(controller, SIGNAL(nameFilterChanged(const QString&)),
- this, SLOT(setNameFilter(const QString&)));
- m_extensionsFactory = new ViewExtensionsFactory(this, controller);
updateDecorationSize(dolphinView->showPreview());
+ m_extensionsFactory = new ViewExtensionsFactory(this, controller);
}
DolphinColumnView::~DolphinColumnView()
return item;
}
+void DolphinColumnView::setSelectionModel(QItemSelectionModel* model)
+{
+ // If a change of the selection is done although the view is not active
+ // (e. g. by the selection markers), the column must be activated. This
+ // is done by listening to the current selectionChanged() signal.
+ if (selectionModel() != 0) {
+ disconnect(selectionModel(), SIGNAL(selectionChanged(QItemSelection, QItemSelection)),
+ this, SLOT(requestActivation()));
+ }
+
+ QListView::setSelectionModel(model);
+
+ connect(selectionModel(), SIGNAL(selectionChanged(QItemSelection, QItemSelection)),
+ this, SLOT(requestActivation()));
+}
+
QStyleOptionViewItem DolphinColumnView::viewOptions() const
{
QStyleOptionViewItem viewOptions = QListView::viewOptions();
viewOptions.font = m_font;
+ viewOptions.fontMetrics = QFontMetrics(m_font);
viewOptions.decorationSize = m_decorationSize;
viewOptions.showDecorationSelected = true;
return viewOptions;
Q_ASSERT(m_active);
QListView::contextMenuEvent(event);
-
- const QModelIndex index = indexAt(event->pos());
- if (!index.isValid()) {
- clearSelection();
- }
-
- const QPoint pos = m_container->viewport()->mapFromGlobal(event->globalPos());
- Q_ASSERT(m_container->m_controller->itemView() == this);
- m_container->m_controller->triggerContextMenuRequest(pos);
+ m_container->m_controller->triggerContextMenuRequest(event->pos());
}
void DolphinColumnView::wheelEvent(QWheelEvent* event)
{
- // let Ctrl+wheel events propagate to the DolphinView for icon zooming
- if (event->modifiers() & Qt::ControlModifier) {
- event->ignore();
- return;
- }
-
- const int height = m_decorationSize.height();
- const int step = (height >= KIconLoader::SizeHuge) ? height / 10 : (KIconLoader::SizeHuge - height) / 2;
+ const int step = m_decorationSize.height();
verticalScrollBar()->setSingleStep(step);
-
QListView::wheelEvent(event);
}
m_container->m_controller->emitViewportEntered();
}
-void DolphinColumnView::selectionChanged(const QItemSelection& selected, const QItemSelection& deselected)
-{
- QListView::selectionChanged(selected, deselected);
-
- //QItemSelectionModel* selModel = m_container->selectionModel();
- //selModel->select(selected, QItemSelectionModel::Select);
- //selModel->select(deselected, QItemSelectionModel::Deselect);
-}
-
void DolphinColumnView::currentChanged(const QModelIndex& current, const QModelIndex& previous)
{
QListView::currentChanged(current, previous);
m_extensionsFactory->handleCurrentIndexChange(current, previous);
}
-void DolphinColumnView::setNameFilter(const QString& nameFilter)
-{
- m_proxyModel->setFilterRegExp(nameFilter);
-}
-
void DolphinColumnView::setZoomLevel(int level)
{
const int size = ZoomLevelInfo::iconSizeForZoomLevel(level);