Skip to content

Commit

Permalink
Fix theme saving
Browse files Browse the repository at this point in the history
  • Loading branch information
melody-rs committed Jul 10, 2024
1 parent e7b0614 commit edb0d07
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 13 deletions.
20 changes: 10 additions & 10 deletions crates/ui/src/windows/preferences.rs
Original file line number Diff line number Diff line change
Expand Up @@ -30,13 +30,13 @@ pub struct Window {
edit_rtp_path_name: String,
edit_rtp_path_path: String,

appearance_mode: AppearanceMode,
tab: Tab,
}

#[derive(Clone, Copy)]
#[derive(Default, PartialEq, Eq)]
#[derive(strum::EnumIter, strum::Display)]
enum AppearanceMode {
enum Tab {
#[default]
#[strum(to_string = "Editor Settings")]
EditorSettings,
Expand Down Expand Up @@ -136,20 +136,20 @@ impl luminol_core::Window for Window {
) {
egui::Window::new("Preferences").open(open).show(ctx, |ui| {
ui.horizontal(|ui| {
for mode in AppearanceMode::iter() {
ui.selectable_value(&mut self.appearance_mode, mode, mode.to_string());
for mode in Tab::iter() {
ui.selectable_value(&mut self.tab, mode, mode.to_string());
}
});
ui.separator();

match self.appearance_mode {
AppearanceMode::EguiVisuals => {
match self.tab {
Tab::EguiVisuals => {
// TODO maybe make a custom visuals editor?
let mut visuals = ctx.style().visuals.clone();
visuals.ui(ui);
ctx.set_visuals(visuals);
}
AppearanceMode::PresetVisuals => ui.columns(2, |cols| {
Tab::PresetVisuals => ui.columns(2, |cols| {
let [left, right] = cols else { unreachable!() };

let mut hover_visual = None;
Expand Down Expand Up @@ -187,7 +187,7 @@ impl luminol_core::Window for Window {
.show(ui, gallery_grid_contents)
});
}),
AppearanceMode::CodeTheme => {
Tab::CodeTheme => {
ui.horizontal(|ui| {
ui.vertical(|ui| {
for t in luminol_config::SyntectTheme::iter() {
Expand All @@ -210,7 +210,7 @@ impl luminol_core::Window for Window {
});
});
}
AppearanceMode::EditorSettings => {
Tab::EditorSettings => {
ui.label("RTP Paths");
ui.separator();

Expand Down Expand Up @@ -254,7 +254,7 @@ impl luminol_core::Window for Window {
});
}
#[cfg(not(target_arch = "wasm32"))]
AppearanceMode::Terminal => {
Tab::Terminal => {
let config = &mut update_state.global_config.terminal;
ui.horizontal(|ui| {
ui.label("Initial terminal size:");
Expand Down
11 changes: 8 additions & 3 deletions src/app/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,8 @@ pub struct App {
#[cfg(not(target_arch = "wasm32"))]
_runtime: tokio::runtime::Runtime,

egui_ctx: egui::Context,

#[cfg(feature = "steamworks")]
steamworks: Steamworks,
}
Expand Down Expand Up @@ -216,9 +218,9 @@ impl App {
}
}

let style = luminol_eframe::get_value(storage, "EguiStyle")
.map_or_else(|| cc.egui_ctx.style(), |s| s);
cc.egui_ctx.set_style(style.clone());
if let Some(style) = luminol_eframe::get_value::<egui::Style>(storage, "EguiStyle") {
cc.egui_ctx.set_style(style);
}

let bytes_loader = Arc::new(luminol_filesystem::egui_bytes_loader::Loader::new());
cc.egui_ctx.add_bytes_loader(bytes_loader.clone());
Expand Down Expand Up @@ -274,6 +276,8 @@ impl App {
#[cfg(not(target_arch = "wasm32"))]
_runtime: runtime,

egui_ctx: cc.egui_ctx.clone(),

#[cfg(feature = "steamworks")]
steamworks,
}
Expand Down Expand Up @@ -427,6 +431,7 @@ impl luminol_eframe::App for App {

/// Called by the frame work to save state before shutdown.
fn save(&mut self, storage: &mut dyn luminol_eframe::Storage) {
luminol_eframe::set_value(storage, "EguiStyle", &self.egui_ctx.style());
luminol_eframe::set_value(storage, "SavedState", &self.global_config);
}

Expand Down

0 comments on commit edb0d07

Please sign in to comment.