Name retained preference write helpers

This commit is contained in:
2026-06-12 17:59:01 +02:00
parent 058997bd78
commit 4df92b9cd2
7 changed files with 61 additions and 9 deletions

View File

@@ -291,6 +291,10 @@ agent or engineer to remove them without reconstructing context from chat.
- 2026-06-12: DEBT-0045/0052 were narrowed again. UI scale, UI-state/RTL, and - 2026-06-12: DEBT-0045/0052 were narrowed again. UI scale, UI-state/RTL, and
Windows placement write keys now also live behind named Windows placement write keys now also live behind named
`src/legacy_preference_storage.*` helpers. `src/legacy_preference_storage.*` helpers.
- 2026-06-12: DEBT-0045/0046/0058 were narrowed again. Whats-new,
VR-controller, auto-timelapse, startup run-counter, viewport-density, and
cursor-mode write keys now use named `src/legacy_preference_storage.*`
helpers instead of generic key/value calls in legacy service bridges.
- 2026-06-05: DEBT-0056 was narrowed. `src/asset.h` no longer exposes Android - 2026-06-05: DEBT-0056 was narrowed. `src/asset.h` no longer exposes Android
SDK types or forward declarations; retained Android asset-manager and asset SDK types or forward declarations; retained Android asset-manager and asset
handles are stored as opaque pointers and cast only inside `src/asset.cpp`, handles are stored as opaque pointers and cast only inside `src/asset.cpp`,

View File

@@ -624,7 +624,7 @@ void App::dialog_whatsnew(bool force_show)
whatsnew->load_url(url, [this, whatsnew, force_show](bool success) { whatsnew->load_url(url, [this, whatsnew, force_show](bool success) {
if (success) if (success)
{ {
int last_id = pp::panopainter::legacy_integer_preference_or("whatsnew-id", 0); int last_id = pp::panopainter::legacy_whatsnew_id_or(0);
if (force_show || (whatsnew->m_page_id <= g_version_build && whatsnew->m_page_id > last_id)) if (force_show || (whatsnew->m_page_id <= g_version_build && whatsnew->m_page_id > last_id))
{ {
whatsnew->set_title(fmt::format("What's new in version {}", g_version_number)); whatsnew->set_title(fmt::format("What's new in version {}", g_version_number));
@@ -637,12 +637,12 @@ void App::dialog_whatsnew(bool force_show)
whatsnew->reload(); whatsnew->reload();
}); });
whatsnew->add_button("Read Later", 120, [this, whatsnew](Node*) { whatsnew->add_button("Read Later", 120, [this, whatsnew](Node*) {
pp::panopainter::unset_legacy_preference("whatsnew-id"); pp::panopainter::clear_legacy_whatsnew_id();
pp::panopainter::save_legacy_preferences(); pp::panopainter::save_legacy_preferences();
pp::panopainter::close_legacy_dialog_node(*whatsnew); pp::panopainter::close_legacy_dialog_node(*whatsnew);
}); });
whatsnew->add_button("Close", 100, [this, whatsnew](Node*) { whatsnew->add_button("Close", 100, [this, whatsnew](Node*) {
pp::panopainter::set_legacy_integer_preference("whatsnew-id", whatsnew->m_page_id); pp::panopainter::set_legacy_whatsnew_id(whatsnew->m_page_id);
pp::panopainter::save_legacy_preferences(); pp::panopainter::save_legacy_preferences();
pp::panopainter::close_legacy_dialog_node(*whatsnew); pp::panopainter::close_legacy_dialog_node(*whatsnew);
}); });

View File

@@ -46,7 +46,7 @@ public:
void apply_vr_controllers_preference(const pp::app::StoredBooleanPreferencePlan& plan) override void apply_vr_controllers_preference(const pp::app::StoredBooleanPreferencePlan& plan) override
{ {
app_.vr_controllers_enabled = plan.value; app_.vr_controllers_enabled = plan.value;
save_legacy_boolean_preference("vr-controllers-enabled", plan.value); save_legacy_vr_controllers_enabled(plan.value);
} }
void apply_timelapse_preference(const pp::app::TimelapsePreferencePlan& plan) override void apply_timelapse_preference(const pp::app::TimelapsePreferencePlan& plan) override
@@ -57,7 +57,7 @@ public:
app_.rec_start(); app_.rec_start();
} }
save_legacy_boolean_preference("auto-timelapse", plan.enabled); save_legacy_auto_timelapse_enabled(plan.enabled);
} }
void apply_canvas_cursor_mode(const pp::app::StoredIntegerPreferencePlan& plan) override void apply_canvas_cursor_mode(const pp::app::StoredIntegerPreferencePlan& plan) override

View File

@@ -20,7 +20,7 @@ public:
void store_run_counter(int value) override void store_run_counter(int value) override
{ {
set_legacy_integer_preference("run_counter", value); set_legacy_startup_run_counter(value);
LOG("run_counter %d", value); LOG("run_counter %d", value);
} }

View File

@@ -46,7 +46,7 @@ public:
} }
app_.canvas->set_density(plan.density); app_.canvas->set_density(plan.density);
save_legacy_float_preference("vp-scale", plan.density); save_legacy_canvas_viewport_density(plan.density);
} }
void set_cursor_mode(const pp::app::CanvasViewCursorModePlan& plan) override void set_cursor_mode(const pp::app::CanvasViewCursorModePlan& plan) override
@@ -57,8 +57,7 @@ public:
const auto mode = static_cast<int>(plan.mode); const auto mode = static_cast<int>(plan.mode);
app_.canvas->set_cursor_visibility(static_cast<NodeCanvas::kCursorVisibility>(mode)); app_.canvas->set_cursor_visibility(static_cast<NodeCanvas::kCursorVisibility>(mode));
set_legacy_integer_preference("show-cursor", mode); save_legacy_canvas_cursor_mode(mode);
save_legacy_preferences();
} }
private: private:

View File

@@ -136,6 +136,47 @@ void set_legacy_window_preferences(int show_command, const glm::ivec4& window_re
Settings::set("window-rect", Serializer::IVec4(window_rect)); Settings::set("window-rect", Serializer::IVec4(window_rect));
} }
int legacy_whatsnew_id_or(int default_value)
{
return Settings::value_or<Serializer::Integer>("whatsnew-id", default_value);
}
void clear_legacy_whatsnew_id()
{
Settings::unset("whatsnew-id");
}
void set_legacy_whatsnew_id(int page_id)
{
Settings::set("whatsnew-id", Serializer::Integer(page_id));
}
void set_legacy_startup_run_counter(int value)
{
Settings::set("run_counter", Serializer::Integer(value));
}
void save_legacy_vr_controllers_enabled(bool enabled)
{
save_legacy_boolean_preference("vr-controllers-enabled", enabled);
}
void save_legacy_auto_timelapse_enabled(bool enabled)
{
save_legacy_boolean_preference("auto-timelapse", enabled);
}
void save_legacy_canvas_viewport_density(float density)
{
save_legacy_float_preference("vp-scale", density);
}
void save_legacy_canvas_cursor_mode(int mode)
{
Settings::set("show-cursor", Serializer::Integer(mode));
Settings::save();
}
void save_legacy_boolean_preference(const char* key, bool value) void save_legacy_boolean_preference(const char* key, bool value)
{ {
set_legacy_boolean_preference(key, value); set_legacy_boolean_preference(key, value);

View File

@@ -50,6 +50,14 @@ void unset_legacy_preference(const char* key);
void save_legacy_ui_scale_preference(float scale); void save_legacy_ui_scale_preference(float scale);
void set_legacy_ui_state_preferences(const Serializer::Descriptor& state, bool right_to_left); void set_legacy_ui_state_preferences(const Serializer::Descriptor& state, bool right_to_left);
void set_legacy_window_preferences(int show_command, const glm::ivec4& window_rect); void set_legacy_window_preferences(int show_command, const glm::ivec4& window_rect);
int legacy_whatsnew_id_or(int default_value);
void clear_legacy_whatsnew_id();
void set_legacy_whatsnew_id(int page_id);
void set_legacy_startup_run_counter(int value);
void save_legacy_vr_controllers_enabled(bool enabled);
void save_legacy_auto_timelapse_enabled(bool enabled);
void save_legacy_canvas_viewport_density(float density);
void save_legacy_canvas_cursor_mode(int mode);
void save_legacy_boolean_preference(const char* key, bool value); void save_legacy_boolean_preference(const char* key, bool value);
void save_legacy_float_preference(const char* key, float value); void save_legacy_float_preference(const char* key, float value);
bool save_legacy_preferences(); bool save_legacy_preferences();