From be339cde57f08014dde1c15509159ff88e7e3d46 Mon Sep 17 00:00:00 2001 From: Jakob Gahde Date: Wed, 29 Sep 2021 15:26:26 +0200 Subject: [PATCH 1/2] Create no vector layer by default --- app/src/filespage.cpp | 8 +++++ app/src/filespage.h | 1 + app/src/mainwindow2.cpp | 15 ++++++++- app/ui/filespage.ui | 34 +++++++++++++++++++-- core_lib/src/managers/preferencemanager.cpp | 4 +++ core_lib/src/managers/preferencemanager.h | 1 + core_lib/src/structure/object.cpp | 8 ----- core_lib/src/structure/object.h | 1 - core_lib/src/structure/objectdata.h | 5 +-- core_lib/src/util/pencildef.h | 1 + tests/src/test_colormanager.cpp | 5 ++- tests/src/test_filemanager.cpp | 8 +++-- tests/src/test_layermanager.cpp | 8 +++-- 13 files changed, 76 insertions(+), 23 deletions(-) diff --git a/app/src/filespage.cpp b/app/src/filespage.cpp index 5a6a68a9d5..157ca18538 100644 --- a/app/src/filespage.cpp +++ b/app/src/filespage.cpp @@ -42,6 +42,8 @@ FilesPage::FilesPage() connect(ui->loadDefaultPresetRbtn, &QRadioButton::toggled, this, &FilesPage::loadDefaultPreset); connect(ui->presetListWidget, &QListWidget::itemChanged, this, &FilesPage::presetNameChanged); + connect(ui->vectorCheckBox, &QCheckBox::stateChanged, this, &FilesPage::vectorChanged); + auto spinBoxValueChange = static_cast(&QSpinBox::valueChanged); connect(ui->autosaveCheckBox, &QCheckBox::stateChanged, this, &FilesPage::autoSaveChange); connect(ui->autosaveNumberBox, spinBoxValueChange, this, &FilesPage::autoSaveNumberChange); @@ -207,6 +209,7 @@ void FilesPage::updateValues() QBrush backgroundBrush = (isDefault) ? palette().light() : palette().window(); item->setBackground(backgroundBrush); } + ui->vectorCheckBox->setChecked(mManager->isOn(SETTING::CREATE_DEFAULT_VECTOR_LAYER)); ui->autosaveCheckBox->setChecked(mManager->isOn(SETTING::AUTO_SAVE)); ui->autosaveNumberBox->setValue(mManager->getInt(SETTING::AUTO_SAVE_NUMBER)); ui->askPresetRbtn->setChecked(mManager->isOn(SETTING::ASK_FOR_PRESET)); @@ -229,6 +232,11 @@ void FilesPage::loadDefaultPreset(int b) mManager->set(SETTING::LOAD_DEFAULT_PRESET, b != Qt::Unchecked); } +void FilesPage::vectorChanged(int b) +{ + mManager->set(SETTING::CREATE_DEFAULT_VECTOR_LAYER, b != Qt::Unchecked); +} + void FilesPage::autoSaveChange(int b) { mManager->set(SETTING::AUTO_SAVE, b != Qt::Unchecked); diff --git a/app/src/filespage.h b/app/src/filespage.h index 085cab96a9..aa517825c8 100644 --- a/app/src/filespage.h +++ b/app/src/filespage.h @@ -48,6 +48,7 @@ public slots: void askForPresetChange(int b); void loadMostRecentChange(int b); void loadDefaultPreset(int b); + void vectorChanged(int b); void autoSaveChange(int b); void autoSaveNumberChange(int number); diff --git a/app/src/mainwindow2.cpp b/app/src/mainwindow2.cpp index 14a30edb34..8f7a9ec67f 100644 --- a/app/src/mainwindow2.cpp +++ b/app/src/mainwindow2.cpp @@ -1003,7 +1003,20 @@ void MainWindow2::newObject() { auto object = new Object(); object->init(); - object->createDefaultLayers(); + + // default layers + bool createVectorLayer = mEditor->preference()->isOn(SETTING::CREATE_DEFAULT_VECTOR_LAYER); + object->addNewCameraLayer(); + if (createVectorLayer) { + object->addNewVectorLayer(); + } + object->addNewBitmapLayer(); + // Layers are counted bottom up + // 0 - Camera Layer + // (1 - Vector Layer) + // 1/2 - Bitmap Layer + object->data()->setCurrentLayer(createVectorLayer ? 2 : 1); + mEditor->setObject(object); closeDialogs(); diff --git a/app/ui/filespage.ui b/app/ui/filespage.ui index 7a8e3146eb..86dcfa41a4 100644 --- a/app/ui/filespage.ui +++ b/app/ui/filespage.ui @@ -6,8 +6,8 @@ 0 0 - 316 - 422 + 343 + 611 @@ -63,6 +63,9 @@ true + + startupGroup + @@ -73,6 +76,9 @@ false + + startupGroup + @@ -80,6 +86,25 @@ Load last active file + + startupGroup + + + + + + + + + + Default layers + + + + + + Create vector layer by default (unmaintained) + @@ -110,7 +135,7 @@ 50 - 0 + 34 @@ -150,4 +175,7 @@ + + + diff --git a/core_lib/src/managers/preferencemanager.cpp b/core_lib/src/managers/preferencemanager.cpp index d8403e983f..88af0d3ee4 100644 --- a/core_lib/src/managers/preferencemanager.cpp +++ b/core_lib/src/managers/preferencemanager.cpp @@ -95,6 +95,7 @@ void PreferenceManager::loadPrefs() set(SETTING::TIMECODE_TEXT, settings.value(SETTING_TIMECODE_TEXT, 1).toInt()); // Files + set(SETTING::CREATE_DEFAULT_VECTOR_LAYER, settings.value(SETTING_CREATE_DEFAULT_VECTOR_LAYER, false).toBool()); set(SETTING::AUTO_SAVE, settings.value(SETTING_AUTO_SAVE, false).toBool()); set(SETTING::AUTO_SAVE_NUMBER, settings.value(SETTING_AUTO_SAVE_NUMBER, 256).toInt()); set(SETTING::ASK_FOR_PRESET, settings.value(SETTING_ASK_FOR_PRESET, false).toBool()); @@ -423,6 +424,9 @@ void PreferenceManager::set(SETTING option, bool value) case SETTING::HIGH_RESOLUTION: settings.setValue(SETTING_HIGH_RESOLUTION, value); break; + case SETTING::CREATE_DEFAULT_VECTOR_LAYER: + settings.setValue(SETTING_CREATE_DEFAULT_VECTOR_LAYER, value); + break; case SETTING::AUTO_SAVE: settings.setValue(SETTING_AUTO_SAVE, value); break; diff --git a/core_lib/src/managers/preferencemanager.h b/core_lib/src/managers/preferencemanager.h index aa049130c7..22f129b8de 100644 --- a/core_lib/src/managers/preferencemanager.h +++ b/core_lib/src/managers/preferencemanager.h @@ -42,6 +42,7 @@ enum class SETTING SHOW_STATUS_BAR, CURVE_SMOOTHING, BACKGROUND_STYLE, + CREATE_DEFAULT_VECTOR_LAYER, AUTO_SAVE, AUTO_SAVE_NUMBER, SHORT_SCRUB, diff --git a/core_lib/src/structure/object.cpp b/core_lib/src/structure/object.cpp index e7691667d7..6dacc80407 100644 --- a/core_lib/src/structure/object.cpp +++ b/core_lib/src/structure/object.cpp @@ -208,14 +208,6 @@ void Object::setWorkingDir(const QString& path) mWorkingDirPath = path; } -void Object::createDefaultLayers() -{ - // default layers - addNewCameraLayer(); - addNewVectorLayer(); - addNewBitmapLayer(); -} - int Object::getMaxLayerID() { int maxId = 0; diff --git a/core_lib/src/structure/object.h b/core_lib/src/structure/object.h index a338afa166..bfe1c63041 100644 --- a/core_lib/src/structure/object.h +++ b/core_lib/src/structure/object.h @@ -54,7 +54,6 @@ class Object final void createWorkingDir(); void deleteWorkingDir() const; void setWorkingDir(const QString& path); // used by crash recovery - void createDefaultLayers(); QString filePath() const { return mFilePath; } void setFilePath(const QString& strFileName) { mFilePath = strFileName; } diff --git a/core_lib/src/structure/objectdata.h b/core_lib/src/structure/objectdata.h index c321ad585c..6d9694bcb0 100644 --- a/core_lib/src/structure/objectdata.h +++ b/core_lib/src/structure/objectdata.h @@ -59,10 +59,7 @@ class ObjectData private: int mCurrentFrame = 1; QColor mCurrentColor{ 0, 0, 0, 255 }; - int mCurrentLayer = 2; // Layers are counted bottom up - // 0 - Camera Layer - // 1 - Vector Layer - // 2 - Bitmap Layer + int mCurrentLayer = 0; // view manager QTransform mCurrentView; diff --git a/core_lib/src/util/pencildef.h b/core_lib/src/util/pencildef.h index 987c99aa00..5a871f1634 100644 --- a/core_lib/src/util/pencildef.h +++ b/core_lib/src/util/pencildef.h @@ -212,6 +212,7 @@ const static int MaxFramesBound = 9999; // Settings Group/Key Name #define PENCIL2D "Pencil" #define SHORTCUTS_GROUP "Shortcuts" +#define SETTING_CREATE_DEFAULT_VECTOR_LAYER "CreateDefaultVectorLayer" #define SETTING_AUTO_SAVE "AutoSave" #define SETTING_AUTO_SAVE_NUMBER "AutosaveNumber" #define SETTING_TOOL_CURSOR "ToolCursors" diff --git a/tests/src/test_colormanager.cpp b/tests/src/test_colormanager.cpp index cf03f1047b..0fdc824569 100644 --- a/tests/src/test_colormanager.cpp +++ b/tests/src/test_colormanager.cpp @@ -52,7 +52,10 @@ TEST_CASE("ColorManager set color tests") layerMgr->init(); layerObj->init(); - layerObj->createDefaultLayers(); // 0 = camera, 1 = vector, 2 = bitmap + // 0 = camera, 1 = vector, 2 = bitmap + layerObj->addNewCameraLayer(); + layerObj->addNewVectorLayer(); + layerObj->addNewBitmapLayer(); SECTION("setColor non vector layer") diff --git a/tests/src/test_filemanager.cpp b/tests/src/test_filemanager.cpp index 85c410caf7..36b57875af 100644 --- a/tests/src/test_filemanager.cpp +++ b/tests/src/test_filemanager.cpp @@ -309,7 +309,9 @@ TEST_CASE("FileManager File-saving") // 1. create a animation with one red frame & save it Object* o1 = new Object; o1->init(); - o1->createDefaultLayers(); + o1->addNewCameraLayer(); + o1->addNewVectorLayer(); + o1->addNewBitmapLayer(); LayerBitmap* layer = dynamic_cast(o1->getLayer(2)); REQUIRE(layer->addNewKeyFrameAt(2)); @@ -350,7 +352,9 @@ TEST_CASE("FileManager File-saving") // 1. Create a animation with 150 frames & save it Object* o1 = new Object; o1->init(); - o1->createDefaultLayers(); + o1->addNewCameraLayer(); + o1->addNewVectorLayer(); + o1->addNewBitmapLayer(); LayerBitmap* layer = dynamic_cast(o1->getLayer(2)); for (int i = 100; i < 150; ++i) diff --git a/tests/src/test_layermanager.cpp b/tests/src/test_layermanager.cpp index 70a3058ae7..9cd717d9b2 100644 --- a/tests/src/test_layermanager.cpp +++ b/tests/src/test_layermanager.cpp @@ -32,10 +32,12 @@ TEST_CASE("LayerManager::init()") LayerManager* layerMgr = new LayerManager(editor); layerMgr->init(); - object->init(); - object->createDefaultLayers(); // create default 3 layers + object->init(); + object->addNewCameraLayer(); + object->addNewVectorLayer(); + object->addNewBitmapLayer(); REQUIRE(layerMgr->count() == 3); - REQUIRE(layerMgr->currentLayerIndex() == 2); + REQUIRE(layerMgr->currentLayerIndex() == 0); REQUIRE(layerMgr->getLayer(0)->type() == Layer::CAMERA); REQUIRE(layerMgr->getLayer(1)->type() == Layer::VECTOR); REQUIRE(layerMgr->getLayer(2)->type() == Layer::BITMAP); From 1bda2626249f472f8ea31a7fa10a5f50ee98c938 Mon Sep 17 00:00:00 2001 From: Matt Chang Date: Fri, 22 Oct 2021 12:49:23 +0800 Subject: [PATCH 2/2] Remove preference "CREATE_DEFAULT_VECTOR_LAYER" --- app/src/filespage.cpp | 8 -------- app/src/filespage.h | 1 - app/src/mainwindow2.cpp | 9 ++------- app/ui/filespage.ui | 18 +----------------- core_lib/src/managers/preferencemanager.cpp | 4 ---- core_lib/src/managers/preferencemanager.h | 1 - core_lib/src/util/pencildef.h | 1 - 7 files changed, 3 insertions(+), 39 deletions(-) diff --git a/app/src/filespage.cpp b/app/src/filespage.cpp index 157ca18538..5a6a68a9d5 100644 --- a/app/src/filespage.cpp +++ b/app/src/filespage.cpp @@ -42,8 +42,6 @@ FilesPage::FilesPage() connect(ui->loadDefaultPresetRbtn, &QRadioButton::toggled, this, &FilesPage::loadDefaultPreset); connect(ui->presetListWidget, &QListWidget::itemChanged, this, &FilesPage::presetNameChanged); - connect(ui->vectorCheckBox, &QCheckBox::stateChanged, this, &FilesPage::vectorChanged); - auto spinBoxValueChange = static_cast(&QSpinBox::valueChanged); connect(ui->autosaveCheckBox, &QCheckBox::stateChanged, this, &FilesPage::autoSaveChange); connect(ui->autosaveNumberBox, spinBoxValueChange, this, &FilesPage::autoSaveNumberChange); @@ -209,7 +207,6 @@ void FilesPage::updateValues() QBrush backgroundBrush = (isDefault) ? palette().light() : palette().window(); item->setBackground(backgroundBrush); } - ui->vectorCheckBox->setChecked(mManager->isOn(SETTING::CREATE_DEFAULT_VECTOR_LAYER)); ui->autosaveCheckBox->setChecked(mManager->isOn(SETTING::AUTO_SAVE)); ui->autosaveNumberBox->setValue(mManager->getInt(SETTING::AUTO_SAVE_NUMBER)); ui->askPresetRbtn->setChecked(mManager->isOn(SETTING::ASK_FOR_PRESET)); @@ -232,11 +229,6 @@ void FilesPage::loadDefaultPreset(int b) mManager->set(SETTING::LOAD_DEFAULT_PRESET, b != Qt::Unchecked); } -void FilesPage::vectorChanged(int b) -{ - mManager->set(SETTING::CREATE_DEFAULT_VECTOR_LAYER, b != Qt::Unchecked); -} - void FilesPage::autoSaveChange(int b) { mManager->set(SETTING::AUTO_SAVE, b != Qt::Unchecked); diff --git a/app/src/filespage.h b/app/src/filespage.h index aa517825c8..085cab96a9 100644 --- a/app/src/filespage.h +++ b/app/src/filespage.h @@ -48,7 +48,6 @@ public slots: void askForPresetChange(int b); void loadMostRecentChange(int b); void loadDefaultPreset(int b); - void vectorChanged(int b); void autoSaveChange(int b); void autoSaveNumberChange(int number); diff --git a/app/src/mainwindow2.cpp b/app/src/mainwindow2.cpp index 8f7a9ec67f..8013771718 100644 --- a/app/src/mainwindow2.cpp +++ b/app/src/mainwindow2.cpp @@ -1005,17 +1005,12 @@ void MainWindow2::newObject() object->init(); // default layers - bool createVectorLayer = mEditor->preference()->isOn(SETTING::CREATE_DEFAULT_VECTOR_LAYER); object->addNewCameraLayer(); - if (createVectorLayer) { - object->addNewVectorLayer(); - } object->addNewBitmapLayer(); // Layers are counted bottom up // 0 - Camera Layer - // (1 - Vector Layer) - // 1/2 - Bitmap Layer - object->data()->setCurrentLayer(createVectorLayer ? 2 : 1); + // 1 - Bitmap Layer + object->data()->setCurrentLayer(1); mEditor->setObject(object); diff --git a/app/ui/filespage.ui b/app/ui/filespage.ui index 86dcfa41a4..37ac3af32e 100644 --- a/app/ui/filespage.ui +++ b/app/ui/filespage.ui @@ -6,7 +6,7 @@ 0 0 - 343 + 390 611 @@ -94,22 +94,6 @@ - - - - Default layers - - - - - - Create vector layer by default (unmaintained) - - - - - - diff --git a/core_lib/src/managers/preferencemanager.cpp b/core_lib/src/managers/preferencemanager.cpp index 88af0d3ee4..d8403e983f 100644 --- a/core_lib/src/managers/preferencemanager.cpp +++ b/core_lib/src/managers/preferencemanager.cpp @@ -95,7 +95,6 @@ void PreferenceManager::loadPrefs() set(SETTING::TIMECODE_TEXT, settings.value(SETTING_TIMECODE_TEXT, 1).toInt()); // Files - set(SETTING::CREATE_DEFAULT_VECTOR_LAYER, settings.value(SETTING_CREATE_DEFAULT_VECTOR_LAYER, false).toBool()); set(SETTING::AUTO_SAVE, settings.value(SETTING_AUTO_SAVE, false).toBool()); set(SETTING::AUTO_SAVE_NUMBER, settings.value(SETTING_AUTO_SAVE_NUMBER, 256).toInt()); set(SETTING::ASK_FOR_PRESET, settings.value(SETTING_ASK_FOR_PRESET, false).toBool()); @@ -424,9 +423,6 @@ void PreferenceManager::set(SETTING option, bool value) case SETTING::HIGH_RESOLUTION: settings.setValue(SETTING_HIGH_RESOLUTION, value); break; - case SETTING::CREATE_DEFAULT_VECTOR_LAYER: - settings.setValue(SETTING_CREATE_DEFAULT_VECTOR_LAYER, value); - break; case SETTING::AUTO_SAVE: settings.setValue(SETTING_AUTO_SAVE, value); break; diff --git a/core_lib/src/managers/preferencemanager.h b/core_lib/src/managers/preferencemanager.h index 22f129b8de..aa049130c7 100644 --- a/core_lib/src/managers/preferencemanager.h +++ b/core_lib/src/managers/preferencemanager.h @@ -42,7 +42,6 @@ enum class SETTING SHOW_STATUS_BAR, CURVE_SMOOTHING, BACKGROUND_STYLE, - CREATE_DEFAULT_VECTOR_LAYER, AUTO_SAVE, AUTO_SAVE_NUMBER, SHORT_SCRUB, diff --git a/core_lib/src/util/pencildef.h b/core_lib/src/util/pencildef.h index 5a871f1634..987c99aa00 100644 --- a/core_lib/src/util/pencildef.h +++ b/core_lib/src/util/pencildef.h @@ -212,7 +212,6 @@ const static int MaxFramesBound = 9999; // Settings Group/Key Name #define PENCIL2D "Pencil" #define SHORTCUTS_GROUP "Shortcuts" -#define SETTING_CREATE_DEFAULT_VECTOR_LAYER "CreateDefaultVectorLayer" #define SETTING_AUTO_SAVE "AutoSave" #define SETTING_AUTO_SAVE_NUMBER "AutosaveNumber" #define SETTING_TOOL_CURSOR "ToolCursors"