Exemplo n.º 1
0
QAction *ToolMainWindow::addToolWindow(Qt::DockWidgetArea area, QWidget *widget, const QString &id, const QString &title, bool split, QList<QAction*> widgetActions)
{
    QMap<QString,InitToolSate>::iterator it = m_initIdStateMap.find(id);
    if (it != m_initIdStateMap.end()) {
        area = it.value().area;
        split = it.value().split;
    }

    ActionToolBar *actToolBar = m_areaToolBar.value(area);
    QAction *action = new QAction(this);
    action->setText(title);
    action->setCheckable(true);
    action->setObjectName(id);

    ActionState *state = new ActionState;
    state->area = area;
    state->split = split;
    state->widget = widget;
    state->widgetActions = widgetActions;
    state->id = id;
    state->title = title;

    actToolBar->addAction(action,title,split);

    int index = m_actStateMap.size();
    if (index <= 9) {
        action->setText(QString("&%1: %2").arg(index).arg(title));
        action->setToolTip(tr("\"%1\" Tool Window\tALT+%2").arg(title).arg(index));
        action->setShortcut(QKeySequence(QString("ALT+%1").arg(index)));
    }
    m_actStateMap.insert(action,state);

    connect(action,SIGNAL(toggled(bool)),this,SLOT(toggledAction(bool)));
    return action;
}
Exemplo n.º 2
0
void ToolMainWindow::removeToolWindow(QAction *action)
{
    ActionState *state = m_actStateMap.value(action);
    if (!state) {
        return;
    }
    if (action->isChecked()) {
        action->setChecked(false);
    }
    ActionToolBar *actToolBar = m_areaToolBar.value(state->area);
    if (actToolBar) {
        actToolBar->removeAction(action,state->split);
    }
}
Exemplo n.º 3
0
void ToolMainWindow::moveToolWindow(Qt::DockWidgetArea area,QAction *action,bool split)
{
    ActionState *state = m_actStateMap.value(action);
    if (!state) {
        return;
    }
    if (state->area == area && state->split == split) {
        return;
    }
    ActionToolBar *actionToolBar = m_areaToolBar.value(area);
    ActionToolBar *oldActToolBar = m_areaToolBar.value(state->area);

    if (action->isChecked()) {
        action->setChecked(false);
    }

    oldActToolBar->removeAction(action,state->split);
    actionToolBar->addAction(action,state->title,split);

    state->area = area;
    state->split = split;
    action->setChecked(true);
}
Exemplo n.º 4
0
QAction *ToolMainWindow::addToolWindow(LiteApi::IApplication *app,Qt::DockWidgetArea area, QWidget *widget, const QString &id, const QString &title, bool split, QList<QAction*> widgetActions)
{
    QMap<QString,InitToolSate>::iterator it = m_initIdStateMap.find(id);
    if (it != m_initIdStateMap.end()) {
        area = it.value().area;
        split = it.value().split;
    }

    ActionToolBar *actToolBar = m_areaToolBar.value(area);
    QAction *action = new QAction(this);
    action->setText(title);
    action->setCheckable(true);
    action->setObjectName(id);

    ActionState *state = new ActionState;
    state->area = area;
    state->split = split;
    state->widget = widget;
    state->widgetActions = widgetActions;
    state->id = id;
    state->title = title;

    actToolBar->addAction(action,title,split);

    int index = m_actStateMap.size();
    if (index <= 9) {
        action->setText(QString("%1: %2").arg(index).arg(title));
        QKeySequence ks(LiteApi::UseMacShortcuts?QString("Ctrl+Alt+%1").arg(index):QString("Alt+%1").arg(index));
        LiteApi::IActionContext *actionContext = app->actionManager()->getActionContext(app,"App");
        actionContext->regAction(action,"ToolWindow_"+id,ks);
    }
    m_actStateMap.insert(action,state);

    connect(action,SIGNAL(toggled(bool)),this,SLOT(toggledAction(bool)));
    return action;
}