Esempio n. 1
0
static void InsertMenuItemAction( const wxMenu *menu, const wxMenuItem *previousItem,
    const wxMenuItem *item, const wxMenuItem *successiveItem )
{
    QMenu *qtMenu = menu->GetHandle();
    QAction *itemAction = item->GetHandle();
    if ( item->GetKind() == wxITEM_RADIO )
    {
        // If the previous menu item is a radio item then add this item to the
        // same action group, otherwise start a new group:

        if ( previousItem != NULL && previousItem->GetKind() == wxITEM_RADIO )
        {
            QAction *previousItemAction = previousItem->GetHandle();
            QActionGroup *previousItemActionGroup = previousItemAction->actionGroup();
            wxASSERT_MSG( previousItemActionGroup != NULL, "An action group should have been setup" );
            previousItemActionGroup->addAction( itemAction );
        }
        else
        {
            QActionGroup *actionGroup = new QActionGroup( qtMenu );
            actionGroup->addAction( itemAction );
            wxASSERT_MSG( itemAction->actionGroup() == actionGroup, "Must be the same action group" );
        }
    }
    // Insert the action into the actual menu:
    QAction *successiveItemAction = ( successiveItem != NULL ) ? successiveItem->GetHandle() : NULL;
    qtMenu->insertAction( successiveItemAction, itemAction );
}
Esempio n. 2
0
QActionGroup *QActionProto::actionGroup() const
{
  QAction *item = qscriptvalue_cast<QAction*>(thisObject());
  if (item)
    return item->actionGroup();
  return 0;
}
Esempio n. 3
0
ToolbarDialog::ToolbarDialog(QWidget* parent)
    : QDialog(parent),m_defaultToolBars()
{
    setupUi(this);

    createDefaultToolBars();
    // populate all available actions
    QList<QAction*> actions = parent->findChildren<QAction*>(QRegExp("action*"));
    QAction* action;
    foreach(action, actions) {
        if (action->actionGroup()->objectName() != "extraGroup")
            continue;
        QListWidgetItem* item = new QListWidgetItem(action->toolTip());
        item->setIcon(action->icon());
        item->setData(Qt::UserRole, QVariant::fromValue((QObject*)action));
        listAllActions->addItem(item);
    }
    // Important to add special Separator
    listAllActions->addItem("Separator");

    QList<QToolBar*> toolbars = parent->findChildren<QToolBar*>();
    QToolBar* toolbar = NULL;
    int index = 0;
    foreach(toolbar, toolbars) {
        index = (int)(toolbar->iconSize().height()/10)-1;
        if (toolbar->objectName() != "keyToolBar")
            comboToolbars->addItem(toolbar->windowTitle(), QVariant::fromValue((QObject*)toolbar));
    }
void RackWindow::deletePluginSwitchAction(QObject *action)
{
    QAction *act = qobject_cast<QAction *>(action);
    QActionGroup *ag = act->actionGroup();

    //make sure we have a checked action in the actiongroup after we delete this one
    if (act == ag->checkedAction() && ag->actions().count() > 1) {
        if (act == ag->actions().last())
        {
            ag->actions().at(ag->actions().count() - 2)->trigger();
        }
        else
        {
            ag->actions().at(ag->actions().indexOf(act) + 1)->trigger();
        }
    }
    delete act;
    act = 0;
}
Esempio n. 5
0
void QRibbonButtonBar::mouseReleaseEvent(QMouseEvent* evt)
{
	QPoint cursor(evt->pos());

	if (m_active_button)
	{
		QRibbonButtonBarButtonSizeInfo& size = m_active_button->base->sizes[m_active_button->size];
		QRect btn_rect;
		btn_rect.setTopLeft(m_layout_offset + m_active_button->position);
		btn_rect.setSize(size.size);
		if (btn_rect.contains(cursor))
		{
			int id = m_active_button->base->id;
			cursor -= btn_rect.topLeft();
			QAction* pAction = m_active_button->base->m_pAction;
			if (pAction)
			{
				do
				{
					if (size.normal_region.contains(cursor))
					{
						int nKind = m_active_button->base->kind;
						if (nKind == QRIBBON_BUTTON_NORMAL)
						{
							pAction->triggered();
						}
						else if (nKind == QRIBBON_BUTTON_TOGGLE)
						{
							pAction->triggered(true);
						}
						else if (nKind == QRIBBON_BUTTON_HYBRID || nKind == QRIBBON_BUTTON_DROPDOWN)
						{
							QActionGroup* pGroup = pAction->actionGroup();
							if (pGroup)
							{
								QList<QAction*> lsActions = pGroup->actions();
								Q_ASSERT(lsActions.size() == 3);
								QAction* pAction1 = lsActions.at(0);
								QAction* pAction2 = lsActions.at(1);
								if (pAction1 && pAction2)
								{
									pAction1->triggered();
									pAction2->triggered();
								}
							}
						}

					}
					m_lock_active_state = true;
					m_lock_active_state = false;
				} while (false);
			}
			if (m_active_button) // may have been NULLed by event handler
			{
				m_active_button->base->state &= ~QRIBBON_BUTTONBAR_BUTTON_ACTIVE_MASK;
				m_active_button = NULL;
			}
			update();
		}
	}
}
Esempio n. 6
0
int Action::actionGroup(lua_State * L) // const : QActionGroup
{
    QAction* obj = QtObject<QAction>::check( L, 1);
    QtObject<QActionGroup>::create( L, obj->actionGroup() );
	return 1;
}