Implement set/get_ui_config and use those methods if config string starts with 'ui.'

This commit is contained in:
B. Petersen
2019-09-12 21:53:37 +02:00
parent aefddf7f5e
commit 056faad029
2 changed files with 29 additions and 4 deletions

View File

@@ -149,9 +149,13 @@ pub unsafe extern "C" fn dc_set_config(
}
let context = &*context;
match config::Config::from_str(dc_tools::as_str(key)) {
Ok(key) => context.set_config(key, as_opt_str(value)).is_ok() as libc::c_int,
let key = dc_tools::as_str(key);
let value = as_opt_str(value);
if key.starts_with(".ui") {
return context.set_ui_config(key, value).is_ok() as libc::c_int;
}
match config::Config::from_str(key) {
Ok(key) => context.set_config(key, value).is_ok() as libc::c_int,
Err(_) => 0,
}
}
@@ -168,7 +172,11 @@ pub unsafe extern "C" fn dc_get_config(
let context = &*context;
let key = config::Config::from_str(dc_tools::as_str(key)).expect("invalid key");
let key = dc_tools::as_str(key);
if key.starts_with(".ui") {
return context.get_ui_config(key).unwrap_or_default().strdup();
}
let key = config::Config::from_str(key).expect("invalid key");
// TODO: Translating None to NULL would be more sensible than translating None
// to "", as it is now.