From f81532a8fb84431d3884f7561413a1a331db9f92 Mon Sep 17 00:00:00 2001 From: habruening Date: Sat, 17 Feb 2024 11:34:14 +0100 Subject: [PATCH] The grid size is now stored in the configuration. The 1cm grid calculation happens only when the reset grit button is pressed, but not automatically. --- src/board/UBBoardController.cpp | 11 ++--------- src/board/UBBoardController.h | 4 +++- src/core/UBPersistenceManager.cpp | 2 +- src/core/UBPreferencesController.cpp | 1 + src/core/UBSettings.cpp | 4 ++-- src/core/UBSettings.h | 4 ++-- src/domain/UBGraphicsScene.cpp | 2 +- src/gui/UBBackgroundPalette.cpp | 7 ++++--- 8 files changed, 16 insertions(+), 19 deletions(-) diff --git a/src/board/UBBoardController.cpp b/src/board/UBBoardController.cpp index d0fe85234..131675b73 100644 --- a/src/board/UBBoardController.cpp +++ b/src/board/UBBoardController.cpp @@ -153,10 +153,6 @@ void UBBoardController::init() setActiveDocumentScene(doc); - connect(UBApplication::displayManager, &UBDisplayManager::screenRolesAssigned, this, [this](){ - initBackgroundGridSize(); - }); - undoRedoStateChange(true); } @@ -170,7 +166,7 @@ UBBoardController::~UBBoardController() /** * @brief Set the default background grid size to appear as roughly 1cm on screen */ -void UBBoardController::initBackgroundGridSize() +int UBBoardController::determineBackgroundGridSize() const { // Besides adjusting for DPI, we also need to scale the grid size by the ratio of the control view size // to document size. Here we approximate this ratio as (document resolution) / (screen resolution). @@ -188,10 +184,7 @@ void UBBoardController::initBackgroundGridSize() int gridSize = (resolutionRatio * 10. * dpi) / UBGeometryUtils::inchSize; - UBSettings::settings()->crossSize = gridSize; - UBSettings::settings()->defaultCrossSize = gridSize; - mActiveScene->setBackgroundGridSize(gridSize); - + return gridSize; //qDebug() << "grid size: " << gridSize; } diff --git a/src/board/UBBoardController.h b/src/board/UBBoardController.h index 970f3b49f..cc7cfe9d9 100644 --- a/src/board/UBBoardController.h +++ b/src/board/UBBoardController.h @@ -256,6 +256,9 @@ class UBBoardController : public UBDocumentContainer void saveData(SaveFlags fls = sf_none); + int determineBackgroundGridSize() const; + + //void regenerateThumbnails(); signals: @@ -291,7 +294,6 @@ class UBBoardController : public UBDocumentContainer void appMainModeChanged(UBApplicationController::MainMode); private: - void initBackgroundGridSize(); void updatePageSizeState(); void saveViewState(); int autosaveTimeoutFromSettings(); diff --git a/src/core/UBPersistenceManager.cpp b/src/core/UBPersistenceManager.cpp index b23c81969..2308361a8 100644 --- a/src/core/UBPersistenceManager.cpp +++ b/src/core/UBPersistenceManager.cpp @@ -1028,7 +1028,7 @@ std::shared_ptr UBPersistenceManager::createDocumentSceneAt(std newScene->setBackground(UBSettings::settings()->isDarkBackground(), UBSettings::settings()->UBSettings::pageBackground()); - newScene->setBackgroundGridSize(UBSettings::settings()->crossSize); + newScene->setBackgroundGridSize(UBSettings::settings()->crossSize->get().toInt()); proxy->incPageCount(); diff --git a/src/core/UBPreferencesController.cpp b/src/core/UBPreferencesController.cpp index 798889881..dc44c0901 100644 --- a/src/core/UBPreferencesController.cpp +++ b/src/core/UBPreferencesController.cpp @@ -219,6 +219,7 @@ void UBPreferencesController::wire() mPreferencesUI->crossColorDarkBackgroundFrame->setPalette(darkBackgroundPalette); mPreferencesUI->crossColorDarkBackgroundLabel->setPalette(darkBackgroundPalette); + QList gridLightBackgroundColors = settings->boardGridLightBackgroundColors->colors(); QColor selectedCrossColorLightBackground(settings->boardCrossColorLightBackground->get().toString()); diff --git a/src/core/UBSettings.cpp b/src/core/UBSettings.cpp index bb7fe2ea0..df1130f13 100644 --- a/src/core/UBSettings.cpp +++ b/src/core/UBSettings.cpp @@ -46,8 +46,6 @@ QPointer UBSettings::sSingleton = 0; int UBSettings::pointerDiameter = 40; -int UBSettings::crossSize = 24; -int UBSettings::defaultCrossSize = 24; int UBSettings::minCrossSize = 12; int UBSettings::maxCrossSize = 96; //TODO: user-settable? bool UBSettings::intermediateLines = false; @@ -304,6 +302,8 @@ void UBSettings::init() boardCrossColorDarkBackground = new UBSetting(this, "Board", "CrossColorDarkBackground", "#C8C0C0C0"); boardCrossColorLightBackground = new UBSetting(this, "Board", "CrossColorLightBackground", "#A5E1FF"); + crossSize = new UBSetting(this, "Board", "GridSize", 40); + QStringList gridLightBackgroundColors; gridLightBackgroundColors << "#000000" << "#FF0000" << "#004080" << "#008000" << "#FFDD00" << "#C87400" << "#800040" << "#008080" << "#A5E1FF"; boardGridLightBackgroundColors = new UBColorListSetting(this, "Board", "GridLightBackgroundColors", gridLightBackgroundColors, -1.0); diff --git a/src/core/UBSettings.h b/src/core/UBSettings.h index e46948e94..62529615f 100644 --- a/src/core/UBSettings.h +++ b/src/core/UBSettings.h @@ -191,8 +191,6 @@ class UBSettings : public QObject static QColor documentSizeMarkColorLightBackground; // Background grid - static int crossSize; - static int defaultCrossSize; static int minCrossSize; static int maxCrossSize; static bool intermediateLines; @@ -306,6 +304,8 @@ class UBSettings : public QObject UBSetting* boardCrossColorDarkBackground; UBSetting* boardCrossColorLightBackground; + UBSetting* crossSize; + UBColorListSetting* boardGridLightBackgroundColors; UBColorListSetting* boardGridDarkBackgroundColors; diff --git a/src/domain/UBGraphicsScene.cpp b/src/domain/UBGraphicsScene.cpp index 738ce597c..1f9cc3a36 100644 --- a/src/domain/UBGraphicsScene.cpp +++ b/src/domain/UBGraphicsScene.cpp @@ -362,7 +362,7 @@ UBGraphicsScene::UBGraphicsScene(std::shared_ptr document, bool UBApplication::applicationController->initialVScroll())); } - mBackgroundGridSize = UBSettings::settings()->crossSize; + mBackgroundGridSize = UBSettings::settings()->crossSize->get().toInt(); mIntermediateLines = UBSettings::settings()->intermediateLines; // Just for debug. Do not delete please diff --git a/src/gui/UBBackgroundPalette.cpp b/src/gui/UBBackgroundPalette.cpp index 4f8d8ebf6..c0ae4fd1f 100644 --- a/src/gui/UBBackgroundPalette.cpp +++ b/src/gui/UBBackgroundPalette.cpp @@ -157,14 +157,15 @@ void UBBackgroundPalette::showEvent(QShowEvent* event) void UBBackgroundPalette::sliderValueChanged(int value) { + UBSettings::settings()->crossSize->setInt(value); UBApplication::boardController->activeScene()->setBackgroundGridSize(value); - UBSettings::settings()->crossSize = value; // since this function is called (indirectly, by refresh) when we switch scenes, the settings will always have the current scene's cross size. } void UBBackgroundPalette::defaultBackgroundGridSize() { - mSlider->setValue(UBSettings::settings()->defaultCrossSize); - sliderValueChanged(UBSettings::settings()->defaultCrossSize); + int crossSize = UBApplication::boardController->determineBackgroundGridSize(); + mSlider->setValue(crossSize); + sliderValueChanged(crossSize); } void UBBackgroundPalette::toggleIntermediateLines(bool checked)