mirror of
https://github.com/GraphiteEditor/Graphite.git
synced 2026-09-15 14:18:04 +08:00
* Deskltop: Add Disable UI Accelaration preference * Fixup * Fix typo * Code review and update strings --------- Co-authored-by: Keavon Chambers <keavon@keavon.com>
34 lines
915 B
Rust
34 lines
915 B
Rust
use graphite_desktop_wrapper::messages::Preferences;
|
|
|
|
pub(crate) fn write(preferences: Preferences) {
|
|
let Ok(preferences) = ron::ser::to_string_pretty(&preferences, Default::default()) else {
|
|
tracing::error!("Failed to serialize preferences");
|
|
return;
|
|
};
|
|
std::fs::write(file_path(), &preferences).unwrap_or_else(|e| {
|
|
tracing::error!("Failed to write preferences to disk: {e}");
|
|
});
|
|
}
|
|
|
|
pub(crate) fn read() -> Preferences {
|
|
let Ok(data) = std::fs::read_to_string(file_path()) else {
|
|
return Preferences::default();
|
|
};
|
|
let Ok(preferences) = ron::from_str(&data) else {
|
|
return Preferences::default();
|
|
};
|
|
preferences
|
|
}
|
|
|
|
pub(crate) fn modify(f: impl FnOnce(&mut Preferences)) {
|
|
let mut preferences = read();
|
|
f(&mut preferences);
|
|
write(preferences);
|
|
}
|
|
|
|
fn file_path() -> std::path::PathBuf {
|
|
let mut path = crate::dirs::app_data_dir();
|
|
path.push(crate::consts::APP_PREFERENCES_FILE_NAME);
|
|
path
|
|
}
|