\sa actionNames()
*/
-const QString QAccessibleActionInterface::PressAction = QStringLiteral(QT_TR_NOOP("Press"));
-const QString QAccessibleActionInterface::IncreaseAction = QStringLiteral(QT_TR_NOOP("Increase"));
-const QString QAccessibleActionInterface::DecreaseAction = QStringLiteral(QT_TR_NOOP("Decrease"));
-const QString QAccessibleActionInterface::ShowMenuAction = QStringLiteral(QT_TR_NOOP("ShowMenu"));
-const QString QAccessibleActionInterface::SetFocusAction = QStringLiteral(QT_TR_NOOP("SetFocus"));
-const QString QAccessibleActionInterface::CheckAction = QStringLiteral(QT_TR_NOOP("Check"));
-const QString QAccessibleActionInterface::UncheckAction = QStringLiteral(QT_TR_NOOP("Uncheck"));
+struct QAccessibleActionStrings
+{
+ QAccessibleActionStrings() :
+ pressAction(QStringLiteral(QT_TRANSLATE_NOOP("QAccessibleActionInterface", "Press"))),
+ increaseAction(QStringLiteral(QT_TRANSLATE_NOOP("QAccessibleActionInterface", "Increase"))),
+ decreaseAction(QStringLiteral(QT_TRANSLATE_NOOP("QAccessibleActionInterface", "Decrease"))),
+ showMenuAction(QStringLiteral(QT_TRANSLATE_NOOP("QAccessibleActionInterface", "ShowMenu"))),
+ setFocusAction(QStringLiteral(QT_TRANSLATE_NOOP("QAccessibleActionInterface", "SetFocus"))),
+ checkAction(QStringLiteral(QT_TRANSLATE_NOOP("QAccessibleActionInterface", "Check"))),
+ uncheckAction(QStringLiteral(QT_TRANSLATE_NOOP("QAccessibleActionInterface", "Uncheck"))) {}
+
+ const QString pressAction;
+ const QString increaseAction;
+ const QString decreaseAction;
+ const QString showMenuAction;
+ const QString setFocusAction;
+ const QString checkAction;
+ const QString uncheckAction;
+};
+
+Q_GLOBAL_STATIC(QAccessibleActionStrings, accessibleActionStrings)
QString QAccessibleActionInterface::localizedActionName(const QString &actionName) const
{
QString QAccessibleActionInterface::localizedActionDescription(const QString &actionName) const
{
- if (actionName == PressAction)
- return QCoreApplication::translate("QAccessibleActionInterface", "Triggers the action");
- else if (actionName == IncreaseAction)
- return QCoreApplication::translate("QAccessibleActionInterface", "Increase the value");
- else if (actionName == DecreaseAction)
- return QCoreApplication::translate("QAccessibleActionInterface", "Decrease the value");
- else if (actionName == ShowMenuAction)
- return QCoreApplication::translate("QAccessibleActionInterface", "Shows the menu");
- else if (actionName == SetFocusAction)
- return QCoreApplication::translate("QAccessibleActionInterface", "Sets the focus");
- else if (actionName == CheckAction)
- return QCoreApplication::translate("QAccessibleActionInterface", "Checks the checkbox");
- else if (actionName == UncheckAction)
- return QCoreApplication::translate("QAccessibleActionInterface", "Unchecks the checkbox");
+ const QAccessibleActionStrings *strings = accessibleActionStrings();
+ if (actionName == strings->pressAction)
+ return tr("Triggers the action");
+ else if (actionName == strings->increaseAction)
+ return tr("Increase the value");
+ else if (actionName == strings->decreaseAction)
+ return tr("Decrease the value");
+ else if (actionName == strings->showMenuAction)
+ return tr("Shows the menu");
+ else if (actionName == strings->setFocusAction)
+ return tr("Sets the focus");
+ else if (actionName == strings->checkAction)
+ return tr("Checks the checkbox");
+ else if (actionName == strings->uncheckAction)
+ return tr("Unchecks the checkbox");
return QString();
}
+const QString &QAccessibleActionInterface::pressAction()
+{
+ return accessibleActionStrings()->pressAction;
+}
+
+const QString &QAccessibleActionInterface::increaseAction()
+{
+ return accessibleActionStrings()->increaseAction;
+}
+
+const QString &QAccessibleActionInterface::decreaseAction()
+{
+ return accessibleActionStrings()->decreaseAction;
+}
+
+const QString &QAccessibleActionInterface::showMenuAction()
+{
+ return accessibleActionStrings()->showMenuAction;
+}
+
+const QString &QAccessibleActionInterface::setFocusAction()
+{
+ return accessibleActionStrings()->setFocusAction;
+}
+
+const QString &QAccessibleActionInterface::checkAction()
+{
+ return accessibleActionStrings()->checkAction;
+}
+
+const QString &QAccessibleActionInterface::uncheckAction()
+{
+ return accessibleActionStrings()->uncheckAction;
+}
/*!
\internal
if (widget()->isEnabled()) {
switch (role()) {
case ButtonMenu:
- names << ShowMenuAction;
+ names << showMenuAction();
break;
case RadioButton:
- names << CheckAction;
+ names << checkAction();
break;
default:
if (button()->isCheckable()) {
if (state() & Checked) {
- names << UncheckAction;
+ names << uncheckAction();
} else {
// FIXME
// QCheckBox *cb = qobject_cast<QCheckBox*>(object());
// if (!cb || !cb->isTristate() || cb->checkState() == Qt::PartiallyChecked)
- names << CheckAction;
+ names << checkAction();
}
} else {
- names << PressAction;
+ names << pressAction();
}
break;
}
{
if (!widget()->isEnabled())
return;
- if (actionName == PressAction ||
- actionName == ShowMenuAction) {
+ if (actionName == pressAction() ||
+ actionName == showMenuAction()) {
#ifndef QT_NO_MENU
QPushButton *pb = qobject_cast<QPushButton*>(object());
if (pb && pb->menu())
else
#endif
button()->animateClick();
- } else if (actionName == CheckAction) {
+ } else if (actionName == checkAction()) {
button()->setChecked(true);
- } else if (actionName == UncheckAction) {
+ } else if (actionName == uncheckAction()) {
button()->setChecked(false);
} else {
QAccessibleWidget::doAction(actionName);
QStringList QAccessibleButton::keyBindingsForAction(const QString &actionName) const
{
- if (actionName == PressAction) {
+ if (actionName == pressAction()) {
#ifndef QT_NO_SHORTCUT
return QStringList() << button()->shortcut().toString();
#endif
QStringList names;
if (widget()->isEnabled()) {
if (toolButton()->menu())
- names << ShowMenuAction;
+ names << showMenuAction();
if (toolButton()->popupMode() != QToolButton::InstantPopup)
names << QAccessibleButton::actionNames();
}
if (!widget()->isEnabled())
return;
- if (actionName == PressAction) {
+ if (actionName == pressAction()) {
button()->click();
- } else if (actionName == ShowMenuAction) {
+ } else if (actionName == showMenuAction()) {
if (toolButton()->popupMode() != QToolButton::InstantPopup) {
toolButton()->setDown(true);
#ifndef QT_NO_MENU
void tst_QAccessibility::actionTest()
{
{
- QCOMPARE(QAccessibleActionInterface::PressAction, QString("Press"));
+ QCOMPARE(QAccessibleActionInterface::pressAction(), QString(QStringLiteral("Press")));
QWidget *widget = new QWidget;
widget->setFocusPolicy(Qt::NoFocus);
// no actions by default, except when focusable
QCOMPARE(actions->actionNames(), QStringList());
widget->setFocusPolicy(Qt::StrongFocus);
- QCOMPARE(actions->actionNames(), QStringList() << QAccessibleActionInterface::SetFocusAction);
+ QCOMPARE(actions->actionNames(), QStringList(QAccessibleActionInterface::setFocusAction()));
delete interface;
delete widget;
QVERIFY(actions);
// Make sure the "primary action" press comes first!
- QCOMPARE(actions->actionNames(), QStringList() << QAccessibleActionInterface::PressAction << QAccessibleActionInterface::SetFocusAction);
+ QCOMPARE(actions->actionNames(), QStringList() << QAccessibleActionInterface::pressAction() << QAccessibleActionInterface::setFocusAction());
- actions->doAction(QAccessibleActionInterface::SetFocusAction);
+ actions->doAction(QAccessibleActionInterface::setFocusAction());
QTest::qWait(500);
QCOMPARE(button->hasFocus(), true);
connect(button, SIGNAL(clicked()), this, SLOT(onClicked()));
QCOMPARE(click_count, 0);
- actions->doAction(QAccessibleActionInterface::PressAction);
+ actions->doAction(QAccessibleActionInterface::pressAction());
QTest::qWait(500);
QCOMPARE(click_count, 1);
// buttons only have a click action
QCOMPARE(actionInterface->actionNames().size(), 2);
- QCOMPARE(actionInterface->actionNames(), QStringList() << QAccessibleActionInterface::PressAction << QAccessibleActionInterface::SetFocusAction);
+ QCOMPARE(actionInterface->actionNames(), QStringList() << QAccessibleActionInterface::pressAction() << QAccessibleActionInterface::setFocusAction());
QCOMPARE(pushButton.clickCount, 0);
- actionInterface->doAction(QAccessibleActionInterface::PressAction);
+ actionInterface->doAction(QAccessibleActionInterface::pressAction());
QTest::qWait(500);
QCOMPARE(pushButton.clickCount, 1);
delete interface;
interface = QAccessible::queryAccessibleInterface(&toggleButton);
actionInterface = interface->actionInterface();
QCOMPARE(interface->role(), QAccessible::CheckBox);
- QCOMPARE(actionInterface->actionNames(), QStringList() << QAccessibleActionInterface::CheckAction << QAccessibleActionInterface::SetFocusAction);
- QCOMPARE(actionInterface->localizedActionDescription(QAccessibleActionInterface::CheckAction), QString("Checks the checkbox"));
+ QCOMPARE(actionInterface->actionNames(), QStringList() << QAccessibleActionInterface::checkAction() << QAccessibleActionInterface::setFocusAction());
+ QCOMPARE(actionInterface->localizedActionDescription(QAccessibleActionInterface::checkAction()), QString("Checks the checkbox"));
QVERIFY(!toggleButton.isChecked());
QVERIFY((interface->state() & QAccessible::Checked) == 0);
- actionInterface->doAction(QAccessibleActionInterface::CheckAction);
+ actionInterface->doAction(QAccessibleActionInterface::checkAction());
QTest::qWait(500);
QVERIFY(toggleButton.isChecked());
- QCOMPARE(actionInterface->actionNames().at(0), QAccessibleActionInterface::UncheckAction);
+ QCOMPARE(actionInterface->actionNames().at(0), QAccessibleActionInterface::uncheckAction());
QVERIFY(interface->state() & QAccessible::Checked);
delete interface;
QAccessibleInterface *interface = QAccessible::queryAccessibleInterface(&menuButton);
QCOMPARE(interface->role(), QAccessible::ButtonMenu);
QVERIFY(interface->state() & QAccessible::HasPopup);
- QCOMPARE(interface->actionInterface()->actionNames(), QStringList() << QAccessibleActionInterface::ShowMenuAction << QAccessibleActionInterface::SetFocusAction);
+ QCOMPARE(interface->actionInterface()->actionNames(), QStringList() << QAccessibleActionInterface::showMenuAction() << QAccessibleActionInterface::setFocusAction());
// showing the menu enters a new event loop...
-// interface->actionInterface()->doAction(QAccessibleActionInterface::ShowMenuAction);
+// interface->actionInterface()->doAction(QAccessibleActionInterface::showMenuAction());
// QTest::qWait(500);
delete interface;
delete menu;
interface = QAccessible::queryAccessibleInterface(&checkBox);
actionInterface = interface->actionInterface();
QCOMPARE(interface->role(), QAccessible::CheckBox);
- QCOMPARE(actionInterface->actionNames(), QStringList() << QAccessibleActionInterface::CheckAction << QAccessibleActionInterface::SetFocusAction);
+ QCOMPARE(actionInterface->actionNames(), QStringList() << QAccessibleActionInterface::checkAction() << QAccessibleActionInterface::setFocusAction());
QVERIFY((interface->state() & QAccessible::Checked) == 0);
- actionInterface->doAction(QAccessibleActionInterface::CheckAction);
+ actionInterface->doAction(QAccessibleActionInterface::checkAction());
QTest::qWait(500);
- QCOMPARE(actionInterface->actionNames(), QStringList() << QAccessibleActionInterface::UncheckAction << QAccessibleActionInterface::SetFocusAction);
+ QCOMPARE(actionInterface->actionNames(), QStringList() << QAccessibleActionInterface::uncheckAction() << QAccessibleActionInterface::setFocusAction());
QVERIFY(interface->state() & QAccessible::Checked);
QVERIFY(checkBox.isChecked());
delete interface;
interface = QAccessible::queryAccessibleInterface(&radio);
actionInterface = interface->actionInterface();
QCOMPARE(interface->role(), QAccessible::RadioButton);
- QCOMPARE(actionInterface->actionNames(), QStringList() << QAccessibleActionInterface::CheckAction << QAccessibleActionInterface::SetFocusAction);
+ QCOMPARE(actionInterface->actionNames(), QStringList() << QAccessibleActionInterface::checkAction() << QAccessibleActionInterface::setFocusAction());
QVERIFY((interface->state() & QAccessible::Checked) == 0);
- actionInterface->doAction(QAccessibleActionInterface::CheckAction);
+ actionInterface->doAction(QAccessibleActionInterface::checkAction());
QTest::qWait(500);
- QCOMPARE(actionInterface->actionNames(), QStringList() << QAccessibleActionInterface::CheckAction << QAccessibleActionInterface::SetFocusAction);
+ QCOMPARE(actionInterface->actionNames(), QStringList() << QAccessibleActionInterface::checkAction() << QAccessibleActionInterface::setFocusAction());
QVERIFY(interface->state() & QAccessible::Checked);
QVERIFY(checkBox.isChecked());
delete interface;
// Test that sending a press action to a tab selects it.
QVERIFY(child2->actionInterface());
- QCOMPARE(child2->actionInterface()->actionNames(), QStringList() << QAccessibleActionInterface::PressAction);
+ QCOMPARE(child2->actionInterface()->actionNames(), QStringList() << QAccessibleActionInterface::pressAction());
QCOMPARE(tabBar->currentIndex(), 0);
- child2->actionInterface()->doAction(QAccessibleActionInterface::PressAction);
+ child2->actionInterface()->doAction(QAccessibleActionInterface::pressAction());
QCOMPARE(tabBar->currentIndex(), 1);
delete tabBar;
QVERIFY(iFile->actionInterface());
- QCOMPARE(iFile->actionInterface()->actionNames(), QStringList() << QAccessibleActionInterface::ShowMenuAction);
+ QCOMPARE(iFile->actionInterface()->actionNames(), QStringList() << QAccessibleActionInterface::showMenuAction());
QCOMPARE(iSeparator->actionInterface()->actionNames(), QStringList());
- QCOMPARE(iHelp->actionInterface()->actionNames(), QStringList() << QAccessibleActionInterface::ShowMenuAction);
- QCOMPARE(iAction->actionInterface()->actionNames(), QStringList() << QAccessibleActionInterface::PressAction);
+ QCOMPARE(iHelp->actionInterface()->actionNames(), QStringList() << QAccessibleActionInterface::showMenuAction());
+ QCOMPARE(iAction->actionInterface()->actionNames(), QStringList() << QAccessibleActionInterface::pressAction());
bool menuFade = qApp->isEffectEnabled(Qt::UI_FadeMenu);
int menuFadeDelay = 300;
- iFile->actionInterface()->doAction(QAccessibleActionInterface::ShowMenuAction);
+ iFile->actionInterface()->doAction(QAccessibleActionInterface::showMenuAction());
if(menuFade)
QTest::qWait(menuFadeDelay);
QVERIFY(file->isVisible() && !edit->isVisible() && !help->isVisible());
- iEdit->actionInterface()->doAction(QAccessibleActionInterface::ShowMenuAction);
+ iEdit->actionInterface()->doAction(QAccessibleActionInterface::showMenuAction());
if(menuFade)
QTest::qWait(menuFadeDelay);
QVERIFY(!file->isVisible() && edit->isVisible() && !help->isVisible());
- iHelp->actionInterface()->doAction(QAccessibleActionInterface::ShowMenuAction);
+ iHelp->actionInterface()->doAction(QAccessibleActionInterface::showMenuAction());
if(menuFade)
QTest::qWait(menuFadeDelay);
QVERIFY(!file->isVisible() && !edit->isVisible() && help->isVisible());
- iAction->actionInterface()->doAction(QAccessibleActionInterface::ShowMenuAction);
+ iAction->actionInterface()->doAction(QAccessibleActionInterface::showMenuAction());
if(menuFade)
QTest::qWait(menuFadeDelay);
QVERIFY(!file->isVisible() && !edit->isVisible() && !help->isVisible());
QCOMPARE(iFileSave->role(), QAccessible::MenuItem);
QCOMPARE(iFileSeparator->role(), QAccessible::Separator);
QCOMPARE(iFileExit->role(), QAccessible::MenuItem);
- QCOMPARE(iFileNew->actionInterface()->actionNames(), QStringList() << QAccessibleActionInterface::ShowMenuAction);
- QCOMPARE(iFileOpen->actionInterface()->actionNames(), QStringList() << QAccessibleActionInterface::PressAction);
- QCOMPARE(iFileSave->actionInterface()->actionNames(), QStringList() << QAccessibleActionInterface::PressAction);
+ QCOMPARE(iFileNew->actionInterface()->actionNames(), QStringList() << QAccessibleActionInterface::showMenuAction());
+ QCOMPARE(iFileOpen->actionInterface()->actionNames(), QStringList() << QAccessibleActionInterface::pressAction());
+ QCOMPARE(iFileSave->actionInterface()->actionNames(), QStringList() << QAccessibleActionInterface::pressAction());
QCOMPARE(iFileSeparator->actionInterface()->actionNames(), QStringList());
- QCOMPARE(iFileExit->actionInterface()->actionNames(), QStringList() << QAccessibleActionInterface::PressAction);
+ QCOMPARE(iFileExit->actionInterface()->actionNames(), QStringList() << QAccessibleActionInterface::pressAction());
QAccessibleInterface *iface = 0;
QAccessibleInterface *iface2 = 0;
if (menuFade)
QTest::qWait(menuFadeDelay);
- iFile->actionInterface()->doAction(QAccessibleActionInterface::ShowMenuAction);
- iFileNew->actionInterface()->doAction(QAccessibleActionInterface::ShowMenuAction);
+ iFile->actionInterface()->doAction(QAccessibleActionInterface::showMenuAction());
+ iFileNew->actionInterface()->doAction(QAccessibleActionInterface::showMenuAction());
QVERIFY(file->isVisible());
QVERIFY(fileNew->isVisible());
QVERIFY(!combo.view()->isVisible());
QVERIFY(iface->actionInterface());
- QCOMPARE(iface->actionInterface()->actionNames(), QStringList() << QAccessibleActionInterface::ShowMenuAction);
- iface->actionInterface()->doAction(QAccessibleActionInterface::ShowMenuAction);
+ QCOMPARE(iface->actionInterface()->actionNames(), QStringList() << QAccessibleActionInterface::showMenuAction());
+ iface->actionInterface()->doAction(QAccessibleActionInterface::showMenuAction());
QVERIFY(combo.view()->isVisible());
delete iface;