author | Wuzzy <Wuzzy2@mail.ru> |
Mon, 16 Sep 2019 17:53:19 +0200 | |
changeset 15416 | 2cde69c1c680 |
parent 10248 | 7b9b44a051f8 |
permissions | -rw-r--r-- |
#include <QEvent> #include <QWidget> #include <QStackedLayout> #include <QLabel> #include <QLineEdit> #include <QCheckBox> #include <QListView> #include "mouseoverfilter.h" #include "ui/page/AbstractPage.h" #include "ui_hwform.h" #include "hwform.h" #include "gameuiconfig.h" #include "DataManager.h" #include "SDLInteraction.h" MouseOverFilter::MouseOverFilter(QObject *parent) : QObject(parent) { } bool MouseOverFilter::eventFilter( QObject *dist, QEvent *event ) { AbstractPage* abstractpage; if (event->type() == QEvent::Enter) { QWidget * widget = dynamic_cast<QWidget*>(dist); abstractpage = qobject_cast<AbstractPage*>(ui->Pages->currentWidget()); if (widget->whatsThis() != NULL) abstractpage->setButtonDescription(widget->whatsThis()); else if (widget->toolTip() != NULL) abstractpage->setButtonDescription(widget->toolTip()); } else if (event->type() == QEvent::FocusIn) { abstractpage = qobject_cast<AbstractPage*>(ui->Pages->currentWidget()); // play a sound when mouse hovers certain ui elements QPushButton * button = dynamic_cast<QPushButton*>(dist); QLineEdit * textfield = dynamic_cast<QLineEdit*>(dist); QCheckBox * checkbox = dynamic_cast<QCheckBox*>(dist); QComboBox * droplist = dynamic_cast<QComboBox*>(dist); QSlider * slider = dynamic_cast<QSlider*>(dist); QTabWidget * tab = dynamic_cast<QTabWidget*>(dist); QListView * listview = dynamic_cast<QListView*>(dist); if (button || textfield || checkbox || droplist || slider || tab || listview) { SDLInteraction::instance().playSoundFile("/Sounds/steps.ogg"); } } else if (event->type() == QEvent::Leave) { abstractpage = qobject_cast<AbstractPage*>(ui->Pages->currentWidget()); if (abstractpage->getDefaultDescription() != NULL) { abstractpage->setButtonDescription( * abstractpage->getDefaultDescription()); } else abstractpage->setButtonDescription(""); } return false; } void MouseOverFilter::setUi(Ui_HWForm *uiForm) { ui = uiForm; }