vlayout->addWidget(label);
searchField = new QLineEdit(this);
+ setFocusProxy(searchField);
+ searchField->installEventFilter(this);
vlayout->addWidget(searchField);
connect(searchField, SIGNAL(textChanged(const QString &)), this,
SLOT(filterChanged()));
}
}
-void BookmarkWidget::focusInEvent(QFocusEvent *e)
-{
- if (e->reason() != Qt::MouseFocusReason) {
- searchField->selectAll();
- searchField->setFocus();
-
- QModelIndex index = treeView->indexAt(QPoint(1, 1));
- if (index.isValid())
- treeView->setCurrentIndex(index);
-
- }
-}
-
bool BookmarkWidget::eventFilter(QObject *object, QEvent *e)
{
if ((object == this) || (object == treeView->viewport())) {
}
}
}
+ } else if (object == searchField && e->type() == QEvent::FocusIn) {
+ if (static_cast<QFocusEvent *>(e)->reason() != Qt::MouseFocusReason) {
+ searchField->selectAll();
+ searchField->setFocus();
+
+ QModelIndex index = treeView->indexAt(QPoint(1, 1));
+ if (index.isValid())
+ treeView->setCurrentIndex(index);
+ }
}
return QWidget::eventFilter(object, e);
}
private:
void setup(bool showButtons);
void expandItems();
- void focusInEvent(QFocusEvent *e);
bool eventFilter(QObject *object, QEvent *event);
private:
, m_expandDepth(-2)
{
m_contentWidget = m_helpEngine->contentWidget();
+ m_contentWidget->installEventFilter(this);
m_contentWidget->viewport()->installEventFilter(this);
m_contentWidget->setContextMenuPolicy(Qt::CustomContextMenu);
+ setFocusProxy(m_contentWidget);
QVBoxLayout *layout = new QVBoxLayout(this);
layout->setMargin(4);
m_contentWidget->expandToDepth(depth);
}
-void ContentWindow::focusInEvent(QFocusEvent *e)
-{
- if (e->reason() != Qt::MouseFocusReason)
- m_contentWidget->setFocus();
-}
-
-void ContentWindow::keyPressEvent(QKeyEvent *e)
-{
- if (e->key() == Qt::Key_Escape)
- emit escapePressed();
-}
-
bool ContentWindow::eventFilter(QObject *o, QEvent *e)
{
if (m_contentWidget && o == m_contentWidget->viewport()
itemClicked(index);
}
}
+ } else if (o == m_contentWidget && e->type() == QEvent::KeyPress) {
+ if (static_cast<QKeyEvent *>(e)->key() == Qt::Key_Escape)
+ emit escapePressed();
}
return QWidget::eventFilter(o, e);
}
void itemClicked(const QModelIndex &index);
private:
- void focusInEvent(QFocusEvent *e);
- void keyPressEvent(QKeyEvent *e);
bool eventFilter(QObject *o, QEvent *e);
bool isPdfFile(QHelpContentItem *item) const;
m_searchLineEdit = new QLineEdit();
l->setBuddy(m_searchLineEdit);
+ setFocusProxy(m_searchLineEdit);
connect(m_searchLineEdit, SIGNAL(textChanged(QString)), this,
SLOT(filterIndices(QString)));
m_searchLineEdit->installEventFilter(this);
break;
default: ; // stop complaining
}
+ } else if (obj == m_searchLineEdit
+ && e->type() == QEvent::FocusIn
+ && static_cast<QFocusEvent *>(e)->reason() != Qt::MouseFocusReason) {
+ m_searchLineEdit->selectAll();
+ m_searchLineEdit->setFocus();
} else if (obj == m_indexWidget && e->type() == QEvent::ContextMenu) {
QContextMenuEvent *ctxtEvent = static_cast<QContextMenuEvent*>(e);
QModelIndex idx = m_indexWidget->indexAt(ctxtEvent->pos());
m_indexWidget->activateCurrentItem();
}
#endif
+
return QWidget::eventFilter(obj, e);
}
m_searchLineEdit->setText(text);
}
-void IndexWindow::focusInEvent(QFocusEvent *e)
-{
- if (e->reason() != Qt::MouseFocusReason) {
- m_searchLineEdit->selectAll();
- m_searchLineEdit->setFocus();
- }
-}
-
void IndexWindow::open(QHelpIndexWidget* indexWidget, const QModelIndex &index)
{
QHelpIndexModel *model = qobject_cast<QHelpIndexModel*>(indexWidget->model());
private:
bool eventFilter(QObject *obj, QEvent *e);
- void focusInEvent(QFocusEvent *e);
void open(QHelpIndexWidget* indexWidget, const QModelIndex &index);
QLineEdit *m_searchLineEdit;