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.
This commit is contained in:
Frank Reininghaus 2011-10-14 09:21:19 +02:00
parent d7c4fdedd0
commit 1abb47fba7
2 changed files with 17 additions and 6 deletions

View file

@ -164,6 +164,7 @@ DolphinView::DolphinView(const KUrl& url, QWidget* parent) :
m_container = new DolphinItemListContainer(m_dirLister, this);
m_container->setVisibleRoles(QList<QByteArray>() << "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()

View file

@ -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)