summaryrefslogtreecommitdiff
path: root/src/types
diff options
context:
space:
mode:
Diffstat (limited to 'src/types')
-rw-r--r--src/types/project.rs16
1 files changed, 8 insertions, 8 deletions
diff --git a/src/types/project.rs b/src/types/project.rs
index ceb4f84..aac9bca 100644
--- a/src/types/project.rs
+++ b/src/types/project.rs
@@ -1,7 +1,7 @@
use std::path::{Path, PathBuf};
extern crate fxhash;
-use iced::Theme;
+use iced::theme::{Base, Mode, Theme};
use rust_format::{Formatter, PostProcess, PrettyPlease};
use serde::{Deserialize, Serialize};
@@ -31,11 +31,11 @@ impl Project {
}
}
- pub fn get_theme(&self) -> Theme {
- match &self.theme {
- Some(theme) => iced_theme_from_str(theme),
- None => iced::Theme::default(),
- }
+ pub fn get_theme(&self, mode: Mode) -> Theme {
+ self.theme
+ .as_ref()
+ .and_then(|theme| iced_theme_from_str(theme))
+ .unwrap_or_else(|| Theme::default(mode))
}
pub async fn from_path(path: PathBuf) -> Result<(PathBuf, Self), Error> {
@@ -90,14 +90,14 @@ impl Project {
Ok(path)
}
- pub fn app_code(&mut self) -> Result<String, Error> {
+ pub fn app_code(&mut self, theme_mode: Mode) -> Result<String, Error> {
use iced::debug;
let codegen = debug::time("Code Generation");
let result = match self.element_tree {
Some(ref element_tree) => {
let (imports, view) = element_tree.codegen();
- let theme = self.get_theme();
+ let theme = self.get_theme(theme_mode);
let app_code = format!(
r#"// Automatically generated by iced Builder