// Returns a groupbox prefix for widgets that are owned by a groupbox QString TestLabel::groupBoxName() const { QWidget *parent = q; QGroupBox *gb; QString ret; do { parent = qobject_cast<QWidget*>(parent->parent()); gb = qobject_cast<QGroupBox*>(parent); if (gb && !gb->title().isEmpty()) ret += gb->title() + "/"; } while (parent); ret.chop(1); return ret; }
/*! \reimp */ QVector<QPair<QAccessibleInterface*, QAccessible::Relation> > QAccessibleWidget::relations(QAccessible::Relation match /*= QAccessible::AllRelations*/) const { QVector<QPair<QAccessibleInterface*, QAccessible::Relation> > rels; if (match & QAccessible::Label) { const QAccessible::Relation rel = QAccessible::Label; if (QWidget *parent = widget()->parentWidget()) { #ifndef QT_NO_SHORTCUT // 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 const QList<QWidget*> kids = childWidgets(parent); for (int i = 0; i < kids.count(); ++i) { if (QLabel *labelSibling = qobject_cast<QLabel*>(kids.at(i))) { if (labelSibling->buddy() == widget()) { QAccessibleInterface *iface = QAccessible::queryAccessibleInterface(labelSibling); rels.append(qMakePair(iface, rel)); } } } #endif #ifndef QT_NO_GROUPBOX QGroupBox *groupbox = qobject_cast<QGroupBox*>(parent); if (groupbox && !groupbox->title().isEmpty()) { QAccessibleInterface *iface = QAccessible::queryAccessibleInterface(groupbox); rels.append(qMakePair(iface, rel)); } #endif } } if (match & QAccessible::Controlled) { QObjectList allReceivers; QACConnectionObject *connectionObject = (QACConnectionObject*)object(); for (int sig = 0; sig < d->primarySignals.count(); ++sig) { const QObjectList receivers = connectionObject->receiverList(d->primarySignals.at(sig).toLatin1()); allReceivers += receivers; } allReceivers.removeAll(object()); //### The object might connect to itself internally for (int i = 0; i < allReceivers.count(); ++i) { const QAccessible::Relation rel = QAccessible::Controlled; QAccessibleInterface *iface = QAccessible::queryAccessibleInterface(allReceivers.at(i)); if (iface) rels.append(qMakePair(iface, rel)); } } return rels; }
QAccessible::Relation QAccessibleGroupBox::relationTo(int child, const QAccessibleInterface* other, int otherChild) const { QGroupBox *groupbox = this->groupBox(); QAccessible::Relation relation = QAccessibleWidgetEx::relationTo(child, other, otherChild); if (!child && !otherChild && !groupbox->title().isEmpty()) { QObject *o = other->object(); if (groupbox->children().contains(o)) relation |= Label; } return relation; }
int drv_groupbox(int drvid, void *a0, void* a1, void* a2, void* a3, void* a4, void* a5, void* a6, void* a7, void* a8, void* a9) { handle_head* head = (handle_head*)a0; QGroupBox *self = (QGroupBox*)head->native; switch (drvid) { case GROUPBOX_INIT: { drvNewObj(a0,new QGroupBox); break; } case GROUPBOX_SETTITLE: { self->setTitle(drvGetString(a1)); break; } case GROUPBOX_TITLE: { drvSetString(a1,self->title()); break; } default: return 0; } return 1; }
void ItemHandlerRadio::Handle (const QDomElement& item, QWidget *pwidget) { QGridLayout *lay = qobject_cast<QGridLayout*> (pwidget->layout ()); RadioGroup *group = new RadioGroup (XSD_); group->setObjectName (item.attribute ("property")); QStringList searchTerms; QDomElement option = item.firstChildElement ("option"); while (!option.isNull ()) { QRadioButton *button = new QRadioButton (XSD_->GetLabel (option)); searchTerms << button->text (); XSD_->SetTooltip (button, option); button->setObjectName (option.attribute ("name")); group->AddButton (button, option.hasAttribute ("default") && option.attribute ("default") == "true"); option = option.nextSiblingElement ("option"); } QVariant value = XSD_->GetValue (item); connect (group, SIGNAL (valueChanged ()), this, SLOT (updatePreferences ())); QGroupBox *box = new QGroupBox (XSD_->GetLabel (item)); QVBoxLayout *layout = new QVBoxLayout (); box->setLayout (layout); layout->addWidget (group); searchTerms << box->title (); group->setProperty ("ItemHandler", QVariant::fromValue<QObject*> (this)); group->setProperty ("SearchTerms", searchTerms); lay->addWidget (box, lay->rowCount (), 0); }
/*! \reimp */ int QAccessibleDisplay::navigate(RelationFlag rel, int entry, QAccessibleInterface **target) const { *target = 0; if (rel == Labelled) { QObject *targetObject = 0; QLabel *label = qobject_cast<QLabel*>(object()); if (label) { #ifndef QT_NO_SHORTCUT if (entry == 1) targetObject = label->buddy(); #endif #ifndef QT_NO_GROUPBOX } else { QGroupBox *groupbox = qobject_cast<QGroupBox*>(object()); if (groupbox && !groupbox->title().isEmpty()) rel = Child; #endif } *target = QAccessible::queryAccessibleInterface(targetObject); if (*target) return 0; } return QAccessibleWidgetEx::navigate(rel, entry, target); }
/*! \reimp */ QAccessible::Relation QAccessibleDisplay::relationTo(int child, const QAccessibleInterface *other, int otherChild) const { Relation relation = QAccessibleWidgetEx::relationTo(child, other, otherChild); if (child || otherChild) return relation; QObject *o = other->object(); QLabel *label = qobject_cast<QLabel*>(object()); if (label) { #ifndef QT_NO_SHORTCUT if (o == label->buddy()) relation |= Label; #endif #ifndef QT_NO_GROUPBOX } else { QGroupBox *groupbox = qobject_cast<QGroupBox*>(object()); if (groupbox && !groupbox->title().isEmpty()) if (groupbox->children().contains(o)) relation |= Label; #endif } return relation; }
static QString buddyString(const QWidget *widget) { if (!widget) return QString(); QWidget *parent = widget->parentWidget(); if (!parent) return QString(); #ifndef QT_NO_SHORTCUT QObjectList ol = parent->children(); for (int i = 0; i < ol.size(); ++i) { QLabel *label = qobject_cast<QLabel*>(ol.at(i)); if (label && label->buddy() == widget) return label->text(); } #endif #ifndef QT_NO_GROUPBOX QGroupBox *groupbox = qobject_cast<QGroupBox*>(parent); if (groupbox) return groupbox->title(); #endif return QString(); }