- }
- // Ctrl-Down activates downPB
- else if (keyPressed == Qt::Key_Down) {
- if (keyModifiers == Qt::ControlModifier) {
- if (downPB->isEnabled())
- downPB_clicked();
+ } else if (etype == QEvent::FocusIn) {
+ if (selectedHasFocus_) {
+ selectedHasFocus_ = false;
+ updateHook();
+ }
+ return false;
+ }
+ } else if (obj == selectedLV) {
+ if (etype == QEvent::KeyPress) {
+ QKeyEvent * keyEvent = static_cast<QKeyEvent *>(event);
+ int const keyPressed = keyEvent->key();
+ Qt::KeyboardModifiers const keyModifiers = keyEvent->modifiers();
+ // Delete or backspace key will delete current item
+ // ...with control modifier will clear the list
+ if (keyPressed == Qt::Key_Delete || keyPressed == Qt::Key_Backspace) {
+ if (keyModifiers == Qt::NoModifier && deletePB->isEnabled()) {
+ deletePB_clicked();
+ updateHook();
+ } else if (keyModifiers == Qt::ControlModifier) {
+ selectedModel->removeRows(0, selectedModel->rowCount());
+ updateHook();
+ } else
+ return QObject::eventFilter(obj, event);
+ }
+ // Ctrl-Up activates upPB
+ else if (keyPressed == Qt::Key_Up) {
+ if (keyModifiers == Qt::ControlModifier) {
+ if (upPB->isEnabled())
+ upPB_clicked();
+ event->accept();
+ return true;
+ }
+ }
+ // Ctrl-Down activates downPB
+ else if (keyPressed == Qt::Key_Down) {
+ if (keyModifiers == Qt::ControlModifier) {
+ if (downPB->isEnabled())
+ downPB_clicked();
+ event->accept();
+ return true;
+ }
+ }
+ else if (keyPressed == Qt::Key_Left) {
+ focusAndHighlight(availableLV);