From 72ae9e8396bce07c020623c99a7a6780cb38e7ca Mon Sep 17 00:00:00 2001 From: Jan-Arve Saether Date: Fri, 6 Jan 2012 14:56:40 +0100 Subject: [PATCH] Reuse the OObject* in QAccessibleObject Saves a few bytes per interface.... Change-Id: I2d66a563d28b94e08179bc43d4465509e0cb88f2 Reviewed-by: Frederik Gladhorn --- .../accessible/quick/qaccessiblequickitem.cpp | 45 +++++++++++----------- .../accessible/quick/qaccessiblequickitem.h | 2 +- .../accessible/quick/qaccessiblequickview.cpp | 11 +++--- .../accessible/quick/qaccessiblequickview.h | 2 +- 4 files changed, 29 insertions(+), 31 deletions(-) diff --git a/src/plugins/accessible/quick/qaccessiblequickitem.cpp b/src/plugins/accessible/quick/qaccessiblequickitem.cpp index 7fe4401..4e4d06f 100644 --- a/src/plugins/accessible/quick/qaccessiblequickitem.cpp +++ b/src/plugins/accessible/quick/qaccessiblequickitem.cpp @@ -48,7 +48,6 @@ QT_BEGIN_NAMESPACE QAccessibleQuickItem::QAccessibleQuickItem(QQuickItem *item) : QDeclarativeAccessible(item) - , m_item(item) { } @@ -61,27 +60,27 @@ QRect QAccessibleQuickItem::rect() const { // ### no canvas in some cases. // ### Should we really check for 0 opacity? - if (!m_item->canvas() ||!m_item->isVisible() || qFuzzyIsNull(m_item->opacity())) { + if (!item()->canvas() ||!item()->isVisible() || qFuzzyIsNull(item()->opacity())) { return QRect(); } - QSizeF size = QSizeF(m_item->width(), m_item->height()); + QSizeF size = QSizeF(item()->width(), item()->height()); // ### If the bounding rect fails, we first try the implicit size, then we go for the // parent size. WE MIGHT HAVE TO REVISIT THESE FALLBACKS. if (size.isEmpty()) { - size = QSizeF(m_item->implicitWidth(), m_item->implicitHeight()); + size = QSizeF(item()->implicitWidth(), item()->implicitHeight()); if (size.isEmpty()) // ### Seems that the above fallback is not enough, fallback to use the parent size... - size = QSizeF(m_item->parentItem()->width(), m_item->parentItem()->height()); + size = QSizeF(item()->parentItem()->width(), item()->parentItem()->height()); } - QRectF sceneRect = m_item->mapRectToScene(QRectF(QPointF(0, 0), size)); - QPoint screenPos = m_item->canvas()->mapToGlobal(sceneRect.topLeft().toPoint()); + QRectF sceneRect = item()->mapRectToScene(QRectF(QPointF(0, 0), size)); + QPoint screenPos = item()->canvas()->mapToGlobal(sceneRect.topLeft().toPoint()); QRect r = QRect(screenPos, sceneRect.size().toSize()); if (!r.isValid()) { - qWarning() << m_item->metaObject()->className() << m_item->property("accessibleText") << r; + qWarning() << item()->metaObject()->className() << item()->property("accessibleText") << r; } return r; } @@ -89,11 +88,11 @@ QRect QAccessibleQuickItem::rect() const QRect QAccessibleQuickItem::viewRect() const { // ### no canvas in some cases. - if (!m_item->canvas()) { + if (!item()->canvas()) { return QRect(); } - QQuickCanvas *canvas = m_item->canvas(); + QQuickCanvas *canvas = item()->canvas(); QPoint screenPos = canvas->mapToGlobal(QPoint(0,0)); return QRect(screenPos, canvas->size()); } @@ -101,15 +100,15 @@ QRect QAccessibleQuickItem::viewRect() const bool QAccessibleQuickItem::clipsChildren() const { - return static_cast(m_item)->clip(); + return static_cast(item())->clip(); } QAccessibleInterface *QAccessibleQuickItem::parent() const { - QQuickItem *parent = m_item->parentItem(); + QQuickItem *parent = item()->parentItem(); if (parent) { - QQuickCanvas *canvas = m_item->canvas(); + QQuickCanvas *canvas = item()->canvas(); // Jump out to the scene widget if the parent is the root item. // There are two root items, QQuickCanvas::rootItem and // QQuickView::declarativeRoot. The former is the true root item, @@ -146,7 +145,7 @@ int QAccessibleQuickItem::navigate(QAccessible::RelationFlag rel, int entry, QAc Q_UNUSED(target); *target = 0; if (entry == 0) { - *target = new QAccessibleQuickItem(m_item); + *target = new QAccessibleQuickItem(item()); return 0; } return -1; @@ -172,14 +171,14 @@ QList QAccessibleQuickItem::childItems() const role() == QAccessible::PageTab || role() == QAccessible::ProgressBar) return QList(); - return m_item->childItems(); + return item()->childItems(); } QFlags QAccessibleQuickItem::state() const { QAccessible::State state = QAccessible::Normal; - if (m_item->hasActiveFocus()) { + if (item()->hasActiveFocus()) { state |= QAccessible::Focused; } return state; @@ -191,10 +190,10 @@ QAccessible::Role QAccessibleQuickItem::role() const // Workaround for setAccessibleRole() not working for // Text items. Text items are special since they are defined // entirely from C++ (setting the role from QML works.) - if (qobject_cast(const_cast(m_item))) + if (qobject_cast(const_cast(item()))) return QAccessible::StaticText; - QVariant v = QQuickAccessibleAttached::property(m_item, "role"); + QVariant v = QQuickAccessibleAttached::property(item(), "role"); bool ok; QAccessible::Role role = (QAccessible::Role)v.toInt(&ok); if (!ok) // Not sure if this check is needed. @@ -204,7 +203,7 @@ QAccessible::Role QAccessibleQuickItem::role() const bool QAccessibleQuickItem::isAccessible() const { - return m_item->d_func()->isAccessible; + return item()->d_func()->isAccessible; } QString QAccessibleQuickItem::text(QAccessible::Text textType) const @@ -263,22 +262,22 @@ void *QAccessibleQuickItemValueInterface::interface_cast(QAccessible::InterfaceT QVariant QAccessibleQuickItemValueInterface::currentValue() { - return m_item->property("value"); + return item()->property("value"); } void QAccessibleQuickItemValueInterface::setCurrentValue(const QVariant &value) { - m_item->setProperty("value", value); + item()->setProperty("value", value); } QVariant QAccessibleQuickItemValueInterface::maximumValue() { - return m_item->property("maximumValue"); + return item()->property("maximumValue"); } QVariant QAccessibleQuickItemValueInterface::minimumValue() { - return m_item->property("minimumValue"); + return item()->property("minimumValue"); } diff --git a/src/plugins/accessible/quick/qaccessiblequickitem.h b/src/plugins/accessible/quick/qaccessiblequickitem.h index 92aa8ed..5914fff 100644 --- a/src/plugins/accessible/quick/qaccessiblequickitem.h +++ b/src/plugins/accessible/quick/qaccessiblequickitem.h @@ -74,7 +74,7 @@ public: bool isAccessible() const; protected: - QQuickItem *m_item; + QQuickItem *item() const { return static_cast(object()); } }; class QAccessibleQuickItemValueInterface: public QAccessibleQuickItem, public QAccessibleValueInterface diff --git a/src/plugins/accessible/quick/qaccessiblequickview.cpp b/src/plugins/accessible/quick/qaccessiblequickview.cpp index 65e7e18..f4e8136 100644 --- a/src/plugins/accessible/quick/qaccessiblequickview.cpp +++ b/src/plugins/accessible/quick/qaccessiblequickview.cpp @@ -53,12 +53,11 @@ QT_BEGIN_NAMESPACE QAccessibleQuickView::QAccessibleQuickView(QQuickView *object) :QAccessibleObject(object) { - m_view = static_cast(object); } int QAccessibleQuickView::childCount() const { - return m_view->rootItem() ? 1 : 0; + return view()->rootItem() ? 1 : 0; } QAccessibleInterface *QAccessibleQuickView::parent() const @@ -70,7 +69,7 @@ QAccessibleInterface *QAccessibleQuickView::parent() const QAccessibleInterface *QAccessibleQuickView::child(int index) const { if (index == 0) { - QQuickItem *declarativeRoot = m_view->rootObject(); + QQuickItem *declarativeRoot = view()->rootObject(); return new QAccessibleQuickItem(declarativeRoot); } return 0; @@ -88,7 +87,7 @@ QAccessible::State QAccessibleQuickView::state() const QRect QAccessibleQuickView::rect() const { - return QRect(m_view->x(), m_view->y(), m_view->width(), m_view->height()); + return QRect(view()->x(), view()->y(), view()->width(), view()->height()); } int QAccessibleQuickView::navigate(QAccessible::RelationFlag rel, int entry, QAccessibleInterface **target) const @@ -106,7 +105,7 @@ QString QAccessibleQuickView::text(QAccessible::Text text) const return QString::fromAscii(object()->metaObject()->className()) ; } #endif - return m_view->windowTitle(); + return view()->windowTitle(); } QAccessibleInterface *QAccessibleQuickView::childAt(int x, int y) const @@ -119,7 +118,7 @@ QAccessibleInterface *QAccessibleQuickView::childAt(int x, int y) const int QAccessibleQuickView::indexOfChild(const QAccessibleInterface *iface) const { if (iface) { - QQuickItem *declarativeRoot = m_view->rootObject(); + QQuickItem *declarativeRoot = view()->rootObject(); if (declarativeRoot == iface->object()) return 1; } diff --git a/src/plugins/accessible/quick/qaccessiblequickview.h b/src/plugins/accessible/quick/qaccessiblequickview.h index c84ee15..c5060be 100644 --- a/src/plugins/accessible/quick/qaccessiblequickview.h +++ b/src/plugins/accessible/quick/qaccessiblequickview.h @@ -68,7 +68,7 @@ public: QString text(QAccessible::Text text) const; QAccessibleInterface *childAt(int x, int y) const; private: - QQuickView *m_view; + QQuickView *view() const { return static_cast(object()); } }; #endif // QT_NO_ACCESSIBILITY -- 2.7.4