From 0edd2aceaa7afb616137222c7dc7d80327f005fe Mon Sep 17 00:00:00 2001 From: Jeremy Bullock Date: Nov 07 2017 22:01:13 +0000 Subject: Merge pull request #1516 from shun-iwasawa/refine_cell_menus Refine Right-Click Menu of the Xsheet Cell Area --- diff --git a/toonz/sources/toonz/cellselection.cpp b/toonz/sources/toonz/cellselection.cpp index ef7676d..0a8b4b4 100644 --- a/toonz/sources/toonz/cellselection.cpp +++ b/toonz/sources/toonz/cellselection.cpp @@ -1326,40 +1326,18 @@ void TCellSelection::enableCommands() { bool TCellSelection::isEnabledCommand( std::string commandId) { // static function - static QList commands = {MI_Autorenumber, - MI_Reverse, - MI_Swing, - MI_Random, - MI_Increment, - MI_ResetStep, - MI_IncreaseStep, - MI_DecreaseStep, - MI_Step2, - MI_Step3, - MI_Step4, - MI_Each2, - MI_Each3, - MI_Each4, - MI_Rollup, - MI_Rolldown, - MI_TimeStretch, - MI_CloneLevel, - MI_SetKeyframes, - MI_Copy, - MI_Paste, - MI_PasteInto, - MI_Cut, - MI_Clear, - MI_Insert, - MI_PasteInto, - MI_Reframe1, - MI_Reframe2, - MI_Reframe3, - MI_Reframe4, - MI_ReframeWithEmptyInbetweens, - MI_Undo, - MI_Redo, - MI_PasteNumbers}; + static QList commands = { + MI_Autorenumber, MI_Reverse, MI_Swing, + MI_Random, MI_Increment, MI_ResetStep, + MI_IncreaseStep, MI_DecreaseStep, MI_Step2, + MI_Step3, MI_Step4, MI_Each2, + MI_Each3, MI_Each4, MI_Rollup, + MI_Rolldown, MI_TimeStretch, MI_CloneLevel, + MI_SetKeyframes, MI_Copy, MI_Paste, + MI_PasteInto, MI_Cut, MI_Clear, + MI_Insert, MI_Reframe1, MI_Reframe2, + MI_Reframe3, MI_Reframe4, MI_ReframeWithEmptyInbetweens, + MI_Undo, MI_Redo, MI_PasteNumbers}; return commands.contains(commandId); } diff --git a/toonz/sources/toonz/xshcellviewer.cpp b/toonz/sources/toonz/xshcellviewer.cpp index 74e80b3..18091ac 100644 --- a/toonz/sources/toonz/xshcellviewer.cpp +++ b/toonz/sources/toonz/xshcellviewer.cpp @@ -2582,9 +2582,9 @@ void CellArea::createCellMenu(QMenu &menu, bool isCellSelected) { if (isCellSelected) { menu.addAction(cmdManager->getAction(MI_LevelSettings)); + menu.addSeparator(); if (!soundCellsSelected) { - //- force reframe QMenu *reframeSubMenu = new QMenu(tr("Reframe"), this); { reframeSubMenu->addAction(cmdManager->getAction(MI_Reframe1)); @@ -2614,22 +2614,32 @@ void CellArea::createCellMenu(QMenu &menu, bool isCellSelected) { } menu.addMenu(eachSubMenu); - menu.addSeparator(); - - menu.addAction(cmdManager->getAction(MI_Reverse)); - menu.addAction(cmdManager->getAction(MI_Swing)); - menu.addAction(cmdManager->getAction(MI_Random)); - menu.addAction(cmdManager->getAction(MI_Dup)); + QMenu *editCellNumbersMenu = new QMenu(tr("Edit Cell Numbers"), this); + { + editCellNumbersMenu->addAction(cmdManager->getAction(MI_Reverse)); + editCellNumbersMenu->addAction(cmdManager->getAction(MI_Swing)); + editCellNumbersMenu->addAction(cmdManager->getAction(MI_Random)); + editCellNumbersMenu->addAction(cmdManager->getAction(MI_Dup)); + editCellNumbersMenu->addAction(cmdManager->getAction(MI_Rollup)); + editCellNumbersMenu->addAction(cmdManager->getAction(MI_Rolldown)); + editCellNumbersMenu->addAction(cmdManager->getAction(MI_TimeStretch)); + editCellNumbersMenu->addAction( + cmdManager->getAction(MI_AutoInputCellNumber)); + } + menu.addMenu(editCellNumbersMenu); - menu.addAction(cmdManager->getAction(MI_Rollup)); - menu.addAction(cmdManager->getAction(MI_Rolldown)); - menu.addAction(cmdManager->getAction(MI_TimeStretch)); - menu.addAction(cmdManager->getAction(MI_AutoInputCellNumber)); menu.addSeparator(); menu.addAction(cmdManager->getAction(MI_Autorenumber)); } - menu.addAction(cmdManager->getAction(MI_ReplaceLevel)); - menu.addAction(cmdManager->getAction(MI_ReplaceParentDirectory)); + + QMenu *replaceLevelMenu = new QMenu(tr("Replace Level"), this); + menu.addMenu(replaceLevelMenu); + + replaceLevelMenu->addAction(cmdManager->getAction(MI_ReplaceLevel)); + + replaceLevelMenu->addAction( + cmdManager->getAction(MI_ReplaceParentDirectory)); + { // replace with another level in scene cast std::vector levels; @@ -2639,7 +2649,7 @@ void CellArea::createCellMenu(QMenu &menu, bool isCellSelected) { ->getLevelSet() ->listLevels(levels); if (!levels.empty()) { - QMenu *replaceMenu = menu.addMenu(tr("Replace")); + QMenu *replaceMenu = replaceLevelMenu->addMenu(tr("Replace with")); connect(replaceMenu, SIGNAL(triggered(QAction *)), this, SLOT(onReplaceByCastedLevel(QAction *))); for (int i = 0; i < (int)levels.size(); i++) { @@ -2662,14 +2672,31 @@ void CellArea::createCellMenu(QMenu &menu, bool isCellSelected) { if (!soundCellsSelected) { if (selectionContainTlvImage(m_viewer->getCellSelection(), m_viewer->getXsheet())) - menu.addAction(cmdManager->getAction(MI_RevertToCleanedUp)); + replaceLevelMenu->addAction( + cmdManager->getAction(MI_RevertToCleanedUp)); if (selectionContainLevelImage(m_viewer->getCellSelection(), m_viewer->getXsheet())) - menu.addAction(cmdManager->getAction(MI_RevertToLastSaved)); + replaceLevelMenu->addAction( + cmdManager->getAction(MI_RevertToLastSaved)); menu.addAction(cmdManager->getAction(MI_SetKeyframes)); } menu.addSeparator(); + menu.addAction(cmdManager->getAction(MI_Cut)); + menu.addAction(cmdManager->getAction(MI_Copy)); + menu.addAction(cmdManager->getAction(MI_Paste)); + + QMenu *pasteSpecialMenu = new QMenu(tr("Paste Special"), this); + { + pasteSpecialMenu->addAction(cmdManager->getAction(MI_PasteInto)); + pasteSpecialMenu->addAction(cmdManager->getAction(MI_PasteNumbers)); + } + menu.addMenu(pasteSpecialMenu); + + menu.addAction(cmdManager->getAction(MI_Clear)); + menu.addAction(cmdManager->getAction(MI_Insert)); + menu.addSeparator(); + TXshSimpleLevel *sl = TApp::instance()->getCurrentLevel()->getSimpleLevel(); if (sl || soundCellsSelected) menu.addAction(cmdManager->getAction(MI_FileInfo)); @@ -2679,11 +2706,17 @@ void CellArea::createCellMenu(QMenu &menu, bool isCellSelected) { menu.addSeparator(); if (selectionContainRasterImage(m_viewer->getCellSelection(), m_viewer->getXsheet())) { - menu.addAction(cmdManager->getAction(MI_AdjustLevels)); - menu.addAction(cmdManager->getAction(MI_LinesFade)); - menu.addAction(cmdManager->getAction(MI_BrightnessAndContrast)); - menu.addAction(cmdManager->getAction(MI_Antialias)); - menu.addAction(cmdManager->getAction(MI_CanvasSize)); + QMenu *editImageMenu = new QMenu(tr("Edit Image"), this); + { + editImageMenu->addAction(cmdManager->getAction(MI_AdjustLevels)); + editImageMenu->addAction(cmdManager->getAction(MI_LinesFade)); + editImageMenu->addAction( + cmdManager->getAction(MI_BrightnessAndContrast)); + editImageMenu->addAction(cmdManager->getAction(MI_Antialias)); + editImageMenu->addAction(cmdManager->getAction(MI_CanvasSize)); + } + menu.addMenu(editImageMenu); + } else if (selectionContainTlvImage(m_viewer->getCellSelection(), m_viewer->getXsheet())) menu.addAction(cmdManager->getAction(MI_CanvasSize)); @@ -2691,7 +2724,6 @@ void CellArea::createCellMenu(QMenu &menu, bool isCellSelected) { menu.addSeparator(); if (!soundCellsSelected) menu.addAction(cmdManager->getAction(MI_ImportMagpieFile)); - menu.addAction(cmdManager->getAction(MI_PasteNumbers)); } //----------------------------------------------------------------------------- /*! replace level with another level in the cast