diff --git a/stuff/profiles/layouts/OpenToonz/room4_menubar.xml b/stuff/profiles/layouts/OpenToonz/room4_menubar.xml index 544b309..e869102 100644 --- a/stuff/profiles/layouts/OpenToonz/room4_menubar.xml +++ b/stuff/profiles/layouts/OpenToonz/room4_menubar.xml @@ -23,6 +23,7 @@ MI_LoadSubSceneFile MI_CloneChild MI_ExplodeChild + MI_ToggleEditInPlace MI_LoadLevel diff --git a/toonz/sources/include/toonzqt/selectioncommandids.h b/toonz/sources/include/toonzqt/selectioncommandids.h index b639de6..0dd6b73 100644 --- a/toonz/sources/include/toonzqt/selectioncommandids.h +++ b/toonz/sources/include/toonzqt/selectioncommandids.h @@ -33,5 +33,6 @@ #define MI_CloseChild "MI_CloseChild" #define MI_Collapse "MI_Collapse" #define MI_ExplodeChild "MI_ExplodeChild" +#define MI_ToggleEditInPlace "MI_ToggleEditInPlace" #endif diff --git a/toonz/sources/toonz/mainwindow.cpp b/toonz/sources/toonz/mainwindow.cpp index 7004213..bc86972 100644 --- a/toonz/sources/toonz/mainwindow.cpp +++ b/toonz/sources/toonz/mainwindow.cpp @@ -1685,6 +1685,7 @@ void MainWindow::defineActions() createMenuXsheetAction(MI_CloseChild, tr("&Close Sub-xsheet"), ""); createMenuXsheetAction(MI_ExplodeChild, tr("Explode Sub-xsheet"), ""); createMenuXsheetAction(MI_Collapse, tr("Collapse"), ""); + createMenuXsheetAction(MI_ToggleEditInPlace, tr("Toggle Edit in Place"), ""); createMenuXsheetAction(MI_SaveSubxsheetAs, tr("&Save Sub-xsheet As..."), ""); createMenuXsheetAction(MI_Resequence, tr("Resequence"), ""); createMenuXsheetAction(MI_CloneChild, tr("Clone Sub-xsheet"), ""); diff --git a/toonz/sources/toonz/menubar.cpp b/toonz/sources/toonz/menubar.cpp index d31e833..fff63ae 100644 --- a/toonz/sources/toonz/menubar.cpp +++ b/toonz/sources/toonz/menubar.cpp @@ -876,6 +876,7 @@ QMenuBar* StackedMenuBar::createXsheetMenuBar() addMenuItem(subxsheetMenu, MI_OpenChild); addMenuItem(subxsheetMenu, MI_CloseChild); addMenuItem(subxsheetMenu, MI_Collapse); + addMenuItem(subxsheetMenu, MI_ToggleEditInPlace); addMenuItem(subxsheetMenu, MI_Resequence); addMenuItem(subxsheetMenu, MI_SaveSubxsheetAs); addMenuItem(subxsheetMenu, MI_LoadSubSceneFile); diff --git a/toonz/sources/toonz/subscenecommand.cpp b/toonz/sources/toonz/subscenecommand.cpp index ec23e8d..cd92d07 100644 --- a/toonz/sources/toonz/subscenecommand.cpp +++ b/toonz/sources/toonz/subscenecommand.cpp @@ -1091,6 +1091,20 @@ void closeSubXsheet(int dlevel) //============================================================================= +void toggleEditInPlace() +{ + TApp *app = TApp::instance(); + ToonzScene *scene = app->getCurrentScene()->getScene(); + int ancestorCount = scene->getChildStack()->getAncestorCount(); + if (ancestorCount == 0) + return; + scene->getChildStack()->setEditInPlace(!scene->getChildStack()->getEditInPlace()); + /*- Notify the change in order to update the viewer -*/ + app->instance()->getCurrentXsheet()->notifyXsheetChanged(); +} + +//============================================================================= + void bringPegbarsInsideChildXsheet(TXsheet *xsh, TXsheet *childXsh) { // retrieve all pegbars used from copied columns @@ -2156,6 +2170,17 @@ public: } closeChildCommand; //============================================================================= +// ToggleEditInPlaceCommand +//----------------------------------------------------------------------------- + +class ToggleEditInPlaceCommand : public MenuItemHandler +{ +public: + ToggleEditInPlaceCommand() : MenuItemHandler(MI_ToggleEditInPlace) {} + void execute() { toggleEditInPlace(); } +} toggleEditInPlaceCommand; + +//============================================================================= // collapseColumns //-----------------------------------------------------------------------------