feat(core): added support for format wine/dxvk components field

This commit is contained in:
Observer KRypt0n_ 2023-06-09 22:14:06 +02:00
parent 173ef71602
commit 15fde05021
No known key found for this signature in database
GPG key ID: 844DA47BA25FE1E2
2 changed files with 12 additions and 3 deletions
src/ui/components

View file

@ -49,6 +49,7 @@ pub struct ComponentsListVersion {
pub name: String,
pub title: String,
pub uri: String,
pub format: Option<String>,
pub recommended: bool
}
@ -63,7 +64,8 @@ impl From<wine::Version> for ComponentsListVersion {
name: version.name,
title: version.title,
uri: version.uri
uri: version.uri,
format: version.format
}
}
}
@ -79,7 +81,8 @@ impl From<dxvk::Version> for ComponentsListVersion {
name: version.name,
title: version.title,
uri: version.uri
uri: version.uri,
format: version.format
}
}
}

View file

@ -31,6 +31,7 @@ pub struct ComponentVersion {
pub download_uri: String,
pub download_folder: PathBuf,
pub download_filename: Option<String>,
pub show_recommended_only: bool,
pub state: VersionState,
@ -84,12 +85,13 @@ impl SimpleAsyncComponent for ComponentVersion {
_sender: AsyncComponentSender<Self>,
) -> AsyncComponentParts<Self> {
let mut model = ComponentVersion {
name: init.0.name,
name: init.0.name.clone(),
title: init.0.title,
recommended: init.0.recommended,
download_uri: init.0.uri,
download_folder: init.1,
download_filename: init.0.format.map(|format| format!("{}.{format}", init.0.name)),
show_recommended_only: true,
state: VersionState::NotDownloaded,
@ -152,6 +154,10 @@ impl SimpleAsyncComponent for ComponentVersion {
.expect("Failed to create installer instance for this version")
.with_temp_folder(config.launcher.temp.unwrap_or_else(std::env::temp_dir));
if let Some(filename) = &self.download_filename {
installer = installer.with_filename(filename.to_owned());
}
self.state = VersionState::Downloading;
let progress_bar_sender = self.progress_bar.sender().clone();