summaryrefslogtreecommitdiffstats
path: root/src/plugins/accessible/widgets/qaccessiblemenu.cpp
diff options
context:
space:
mode:
authorFrederik Gladhorn <frederik.gladhorn@nokia.com>2011-10-22 22:38:14 +0200
committerQt by Nokia <qt-info@nokia.com>2011-11-23 14:54:01 +0100
commitbeb72b2fbf17a20b4a9d51d75d79f9c3c69bb357 (patch)
treec972c0a408ea912faaa67d4508ba5d855a1cb582 /src/plugins/accessible/widgets/qaccessiblemenu.cpp
parente739ca0071df28adf767d148ba5095d846e898f3 (diff)
Remove virtual child integers.
This makes the accessibility apis much simpler and less error prone. Disable the itemviews implementation that is in complex widgets. The itemviews will use the new code from itemviews.h/cpp everywhere now. QToolBox was broken before, now at least it simply exposes all its children. The children are the buttons (tabs of the toolbox) and their contents. Change-Id: I45e218f49f02aebbd678ddfe29f94c2a112a2125 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.cpp96
1 files changed, 19 insertions, 77 deletions
diff --git a/src/plugins/accessible/widgets/qaccessiblemenu.cpp b/src/plugins/accessible/widgets/qaccessiblemenu.cpp
index 8e0f2a0c1a..13a5fe424d 100644
--- a/src/plugins/accessible/widgets/qaccessiblemenu.cpp
+++ b/src/plugins/accessible/widgets/qaccessiblemenu.cpp
@@ -71,12 +71,6 @@ int QAccessibleMenu::childCount() const
return menu()->actions().count();
}
-QRect QAccessibleMenu::rect(int child) const
-{
- Q_ASSERT(child == 0);
- return QAccessibleWidget::rect(child);
-}
-
int QAccessibleMenu::childAt(int x, int y) const
{
QAction *act = menu()->actionAt(menu()->mapFromGlobal(QPoint(x,y)));
@@ -85,11 +79,10 @@ int QAccessibleMenu::childAt(int x, int y) const
return menu()->actions().indexOf(act) + 1;
}
-QString QAccessibleMenu::text(Text t, int child) const
+QString QAccessibleMenu::text(Text t) const
{
- Q_ASSERT(child == 0);
- QString tx = QAccessibleWidget::text(t, child);
- if (tx.size())
+ QString tx = QAccessibleWidget::text(t);
+ if (!tx.isEmpty())
return tx;
if (t == Name)
@@ -97,19 +90,11 @@ QString QAccessibleMenu::text(Text t, int child) const
return tx;
}
-QAccessible::Role QAccessibleMenu::role(int child) const
+QAccessible::Role QAccessibleMenu::role() const
{
- Q_ASSERT(child == 0);
return PopupMenu;
}
-QAccessible::State QAccessibleMenu::state(int child) const
-{
- Q_ASSERT(child == 0);
- State s = QAccessibleWidget::state(child);
- return s;
-}
-
QAccessibleInterface *QAccessibleMenu::child(int index) const
{
if (index < childCount())
@@ -144,7 +129,7 @@ int QAccessibleMenu::navigate(RelationFlag relation, int entry, QAccessibleInter
int QAccessibleMenu::indexOfChild( const QAccessibleInterface *child ) const
{
int index = -1;
- Role r = child->role(0);
+ Role r = child->role();
if ((r == MenuItem || r == Separator) && menu()) {
index = menu()->actions().indexOf(qobject_cast<QAction*>(child->object()));
if (index != -1)
@@ -155,7 +140,7 @@ int QAccessibleMenu::indexOfChild( const QAccessibleInterface *child ) const
#ifndef QT_NO_MENUBAR
QAccessibleMenuBar::QAccessibleMenuBar(QWidget *w)
-: QAccessibleWidget(w)
+ : QAccessibleWidget(w, MenuBar)
{
Q_ASSERT(menuBar());
}
@@ -170,12 +155,6 @@ int QAccessibleMenuBar::childCount() const
return menuBar()->actions().count();
}
-QRect QAccessibleMenuBar::rect(int child) const
-{
- Q_ASSERT(child == 0);
- return QAccessibleWidget::rect(child);
-}
-
QAccessibleInterface *QAccessibleMenuBar::child(int index) const
{
if (index < childCount())
@@ -195,7 +174,7 @@ int QAccessibleMenuBar::navigate(RelationFlag relation, int entry, QAccessibleIn
int QAccessibleMenuBar::indexOfChild(const QAccessibleInterface *child) const
{
int index = -1;
- Role r = child->role(0);
+ Role r = child->role();
if ((r == MenuItem || r == Separator) && menuBar()) {
index = menuBar()->actions().indexOf(qobject_cast<QAction*>(child->object()));
if (index != -1)
@@ -204,25 +183,6 @@ int QAccessibleMenuBar::indexOfChild(const QAccessibleInterface *child) const
return index;
}
-QString QAccessibleMenuBar::text(Text t, int child) const
-{
- Q_ASSERT(child == 0);
- return QAccessibleWidget::text(t, child);
-}
-
-QAccessible::Role QAccessibleMenuBar::role(int child) const
-{
- Q_ASSERT(child == 0);
- return MenuBar;
-}
-
-QAccessible::State QAccessibleMenuBar::state(int child) const
-{
- Q_ASSERT(child == 0);
- State s = QAccessibleWidget::state(child);
- return s;
-}
-
#endif // QT_NO_MENUBAR
QAccessibleMenuItem::QAccessibleMenuItem(QWidget *owner, QAction *action) : m_action(action), m_owner(owner)
@@ -235,8 +195,12 @@ QAccessibleMenuItem::~QAccessibleMenuItem()
int QAccessibleMenuItem::childAt(int x, int y ) const
{
for (int i = childCount(); i >= 0; --i) {
- if (rect(i).contains(x,y))
+ QAccessibleInterface *childInterface = child(i);
+ if (childInterface->rect().contains(x,y)) {
+ delete childInterface;
return i;
+ }
+ delete childInterface;
}
return -1;
}
@@ -249,7 +213,7 @@ int QAccessibleMenuItem::childCount() const
int QAccessibleMenuItem::indexOfChild(const QAccessibleInterface * child) const
{
Q_ASSERT(child == 0);
- if (child->role(0) == PopupMenu && child->object() == m_action->menu())
+ if (child->role() == PopupMenu && child->object() == m_action->menu())
return 1;
return -1;
@@ -318,9 +282,8 @@ QObject *QAccessibleMenuItem::object() const
return m_action;
}
-QRect QAccessibleMenuItem::rect(int child) const
+QRect QAccessibleMenuItem::rect() const
{
- Q_ASSERT(child == 0);
QRect rect;
QWidget *own = owner();
#ifndef QT_NO_MENUBAR
@@ -338,31 +301,27 @@ QRect QAccessibleMenuItem::rect(int child) const
return rect;
}
-QAccessible::Relation QAccessibleMenuItem::relationTo ( int child, const QAccessibleInterface * other, int otherChild ) const
+QAccessible::Relation QAccessibleMenuItem::relationTo(const QAccessibleInterface *other) const
{
- Q_ASSERT(child == 0);
if (other->object() == owner()) {
return Child;
}
- Q_UNUSED(child)
Q_UNUSED(other)
- Q_UNUSED(otherChild)
// ###
return Unrelated;
}
-QAccessible::Role QAccessibleMenuItem::role(int) const
+QAccessible::Role QAccessibleMenuItem::role() const
{
return m_action->isSeparator() ? Separator : MenuItem;
}
-void QAccessibleMenuItem::setText ( Text /*t*/, int /*child*/, const QString & /*text */)
+void QAccessibleMenuItem::setText ( Text /*t*/, const QString & /*text */)
{
}
-QAccessible::State QAccessibleMenuItem::state(int child) const
+QAccessible::State QAccessibleMenuItem::state() const
{
- Q_ASSERT(child == 0);
QAccessible::State s = Normal;
QWidget *own = owner();
@@ -389,9 +348,8 @@ QAccessible::State QAccessibleMenuItem::state(int child) const
return s;
}
-QString QAccessibleMenuItem::text ( Text t, int child ) const
+QString QAccessibleMenuItem::text(Text t) const
{
- Q_ASSERT(child == 0);
QString str;
switch (t) {
case Name:
@@ -416,22 +374,6 @@ QString QAccessibleMenuItem::text ( Text t, int child ) const
return str;
}
-
-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();
-}
-
QStringList QAccessibleMenuItem::actionNames() const
{
QStringList actions;