Configurable colors
This commit is contained in:
parent
ca3c171698
commit
1b6f8ef282
3 changed files with 85 additions and 3 deletions
26
src/main.rs
26
src/main.rs
|
|
@ -5,7 +5,7 @@ use std::{error::Error, rc::Rc, sync::{Arc, Mutex}};
|
|||
|
||||
use aliveline::{color_id_from_name, config::Config, load_config, log::{Event, Log}};
|
||||
use chrono::{Datelike, Timelike};
|
||||
use slint::{Model, ModelRc, SharedString, ToSharedString, VecModel, Weak};
|
||||
use slint::{Color, Model, ModelRc, SharedString, ToSharedString, VecModel, Weak};
|
||||
use toml::value::{Date as TomlDate, Time};
|
||||
|
||||
slint::include_modules!();
|
||||
|
|
@ -61,6 +61,26 @@ fn load_log(ui_weak: Weak<AppWindow>, log: Arc<Mutex<Log>>) {
|
|||
ui.set_in_progress(in_progress);
|
||||
}
|
||||
|
||||
fn load_colors(ui_weak: Weak<AppWindow>, config: Arc<Config>) {
|
||||
let ui = ui_weak.unwrap();
|
||||
let pal = ui.global::<Palette>();
|
||||
pal.set_background(Color::from_argb_encoded(config.colors.background));
|
||||
pal.set_timeline(Color::from_argb_encoded(config.colors.timeline));
|
||||
pal.set_background_text(Color::from_argb_encoded(config.colors.background_text));
|
||||
|
||||
// This looks like war crime
|
||||
let event_colors_rc: ModelRc<Color> = Rc::new(VecModel::from(
|
||||
config.event_colors.iter()
|
||||
.map(|value| Color::from_argb_encoded(*value)).collect::<Vec<Color>>()
|
||||
)).into();
|
||||
pal.set_event_colors(event_colors_rc);
|
||||
let event_text_rc: ModelRc<Color> = Rc::new(VecModel::from(
|
||||
config.text_colors.iter()
|
||||
.map(|value| Color::from_argb_encoded(*value)).collect::<Vec<Color>>()
|
||||
)).into();
|
||||
pal.set_event_text(event_text_rc);
|
||||
}
|
||||
|
||||
fn main() -> Result<(), Box<dyn Error>> {
|
||||
let ui = AppWindow::new()?;
|
||||
|
||||
|
|
@ -80,6 +100,10 @@ fn main() -> Result<(), Box<dyn Error>> {
|
|||
let log = writing_log.clone();
|
||||
load_log(ui_weak, log);
|
||||
|
||||
let ui_weak = ui.as_weak();
|
||||
let config_arc = config.clone();
|
||||
load_colors(ui_weak, config_arc);
|
||||
|
||||
ui.invoke_update_record_offset(offset as i32);
|
||||
|
||||
ui.on_fetch_log({
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue