Index: rbutil/rbutilqt/rbutilqt.cpp =================================================================== --- rbutil/rbutilqt/rbutilqt.cpp (revision 20895) +++ rbutil/rbutilqt/rbutilqt.cpp (working copy) @@ -123,9 +123,59 @@ connect(ui.actionInstall_Rockbox_Utility_on_player, SIGNAL(triggered()), this, SLOT(installPortable())); #endif + //fix acessibility + QTimer *timer = new QTimer(this); + connect(timer, SIGNAL(timeout()), this, SLOT(fixAcessibility())); + timer->start(200); } +// fix acessibility +void RbUtilQt::updateAcessibility(void) +{ + QAccessible::updateAccessibility(QObject::sender(), 0, QAccessible::ValueChanged); +} +void RbUtilQt::fixAcessibility(void) +{ + //search all QSpinBoxs + QList spinBoxes = findChildren(); + //check for new ones + for(int i=0; i < spinBoxes.size(); i++) + { + if(!m_fixedWidgets.contains(spinBoxes.at(i))) + { + qDebug() << "found a new QSpinBox"; + connect(spinBoxes.at(i),SIGNAL(valueChanged(int)),this,SLOT(updateAcessibility())); + m_fixedWidgets.append(spinBoxes.at(i)); + } + } + + //search all QDoubleSpinBoxs + QList doubleSpinBoxes = findChildren(); + //check for new ones + for(int i=0; i < doubleSpinBoxes.size(); i++) + { + if(!m_fixedWidgets.contains(doubleSpinBoxes.at(i))) + { + qDebug() << "found a new QDoubleSpinBox"; + connect(doubleSpinBoxes.at(i),SIGNAL(valueChanged(double)),this,SLOT(updateAcessibility())); + m_fixedWidgets.append(doubleSpinBoxes.at(i)); + } + } + + //search all QComboBoxs + QList comboBoxes = findChildren(); + for(int i=0; i < comboBoxes.size(); i++) + { + if(!m_fixedWidgets.contains(comboBoxes.at(i))) + { + qDebug() << "found a new QDoubleSpinBox"; + connect(comboBoxes.at(i),SIGNAL(currentIndexChanged(int)),this,SLOT(updateAcessibility())); + m_fixedWidgets.append(comboBoxes.at(i)); + } + } +} + void RbUtilQt::sysinfo(void) { Sysinfo *info = new Sysinfo(this); Index: rbutil/rbutilqt/rbutilqt.pro =================================================================== --- rbutil/rbutilqt/rbutilqt.pro (revision 20895) +++ rbutil/rbutilqt/rbutilqt.pro (working copy) @@ -151,7 +151,7 @@ } !dbg { CONFIG += release thread qt - DEFINES += QT_NO_DEBUG_OUTPUT + DEFINES -= QT_NO_DEBUG_OUTPUT message("release") } Index: rbutil/rbutilqt/rbutilqt.h =================================================================== --- rbutil/rbutilqt/rbutilqt.h (revision 20895) +++ rbutil/rbutilqt/rbutilqt.h (working copy) @@ -62,7 +62,9 @@ QString m_networkerror; bool m_gotInfo; bool m_auto; - + + //acessibility fix + QList m_fixedWidgets; private slots: void about(void); void help(void); @@ -109,6 +111,10 @@ void installPortable(void); void updateInfo(void); void updateTabs(int); + + // fix acessibility + void updateAcessibility(void); + void fixAcessibility(void); }; #endif