⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 qaccessiblewidget.cpp

📁 奇趣公司比较新的qt/emd版本
💻 CPP
📖 第 1 页 / 共 3 页
字号:
            }            */        }        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) {                pIface->navigate(Child, i+1, &candidate);                Q_ASSERT(candidate);                if (candidate->relationTo(0, this, 0) & Label)                    --entry;                if (!entry)                    break;                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;}/*! \reimp */int QAccessibleWidget::childCount() const{    QWidgetList cl = childWidgets(widget());    return cl.size();}/*! \reimp */int QAccessibleWidget::indexOfChild(const QAccessibleInterface *child) const{    QWidgetList cl = childWidgets(widget());    int index = cl.indexOf(qobject_cast<QWidget *>(child->object()));    if (index != -1)        ++index;    return index;}// from qwidget.cppextern QString qt_setWindowTitle_helperHelper(const QString &, QWidget*);/*! \reimp */QString QAccessibleWidget::text(Text t, int child) const{    QString str;    switch (t) {    case Name:        if (!d->name.isEmpty()) {            str = d->name;        } else if (!widget()->accessibleName().isEmpty()) {            str = widget()->accessibleName();        } else if (!child && widget()->isWindow()) {            if (widget()->isMinimized())                str = qt_setWindowTitle_helperHelper(widget()->windowIconText(), widget());            else                str = qt_setWindowTitle_helperHelper(widget()->windowTitle(), widget());        } else {            str = qt_accStripAmp(buddyString(widget()));        }        break;    case Description:        if (!d->description.isEmpty())            str = d->description;        else if (!widget()->accessibleDescription().isEmpty())            str = widget()->accessibleDescription();#ifndef QT_NO_TOOLTIP        else            str = widget()->toolTip();#endif        break;    case Help:        if (!d->help.isEmpty())            str = d->help;#ifndef QT_NO_WHATSTHIS        else            str = widget()->whatsThis();#endif        break;    case Accelerator:        if (!d->accelerator.isEmpty())            str = d->accelerator;        else            str = qt_accHotKey(buddyString(widget()));        break;    case Value:        str = d->value;        break;    default:        break;    }    return str;}#ifndef QT_NO_ACTION/*! \reimp */int QAccessibleWidget::userActionCount(int child) const{    if (child)        return 0;    return widget()->actions().count();}/*! \reimp */QString QAccessibleWidget::actionText(int action, Text t, int child) const{    if (action == DefaultAction)        action = SetFocus;    if (action > 0 && !child) {        QAction *act = widget()->actions().value(action - 1);        if (act) {            switch (t) {            case Name:                return act->text();            case Description:                return act->toolTip();#ifndef QT_NO_SHORTCUT            case Accelerator:                return act->shortcut().toString();#endif            default:                break;            }        }    }    return QAccessibleObject::actionText(action, t, child);}/*! \reimp */bool QAccessibleWidget::doAction(int action, int child, const QVariantList &params){    if (action == SetFocus || action == DefaultAction) {        if (child || !widget()->isEnabled())            return false;        if (widget()->focusPolicy() != Qt::NoFocus)            widget()->setFocus();        else if (widget()->isWindow())            widget()->activateWindow();        else            return false;        return true;    } else if (action > 0) {        if (QAction *act = widget()->actions().value(action - 1)) {            act->trigger();            return true;        }    }    return QAccessibleObject::doAction(action, child, params);}#endif // QT_NO_ACTION/*! \reimp */QAccessible::Role QAccessibleWidget::role(int child) const{    if (!child)        return d->role;    QWidgetList childList = childWidgets(widget());    if (childList.count() > 0 && child <= childList.count()) {        QWidget *targetWidget = childList.at(child - 1);        QAccessibleInterface *iface = QAccessible::queryAccessibleInterface(targetWidget);        if (iface) {            QAccessible::Role role = iface->role(0);            delete iface;            return role;        }    }    return NoRole;}/*! \reimp */QAccessible::State QAccessibleWidget::state(int child) const{    if (child)        return Normal;    QAccessible::State state = Normal;    QWidget *w = widget();    if (w->testAttribute(Qt::WA_WState_Visible) == false)        state |= Invisible;    if (w->focusPolicy() != Qt::NoFocus && w->isActiveWindow())        state |= Focusable;    if (w->hasFocus())        state |= Focused;    if (!w->isEnabled())        state |= Unavailable;    if (w->isWindow()) {        if (w->windowFlags() & Qt::WindowSystemMenuHint)            state |= Movable;        if (w->minimumSize() != w->maximumSize())            state |= Sizeable;    }    return state;}// ### Qt 5: remove me - binary compatibility hackQAccessibleWidgetEx::QAccessibleWidgetEx(QWidget *o, Role role, const QString& name)    : QAccessibleObjectEx(o){    Q_ASSERT(widget());    d = new QAccessibleWidgetPrivate();    d->role = role;    d->name = name;    d->asking = 0;}int QAccessibleWidgetEx::childCount() const{ return reinterpret_cast<const QAccessibleWidget *>(this)->QAccessibleWidget::childCount(); }int QAccessibleWidgetEx::indexOfChild(const QAccessibleInterface *child) const{ return reinterpret_cast<const QAccessibleWidget *>(this)->QAccessibleWidget::indexOfChild(child); }QAccessible::Relation QAccessibleWidgetEx::relationTo(int child, const QAccessibleInterface *other, int otherChild) const{ return reinterpret_cast<const QAccessibleWidget *>(this)->QAccessibleWidget::relationTo(child, other, otherChild); }int QAccessibleWidgetEx::childAt(int x, int y) const{ return reinterpret_cast<const QAccessibleWidget *>(this)->QAccessibleWidget::childAt(x, y); }QRect QAccessibleWidgetEx::rect(int child) const{ return reinterpret_cast<const QAccessibleWidget *>(this)->QAccessibleWidget::rect(child); }int QAccessibleWidgetEx::navigate(RelationFlag rel, int entry, QAccessibleInterface **target) const{ return reinterpret_cast<const QAccessibleWidget *>(this)->QAccessibleWidget::navigate(rel, entry, target); }QString QAccessibleWidgetEx::text(Text t, int child) const{ return reinterpret_cast<const QAccessibleWidget *>(this)->QAccessibleWidget::text(t, child); }QAccessible::Role QAccessibleWidgetEx::role(int child) const{ return reinterpret_cast<const QAccessibleWidget *>(this)->QAccessibleWidget::role(child); }QAccessible::State QAccessibleWidgetEx::state(int child) const{ return (reinterpret_cast<const QAccessibleWidget *>(this)->QAccessibleWidget::state(child))    | HasInvokeExtension; }QString QAccessibleWidgetEx::actionText(int action, Text t, int child) const{ return reinterpret_cast<const QAccessibleWidget *>(this)->QAccessibleWidget::actionText(action, t, child); }bool QAccessibleWidgetEx::doAction(int action, int child, const QVariantList &params){ return reinterpret_cast<QAccessibleWidget *>(this)->QAccessibleWidget::doAction(action, child, params); }QAccessibleWidgetEx::~QAccessibleWidgetEx(){ delete d; }QWidget *QAccessibleWidgetEx::widget() const{ return reinterpret_cast<const QAccessibleWidget *>(this)->QAccessibleWidget::widget(); }QObject *QAccessibleWidgetEx::parentObject() const{ return reinterpret_cast<const QAccessibleWidget *>(this)->QAccessibleWidget::parentObject(); }void QAccessibleWidgetEx::addControllingSignal(const QString &signal){ reinterpret_cast<QAccessibleWidget *>(this)->QAccessibleWidget::addControllingSignal(signal); }void QAccessibleWidgetEx::setValue(const QString &value){ reinterpret_cast<QAccessibleWidget *>(this)->QAccessibleWidget::setValue(value); }void QAccessibleWidgetEx::setDescription(const QString &desc){ reinterpret_cast<QAccessibleWidget *>(this)->QAccessibleWidget::setDescription(desc); }void QAccessibleWidgetEx::setHelp(const QString &help){ reinterpret_cast<QAccessibleWidget *>(this)->QAccessibleWidget::setHelp(help); }void QAccessibleWidgetEx::setAccelerator(const QString &accel){ reinterpret_cast<QAccessibleWidget *>(this)->QAccessibleWidget::setAccelerator(accel); }QVariant QAccessibleWidgetEx::invokeMethodEx(Method method, int child, const QVariantList & /*params*/){    if (child)        return QVariant();    switch (method) {    case ListSupportedMethods: {        QSet<QAccessible::Method> set;        set << ListSupportedMethods << ForegroundColor << BackgroundColor;        return qVariantFromValue(set);    }    case ForegroundColor:        return widget()->palette().color(widget()->foregroundRole());    case BackgroundColor:        return widget()->palette().color(widget()->backgroundRole());    default:        return QVariant();    }}#endif //QT_NO_ACCESSIBILITY

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -