author | unc0rr |
Thu, 16 Feb 2012 20:32:47 +0400 | |
changeset 6690 | 46b3f4776538 |
parent 6616 | f77bb02b669f |
child 6930 | d187ea93fc4f |
permissions | -rw-r--r-- |
#include <QEvent> #include <QWidget> #include <QStackedLayout> #include <QLabel> #include <QLineEdit> #include <QCheckBox> #include "mouseoverfilter.h" #include "ui/page/AbstractPage.h" #include "ui_hwform.h" #include "hwform.h" #include "gameuiconfig.h" #include "HWDataManager.h" #include "SDLInteraction.h" MouseOverFilter::MouseOverFilter(QObject *parent) : QObject(parent) { } bool MouseOverFilter::eventFilter( QObject *dist, QEvent *event ) { 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()); // 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); if (HWForm::config->isFrontendSoundEnabled() && (button || textfield || checkbox || droplist || slider || tab)) { HWDataManager & dataMgr = HWDataManager::instance(); SDLInteraction::instance().playSoundFile(dataMgr.findFileForRead("Sounds/steps.ogg")); } return true; } else if (event->type() == QEvent::Leave) { abstractpage = qobject_cast<AbstractPage*>(ui->Pages->currentWidget()); if (abstractpage->getDefautDescription() != NULL) { abstractpage->setButtonDescription( * abstractpage->getDefautDescription()); } else abstractpage->setButtonDescription(""); } return false; } void MouseOverFilter::setUi(Ui_HWForm *uiForm) { ui = uiForm; }