forked from NG-SD-Plugins/PowerTools
Enable auto-detection when loading a new settings file
This commit is contained in:
parent
11c1fc0ddc
commit
286ad30378
1 changed files with 42 additions and 1 deletions
|
@ -137,6 +137,47 @@ impl Settings {
|
||||||
self.battery = driver.battery;
|
self.battery = driver.battery;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub fn load_file(&mut self, filename: PathBuf, name: String, system_defaults: bool) -> Result<bool, SettingError> {
|
||||||
|
let json_path = crate::utility::settings_dir().join(filename);
|
||||||
|
if json_path.exists() {
|
||||||
|
let settings_json = SettingsJson::open(&json_path).map_err(|e| SettingError {
|
||||||
|
msg: e.to_string(),
|
||||||
|
setting: SettingVariant::General,
|
||||||
|
})?;
|
||||||
|
if !settings_json.persistent {
|
||||||
|
log::warn!("Loaded persistent config `{}` ({}) with persistent=false", &settings_json.name, json_path.display());
|
||||||
|
*self.general.persistent() = false;
|
||||||
|
self.general.name(name);
|
||||||
|
} else {
|
||||||
|
match super::Driver::init(settings_json, json_path.clone()) {
|
||||||
|
Ok(x) => {
|
||||||
|
log::info!("Loaded settings with drivers general:{:?},cpus:{:?},gpu:{:?},battery:{:?}", x.general.provider(), x.cpus.provider(), x.gpu.provider(), x.battery.provider());
|
||||||
|
self.general = x.general;
|
||||||
|
self.cpus = x.cpus;
|
||||||
|
self.gpu = x.gpu;
|
||||||
|
self.battery = x.battery;
|
||||||
|
},
|
||||||
|
Err(e) => {
|
||||||
|
log::error!("Driver init error: {}", e);
|
||||||
|
self.general.name(name);
|
||||||
|
*self.general.persistent() = false;
|
||||||
|
self.general.path(json_path);
|
||||||
|
return Err(e);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if system_defaults {
|
||||||
|
self.load_system_default();
|
||||||
|
}
|
||||||
|
*self.general.persistent() = false;
|
||||||
|
self.general.name(name);
|
||||||
|
}
|
||||||
|
self.general.path(json_path);
|
||||||
|
Ok(*self.general.persistent())
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
pub fn load_file(&mut self, filename: PathBuf, name: String, system_defaults: bool) -> Result<bool, SettingError> {
|
pub fn load_file(&mut self, filename: PathBuf, name: String, system_defaults: bool) -> Result<bool, SettingError> {
|
||||||
let json_path = crate::utility::settings_dir().join(filename);
|
let json_path = crate::utility::settings_dir().join(filename);
|
||||||
//let mut general_lock = unwrap_lock(self.general.lock(), "general");
|
//let mut general_lock = unwrap_lock(self.general.lock(), "general");
|
||||||
|
@ -165,7 +206,7 @@ impl Settings {
|
||||||
}
|
}
|
||||||
self.general.path(json_path);
|
self.general.path(json_path);
|
||||||
Ok(*self.general.persistent())
|
Ok(*self.general.persistent())
|
||||||
}
|
}*/
|
||||||
|
|
||||||
pub fn json(&self) -> SettingsJson {
|
pub fn json(&self) -> SettingsJson {
|
||||||
SettingsJson {
|
SettingsJson {
|
||||||
|
|
Loading…
Reference in a new issue