feat: finish default icon and friendly app name for application subkey
This commit is contained in:
@@ -697,7 +697,21 @@ impl ApplicationsKey {
|
|||||||
const NAMEOF_DEFAULT_ICON_PART2: &str = "";
|
const NAMEOF_DEFAULT_ICON_PART2: &str = "";
|
||||||
|
|
||||||
pub fn get_default_icon(&self, view: View) -> Result<Option<IconResVariant>, Error> {
|
pub fn get_default_icon(&self, view: View) -> Result<Option<IconResVariant>, Error> {
|
||||||
todo!()
|
let key = self.open_view_for_getter(view)?;
|
||||||
|
// Get default icon subkey
|
||||||
|
let default_icon_key = match regext::try_open_subkey_with_flags(
|
||||||
|
&key,
|
||||||
|
Self::NAMEOF_DEFAULT_ICON_PART1,
|
||||||
|
KEY_READ,
|
||||||
|
)? {
|
||||||
|
Some(key) => key,
|
||||||
|
None => return Ok(None),
|
||||||
|
};
|
||||||
|
// Get the default value of default icon subkey
|
||||||
|
let default_icon_default_value =
|
||||||
|
regext::try_get_value::<String, _>(&default_icon_key, Self::NAMEOF_DEFAULT_ICON_PART2)?;
|
||||||
|
// Transform it as result
|
||||||
|
Ok(default_icon_default_value.map(|v| IconResVariant::from(v.as_str())))
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn set_default_icon(
|
pub fn set_default_icon(
|
||||||
@@ -705,13 +719,35 @@ impl ApplicationsKey {
|
|||||||
scope: Scope,
|
scope: Scope,
|
||||||
icon: Option<&IconResVariant>,
|
icon: Option<&IconResVariant>,
|
||||||
) -> Result<(), Error> {
|
) -> Result<(), Error> {
|
||||||
todo!()
|
let key = self.open_scope_for_setter(scope)?;
|
||||||
|
|
||||||
|
match icon {
|
||||||
|
Some(icon) => {
|
||||||
|
// Create default icon subkey
|
||||||
|
let (default_icon_key, _) = key.create_subkey_with_flags(
|
||||||
|
Self::NAMEOF_DEFAULT_ICON_PART1,
|
||||||
|
KEY_READ | KEY_WRITE,
|
||||||
|
)?;
|
||||||
|
// Set default value of default icon subkey.
|
||||||
|
default_icon_key.set_value(Self::NAMEOF_DEFAULT_ICON_PART2, &icon.to_string())?;
|
||||||
|
}
|
||||||
|
None => {
|
||||||
|
// Delete shell and its all subkey.
|
||||||
|
key.delete_subkey_all(regext::blank_path_guard(Self::NAMEOF_DEFAULT_ICON_PART1)?)?;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
const NAMEOF_FRIENDLY_APP_NAME: &str = "FriendlyAppName";
|
const NAMEOF_FRIENDLY_APP_NAME: &str = "FriendlyAppName";
|
||||||
|
|
||||||
pub fn get_friendly_app_name(&self, view: View) -> Result<Option<StrResVariant>, Error> {
|
pub fn get_friendly_app_name(&self, view: View) -> Result<Option<StrResVariant>, Error> {
|
||||||
todo!()
|
let key = self.open_view_for_getter(view)?;
|
||||||
|
// Get value of it
|
||||||
|
let value = regext::try_get_value::<String, _>(&key, Self::NAMEOF_FRIENDLY_APP_NAME)?;
|
||||||
|
// Transform it as result
|
||||||
|
Ok(value.map(|v| StrResVariant::from(v.as_str())))
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn set_friendly_app_name(
|
pub fn set_friendly_app_name(
|
||||||
@@ -719,7 +755,20 @@ impl ApplicationsKey {
|
|||||||
scope: Scope,
|
scope: Scope,
|
||||||
name: Option<&StrResVariant>,
|
name: Option<&StrResVariant>,
|
||||||
) -> Result<(), Error> {
|
) -> Result<(), Error> {
|
||||||
todo!()
|
let key = self.open_scope_for_setter(scope)?;
|
||||||
|
|
||||||
|
match name {
|
||||||
|
Some(name) => {
|
||||||
|
// Set value for this key
|
||||||
|
key.set_value(Self::NAMEOF_FRIENDLY_APP_NAME, &name.to_string())?;
|
||||||
|
}
|
||||||
|
None => {
|
||||||
|
// Delete this key
|
||||||
|
key.delete_value(Self::NAMEOF_FRIENDLY_APP_NAME)?;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
const NAMEOF_SUPPORTED_TYPES: &str = "SupportedTypes";
|
const NAMEOF_SUPPORTED_TYPES: &str = "SupportedTypes";
|
||||||
|
|||||||
Reference in New Issue
Block a user