mirror of
https://github.com/ALEZ-DEV/Babylonia-terminal.git
synced 2025-12-15 00:48:52 +00:00
can now choose release
This commit is contained in:
parent
72fd11a2ac
commit
baf66a4e13
@ -5,24 +5,15 @@ use babylonia_terminal_sdk::game_state::GameState;
|
||||
|
||||
use log::debug;
|
||||
use relm4::{
|
||||
adw::{
|
||||
self,
|
||||
prelude::{PreferencesGroupExt, PreferencesPageExt},
|
||||
ApplicationWindow,
|
||||
},
|
||||
gtk::{
|
||||
self,
|
||||
prelude::{BoxExt, ButtonExt, GtkWindowExt, OrientableExt, WidgetExt},
|
||||
},
|
||||
self,
|
||||
gtk::{self, prelude::*},
|
||||
loading_widgets::LoadingWidgets,
|
||||
prelude::{
|
||||
AsyncComponent, AsyncComponentController, AsyncComponentParts, AsyncController,
|
||||
SimpleAsyncComponent,
|
||||
},
|
||||
view, Component, ComponentController, Controller, RelmApp, RelmWidgetExt, WorkerController,
|
||||
prelude::*,
|
||||
*,
|
||||
};
|
||||
|
||||
use libadwaita::OverlaySplitView;
|
||||
use adw::prelude::*;
|
||||
use libadwaita as adw;
|
||||
|
||||
use crate::APP_RESOURCE_PATH;
|
||||
|
||||
@ -85,7 +76,7 @@ impl SimpleAsyncComponent for MainWindow {
|
||||
gtk::Box {
|
||||
set_orientation: gtk::Orientation::Vertical,
|
||||
|
||||
OverlaySplitView {
|
||||
adw::OverlaySplitView {
|
||||
#[watch]
|
||||
set_show_sidebar: model.is_menu_visible,
|
||||
set_collapsed: true,
|
||||
|
||||
@ -1,6 +1,19 @@
|
||||
use libadwaita::prelude::{ButtonExt, PreferencesPageExt, PreferencesRowExt, WidgetExt};
|
||||
use relm4::prelude::{AsyncComponentParts, SimpleAsyncComponent};
|
||||
use relm4::{adw, gtk, AsyncComponentSender, RelmWidgetExt};
|
||||
use babylonia_terminal_sdk::{
|
||||
components::{
|
||||
dxvk_component::{self, DXVKComponent},
|
||||
proton_component::{self, ProtonComponent},
|
||||
},
|
||||
utils::github_requester::{GithubRelease, GithubRequester},
|
||||
};
|
||||
use relm4::{
|
||||
self,
|
||||
gtk::{self, prelude::*},
|
||||
prelude::*,
|
||||
*,
|
||||
};
|
||||
|
||||
use adw::prelude::*;
|
||||
use libadwaita as adw;
|
||||
|
||||
use crate::ui::MainWindowMsg;
|
||||
|
||||
@ -11,7 +24,10 @@ pub enum DownloadComponentsMsg {
|
||||
Next,
|
||||
}
|
||||
|
||||
pub struct DownloadComponentsPage;
|
||||
pub struct DownloadComponentsPage {
|
||||
proton_versions: Vec<GithubRelease>,
|
||||
dxvk_versions: Vec<GithubRelease>,
|
||||
}
|
||||
|
||||
#[relm4::component(async, pub)]
|
||||
impl SimpleAsyncComponent for DownloadComponentsPage {
|
||||
@ -42,10 +58,24 @@ impl SimpleAsyncComponent for DownloadComponentsPage {
|
||||
|
||||
adw::ComboRow {
|
||||
set_title: "Proton version",
|
||||
|
||||
set_model: Some(>k::StringList::new(model
|
||||
.proton_versions
|
||||
.iter()
|
||||
.map(|r| r.tag_name.as_str())
|
||||
.collect::<Vec<&str>>()
|
||||
.as_slice())),
|
||||
},
|
||||
|
||||
adw::ComboRow {
|
||||
set_title: "DXVK version",
|
||||
|
||||
set_model: Some(>k::StringList::new(model
|
||||
.dxvk_versions
|
||||
.iter()
|
||||
.map(|r| r.tag_name.as_str())
|
||||
.collect::<Vec<&str>>()
|
||||
.as_slice())),
|
||||
},
|
||||
},
|
||||
|
||||
@ -70,7 +100,23 @@ impl SimpleAsyncComponent for DownloadComponentsPage {
|
||||
root: Self::Root,
|
||||
sender: AsyncComponentSender<Self>,
|
||||
) -> AsyncComponentParts<Self> {
|
||||
let model = DownloadComponentsPage;
|
||||
let proton_releases = ProtonComponent::get_github_releases(
|
||||
proton_component::PROTON_DEV,
|
||||
proton_component::PROTON_REPO,
|
||||
)
|
||||
.await
|
||||
.unwrap(); //TODO: remove unwrap()
|
||||
|
||||
let dxvk_releases =
|
||||
DXVKComponent::get_github_releases(dxvk_component::DXVK_DEV, dxvk_component::DXVK_REPO)
|
||||
.await
|
||||
.unwrap(); //TODO: remove unwrap()
|
||||
|
||||
let model = DownloadComponentsPage {
|
||||
proton_versions: proton_releases,
|
||||
dxvk_versions: dxvk_releases,
|
||||
};
|
||||
|
||||
let widgets = view_output!();
|
||||
|
||||
AsyncComponentParts { widgets, model }
|
||||
|
||||
Loading…
Reference in New Issue
Block a user