mirror of
https://github.com/ALEZ-DEV/Babylonia-terminal.git
synced 2025-12-16 09:28:53 +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 log::debug;
|
||||||
use relm4::{
|
use relm4::{
|
||||||
adw::{
|
|
||||||
self,
|
self,
|
||||||
prelude::{PreferencesGroupExt, PreferencesPageExt},
|
gtk::{self, prelude::*},
|
||||||
ApplicationWindow,
|
|
||||||
},
|
|
||||||
gtk::{
|
|
||||||
self,
|
|
||||||
prelude::{BoxExt, ButtonExt, GtkWindowExt, OrientableExt, WidgetExt},
|
|
||||||
},
|
|
||||||
loading_widgets::LoadingWidgets,
|
loading_widgets::LoadingWidgets,
|
||||||
prelude::{
|
prelude::*,
|
||||||
AsyncComponent, AsyncComponentController, AsyncComponentParts, AsyncController,
|
*,
|
||||||
SimpleAsyncComponent,
|
|
||||||
},
|
|
||||||
view, Component, ComponentController, Controller, RelmApp, RelmWidgetExt, WorkerController,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
use libadwaita::OverlaySplitView;
|
use adw::prelude::*;
|
||||||
|
use libadwaita as adw;
|
||||||
|
|
||||||
use crate::APP_RESOURCE_PATH;
|
use crate::APP_RESOURCE_PATH;
|
||||||
|
|
||||||
@ -85,7 +76,7 @@ impl SimpleAsyncComponent for MainWindow {
|
|||||||
gtk::Box {
|
gtk::Box {
|
||||||
set_orientation: gtk::Orientation::Vertical,
|
set_orientation: gtk::Orientation::Vertical,
|
||||||
|
|
||||||
OverlaySplitView {
|
adw::OverlaySplitView {
|
||||||
#[watch]
|
#[watch]
|
||||||
set_show_sidebar: model.is_menu_visible,
|
set_show_sidebar: model.is_menu_visible,
|
||||||
set_collapsed: true,
|
set_collapsed: true,
|
||||||
|
|||||||
@ -1,6 +1,19 @@
|
|||||||
use libadwaita::prelude::{ButtonExt, PreferencesPageExt, PreferencesRowExt, WidgetExt};
|
use babylonia_terminal_sdk::{
|
||||||
use relm4::prelude::{AsyncComponentParts, SimpleAsyncComponent};
|
components::{
|
||||||
use relm4::{adw, gtk, AsyncComponentSender, RelmWidgetExt};
|
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;
|
use crate::ui::MainWindowMsg;
|
||||||
|
|
||||||
@ -11,7 +24,10 @@ pub enum DownloadComponentsMsg {
|
|||||||
Next,
|
Next,
|
||||||
}
|
}
|
||||||
|
|
||||||
pub struct DownloadComponentsPage;
|
pub struct DownloadComponentsPage {
|
||||||
|
proton_versions: Vec<GithubRelease>,
|
||||||
|
dxvk_versions: Vec<GithubRelease>,
|
||||||
|
}
|
||||||
|
|
||||||
#[relm4::component(async, pub)]
|
#[relm4::component(async, pub)]
|
||||||
impl SimpleAsyncComponent for DownloadComponentsPage {
|
impl SimpleAsyncComponent for DownloadComponentsPage {
|
||||||
@ -42,10 +58,24 @@ impl SimpleAsyncComponent for DownloadComponentsPage {
|
|||||||
|
|
||||||
adw::ComboRow {
|
adw::ComboRow {
|
||||||
set_title: "Proton version",
|
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 {
|
adw::ComboRow {
|
||||||
set_title: "DXVK version",
|
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,
|
root: Self::Root,
|
||||||
sender: AsyncComponentSender<Self>,
|
sender: AsyncComponentSender<Self>,
|
||||||
) -> AsyncComponentParts<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!();
|
let widgets = view_output!();
|
||||||
|
|
||||||
AsyncComponentParts { widgets, model }
|
AsyncComponentParts { widgets, model }
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user