diff options
Diffstat (limited to 'client/widgets')
| -rw-r--r-- | client/widgets/combobox.cc | 13 | 
1 files changed, 13 insertions, 0 deletions
| diff --git a/client/widgets/combobox.cc b/client/widgets/combobox.cc index eed2d10..935f620 100644 --- a/client/widgets/combobox.cc +++ b/client/widgets/combobox.cc @@ -93,6 +93,8 @@ ComboBox::ComboBox(QDomNode &node, MacroWindow *macrowindow)    // Make empty default selection.    combobox->setCurrentIndex(-1); +  combobox->installEventFilter(this); +    QDomElement elem = node.toElement();    combotype = SELECT; @@ -213,15 +215,26 @@ void ComboBox::changed()    emit eventOnChange();  } +#include <QKeyEvent>  bool ComboBox::eventFilter(QObject *obj, QEvent *event)  {    if(ignoreChangeEvents == true) return false; +    if(combotype == SELECT) {      if(event->type() == QEvent::MouseButtonRelease) {        if(enabled()) combobox->showPopup();      }    } +  if(event->type() == QEvent::KeyPress) { +    QKeyEvent *ke = (QKeyEvent*)event; +    //    printf("KEY: %d\n", ke->key()); +    //    if(ke->key() == Qt::Key_Up || ke->key() == Qt::Key_Down) { +    if(ke->key() == Qt::Key_Space) { +      if(enabled()) combobox->showPopup(); +    } +  } +    return QObject::eventFilter(obj, event);  } | 
