From d2bb273bc12ed671c6eb4e1bac65fb9a3072fe19 Mon Sep 17 00:00:00 2001 From: shun-iwasawa Date: Jan 27 2020 11:17:43 +0000 Subject: reset undo when saving levels preference option --- diff --git a/toonz/sources/include/toonz/preferencesitemids.h b/toonz/sources/include/toonz/preferencesitemids.h index affc4e8..11b2b92 100644 --- a/toonz/sources/include/toonz/preferencesitemids.h +++ b/toonz/sources/include/toonz/preferencesitemids.h @@ -65,6 +65,7 @@ enum PreferencesItemId { //---------- // Saving rasterBackgroundColor, + resetUndoOnSavingLevel, //---------- // Import / Export diff --git a/toonz/sources/toonz/filebrowserpopup.cpp b/toonz/sources/toonz/filebrowserpopup.cpp index 84dc4d2..5661738 100644 --- a/toonz/sources/toonz/filebrowserpopup.cpp +++ b/toonz/sources/toonz/filebrowserpopup.cpp @@ -1651,7 +1651,8 @@ bool SaveLevelAsPopup::execute() { DvDirModel::instance()->refreshFolder(fp.getParentDir()); // reset undo memory!! - TUndoManager::manager()->reset(); + if (Preferences::instance()->getBoolValue(resetUndoOnSavingLevel)) + TUndoManager::manager()->reset(); } if (ret) diff --git a/toonz/sources/toonz/iocommand.cpp b/toonz/sources/toonz/iocommand.cpp index 9ca7341..d548c03 100644 --- a/toonz/sources/toonz/iocommand.cpp +++ b/toonz/sources/toonz/iocommand.cpp @@ -2788,8 +2788,8 @@ public: } // reset the undo before save level - // TODO: この仕様、Preferencesでオプション化する - TUndoManager::manager()->reset(); + if (Preferences::instance()->getBoolValue(resetUndoOnSavingLevel)) + TUndoManager::manager()->reset(); if (!IoCmd::saveLevel()) error(QObject::tr("Save level Failed")); } @@ -2985,8 +2985,8 @@ public: else if (pl) pl->getPalette()->setDirtyFlag(false); - /*- Undoをリセット。 TODO:この挙動、Preferencesでオプション化 -*/ - TUndoManager::manager()->reset(); + if (Preferences::instance()->getBoolValue(resetUndoOnSavingLevel)) + TUndoManager::manager()->reset(); TApp::instance() ->getPaletteController() diff --git a/toonz/sources/toonz/preferencespopup.cpp b/toonz/sources/toonz/preferencespopup.cpp index 834f7b5..89bba0d 100644 --- a/toonz/sources/toonz/preferencespopup.cpp +++ b/toonz/sources/toonz/preferencespopup.cpp @@ -990,6 +990,7 @@ QString PreferencesPopup::getUIString(PreferencesItemId id) { // Saving {rasterBackgroundColor, tr("Matte color: ")}, + {resetUndoOnSavingLevel, tr("Clear Undo History when Saving Levels")}, // Import / Export {ffmpegPath, tr("FFmpeg Path: ")}, @@ -1532,6 +1533,7 @@ QWidget* PreferencesPopup::createSavingPage() { this); lay->addWidget(matteColorLabel, 0, 0, 1, 3, Qt::AlignLeft); insertUI(rasterBackgroundColor, lay); + insertUI(resetUndoOnSavingLevel, lay); lay->setRowStretch(lay->rowCount(), 1); widget->setLayout(lay); diff --git a/toonz/sources/toonzlib/preferences.cpp b/toonz/sources/toonzlib/preferences.cpp index 790b645..98edfe9 100644 --- a/toonz/sources/toonzlib/preferences.cpp +++ b/toonz/sources/toonzlib/preferences.cpp @@ -432,6 +432,8 @@ void Preferences::definePreferenceItems() { // Saving define(rasterBackgroundColor, "rasterBackgroundColor", QMetaType::QColor, QColor(Qt::white)); + define(resetUndoOnSavingLevel, "resetUndoOnSavingLevel", QMetaType::Bool, + true); setCallBack(rasterBackgroundColor, &Preferences::setRasterBackgroundColor);