From a2903da89f8190c30b140e164fd83a0f31d591ae Mon Sep 17 00:00:00 2001 From: manongjohn Date: Sun, 22 Aug 2021 02:03:27 -0400 Subject: [PATCH 1/3] Fix Canvas Size availability --- toonz/sources/toonz/cellselection.cpp | 1 - toonz/sources/toonz/filmstrip.cpp | 7 +++++++ toonz/sources/toonz/filmstripselection.cpp | 13 ------------- toonz/sources/toonz/tapp.cpp | 7 +++++++ 4 files changed, 14 insertions(+), 14 deletions(-) diff --git a/toonz/sources/toonz/cellselection.cpp b/toonz/sources/toonz/cellselection.cpp index c3cfc7d6..3ac65866 100644 --- a/toonz/sources/toonz/cellselection.cpp +++ b/toonz/sources/toonz/cellselection.cpp @@ -1585,7 +1585,6 @@ void TCellSelection::selectCell(int row, int col) { void TCellSelection::selectNone() { m_range = Range(); - CommandManager::instance()->enable(MI_CanvasSize, false); } //----------------------------------------------------------------------------- diff --git a/toonz/sources/toonz/filmstrip.cpp b/toonz/sources/toonz/filmstrip.cpp index 72ec3b95..0f8d11c3 100644 --- a/toonz/sources/toonz/filmstrip.cpp +++ b/toonz/sources/toonz/filmstrip.cpp @@ -855,8 +855,15 @@ void FilmstripFrames::mousePressEvent(QMouseEvent *event) { TXshSimpleLevel *sl = getLevel(); + CommandManager::instance()->enable(MI_CanvasSize, false); + if (!sl) return; + bool isRasterLevel = + (sl->getType() == TZP_XSHLEVEL || sl->getType() == OVL_XSHLEVEL || + sl->getType() == TZI_XSHLEVEL); + CommandManager::instance()->enable(MI_CanvasSize, isRasterLevel); + // If accessed after 1st frame on a Single Frame level // Block movement so we can't create new images if (index > 0) { diff --git a/toonz/sources/toonz/filmstripselection.cpp b/toonz/sources/toonz/filmstripselection.cpp index eef118f0..f22ff4f0 100644 --- a/toonz/sources/toonz/filmstripselection.cpp +++ b/toonz/sources/toonz/filmstripselection.cpp @@ -146,11 +146,6 @@ void TFilmstripSelection::select(const TFrameId &fid, bool selected) { if (tool) tool->setSelectedFrames(m_selectedFrames); TXshSimpleLevel *sl = app->getCurrentLevel()->getSimpleLevel(); - bool rasterLevel = sl->getType() == TZP_XSHLEVEL || - sl->getType() == OVL_XSHLEVEL || - sl->getType() == TZI_XSHLEVEL; - - CommandManager::instance()->enable(MI_CanvasSize, rasterLevel); } //----------------------------------------------------------------------------- @@ -165,7 +160,6 @@ void TFilmstripSelection::selectNone() { m_selectedFrames.clear(); updateInbetweenRange(); TXshSimpleLevel *sl = TApp::instance()->getCurrentLevel()->getSimpleLevel(); - CommandManager::instance()->enable(MI_CanvasSize, false); } //----------------------------------------------------------------------------- @@ -180,10 +174,6 @@ void TFilmstripSelection::selectAll() { updateInbetweenRange(); TTool *tool = TApp::instance()->getCurrentTool()->getTool(); tool->setSelectedFrames(m_selectedFrames); - bool rasterLevel = sl->getType() == TZP_XSHLEVEL || - sl->getType() == OVL_XSHLEVEL || - sl->getType() == TZI_XSHLEVEL; - CommandManager::instance()->enable(MI_CanvasSize, rasterLevel); notifyView(); } @@ -204,9 +194,6 @@ void TFilmstripSelection::invertSelection() { updateInbetweenRange(); TTool *tool = TApp::instance()->getCurrentTool()->getTool(); tool->setSelectedFrames(m_selectedFrames); - if (sl->getType() == TZP_XSHLEVEL || sl->getType() == OVL_XSHLEVEL || - sl->getType() == TZI_XSHLEVEL) - CommandManager::instance()->enable(MI_CanvasSize, true); notifyView(); } diff --git a/toonz/sources/toonz/tapp.cpp b/toonz/sources/toonz/tapp.cpp index f9ab4179..63eb7cab 100644 --- a/toonz/sources/toonz/tapp.cpp +++ b/toonz/sources/toonz/tapp.cpp @@ -11,6 +11,7 @@ #include "cellselection.h" #include "sceneviewer.h" #include "statusbar.h" +#include "menubarcommandids.h" // TnzTools includes #include "tools/tool.h" @@ -566,6 +567,7 @@ void TApp::onColumnIndexSwitched() { void TApp::onXshLevelSwitched(TXshLevel *) { TXshLevel *level = m_currentLevel->getLevel(); + CommandManager::instance()->enable(MI_CanvasSize, false); if (level) { TXshSimpleLevel *simpleLevel = level->getSimpleLevel(); @@ -581,6 +583,11 @@ void TApp::onXshLevelSwitched(TXshLevel *) { currentPalette->isCleanupPalette()) m_paletteController->editCleanupPalette(); + bool isRasterLevel = (simpleLevel->getType() == TZP_XSHLEVEL || + simpleLevel->getType() == OVL_XSHLEVEL || + simpleLevel->getType() == TZI_XSHLEVEL); + CommandManager::instance()->enable(MI_CanvasSize, isRasterLevel); + return; } From 6be4bead4d4a68b50417136b8b6e25b512ca96e1 Mon Sep 17 00:00:00 2001 From: manongjohn Date: Sun, 22 Aug 2021 02:10:07 -0400 Subject: [PATCH 2/3] Disable Canvas Size for uneditable files --- toonz/sources/toonz/cellselection.cpp | 10 ++++++++-- toonz/sources/toonz/tapp.cpp | 6 ++++++ 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/toonz/sources/toonz/cellselection.cpp b/toonz/sources/toonz/cellselection.cpp index 3ac65866..c78cdee2 100644 --- a/toonz/sources/toonz/cellselection.cpp +++ b/toonz/sources/toonz/cellselection.cpp @@ -82,8 +82,14 @@ bool containsOnlyOneRasterLevel(int r0, int c0, int r1, int c1) { if (xsh->getCell(r, c).m_level.getPointer() != xl.getPointer()) return false; } - return xl && (xl->getType() == TZP_XSHLEVEL || - xl->getType() == OVL_XSHLEVEL || xl->getType() == TZI_XSHLEVEL); + if (!xl) return false; + if (xl->getType() == OVL_XSHLEVEL && + (xl->getPath().getType() == "psd" || xl->getPath().getType() == "gif" || + xl->getPath().getType() == "mp4" || xl->getPath().getType() == "webm" || + xl->getPath().getType() == "mov")) + return false; + return (xl->getType() == TZP_XSHLEVEL || xl->getType() == OVL_XSHLEVEL || + xl->getType() == TZI_XSHLEVEL); } //----------------------------------------------------------------------------- diff --git a/toonz/sources/toonz/tapp.cpp b/toonz/sources/toonz/tapp.cpp index 63eb7cab..ad2d8ea0 100644 --- a/toonz/sources/toonz/tapp.cpp +++ b/toonz/sources/toonz/tapp.cpp @@ -586,6 +586,12 @@ void TApp::onXshLevelSwitched(TXshLevel *) { bool isRasterLevel = (simpleLevel->getType() == TZP_XSHLEVEL || simpleLevel->getType() == OVL_XSHLEVEL || simpleLevel->getType() == TZI_XSHLEVEL); + if (isRasterLevel && (simpleLevel->getPath().getType() == "psd" || + simpleLevel->getPath().getType() == "gif" || + simpleLevel->getPath().getType() == "mp4" || + simpleLevel->getPath().getType() == "webm" || + simpleLevel->getPath().getType() == "mov")) + isRasterLevel = false; CommandManager::instance()->enable(MI_CanvasSize, isRasterLevel); return; From ce2523a1080a4ef9d93454804e7fddfe49d642fb Mon Sep 17 00:00:00 2001 From: manongjohn Date: Sun, 22 Aug 2021 02:12:41 -0400 Subject: [PATCH 3/3] Change location of Canvas Size in Raster context menu --- toonz/sources/toonz/xshcellviewer.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/toonz/sources/toonz/xshcellviewer.cpp b/toonz/sources/toonz/xshcellviewer.cpp index 6b652d4c..9d731f44 100644 --- a/toonz/sources/toonz/xshcellviewer.cpp +++ b/toonz/sources/toonz/xshcellviewer.cpp @@ -3479,6 +3479,7 @@ void CellArea::createCellMenu(QMenu &menu, bool isCellSelected, TXshCell cell) { if (selectionContainRasterImage(m_viewer->getCellSelection(), m_viewer->getXsheet())) { + menu.addAction(cmdManager->getAction(MI_CanvasSize)); QMenu *editImageMenu = new QMenu(tr("Edit Image"), this); { editImageMenu->addAction(cmdManager->getAction(MI_AdjustLevels)); @@ -3486,7 +3487,6 @@ void CellArea::createCellMenu(QMenu &menu, bool isCellSelected, TXshCell cell) { editImageMenu->addAction( cmdManager->getAction(MI_BrightnessAndContrast)); editImageMenu->addAction(cmdManager->getAction(MI_Antialias)); - editImageMenu->addAction(cmdManager->getAction(MI_CanvasSize)); } menu.addMenu(editImageMenu);