| 333 | } |
| 334 | |
| 335 | void ControlPanelDialog::applyChanges() |
| 336 | { |
| 337 | if (!mainWindowRef) return; |
| 338 | |
| 339 | QSettings settings("SpeedyNote", "App"); |
| 340 | |
| 341 | // Apply page size settings to QSettings (for new documents only) |
| 342 | QSizeF selectedPageSize = pageSizeCombo->currentData().toSizeF(); |
| 343 | settings.setValue("page/width", selectedPageSize.width()); |
| 344 | settings.setValue("page/height", selectedPageSize.height()); |
| 345 | // Note: Page size is NOT applied to current document - only affects new documents |
| 346 | |
| 347 | // Apply background settings to QSettings (for new documents) |
| 348 | // Use the data value (enum value), not the combo index |
| 349 | int bgTypeValue = styleCombo->currentData().toInt(); |
| 350 | settings.setValue("background/type", bgTypeValue); |
| 351 | settings.setValue("background/color", selectedBgColor.name()); |
| 352 | settings.setValue("background/gridColor", selectedGridColor.name()); |
| 353 | settings.setValue("background/gridSpacing", gridSpacingSpin->value()); |
| 354 | settings.setValue("background/lineSpacing", lineSpacingSpin->value()); |
| 355 | |
| 356 | // Apply background settings to current document (if any) |
| 357 | mainWindowRef->applyBackgroundSettings( |
| 358 | static_cast<Page::BackgroundType>(bgTypeValue), |
| 359 | selectedBgColor, |
| 360 | selectedGridColor, |
| 361 | gridSpacingSpin->value(), |
| 362 | lineSpacingSpin->value() |
| 363 | ); |
| 364 | |
| 365 | // Apply theme settings |
| 366 | mainWindowRef->setUseCustomAccentColor(useCustomAccentCheckbox->isChecked()); |
| 367 | if (selectedAccentColor.isValid()) { |
| 368 | mainWindowRef->setCustomAccentColor(selectedAccentColor); |
| 369 | } |
| 370 | |
| 371 | // Apply PDF dark mode settings |
| 372 | bool pdfDarkMode = pdfDarkModeCheckbox->isChecked(); |
| 373 | settings.setValue("display/pdfDarkMode", pdfDarkMode); |
| 374 | mainWindowRef->setPdfDarkModeEnabled(pdfDarkMode); |
| 375 | |
| 376 | bool skipMasking = skipImageMaskingCheckbox->isChecked(); |
| 377 | settings.setValue("display/skipImageMasking", skipMasking); |
| 378 | mainWindowRef->setSkipImageMasking(skipMasking); |
| 379 | |
| 380 | // Apply tools settings |
| 381 | // Note: "minimum stroke width" has moved to per-preset state on each Pen |
| 382 | // thickness preset (see PenSubToolbar / ThicknessEditDialog). The legacy |
| 383 | // tools/minStrokeWidth key remains on disk only as a one-shot migration |
| 384 | // seed for PenSubToolbar::loadFromSettings. |
| 385 | qreal wheelSpeed = wheelScrollSpeedSpin->value(); |
| 386 | settings.setValue("tools/wheelScrollSpeed", wheelSpeed); |
| 387 | DocumentViewport::setWheelScrollSpeed(wheelSpeed); |
| 388 | |
| 389 | if (ocrCjkGridModeCheck) |
| 390 | settings.setValue("ocrCjkGridMode", ocrCjkGridModeCheck->isChecked()); |
| 391 | |
| 392 | // Apply language settings |
nothing calls this directly
no test coverage detected