Index: rbutil/rbutilqt/rbutilqt.cpp =================================================================== --- rbutil/rbutilqt/rbutilqt.cpp (revision 20895) +++ rbutil/rbutilqt/rbutilqt.cpp (working copy) @@ -123,9 +123,91 @@ 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) +{ + // check if sender is a Tabbar + QTabBar *tabBar = qobject_cast(QObject::sender()); + if(tabBar != NULL) + { + qDebug() << "update tabBar"; + // change accessible Name, and tell accessibility layer. + QString text =tabBar->tabText(tabBar->currentIndex()).startsWith("&") ? + tabBar->tabText(tabBar->currentIndex()).remove(0,1) : + tabBar->tabText(tabBar->currentIndex()); + tabBar->setAccessibleName(text); + QAccessible::updateAccessibility(QObject::sender(), 0, QAccessible::Focus); + } + else // every other widget to fix + { + // tell accessibility layer, value has changed + 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)); + } + } + + //search tabbars + QList tabBars = findChildren(); + for(int i=0; i < tabBars.size(); i++) + { + if(!m_fixedWidgets.contains(tabBars.at(i))) + { + qDebug() << "found a new QTabBar"; + QString text =tabBars.at(i)->tabText(tabBars.at(i)->currentIndex()).startsWith("&") ? + tabBars.at(i)->tabText(tabBars.at(i)->currentIndex()).remove(0,1) : + tabBars.at(i)->tabText(tabBars.at(i)->currentIndex()); + tabBars.at(i)->setAccessibleName(text); + connect(tabBars.at(i),SIGNAL(currentChanged(int)),this,SLOT(updateAcessibility())); + m_fixedWidgets.append(tabBars.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/encttscfggui.cpp =================================================================== --- rbutil/rbutilqt/encttscfggui.cpp (revision 20895) +++ rbutil/rbutilqt/encttscfggui.cpp (working copy) @@ -91,6 +91,7 @@ case EncTtsSetting::eDOUBLE: { QDoubleSpinBox *spinBox = new QDoubleSpinBox(this); + spinBox->setAccessibleName(setting->name()); spinBox->setMinimum(setting->min().toDouble()); spinBox->setMaximum(setting->max().toDouble()); spinBox->setSingleStep(0.01); @@ -102,6 +103,7 @@ case EncTtsSetting::eINT: { QSpinBox *spinBox = new QSpinBox(this); + spinBox->setAccessibleName(setting->name()); spinBox->setMinimum(setting->min().toInt()); spinBox->setMaximum(setting->max().toInt()); spinBox->setValue(setting->current().toInt()); @@ -112,6 +114,7 @@ case EncTtsSetting::eSTRING: { QLineEdit *lineEdit = new QLineEdit(this); + lineEdit->setAccessibleName(setting->name()); lineEdit->setText(setting->current().toString()); connect(lineEdit,SIGNAL(textChanged(QString)),this,SLOT(updateSetting())); value = lineEdit; @@ -125,6 +128,7 @@ case EncTtsSetting::eSTRINGLIST: { QComboBox *comboBox = new QComboBox(this); + comboBox->setAccessibleName(setting->name()); comboBox->addItems(setting->list()); int index = comboBox->findText(setting->current().toString()); comboBox->setCurrentIndex(index); @@ -135,6 +139,7 @@ case EncTtsSetting::eBOOL: { QCheckBox *checkbox = new QCheckBox(this); + checkbox->setAccessibleName(setting->name()); checkbox->setCheckState(setting->current().toBool() == true ? Qt::Checked : Qt::Unchecked); connect(checkbox,SIGNAL(stateChanged(int)),this,SLOT(updateSetting())); value = checkbox; Index: rbutil/rbutilqt/createvoicefrm.ui =================================================================== --- rbutil/rbutilqt/createvoicefrm.ui (revision 20895) +++ rbutil/rbutilqt/createvoicefrm.ui (working copy) @@ -43,7 +43,11 @@ - + + + Language + + @@ -155,6 +159,9 @@ + + Wavtrim Threshold + 5000 @@ -168,7 +175,9 @@ + comboLanguage change + wavtrimthreshold buttonOk buttonCancel Index: rbutil/rbutilqt/rbutilqtfrm.ui =================================================================== --- rbutil/rbutilqt/rbutilqtfrm.ui (revision 20895) +++ rbutil/rbutilqt/rbutilqtfrm.ui (working copy) @@ -133,9 +133,6 @@ &Quick Start - - Welcome - @@ -227,9 +224,6 @@ &Installation - - Basic Rockbox installation - @@ -324,9 +318,6 @@ &Extras - - Install extras for Rockbox - @@ -438,9 +429,6 @@ &Accessibility - - Install accessibility add-ons - @@ -550,9 +538,6 @@ &Uninstallation - - Uninstall Rockbox - @@ -644,9 +629,6 @@ &Manual - - View and download the manual - 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 Index: rbutil/rbutilqt/configure.cpp =================================================================== --- rbutil/rbutilqt/configure.cpp (revision 20895) +++ rbutil/rbutilqt/configure.cpp (working copy) @@ -659,7 +659,7 @@ int index = ui.comboTts->currentIndex(); TTSBase* tts = TTSBase::getTTS(this,ui.comboTts->itemData(index).toString()); - EncTtsCfgGui gui(this,tts,TTSBase::getTTSName(RbSettings::value(RbSettings::Tts).toString())); + EncTtsCfgGui gui(this,tts,TTSBase::getTTSName(ui.comboTts->itemData(index).toString())); gui.exec(); updateTtsState(ui.comboTts->currentIndex()); } Index: rbutil/rbutilqt/installtalkfrm.ui =================================================================== --- rbutil/rbutilqt/installtalkfrm.ui (revision 20895) +++ rbutil/rbutilqt/installtalkfrm.ui (working copy) @@ -37,7 +37,11 @@ - + + + Talkfile Folder + +