Beispiel #1
0
ToolMenuActions::ToolMenuActions(
        iscore::ToplevelMenuElement menuElt,
        ScenarioControl* parent) :
    ScenarioActions{menuElt, parent}
{
    m_scenarioToolActionGroup = new QActionGroup{this};
    m_scenarioToolActionGroup->setDisabled(true);

    // NOTE : if a scenario isn't focused, they shouldn't event be clickable.

    // SELECT AND MOVE
    m_selecttool = makeToolbarAction(
                     tr("Select and Move"),
                     m_scenarioToolActionGroup,
                     Scenario::Tool::Select,
                     tr("Alt+x"));
    m_selecttool->setObjectName("Select");
    m_selecttool->setChecked(true);

    connect(m_selecttool, &QAction::toggled, this, [=](bool b) {
        if (b)
            m_parent->editionSettings().setTool(Scenario::Tool::Select);
    });

    // CREATE
    m_createtool = makeToolbarAction(
                          tr("Create"),
                          m_scenarioToolActionGroup,
                          Scenario::Tool::Create,
                          tr("Ctrl"));
    connect(m_createtool, &QAction::toggled, this, [=](bool b) {
        if(b)
            m_parent->editionSettings().setTool(Scenario::Tool::Create);
    });

    // MOVEDECK
    auto slotmovetool = makeToolbarAction(
                            tr("Move Slot"),
                            m_scenarioToolActionGroup,
                            Scenario::Tool::MoveSlot,
                            tr("Alt+b"));
    connect(slotmovetool, &QAction::triggered, this, [=]() {
        m_parent->editionSettings().setTool(Scenario::Tool::MoveSlot);
    });

    // SHIFT
    m_shiftAction = makeToolbarAction(
                            tr("Sequence"),
                            this,
                            ExpandMode::Fixed,
                            tr("Shift"));
    connect(m_shiftAction, &QAction::toggled, this, [=] (bool val)
    {
        m_parent->editionSettings().setSequence(val);
    });

    // SCALEMODE
    m_scenarioScaleModeActionGroup = new QActionGroup{this};

    auto scale = makeToolbarAction(
                     tr("Scale"),
                     m_scenarioScaleModeActionGroup,
                     ExpandMode::Scale,
                     tr("Alt+S"));
    scale->setChecked(true);
    connect(scale, &QAction::triggered, this, [=]()
    {
        m_parent->editionSettings().setExpandMode(ExpandMode::Scale);
    });

    auto grow = makeToolbarAction(
                    tr("Grow/Shrink"),
                    m_scenarioScaleModeActionGroup,
                    ExpandMode::Grow,
                    tr("Alt+D"));
    connect(grow, &QAction::triggered, this, [=]()
    {
        m_parent->editionSettings().setExpandMode(ExpandMode::Grow);
    });

    auto fixed = makeToolbarAction(
                    tr("Keep Duration"),
                    m_scenarioScaleModeActionGroup,
                    ExpandMode::Fixed,
                    tr("Alt+F"));
    connect(fixed, &QAction::triggered, this, [=]()
    {
        m_parent->editionSettings().setExpandMode(ExpandMode::Fixed);
    });

    connect(parent, &ScenarioControl::keyPressed,
            this,   &ToolMenuActions::keyPressed);

    connect(parent, &ScenarioControl::keyReleased,
            this,   &ToolMenuActions::keyReleased);

}
Beispiel #2
0
ToolMenuActions::ToolMenuActions(
        iscore::ToplevelMenuElement menuElt,
        ScenarioApplicationPlugin* parent) :
    ScenarioActions{menuElt, parent}
{
    m_scenarioToolActionGroup = new QActionGroup{this};
    m_scenarioToolActionGroup->setDisabled(true);

    // NOTE : if a scenario isn't focused, they shouldn't event be clickable.

    // SELECT AND MOVE
    m_selecttool = makeToolbarAction(
                     tr("Select and Move"),
                     m_scenarioToolActionGroup,
                     Scenario::Tool::Select,
                     tr("S"));
    m_selecttool->setShortcuts({Qt::Key_S, Qt::Key_M});
    m_selecttool->setToolTip({"Select and Move (S, M)"});
    m_selecttool->setObjectName("Select");
    m_selecttool->setChecked(true);

    connect(m_selecttool, &QAction::toggled, this, [=](bool b) {
        if (b)
            m_parent->editionSettings().setTool(Scenario::Tool::Select);
    });

    // CREATE
    m_createtool = makeToolbarAction(
                          tr("Create"),
                          m_scenarioToolActionGroup,
                          Scenario::Tool::Create,
                          tr("C"));
    connect(m_createtool, &QAction::triggered, this, [=](bool b) {
        if(b)
            m_parent->editionSettings().setTool(Scenario::Tool::Create);
    });

    // PLAY
    m_playtool = makeToolbarAction(
                     tr("Play"),
                     m_scenarioToolActionGroup,
                     Scenario::Tool::Play,
                     tr("P"));
    connect(m_playtool, &QAction::triggered, this, [=] (bool b) {
        if(b)
            m_parent->editionSettings().setTool(Scenario::Tool::Play);
    });

    // MOVESLOT
    auto slotmovetool = makeToolbarAction(
                            tr("Move Slot"),
                            m_scenarioToolActionGroup,
                            Scenario::Tool::MoveSlot,
                            tr("Alt+b"));
    connect(slotmovetool, &QAction::triggered, this, [=]() {
        m_parent->editionSettings().setTool(Scenario::Tool::MoveSlot);
    });

    // SHIFT
    m_shiftAction = makeToolbarAction(
                            tr("Sequence"),
                            this,
                            ExpandMode::Fixed,
                            tr("Shift"));
    connect(m_shiftAction, &QAction::toggled, this, [=] (bool val)
    {
        m_parent->editionSettings().setSequence(val);
    });

    // SCALEMODE
    m_scenarioScaleModeActionGroup = new QActionGroup{this};

    auto scale = makeToolbarAction(
                     tr("Scale"),
                     m_scenarioScaleModeActionGroup,
                     ExpandMode::Scale,
                     tr("Alt+S"));
    scale->setChecked(true);
    connect(scale, &QAction::triggered, this, [=]()
    {
        m_parent->editionSettings().setExpandMode(ExpandMode::Scale);
    });

    auto grow = makeToolbarAction(
                    tr("Grow/Shrink"),
                    m_scenarioScaleModeActionGroup,
                    ExpandMode::GrowShrink,
                    tr("Alt+D"));
    connect(grow, &QAction::triggered, this, [=]()
    {
        m_parent->editionSettings().setExpandMode(ExpandMode::GrowShrink);
    });

    /*
    auto fixed = makeToolbarAction(
                    tr("Keep Duration"),
                    m_scenarioScaleModeActionGroup,
                    ExpandMode::Fixed,
                    tr("Alt+F"));
    connect(fixed, &QAction::triggered, this, [=]()
    {
        m_parent->editionSettings().setExpandMode(ExpandMode::Fixed);
    });
    */

    connect(parent, &ScenarioApplicationPlugin::keyPressed,
            this,   &ToolMenuActions::keyPressed);

    connect(parent, &ScenarioApplicationPlugin::keyReleased,
            this,   &ToolMenuActions::keyReleased);

    con(parent->editionSettings(), &Scenario::EditionSettings::toolChanged,
        this, [=] (Scenario::Tool t) {
        switch(t)
        {
            case Scenario::Tool::Create:
                if(!m_createtool->isChecked())
                    m_createtool->setChecked(true);
                break;
            case Scenario::Tool::Play:
                if(!m_playtool->isChecked())
                    m_playtool->setChecked(true);
                break;
            case Scenario::Tool::MoveSlot:
                if(!slotmovetool->isChecked())
                    slotmovetool->setChecked(true);
                break;
            case Scenario::Tool::Disabled:
                break;
            case Scenario::Tool::Playing:
                m_createtool->setChecked(false);
                m_playtool->setChecked(false);
                slotmovetool->setChecked(false);
                m_selecttool->setChecked(false);
                break;
            case Scenario::Tool::Select:
                if(!m_selecttool->isChecked())
                    m_selecttool->setChecked(true);
                break;
            default:
                break;
        }
    });

    con(parent->editionSettings(), &Scenario::EditionSettings::sequenceChanged,
        this, [=] (bool sequence) {
        if(sequence)
        {
            if(!m_shiftAction->isChecked())
                m_shiftAction->setChecked(true);
        }
        else
        {
            if(m_shiftAction->isChecked())
                m_shiftAction->setChecked(false);
        }
    });

    con(parent->editionSettings(), &Scenario::EditionSettings::expandModeChanged,
        this, [=] (ExpandMode mode)
    {
        switch(mode)
        {
            case ExpandMode::Scale:
                if(!scale->isChecked())
                    scale->setChecked(true);
                break;
            case ExpandMode::GrowShrink:
            case ExpandMode::ForceGrow:
                if(!grow->isChecked())
                    grow->setChecked(true);
                break;
                /*
            case ExpandMode::Fixed:
                if(!fixed->isChecked())
                    fixed->setChecked(true);
                break;
                */

        }
    });
}