| 134 | } |
| 135 | |
| 136 | bool 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 | |
| 174 | QWidget* SessionChooserDialog::mainWidget() const |
| 175 | { |
nothing calls this directly
no test coverage detected