MCPcopy Create free account
hub / github.com/KDE/kdevelop / eventFilter

Method eventFilter

kdevplatform/shell/sessionchooserdialog.cpp:136–172  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

134}
135
136bool SessionChooserDialog::eventFilter(QObject* object, QEvent* event)
137{
138 if(object == m_view && event->type() == QEvent::Leave ) {
139 m_deleteButtonTimer.stop();
140 m_deleteButton->hide();
141 // don't eat the event, pass on
142 } else if (object == m_filter && event->type() == QEvent::KeyPress) {
143 auto *keyEvent = static_cast<QKeyEvent*>(event);
144 if (keyEvent->key() == Qt::Key_Return) {
145 accept();
146 // don't eat the event, pass on
147 } else if (keyEvent->key() == Qt::Key_Up || keyEvent->key() == Qt::Key_Down) {
148 QModelIndex currentIndex = m_view->selectionModel()->currentIndex();
149 int selectRow = -1;
150 if (keyEvent->key() == Qt::Key_Up) {
151 if(!currentIndex.isValid()) {
152 selectRow = m_model->rowCount()-1;
153 } else if(currentIndex.row()-1 >= 0) {
154 selectRow = currentIndex.row()-1;
155 }
156 } else {
157 if(!currentIndex.isValid()) {
158 selectRow = 0;
159 } else if(currentIndex.row()+1 < m_model->rowCount()) {
160 selectRow = currentIndex.row()+1;
161 }
162 }
163
164 if (selectRow != -1) {
165 m_view->selectionModel()->setCurrentIndex(m_model->index(selectRow, 0), QItemSelectionModel::ClearAndSelect | QItemSelectionModel::Rows);
166 }
167 return true; // eat event
168 }
169 }
170
171 return QDialog::eventFilter(object, event);
172}
173
174QWidget* SessionChooserDialog::mainWidget() const
175{

Callers

nothing calls this directly

Calls 10

stopMethod · 0.80
setCurrentIndexMethod · 0.80
eventFilterFunction · 0.50
typeMethod · 0.45
keyMethod · 0.45
currentIndexMethod · 0.45
isValidMethod · 0.45
rowCountMethod · 0.45
rowMethod · 0.45
indexMethod · 0.45

Tested by

no test coverage detected