From: Frank Reininghaus Date: Fri, 14 Oct 2011 07:21:19 +0000 (+0200) Subject: Activate the DolphinView if the KItemListContainer gets focus X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/commitdiff_plain/1abb47fba752e16b9a7d4fb8f483b239749c5f4d?ds=inline Activate the DolphinView if the KItemListContainer gets focus This is needed in the case that the view is split to make the DolphinMainWindow aware of the view which is currently active. --- diff --git a/src/views/dolphinview.cpp b/src/views/dolphinview.cpp index 441c7e276..f2f434f46 100644 --- a/src/views/dolphinview.cpp +++ b/src/views/dolphinview.cpp @@ -164,6 +164,7 @@ DolphinView::DolphinView(const KUrl& url, QWidget* parent) : m_container = new DolphinItemListContainer(m_dirLister, this); m_container->setVisibleRoles(QList() << "name"); + m_container->installEventFilter(this); KItemListController* controller = m_container->controller(); controller->setSelectionBehavior(KItemListController::MultiSelection); @@ -695,10 +696,20 @@ void DolphinView::setCategorizedSorting(bool categorized) emit categorizedSortingChanged(categorized); } -void DolphinView::mouseReleaseEvent(QMouseEvent* event) +bool DolphinView::eventFilter(QObject* watched, QEvent* event) { - QWidget::mouseReleaseEvent(event); - setActive(true); + switch (event->type()) { + case QEvent::FocusIn: + if (watched == m_container) { + setActive(true); + } + break; + + default: + break; + } + + return QWidget::eventFilter(watched, event); } void DolphinView::activate() diff --git a/src/views/dolphinview.h b/src/views/dolphinview.h index 6ebd91c53..c3981bef4 100644 --- a/src/views/dolphinview.h +++ b/src/views/dolphinview.h @@ -409,6 +409,9 @@ public slots: */ void setCategorizedSorting(bool categorized); + /** Activates the view if the item list container gets focus. */ + virtual bool eventFilter(QObject* watched, QEvent* event); + signals: /** * Is emitted if the view has been activated by e. g. a mouse click. @@ -550,9 +553,6 @@ signals: */ void writeStateChanged(bool isFolderWritable); -protected: - virtual void mouseReleaseEvent(QMouseEvent* event); - private slots: /** * Marks the view as active (DolphinView:isActive() will return true)