diff --git a/CHANGELOG.md b/CHANGELOG.md
index aadd1fe..b73f997 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -13,7 +13,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
### Changed
-- Prioritize parsed game version over the API response
+- Prioritize parsed game version over the API response
+
+### Removed
+
+- Removed migrate installation feature
## [3.10.3] - 21.07.2024
diff --git a/src/ui/about.rs b/src/ui/about.rs
index 880334c..810773a 100644
--- a/src/ui/about.rs
+++ b/src/ui/about.rs
@@ -39,7 +39,7 @@ impl SimpleComponent for AboutDialog {
set_website: "https://github.com/an-anime-team/an-anime-game-launcher",
set_issue_url: "https://github.com/an-anime-team/an-anime-game-launcher/issues",
- set_license_type: gtk::License::Gpl30,
+ set_license_type: gtk::License::Gpl30Only,
set_version: &APP_VERSION,
set_developers: &[
@@ -95,12 +95,22 @@ impl SimpleComponent for AboutDialog {
set_release_notes_version: &APP_VERSION,
set_release_notes: &[
- "
Fixed
",
+ "Added
",
"",
- "- Fixed \"game.log\" file overfilling at the start of the game
",
- "- Fixed RAM filling with the buffered game logs
",
- "- Fixed Discord RPC updates
",
+ "- Respect root \".version\" file for game version parsing
",
+ "
",
+
+ "Changed
",
+
+ "",
+ "- Prioritize parsed game version over the API response
",
+ "
",
+
+ "Removed
",
+
+ "",
+ "- Removed migrate installation feature
",
"
"
].join("\n"),
diff --git a/src/ui/first_run/default_paths.rs b/src/ui/first_run/default_paths.rs
index 76a5077..dd4bc44 100644
--- a/src/ui/first_run/default_paths.rs
+++ b/src/ui/first_run/default_paths.rs
@@ -12,7 +12,6 @@ pub struct DefaultPathsApp {
progress_bar: AsyncController,
show_additional: bool,
- migrate_installation: bool,
show_progress: bool,
launcher: PathBuf,
@@ -49,8 +48,7 @@ pub enum DefaultPathsAppMsg {
#[relm4::component(async, pub)]
impl SimpleAsyncComponent for DefaultPathsApp {
- /// If `true`, then use migrate installation mode
- type Init = bool;
+ type Init = ();
type Input = DefaultPathsAppMsg;
type Output = FirstRunAppMsg;
@@ -242,11 +240,7 @@ impl SimpleAsyncComponent for DefaultPathsApp {
set_spacing: 8,
gtk::Button {
- set_label: &if model.migrate_installation {
- tr!("migrate")
- } else {
- tr!("continue")
- },
+ set_label: &tr!("continue"),
set_css_classes: &["suggested-action", "pill"],
@@ -254,17 +248,10 @@ impl SimpleAsyncComponent for DefaultPathsApp {
},
gtk::Button {
- set_label: &if model.migrate_installation {
- tr!("close", { "form" = "noun" })
- } else {
- tr!("exit")
- },
+ set_label: &tr!("exit"),
add_css_class: "pill",
- #[watch]
- set_visible: !model.migrate_installation,
-
connect_clicked => DefaultPathsAppMsg::Exit
}
}
@@ -287,7 +274,7 @@ impl SimpleAsyncComponent for DefaultPathsApp {
}
}
- async fn init(init: Self::Init, root: Self::Root, _sender: AsyncComponentSender) -> AsyncComponentParts {
+ async fn init(_init: Self::Init, root: Self::Root, _sender: AsyncComponentSender) -> AsyncComponentParts {
let model = Self {
progress_bar: ProgressBar::builder()
.launch(ProgressBarInit {
@@ -299,7 +286,6 @@ impl SimpleAsyncComponent for DefaultPathsApp {
.detach(),
show_additional: false,
- migrate_installation: init,
show_progress: false,
launcher: LAUNCHER_FOLDER.to_path_buf(),
@@ -311,12 +297,13 @@ impl SimpleAsyncComponent for DefaultPathsApp {
fps_unlocker: CONFIG.game.enhancements.fps_unlocker.path.clone(),
components: CONFIG.components.path.clone(),
- #[allow(clippy::or_fun_call)]
- temp: CONFIG.launcher.temp.clone().unwrap_or(std::env::temp_dir())
+ temp: CONFIG.launcher.temp.clone()
+ .unwrap_or_else(std::env::temp_dir)
};
// Set progress bar width
- model.progress_bar.widget().set_width_request(400);
+ model.progress_bar.widget()
+ .set_width_request(400);
let widgets = view_output!();
@@ -364,49 +351,9 @@ impl SimpleAsyncComponent for DefaultPathsApp {
#[allow(unused_must_use)]
DefaultPathsAppMsg::Continue => {
- let old_config = Config::get().unwrap_or_else(|_| CONFIG.clone());
-
match self.update_config() {
Ok(_) => {
- if self.migrate_installation {
- self.progress_bar.sender().send(ProgressBarMsg::SetVisible(true));
-
- self.show_progress = true;
-
- let folders = [
- (old_config.game.wine.builds, &self.runners),
- (old_config.game.dxvk.builds, &self.dxvks),
- (old_config.game.wine.prefix, &self.prefix),
- (old_config.game.path.global, &self.game_global),
- (old_config.game.path.china, &self.game_china),
- (old_config.components.path, &self.components),
-
- (old_config.game.enhancements.fps_unlocker.path, &self.fps_unlocker)
- ];
-
- #[allow(clippy::expect_fun_call)]
- for (i, (from, to)) in folders.iter().enumerate() {
- self.progress_bar.sender().send(ProgressBarMsg::UpdateCaption(Some(
- from.to_str().map(|str| str.to_string()).unwrap_or_else(|| format!("{:?}", from))
- )));
-
- if &from != to && from.exists() {
- move_files::move_files(from, to).expect(&format!("Failed to move folder: {:?} -> {:?}", from, to));
- }
-
- self.progress_bar.sender().send(ProgressBarMsg::UpdateProgress(i as u64 + 1, folders.len() as u64));
- }
-
- // Restart the app
-
- std::process::Command::new(std::env::current_exe().unwrap()).spawn().unwrap();
-
- relm4::main_application().quit();
- }
-
- else {
- sender.output(Self::Output::ScrollToSelectVoiceovers);
- }
+ sender.output(Self::Output::ScrollToSelectVoiceovers);
}
Err(err) => {
@@ -419,14 +366,7 @@ impl SimpleAsyncComponent for DefaultPathsApp {
}
DefaultPathsAppMsg::Exit => {
- if self.migrate_installation {
- // TODO: this shit should return message to general preferences component somehow to close MigrateInstallation window
- todo!();
- }
-
- else {
- relm4::main_application().quit();
- }
+ relm4::main_application().quit();
}
}
}
diff --git a/src/ui/first_run/main.rs b/src/ui/first_run/main.rs
index 089f32a..1b3b678 100644
--- a/src/ui/first_run/main.rs
+++ b/src/ui/first_run/main.rs
@@ -131,7 +131,7 @@ impl SimpleComponent for FirstRunApp {
.forward(sender.input_sender(), std::convert::identity),
default_paths: DefaultPathsApp::builder()
- .launch(false)
+ .launch(())
.forward(sender.input_sender(), std::convert::identity),
select_voiceovers: SelectVoiceoversApp::builder()
diff --git a/src/ui/migrate_installation.rs b/src/ui/migrate_installation.rs
deleted file mode 100644
index a31a98f..0000000
--- a/src/ui/migrate_installation.rs
+++ /dev/null
@@ -1,52 +0,0 @@
-use relm4::prelude::*;
-use gtk::prelude::*;
-
-use crate::tr;
-
-use super::first_run::default_paths::DefaultPathsApp;
-
-pub struct MigrateInstallationApp {
- default_paths: AsyncController,
-}
-
-#[relm4::component(pub)]
-impl SimpleComponent for MigrateInstallationApp {
- type Init = ();
- type Input = ();
- type Output = ();
-
- view! {
- adw::Window {
- set_default_size: (780, 560),
- set_modal: true,
- set_hide_on_close: true,
-
- #[watch]
- set_title: Some(&tr!("migrate-installation")),
-
- gtk::Box {
- set_orientation: gtk::Orientation::Vertical,
-
- adw::HeaderBar {
- add_css_class: "flat"
- },
-
- append = model.default_paths.widget(),
- }
- }
- }
-
- fn init(_init: Self::Init, root: Self::Root, _sender: ComponentSender) -> ComponentParts {
- tracing::info!("Initializing migration window");
-
- let model = Self {
- default_paths: DefaultPathsApp::builder()
- .launch(true)
- .detach()
- };
-
- let widgets = view_output!();
-
- ComponentParts { model, widgets }
- }
-}
diff --git a/src/ui/mod.rs b/src/ui/mod.rs
index eae6545..e5365c9 100644
--- a/src/ui/mod.rs
+++ b/src/ui/mod.rs
@@ -3,4 +3,3 @@ pub mod about;
pub mod preferences;
pub mod components;
pub mod first_run;
-pub mod migrate_installation;
diff --git a/src/ui/preferences/general/mod.rs b/src/ui/preferences/general/mod.rs
index 0561a03..b302d7d 100644
--- a/src/ui/preferences/general/mod.rs
+++ b/src/ui/preferences/general/mod.rs
@@ -22,7 +22,6 @@ pub mod components;
use components::*;
-use crate::ui::migrate_installation::MigrateInstallationApp;
use crate::i18n::*;
use crate::*;
@@ -103,7 +102,6 @@ impl AsyncFactoryComponent for VoicePackageComponent {
pub struct GeneralApp {
voice_packages: AsyncFactoryVecDeque,
- migrate_installation: Controller,
components_page: AsyncController,
game_diff: Option,
@@ -127,7 +125,6 @@ pub enum GeneralAppMsg {
UpdateDownloadedWine,
UpdateDownloadedDxvk,
- OpenMigrateInstallation,
RepairGame,
OpenMainPage,
@@ -341,13 +338,6 @@ impl SimpleAsyncComponent for GeneralApp {
set_spacing: 8,
set_margin_top: 16,
- gtk::Button {
- set_label: &tr!("migrate-installation"),
- set_tooltip_text: Some(&tr!("migrate-installation-description")),
-
- connect_clicked => GeneralAppMsg::OpenMigrateInstallation
- },
-
gtk::Button {
set_label: &tr!("repair-game"),
@@ -543,10 +533,6 @@ impl SimpleAsyncComponent for GeneralApp {
.launch_default()
.forward(sender.input_sender(), std::convert::identity),
- migrate_installation: MigrateInstallationApp::builder()
- .launch(())
- .detach(),
-
components_page: ComponentsPage::builder()
.launch(())
.forward(sender.input_sender(), std::convert::identity),
@@ -648,14 +634,6 @@ impl SimpleAsyncComponent for GeneralApp {
.unwrap();
}
- GeneralAppMsg::OpenMigrateInstallation => unsafe {
- if let Some(window) = crate::ui::main::PREFERENCES_WINDOW.as_ref() {
- self.migrate_installation.widget().set_transient_for(Some(window.widget()));
- }
-
- self.migrate_installation.widget().present();
- }
-
GeneralAppMsg::RepairGame => {
sender.output(Self::Output::RepairGame).unwrap();
}