summaryrefslogtreecommitdiffstats
path: root/src/plugins/accessible/widgets/qaccessiblemenu.cpp
diff options
context:
space:
mode:
authorFrederik Gladhorn <frederik.gladhorn@nokia.com>2011-10-06 14:54:49 +0200
committerQt by Nokia <qt-info@nokia.com>2011-10-19 19:25:42 +0200
commit4dc25c1f2995a5e02da47f0f6f3522af9eb6f78c (patch)
tree86391ff6c57ed46295df684a4c87ba9db0b73263 /src/plugins/accessible/widgets/qaccessiblemenu.cpp
parent663cd1771883e1e7ac9c1a0dc8b797601b59ba17 (diff)
Refactor QAccessibleActionInterface.
Some refinements done by Jan-Arve Sæther. Change-Id: I99195b3c7273316cfa9c46e451924bbcfddd11a9 Reviewed-by: Jan-Arve Sæther <jan-arve.saether@nokia.com>
Diffstat (limited to 'src/plugins/accessible/widgets/qaccessiblemenu.cpp')
-rw-r--r--src/plugins/accessible/widgets/qaccessiblemenu.cpp170
1 files changed, 58 insertions, 112 deletions
diff --git a/src/plugins/accessible/widgets/qaccessiblemenu.cpp b/src/plugins/accessible/widgets/qaccessiblemenu.cpp
index 48fb471ace..5eaf5bc2c9 100644
--- a/src/plugins/accessible/widgets/qaccessiblemenu.cpp
+++ b/src/plugins/accessible/widgets/qaccessiblemenu.cpp
@@ -110,29 +110,6 @@ QAccessible::State QAccessibleMenu::state(int child) const
return s;
}
-QString QAccessibleMenu::actionText(int action, QAccessible::Text text, int child) const
-{
- Q_ASSERT(child == 0);
- return QAccessibleWidget::actionText(action, text, child);
-}
-
-bool QAccessibleMenu::doAction(int act, int child, const QVariantList &)
-{
-// Q_ASSERT(child == 0);
- if (!child || act != QAccessible::DefaultAction)
- return false;
-
- QAction *action = menu()->actions().value(child-1, 0);
- if (!action || !action->isEnabled())
- return false;
-
- if (action->menu() && action->menu()->isVisible())
- action->menu()->hide();
- else
- menu()->setActiveAction(action);
- return true;
-}
-
QAccessibleInterface *QAccessibleMenu::child(int index) const
{
if (index < childCount())
@@ -246,35 +223,12 @@ QAccessible::State QAccessibleMenuBar::state(int child) const
return s;
}
-QString QAccessibleMenuBar::actionText(int action, QAccessible::Text text, int child) const
-{
- Q_ASSERT(child == 0);
- return QAccessibleWidget::actionText(action, text, child);
-}
-
-bool QAccessibleMenuBar::doAction(int, int child, const QVariantList &)
-{
-// Q_ASSERT(child == 0);
- QAction *action = menuBar()->actions().value(child-1, 0);
- if (!action || !action->isEnabled())
- return false;
- if (action->menu() && action->menu()->isVisible())
- action->menu()->hide();
- else {
- menuBar()->setActiveAction(action);
- }
- return true;
-
- return false;
-}
-
#endif // QT_NO_MENUBAR
QAccessibleMenuItem::QAccessibleMenuItem(QWidget *owner, QAction *action) : m_action(action), m_owner(owner)
{
}
-
QAccessibleMenuItem::~QAccessibleMenuItem()
{}
@@ -292,66 +246,6 @@ int QAccessibleMenuItem::childCount() const
return m_action->menu() ? 1 : 0;
}
-QString QAccessibleMenuItem::actionText(int action, Text text, int child) const
-{
- Q_ASSERT(child == 0);
- if (!m_action || m_action->isSeparator())
- return QString();
-
- if (text == Name && ((action == Press) || (action == DefaultAction))) {
- if (m_action->menu()) {
- return QMenu::tr("Open");
- }
- return QMenu::tr("Execute");
- }
- return QString();
-}
-
-
-//QAction *action = menuBar()->actions().value(child-1, 0);
-//if (!action || !action->isEnabled())
-// return false;
-//if (action->menu() && action->menu()->isVisible())
-// action->menu()->hide();
-//else
-// menuBar()->setActiveAction(action);
-//return true;
-
-
-
-bool QAccessibleMenuItem::doAction(int action, int child, const QVariantList & /*params = QVariantList()*/ )
-{
- Q_ASSERT(child == 0);
- if ((action != Press) && (action != DefaultAction))
- return false;
- if (!m_action->isEnabled())
- return false;
-
- if (QMenuBar *bar = qobject_cast<QMenuBar*>(owner())) {
- if (m_action->menu() && m_action->menu()->isVisible()) {
- m_action->menu()->hide();
- return true;
- } else {
- bar->setActiveAction(m_action);
- return true;
- }
- return false;
- } else if (QMenu *menu = qobject_cast<QMenu*>(owner())){
- if (m_action->menu() && m_action->menu()->isVisible()) {
- m_action->menu()->hide();
- return true;
- } else {
- menu->setActiveAction(m_action);
- return true;
- }
- } else {
- // no menu
- m_action->trigger();
- return true;
- }
- return false;
-}
-
int QAccessibleMenuItem::indexOfChild(const QAccessibleInterface * child) const
{
Q_ASSERT(child == 0);
@@ -462,11 +356,8 @@ QAccessible::Relation QAccessibleMenuItem::relationTo ( int child, const QAccess
return Unrelated;
}
-QAccessible::Role QAccessibleMenuItem::role(int child) const
+QAccessible::Role QAccessibleMenuItem::role(int) const
{
- Q_ASSERT(child == 0);
-// if (m_action->menu())
-// return PopupMenu;
return m_action->isSeparator() ? Separator : MenuItem;
}
@@ -530,11 +421,66 @@ QString QAccessibleMenuItem::text ( Text t, int child ) const
return str;
}
-int QAccessibleMenuItem::userActionCount ( int /*child*/ ) const
+
+QString QAccessibleMenuItem::actionText(int action, Text text, int child) const
{
- return 0;
+ Q_ASSERT(child == 0);
+ if (!m_action || m_action->isSeparator())
+ return QString();
+
+ if (text == Name && ((action == Press) || (action == DefaultAction))) {
+ if (m_action->menu()) {
+ return QMenu::tr("Open");
+ }
+ return QMenu::tr("Execute");
+ }
+ return QString();
}
+QStringList QAccessibleMenuItem::actionNames() const
+{
+ QStringList actions;
+ if (!m_action || m_action->isSeparator())
+ return actions;
+
+ if (m_action->menu()) {
+ actions << ShowMenuAction;
+ } else {
+ actions << PressAction;
+ }
+ return actions;
+}
+
+void QAccessibleMenuItem::doAction(const QString &actionName)
+{
+ if (!m_action->isEnabled())
+ return;
+
+ if (actionName == PressAction) {
+ m_action->trigger();
+ } else if (actionName == ShowMenuAction) {
+ if (QMenuBar *bar = qobject_cast<QMenuBar*>(owner())) {
+ if (m_action->menu() && m_action->menu()->isVisible()) {
+ m_action->menu()->hide();
+ } else {
+ bar->setActiveAction(m_action);
+ }
+ } else if (QMenu *menu = qobject_cast<QMenu*>(owner())){
+ if (m_action->menu() && m_action->menu()->isVisible()) {
+ m_action->menu()->hide();
+ } else {
+ menu->setActiveAction(m_action);
+ }
+ }
+ }
+}
+
+QStringList QAccessibleMenuItem::keyBindingsForAction(const QString &) const
+{
+ return QStringList();
+}
+
+
QAction *QAccessibleMenuItem::action() const
{
return m_action;