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

📄 q3action.cpp

📁 奇趣公司比较新的qt/emd版本
💻 CPP
📖 第 1 页 / 共 5 页
字号:
                    id = menu->insertItem(iconSet(), text(), popup);                else                    id = menu->insertItem(iconSet(), menuText(), popup);            } else {                if (menuText().isEmpty())                    id = menu->insertItem(text(), popup);                else                    id = menu->insertItem(menuText(), popup);            }            addedTo(menu->indexOf(id), menu);            Q3ActionGroupPrivate::MenuItem *item = new Q3ActionGroupPrivate::MenuItem;            item->id = id;            item->popup = popup;            d->menuitems.append(item);        } else {            popup = (Q3PopupMenu*)w;        }        for (QList<Q3Action*>::Iterator it(d->actions.begin()); it != d->actions.end(); ++it) {            // #### do an addedTo(index, popup, action), need to find out index            (*it)->addTo(popup);        }        return true;    }    if (::qobject_cast<QMenu*>(w)) {        QMenu *menu = (QMenu*)w;        if (d->dropdown) {            Q3ActionGroupPrivate::Action4Item *ai = new Q3ActionGroupPrivate::Action4Item;            if(!ai->action)  { //static                ai->action = menu->menuAction();                if (!iconSet().isNull())                    ai->action->setIcon(iconSet());                if (menuText().isEmpty())                    ai->action->setText(text());                else                    ai->action->setText(menuText());            }            addedTo(w, w);            ai->widget = w;            ai->widget->addAction(Q3ActionGroupPrivate::Action4Item::action);            d->action4items.append(ai);            menu = ai->action->menu();        }        for (QList<Q3Action*>::Iterator it(d->actions.begin()); it != d->actions.end(); ++it)            (*it)->addTo(menu);        return true;    }    for (QList<Q3Action*>::Iterator it(d->actions.begin()); it != d->actions.end(); ++it) {        // #### do an addedTo(index, popup, action), need to find out index        (*it)->addTo(w);    }    return true;}/*! \reimp*/bool Q3ActionGroup::removeFrom(QWidget* w){    for (QList<Q3Action*>::Iterator it(d->actions.begin()); it != d->actions.end(); ++it)        (*it)->removeFrom(w);#ifndef QT_NO_TOOLBAR    if (::qobject_cast<Q3ToolBar*>(w)) {        QList<QComboBox*>::Iterator cb(d->comboboxes.begin());        while (cb != d->comboboxes.end()) {            QComboBox *box = *cb;            ++cb;            if (box->parentWidget() == w)                delete box;        }        QList<QToolButton*>::Iterator mb(d->menubuttons.begin());        while (mb != d->menubuttons.end()) {            QToolButton *btn = *mb;            ++mb;            if (btn->parentWidget() == w)                delete btn;        }    } else#endif    if (::qobject_cast<Q3PopupMenu*>(w)) {        QList<Q3ActionGroupPrivate::MenuItem*>::Iterator pu(d->menuitems.begin());        while (pu != d->menuitems.end()) {            Q3ActionGroupPrivate::MenuItem *mi = *pu;            ++pu;            if (d->dropdown && mi->popup)                ((Q3PopupMenu*)w)->removeItem(mi->id);            delete mi->popup;        }    }    if (::qobject_cast<QMenu*>(w)) {        QList<Q3ActionGroupPrivate::Action4Item*>::Iterator it(d->action4items.begin());        Q3ActionGroupPrivate::Action4Item *a4i;        while (it != d->action4items.end()) {            a4i = *it;            ++it;            if (a4i->widget == w) {                a4i->widget->removeAction(a4i->action);                d->action4items.removeAll(a4i);                delete a4i;            }        }    }    return true;}/*! \internal*/void Q3ActionGroup::childToggled(bool b){    if (!isExclusive())        return;    Q3Action* s = qobject_cast<Q3Action*>(sender());    if (!s)        return;    if (b) {        if (s != d->selected) {            d->selected = s;            for (QList<Q3Action*>::Iterator it(d->actions.begin()); it != d->actions.end(); ++it) {                if ((*it)->isToggleAction() && (*it) != s)                    (*it)->setOn(false);            }            emit selected(s);        }    } else {        if (s == d->selected) {            // at least one has to be selected            s->setOn(true);        }    }}/*! \internal*/void Q3ActionGroup::childActivated(){    Q3Action* s = qobject_cast<Q3Action*>(sender());    if (s) {        emit activated(s);        emit Q3Action::activated();    }}/*! \internal*/void Q3ActionGroup::childDestroyed(){    d->actions.removeAll((Q3Action *)sender());    if (d->selected == sender())        d->selected = 0;}/*! \reimp*/void Q3ActionGroup::setEnabled(bool enable){    if (enable == isEnabled())        return;    Q3Action::setEnabled(enable);    d->update(this);}/*! \reimp*/void Q3ActionGroup::setToggleAction(bool toggle){    for (QList<Q3Action*>::Iterator it(d->actions.begin()); it != d->actions.end(); ++it)        (*it)->setToggleAction(toggle);    Q3Action::setToggleAction(true);    d->update(this);}/*! \reimp*/void Q3ActionGroup::setOn(bool on){    for (QList<Q3Action*>::Iterator it(d->actions.begin()); it != d->actions.end(); ++it) {        Q3Action *act = *it;        if (act->isToggleAction())            act->setOn(on);    }    Q3Action::setOn(on);    d->update(this);}/*! \reimp */void Q3ActionGroup::setVisible(bool visible){    Q3Action::setVisible(visible);    d->update(this);}/*! \reimp*/void Q3ActionGroup::setIconSet(const QIcon& icon){    Q3Action::setIconSet(icon);    d->update(this);}/*! \reimp*/void Q3ActionGroup::setText(const QString& txt){    if (txt == text())        return;    Q3Action::setText(txt);    d->update(this);}/*! \reimp*/void Q3ActionGroup::setMenuText(const QString& text){    if (text == menuText())        return;    Q3Action::setMenuText(text);    d->update(this);}/*! \reimp*/void Q3ActionGroup::setToolTip(const QString& text){    if (text == toolTip())        return;    for (QList<Q3Action*>::Iterator it(d->actions.begin()); it != d->actions.end(); ++it) {        if ((*it)->toolTip().isNull())            (*it)->setToolTip(text);    }    Q3Action::setToolTip(text);    d->update(this);}/*! \reimp*/void Q3ActionGroup::setWhatsThis(const QString& text){    if (text == whatsThis())        return;    for (QList<Q3Action*>::Iterator it(d->actions.begin()); it != d->actions.end(); ++it) {        if ((*it)->whatsThis().isNull())            (*it)->setWhatsThis(text);    }    Q3Action::setWhatsThis(text);    d->update(this);}/*! \reimp*/void Q3ActionGroup::childEvent(QChildEvent *e){    if (!e->removed())        return;    Q3Action *action = qobject_cast<Q3Action*>(e->child());    if (!action)        return;    for (QList<QComboBox*>::Iterator cb(d->comboboxes.begin());         cb != d->comboboxes.end(); ++cb) {        for (int i = 0; i < (*cb)->count(); i++) {            if ((*cb)->text(i) == action->text()) {                (*cb)->removeItem(i);                break;            }        }    }    for (QList<QToolButton*>::Iterator mb(d->menubuttons.begin());         mb != d->menubuttons.end(); ++mb) {        QMenu* popup = (*mb)->popup();        if (!popup)            continue;        action->removeFrom(popup);    }    for (QList<Q3ActionGroupPrivate::MenuItem*>::Iterator mi(d->menuitems.begin());         mi != d->menuitems.end(); ++mi) {        Q3PopupMenu* popup = (*mi)->popup;        if (!popup)            continue;        action->removeFrom(popup);    }    if(QAction *act = Q3ActionGroupPrivate::Action4Item::action)        action->removeFrom(act->menu());}/*!    \fn void Q3ActionGroup::selected(Q3Action* action)    This signal is emitted from exclusive groups when toggle actions    change state.    The argument is the \a action whose state changed to "on".    \sa setExclusive(), isOn() Q3Action::toggled()*//*!    \fn void Q3ActionGroup::activated(Q3Action* action)    This signal is emitted from groups when one of its actions gets    activated.    The argument is the \a action which was activated.    \sa setExclusive(), isOn() Q3Action::toggled()*//*! \internal*/void Q3ActionGroup::internalComboBoxActivated(int index){    if (index == -1)        return;    Q3Action *a = 0;    for (int i = 0; i <= index && i < (int)d->actions.count(); ++i) {        a = d->actions.at(i);        if (a && a->objectName() == QLatin1String("qt_separator_action"))            index++;    }    a = d->actions.at(index);    if (a) {        if (a != d->selected) {            d->selected = a;            for (QList<Q3Action*>::Iterator it(d->actions.begin()); it != d->actions.end(); ++it) {                if ((*it)->isToggleAction() && (*it) != a)                    (*it)->setOn(false);            }            if (a->isToggleAction())                a->setOn(true);            emit activated(a);            emit Q3Action::activated();            emit a->activated();            if (a->isToggleAction())                emit selected(d->selected);        } else if (!a->isToggleAction()) {            emit activated(a);            emit Q3Action::activated();            emit a->activated();        }        a->clearStatusText();    }}/*! \internal*/void Q3ActionGroup::internalComboBoxHighlighted(int index){    Q3Action *a = 0;    for (int i = 0; i <= index && i < (int)d->actions.count(); ++i) {        a = d->actions.at(i);        if (a && a->objectName() == QLatin1String("qt_separator_action"))            index++;    }    a = d->actions.at(index);    if (a)        a->showStatusText(a->statusTip());    else        clearStatusText();}/*! \internal*/void Q3ActionGroup::internalToggle(Q3Action *a){    int index = d->actions.indexOf(a);    if (index == -1)        return;    int lastItem = index;    for (int i=0; i<lastItem; ++i) {        Q3Action *action = d->actions.at(i);        if (action->objectName() == QLatin1String("qt_separator_action"))            --index;    }    for (QList<QComboBox*>::Iterator it(d->comboboxes.begin());         it != d->comboboxes.end(); ++it)            (*it)->setCurrentItem(index);}/*! \internal*/void Q3ActionGroup::objectDestroyed(){    const QObject* obj = sender();    d->menubuttons.removeAll((QToolButton *)obj);    for (QList<Q3ActionGroupPrivate::MenuItem *>::Iterator mi(d->menuitems.begin());         mi != d->menuitems.end(); ++mi) {        if ((*mi)->popup == obj) {            d->menuitems.removeAll(*mi);            delete *mi;            break;        }    }    d->popupmenus.removeAll((Q3PopupMenu*)obj);    d->comboboxes.removeAll((QComboBox*)obj);}/*!    This function is called from the addTo() function when it has    created a widget (\a actionWidget) for the child action \a a in    the \a container.*/void Q3ActionGroup::addedTo(QWidget *actionWidget, QWidget *container, Q3Action *a){    Q_UNUSED(actionWidget);    Q_UNUSED(container);    Q_UNUSED(a);}/*!    \overload    This function is called from the addTo() function when it has    created a menu item for the child action at the index position \a    index in the popup menu \a menu.*/void Q3ActionGroup::addedTo(int index, Q3PopupMenu *menu, Q3Action *a){    Q_UNUSED(index);    Q_UNUSED(menu);    Q_UNUSED(a);}/*!    \reimp    \overload

⌨️ 快捷键说明

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