AccessibilityObject* AccessibilityARIAGridRow::parentTable() const { // The parent table might not be the direct ancestor of the row unfortunately. ARIA states that role="grid" should // only have "row" elements, but if not, we still should handle it gracefully by finding the right table. for (AccessibilityObject* parent = parentObject(); parent; parent = parent->parentObject()) { // The parent table for an ARIA grid row should be an ARIA table. if (parent->isTable() && parent->isAccessibilityTable() && toAccessibilityTable(parent)->isAriaTable()) return parent; } return 0; }
void QueueObject::addCompleted(filesize_t completed) { if (completed == 0) return; m_completed += completed; if (hasParentObject()) parentObject()->addCompleted(completed); statisticsUpdated(); }
void QueueObject::addActualSize(filesize_t size) { if (size == 0) return; m_actualSize += size; if (hasParentObject()) parentObject()->addActualSize(size); statisticsUpdated(); }
bool AXSpinButtonPart::press() const { if (!m_parent || !m_parent->isSpinButton()) return false; AXSpinButton* spinButton = toAXSpinButton(parentObject()); if (m_isIncrementor) spinButton->step(1); else spinButton->step(-1); return true; }
AccessibilityTable* AccessibilityARIAGridRow::parentTable() const { // The parent table might not be the direct ancestor of the row unfortunately. ARIA states that role="grid" should // only have "row" elements, but if not, we still should handle it gracefully by finding the right table. for (AccessibilityObject* parent = parentObject(); parent; parent = parent->parentObject()) { // The parent table for an ARIA grid row should be an ARIA table. if (is<AccessibilityTable>(*parent)) { AccessibilityTable& tableParent = downcast<AccessibilityTable>(*parent); if (tableParent.isExposableThroughAccessibility() && tableParent.isAriaTable()) return &tableParent; } } return nullptr; }
LayoutRect AccessibilitySpinButtonPart::elementRect() const { // FIXME: This logic should exist in the render tree or elsewhere, but there is no // relationship that exists that can be queried. LayoutRect parentRect = parentObject()->elementRect(); if (m_isIncrementor) parentRect.setHeight(parentRect.height() / 2); else { parentRect.setY(parentRect.y() + parentRect.height() / 2); parentRect.setHeight(parentRect.height() / 2); } return parentRect; }
int QueueObject::index() const { if (m_type == Toplevel) return 0; QList<QueueObject*> children = parentObject()->getChildrenList(); for (int i = 0; i < children.size(); i++) { if (children.at(i) == this) return i; } Q_ASSERT(false); return -1; }
bool AccessibilitySVGElement::inheritsPresentationalRole() const { if (canSetFocusAttribute()) return false; AccessibilityRole role = roleValue(); if (role != AccessibilityRole::SVGTextPath && role != AccessibilityRole::SVGTSpan) return false; for (AccessibilityObject* parent = parentObject(); parent; parent = parent->parentObject()) { if (is<AccessibilityRenderObject>(*parent) && parent->element()->hasTagName(SVGNames::textTag)) return parent->roleValue() == AccessibilityRole::Presentational; } return false; }
void QueueObject::setSpeed(filesize_t speed) { if (speed != 0 && m_speed == speed) return; m_speed = speed; foreach (QueueObject *i, m_children) { m_speed += i->getSpeed(); } if (hasParentObject()) parentObject()->setSpeed(); statisticsUpdated(); }
AccessibilityObjectInclusion AccessibilityObject::accessibilityPlatformIncludesObject() const { AccessibilityObject* parent = parentObject(); if (!parent) return DefaultBehavior; AccessibilityRole role = roleValue(); if (role == SplitterRole) return IncludeObject; // We expose the slider as a whole but not its value indicator. if (role == SliderThumbRole) return IgnoreObject; // When a list item is made up entirely of children (e.g. paragraphs) // the list item gets ignored. We need it. if (isGroup() && parent->isList()) return IncludeObject; // Entries and password fields have extraneous children which we want to ignore. if (parent->isPasswordField() || parent->isTextControl()) return IgnoreObject; // Include all tables, even layout tables. The AT can decide what to do with each. if (role == CellRole || role == TableRole) return IncludeObject; // The object containing the text should implement AtkText itself. if (role == StaticTextRole) return IgnoreObject; // Include all list items, regardless they have or not inline children if (role == ListItemRole) return IncludeObject; // Bullets/numbers for list items shouldn't be exposed as AtkObjects. if (role == ListMarkerRole) return IgnoreObject; // Never expose an unknown object, since AT's won't know what to // do with them. This is what is done on the Mac as well. if (role == UnknownRole) return IgnoreObject; return DefaultBehavior; }
AccessibilityObjectPlatformInclusion AccessibilityObject::accessibilityPlatformIncludesObject() const { AccessibilityObject* parent = parentObject(); if (!parent) return DefaultBehavior; // When a list item is made up entirely of children (e.g. paragraphs) // the list item gets ignored. We need it. if (isGroup() && parent->isList()) return IncludeObject; // Entries and password fields have extraneous children which we want to ignore. if (parent->isPasswordField() || parent->isTextControl()) return IgnoreObject; return DefaultBehavior; }
bool MDeclarativeIMObserver::sceneEventFilter(QGraphicsItem * watched, QEvent * event) { if (event->type()==QEvent::InputMethod) { if (m_omitInputMethodEvents) { return true; } QInputMethodEvent *ime = static_cast<QInputMethodEvent*>(event); QString newPreedit = ime->preeditString(); QGraphicsObject *g = parentObject(); if (g != 0 && g->property("maximumLength").isValid()) { int maximumTextLength = g->property("maximumLength").toInt(); int textLength = g->property("text").toString().length(); int selectedTextLength = g->property("selectedText").toString().length(); if (textLength == maximumTextLength && newPreedit.length() - ime->replacementLength() > 0 && selectedTextLength == 0) { m_omitInputMethodEvents = true; QInputContext *ic = qApp->inputContext(); ic->reset(); m_omitInputMethodEvents = false; return true; } } if (newPreedit!=m_preedit) { m_preedit = newPreedit; emit preeditChanged(); } QList<QInputMethodEvent::Attribute> attributes = ime->attributes(); QList<QInputMethodEvent::Attribute>::iterator i; for (i = attributes.begin(); i != attributes.end(); ++i) { QInputMethodEvent::Attribute attribute = *i; if (attribute.type == QInputMethodEvent::Cursor) { m_preeditCursorPosition = attribute.start; emit preeditCursorPositionChanged(); } } } return QDeclarativeItem::sceneEventFilter(watched,event); }
Cell* Cell::copy(Cell *cell) { Cell *c = 0; if(!cell) c = new Cell(); else c = cell; c->setStitch(stitch()); c->setBgColor(bgColor()); c->setColor(c->color()); c->setTransformOriginPoint(transformOriginPoint()); c->setRotation(0); c->setTransform(QTransform()); c->setTransformations(ChartItemTools::cloneGraphicsTransformations(this)); foreach (QGraphicsTransform* t, transformations()) t->setParent(parentObject()); return c; }
void ScriptEditorMoveButton::mouseMoveEvent(QGraphicsSceneMouseEvent* e) { auto p = dynamic_cast<QGraphicsItem*>(parentObject()); p->setPos(p->pos() + e->pos() - e->lastPos()); }
void TemporalConstraintView::paint( QPainter* painter, const QStyleOptionGraphicsItem*, QWidget*) { qreal min_w = minWidth(); qreal max_w = maxWidth(); qreal def_w = defaultWidth(); qreal play_w = playWidth(); // Draw the stuff present if there is a rack *in the model* ? if(presenter().rack()) { // Background auto rect = boundingRect(); rect.adjust(0,15,0,-10); rect.setWidth(this->defaultWidth()); painter->fillRect(rect, m_bgColor); // Fake timenode continuation auto color = ScenarioStyle::instance().RackSideBorder; QPen pen{color, 2, Qt::SolidLine, Qt::RoundCap, Qt::RoundJoin}; painter->setPen(pen); painter->drawLine(rect.topLeft(), rect.bottomLeft()); painter->drawLine(rect.topRight(), rect.bottomRight()); } QPainterPath solidPath, dashedPath, leftBrace, rightBrace; // Paths if(infinite()) { if(min_w != 0.) { solidPath.lineTo(min_w, 0); leftBrace.moveTo(min_w, -10); leftBrace.arcTo(min_w - 10, -10, 20, 20, 90, 180); } // TODO end state should be hidden dashedPath.moveTo(min_w, 0); dashedPath.lineTo(def_w, 0); } else if(min_w == max_w) // TODO rigid() { solidPath.lineTo(def_w, 0); } else { if(min_w != 0.) solidPath.lineTo(min_w, 0); dashedPath.moveTo(min_w, 0); dashedPath.lineTo(max_w, 0); leftBrace.moveTo(min_w + 10, -10); leftBrace.arcTo(min_w, -10, 20, 20, 90, 180); leftBrace.closeSubpath(); rightBrace.moveTo(max_w, 10); rightBrace.arcTo(max_w - 10, -10, 20, 20, 270, 180); rightBrace.closeSubpath(); rightBrace.translate(-10, 0); // TODO bleh. } QPainterPath playedPath; if(play_w != 0.) { playedPath.lineTo(play_w, 0); } // Colors QColor constraintColor; // TODO make a switch instead if(isSelected()) { constraintColor = ScenarioStyle::instance().ConstraintSelected; } else if(warning()) { constraintColor = ScenarioStyle::instance().ConstraintWarning; } else { constraintColor = ScenarioStyle::instance().ConstraintBase; } if(! isValid()) { constraintColor = ScenarioStyle::instance().ConstraintInvalid; this->setZValue(this->zValue()+ 1); } else { this->setZValue(parentObject()->zValue() + 3); } m_solidPen.setColor(constraintColor); m_dashPen.setColor(constraintColor); // Drawing painter->setPen(m_solidPen); if(!solidPath.isEmpty()) painter->drawPath(solidPath); if(!leftBrace.isEmpty()) painter->drawPath(leftBrace); if(!rightBrace.isEmpty()) painter->drawPath(rightBrace); painter->setPen(m_dashPen); if(!dashedPath.isEmpty()) painter->drawPath(dashedPath); leftBrace.closeSubpath(); rightBrace.closeSubpath(); QPen anotherPen(Qt::transparent, 4); painter->setPen(anotherPen); QColor blueish = m_solidPen.color().lighter(); blueish.setAlphaF(0.3); painter->setBrush(blueish); painter->drawPath(leftBrace); painter->drawPath(rightBrace); static const QPen playedPen{ QBrush{ScenarioStyle::instance().ConstraintPlayFill}, 4, Qt::SolidLine, Qt::RoundCap, Qt::RoundJoin }; painter->setPen(playedPen); if(!playedPath.isEmpty()) painter->drawPath(playedPath); static const int fontSize = 12; QRectF labelRect{0,0, defaultWidth(), (-fontSize - 2.)}; auto f = ProcessFonts::Sans(); f.setPointSize(fontSize); painter->setFont(f); painter->setPen(m_labelColor); painter->drawText(labelRect, Qt::AlignCenter, m_label); #if defined(ISCORE_SCENARIO_DEBUG_RECTS) painter->setPen(Qt::darkRed); painter->setBrush(Qt::NoBrush); painter->drawRect(boundingRect()); #endif }
AccessibilityObjectInclusion AccessibilityObject::accessibilityPlatformIncludesObject() const { AccessibilityObject* parent = parentObject(); if (!parent) return DefaultBehavior; AccessibilityRole role = roleValue(); if (role == HorizontalRuleRole) return IncludeObject; // We expose the slider as a whole but not its value indicator. if (role == SliderThumbRole) return IgnoreObject; // When a list item is made up entirely of children (e.g. paragraphs) // the list item gets ignored. We need it. if (isGroup() && parent->isList()) return IncludeObject; // Entries and password fields have extraneous children which we want to ignore. if (parent->isPasswordField() || parent->isTextControl()) return IgnoreObject; // Include all tables, even layout tables. The AT can decide what to do with each. if (role == CellRole || role == TableRole) return IncludeObject; // The object containing the text should implement AtkText itself. if (role == StaticTextRole) return IgnoreObject; // Include all list items, regardless they have or not inline children if (role == ListItemRole) return IncludeObject; // Bullets/numbers for list items shouldn't be exposed as AtkObjects. if (role == ListMarkerRole) return IgnoreObject; // Never expose an unknown object, since AT's won't know what to // do with them. This is what is done on the Mac as well. if (role == UnknownRole) return IgnoreObject; // Given a paragraph or div containing a non-nested anonymous block, WebCore // ignores the paragraph or div and includes the block. We want the opposite: // ATs are expecting accessible objects associated with textual elements. They // usually have no need for the anonymous block. And when the wrong objects // get included or ignored, needed accessibility signals do not get emitted. if (role == ParagraphRole || role == DivRole) { // Don't call textUnderElement() here, because it's slow and it can // crash when called while we're in the middle of a subtree being deleted. if (!renderer()->firstChildSlow()) return DefaultBehavior; if (!parent->renderer() || parent->renderer()->isAnonymousBlock()) return DefaultBehavior; for (RenderObject* r = renderer()->firstChildSlow(); r; r = r->nextSibling()) { if (r->isAnonymousBlock()) return IncludeObject; } } // Block spans result in objects of ATK_ROLE_PANEL which are almost always unwanted. // However, if we ignore block spans whose parent is the body, the child controls // will become immediate children of the ATK_ROLE_DOCUMENT_FRAME and any text will // become text within the document frame itself. This ultimately may be what we want // and would largely be consistent with what we see from Gecko. However, ignoring // spans whose parent is the body changes the current behavior we see from WebCore. // Until we have sufficient time to properly analyze these cases, we will defer to // WebCore. We only check that the parent is not aria because we do not expect // anonymous blocks which are aria-related to themselves have an aria role, nor // have we encountered instances where the parent of an anonymous block also lacked // an aria role but the grandparent had one. if (renderer() && renderer()->isAnonymousBlock() && !parent->renderer()->isBody() && parent->ariaRoleAttribute() == UnknownRole) return IgnoreObject; return DefaultBehavior; }
/*! \reimp */ QAccessibleInterface *QAccessibleWidget::parent() const { return QAccessible::queryAccessibleInterface(parentObject()); }
int QGraphicsObject::qt_metacall(QMetaObject::Call _c, int _id, void **_a) { _id = QObject::qt_metacall(_c, _id, _a); if (_id < 0) return _id; if (_c == QMetaObject::InvokeMetaMethod) { if (_id < 13) qt_static_metacall(this, _c, _id, _a); _id -= 13; } #ifndef QT_NO_PROPERTIES else if (_c == QMetaObject::ReadProperty) { void *_v = _a[0]; switch (_id) { case 0: *reinterpret_cast< QGraphicsObject**>(_v) = parentObject(); break; case 1: *reinterpret_cast< qreal*>(_v) = opacity(); break; case 2: *reinterpret_cast< bool*>(_v) = isEnabled(); break; case 3: *reinterpret_cast< bool*>(_v) = isVisible(); break; case 4: *reinterpret_cast< QPointF*>(_v) = pos(); break; case 5: *reinterpret_cast< qreal*>(_v) = x(); break; case 6: *reinterpret_cast< qreal*>(_v) = y(); break; case 7: *reinterpret_cast< qreal*>(_v) = zValue(); break; case 8: *reinterpret_cast< qreal*>(_v) = rotation(); break; case 9: *reinterpret_cast< qreal*>(_v) = scale(); break; case 10: *reinterpret_cast< QPointF*>(_v) = transformOriginPoint(); break; case 11: *reinterpret_cast< QGraphicsEffect**>(_v) = graphicsEffect(); break; case 12: *reinterpret_cast< QDeclarativeListProperty<QGraphicsObject>*>(_v) = QGraphicsItem::d_func()->childrenList(); break; case 13: *reinterpret_cast< qreal*>(_v) = QGraphicsItem::d_func()->width(); break; case 14: *reinterpret_cast< qreal*>(_v) = QGraphicsItem::d_func()->height(); break; } _id -= 15; } else if (_c == QMetaObject::WriteProperty) { void *_v = _a[0]; switch (_id) { case 0: setParentItem(*reinterpret_cast< QGraphicsObject**>(_v)); break; case 1: setOpacity(*reinterpret_cast< qreal*>(_v)); break; case 2: setEnabled(*reinterpret_cast< bool*>(_v)); break; case 3: setVisible(*reinterpret_cast< bool*>(_v)); break; case 4: setPos(*reinterpret_cast< QPointF*>(_v)); break; case 5: setX(*reinterpret_cast< qreal*>(_v)); break; case 6: setY(*reinterpret_cast< qreal*>(_v)); break; case 7: setZValue(*reinterpret_cast< qreal*>(_v)); break; case 8: setRotation(*reinterpret_cast< qreal*>(_v)); break; case 9: setScale(*reinterpret_cast< qreal*>(_v)); break; case 10: setTransformOriginPoint(*reinterpret_cast< QPointF*>(_v)); break; case 11: setGraphicsEffect(*reinterpret_cast< QGraphicsEffect**>(_v)); break; case 13: QGraphicsItem::d_func()->setWidth(*reinterpret_cast< qreal*>(_v)); break; case 14: QGraphicsItem::d_func()->setHeight(*reinterpret_cast< qreal*>(_v)); break; } _id -= 15; } else if (_c == QMetaObject::ResetProperty) { switch (_id) { case 13: QGraphicsItem::d_func()->resetWidth(); break; case 14: QGraphicsItem::d_func()->resetHeight(); break; } _id -= 15; } else if (_c == QMetaObject::QueryPropertyDesignable) { _id -= 15; } else if (_c == QMetaObject::QueryPropertyScriptable) { _id -= 15; } else if (_c == QMetaObject::QueryPropertyStored) { _id -= 15; } else if (_c == QMetaObject::QueryPropertyEditable) { _id -= 15; } else if (_c == QMetaObject::QueryPropertyUser) { _id -= 15; } #endif // QT_NO_PROPERTIES return _id; }
specModel* specUndoCommand::model() const { return dynamic_cast<specModel*>(parentObject()) ; }
/*! \reimp */ int QAccessibleWidget::navigate(RelationFlag relation, int entry, QAccessibleInterface **target) const { if (!target) return -1; *target = 0; QObject *targetObject = 0; QWidgetList childList = childWidgets(widget()); bool complexWidget = childList.size() < childCount(); switch (relation) { // Hierarchical case Self: targetObject = object(); break; case Child: if (complexWidget) { if (entry > 0 && entry <= childCount()) return entry; return -1; }else { if (entry > 0 && childList.size() >= entry) targetObject = childList.at(entry - 1); } break; case Ancestor: { if (entry <= 0) return -1; targetObject = widget()->parentWidget(); int i; for (i = entry; i > 1 && targetObject; --i) targetObject = targetObject->parent(); if (!targetObject && i == 1) targetObject = qApp; } break; case Sibling: { QAccessibleInterface *iface = QAccessible::queryAccessibleInterface(parentObject()); if (!iface) return -1; iface->navigate(Child, entry, target); delete iface; if (*target) return 0; } break; // Geometrical case QAccessible::Left: if (complexWidget && entry) { if (entry < 2 || widget()->height() > widget()->width() + 20) // looks vertical return -1; return entry - 1; } // fall through case QAccessible::Right: if (complexWidget && entry) { if (entry >= childCount() || widget()->height() > widget()->width() + 20) // looks vertical return -1; return entry + 1; } // fall through case QAccessible::Up: if (complexWidget && entry) { if (entry < 2 || widget()->width() > widget()->height() + 20) // looks horizontal return - 1; return entry - 1; } // fall through case QAccessible::Down: if (complexWidget && entry) { if (entry >= childCount() || widget()->width() > widget()->height() + 20) // looks horizontal return - 1; return entry + 1; } else { QAccessibleInterface *pIface = QAccessible::queryAccessibleInterface(parentObject()); if (!pIface) return -1; QRect startg = rect(0); QPoint startc = startg.center(); QAccessibleInterface *candidate = 0; int mindist = 100000; int sibCount = pIface->childCount(); for (int i = 0; i < sibCount; ++i) { QAccessibleInterface *sibling = 0; pIface->navigate(Child, i+1, &sibling); Q_ASSERT(sibling); if ((relationTo(0, sibling, 0) & Self) || (sibling->state(0) & QAccessible::Invisible)) { //ignore ourself and invisible siblings delete sibling; continue; } QRect sibg = sibling->rect(0); QPoint sibc = sibg.center(); QPoint sibp; QPoint startp; QPoint distp; switch (relation) { case QAccessible::Left: startp = QPoint(startg.left(), startg.top() + startg.height() / 2); sibp = QPoint(sibg.right(), sibg.top() + sibg.height() / 2); if (QPoint(sibc - startc).x() >= 0) { delete sibling; continue; } distp = sibp - startp; break; case QAccessible::Right: startp = QPoint(startg.right(), startg.top() + startg.height() / 2); sibp = QPoint(sibg.left(), sibg.top() + sibg.height() / 2); if (QPoint(sibc - startc).x() <= 0) { delete sibling; continue; } distp = sibp - startp; break; case QAccessible::Up: startp = QPoint(startg.left() + startg.width() / 2, startg.top()); sibp = QPoint(sibg.left() + sibg.width() / 2, sibg.bottom()); if (QPoint(sibc - startc).y() >= 0) { delete sibling; continue; } distp = sibp - startp; break; case QAccessible::Down: startp = QPoint(startg.left() + startg.width() / 2, startg.bottom()); sibp = QPoint(sibg.left() + sibg.width() / 2, sibg.top()); if (QPoint(sibc - startc).y() <= 0) { delete sibling; continue; } distp = sibp - startp; break; default: break; } int dist = (int)qSqrt((qreal)distp.x() * distp.x() + distp.y() * distp.y()); if (dist < mindist) { delete candidate; candidate = sibling; mindist = dist; } else { delete sibling; } } delete pIface; *target = candidate; if (*target) return 0; } break; case Covers: if (entry > 0) { QAccessibleInterface *pIface = QAccessible::queryAccessibleInterface(parentObject()); if (!pIface) return -1; QRect r = rect(0); int sibCount = pIface->childCount(); QAccessibleInterface *sibling = 0; for (int i = pIface->indexOfChild(this) + 1; i <= sibCount && entry; ++i) { pIface->navigate(Child, i, &sibling); if (!sibling || (sibling->state(0) & Invisible)) { delete sibling; sibling = 0; continue; } if (sibling->rect(0).intersects(r)) --entry; if (!entry) break; delete sibling; sibling = 0; } delete pIface; *target = sibling; if (*target) return 0; } break; case Covered: if (entry > 0) { QAccessibleInterface *pIface = QAccessible::queryAccessibleInterface(parentObject()); if (!pIface) return -1; QRect r = rect(0); int index = pIface->indexOfChild(this); QAccessibleInterface *sibling = 0; for (int i = 1; i < index && entry; ++i) { pIface->navigate(Child, i, &sibling); Q_ASSERT(sibling); if (!sibling || (sibling->state(0) & Invisible)) { delete sibling; sibling = 0; continue; } if (sibling->rect(0).intersects(r)) --entry; if (!entry) break; delete sibling; sibling = 0; } delete pIface; *target = sibling; if (*target) return 0; } break; // Logical case FocusChild: { if (widget()->hasFocus()) { targetObject = object(); break; } QWidget *fw = widget()->focusWidget(); if (!fw) return -1; if (isAncestor(widget(), fw) || fw == widget()) targetObject = fw; /* ### QWidget *parent = fw; while (parent && !targetObject) { parent = parent->parentWidget(); if (parent == widget()) targetObject = fw; } */ } break; case Label: if (entry > 0) { QAccessibleInterface *pIface = QAccessible::queryAccessibleInterface(parentObject()); if (!pIface) return -1; // first check for all siblings that are labels to us // ideally we would go through all objects and check, but that // will be too expensive int sibCount = pIface->childCount(); QAccessibleInterface *candidate = 0; for (int i = 0; i < sibCount && entry; ++i) { const int childId = pIface->navigate(Child, i+1, &candidate); Q_ASSERT(childId >= 0); if (childId > 0) candidate = pIface; if (candidate->relationTo(childId, this, 0) & Label) --entry; if (!entry) break; if (candidate != pIface) delete candidate; candidate = 0; } if (!candidate) { if (pIface->relationTo(0, this, 0) & Label) --entry; if (!entry) candidate = pIface; } if (pIface != candidate) delete pIface; *target = candidate; if (*target) return 0; } break; case Labelled: // only implemented in subclasses break; case Controller: if (entry > 0) { // check all senders we are connected to, // and figure out which one are controllers to us QACConnectionObject *connectionObject = (QACConnectionObject*)object(); QObjectList allSenders = connectionObject->senderList(); QObjectList senders; for (int s = 0; s < allSenders.size(); ++s) { QObject *sender = allSenders.at(s); QAccessibleInterface *candidate = QAccessible::queryAccessibleInterface(sender); if (!candidate) continue; if (candidate->relationTo(0, this, 0)&Controller) senders << sender; delete candidate; } if (entry <= senders.size()) targetObject = senders.at(entry-1); } break; case Controlled: if (entry > 0) { QObjectList allReceivers; QACConnectionObject *connectionObject = (QACConnectionObject*)object(); for (int sig = 0; sig < d->primarySignals.count(); ++sig) { QObjectList receivers = connectionObject->receiverList(d->primarySignals.at(sig).toAscii()); allReceivers += receivers; } if (entry <= allReceivers.size()) targetObject = allReceivers.at(entry-1); } break; default: break; } *target = QAccessible::queryAccessibleInterface(targetObject); return *target ? 0 : -1; }
bool specResizeSVGcommand::mergeWith(const QUndoCommand* other) { if(!parentObject()) return false ; return mergeable((specUndoCommand*) other) ; }
NodeSocketView* NodeConnectorView::socketView() const { return static_cast<NodeSocketView*>(parentObject()); }
CommandEntry* TextResultItem::parentEntry() { return qobject_cast<CommandEntry*>(parentObject()); }