Fix Legacy editing

This commit is contained in:
Ward from fusion-voyager-3 2024-09-27 21:35:40 +03:00
parent 47083556cc
commit 7a66251a68
4 changed files with 19 additions and 20 deletions

4
Cargo.lock generated
View File

@ -1071,8 +1071,8 @@ checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe"
[[package]] [[package]]
name = "legacy-apt-list-tools-rs" name = "legacy-apt-list-tools-rs"
version = "0.1.1" version = "0.1.3"
source = "git+https://github.com/CosmicFusion/legacy-apt-list-tools-rs#f6ad0545a2cc32bda63ba4d72f99374644c3abf9" source = "git+https://github.com/CosmicFusion/legacy-apt-list-tools-rs#b3629432a1c8567763f6e3c06c9aaf9decb6e919"
dependencies = [ dependencies = [
"apt-sources-lists", "apt-sources-lists",
] ]

View File

@ -27,7 +27,7 @@ async-channel = "2.1.1"
rust-i18n = "3.0.1" rust-i18n = "3.0.1"
rust-apt = { git = "https://gitlab.com/volian/rust-apt" } rust-apt = { git = "https://gitlab.com/volian/rust-apt" }
apt-deb822-tools = { package = "deb822-tools", git = "https://github.com/CosmicFusion/deb822-tools" } apt-deb822-tools = { package = "deb822-tools", git = "https://github.com/CosmicFusion/deb822-tools" }
apt-legacy-tools = { version = "0.1.1", package = "legacy-apt-list-tools-rs", git = "https://github.com/CosmicFusion/legacy-apt-list-tools-rs" } apt-legacy-tools = { version = "0.1.3", package = "legacy-apt-list-tools-rs", git = "https://github.com/CosmicFusion/legacy-apt-list-tools-rs" }
tokio = { version = "1", features = ["full"] } tokio = { version = "1", features = ["full"] }
tokio-uds = "0.2" tokio-uds = "0.2"
serde = { version = "1.0.203", features = ["derive"] } serde = { version = "1.0.203", features = ["derive"] }

View File

@ -222,6 +222,8 @@ pub fn legacy_edit_dialog_fn(
.choose(None::<&gio::Cancellable>, move |choice| { .choose(None::<&gio::Cancellable>, move |choice| {
match choice.as_str() { match choice.as_str() {
"unofficial_source_edit_dialog_edit" => { "unofficial_source_edit_dialog_edit" => {
let mut new_apt_legacy_vec = LegacyAptSource::get_legacy_sources().unwrap();
new_apt_legacy_vec.retain(|x| x != &legacy_repo_clone0);
let new_repo = LegacyAptSource { let new_repo = LegacyAptSource {
url: unofficial_source_add_uri_entry.text().to_string(), url: unofficial_source_add_uri_entry.text().to_string(),
is_source: unofficial_source_add_is_source_switch.is_active(), is_source: unofficial_source_add_is_source_switch.is_active(),
@ -231,7 +233,8 @@ pub fn legacy_edit_dialog_fn(
enabled: unofficial_source_add_is_enabled_switch.is_active(), enabled: unofficial_source_add_is_enabled_switch.is_active(),
..legacy_repo_clone0 ..legacy_repo_clone0
}; };
/*match LegacyAptSource::save_to_file(new_repo.clone(), LegacyAptSource::get_legacy_sources().unwrap(), &format!("/tmp/{}.list", repo_file_name)) { new_apt_legacy_vec.push(new_repo.clone());
match LegacyAptSource::save_to_file(new_repo, new_apt_legacy_vec, &format!("/tmp/{}.list", repo_file_name)) {
Ok(_) => { Ok(_) => {
match duct::cmd!("pkexec", "/usr/lib/pika/pikman-update-manager/scripts/modify_repo.sh", "legacy_move", repo_file_name).run() { match duct::cmd!("pkexec", "/usr/lib/pika/pikman-update-manager/scripts/modify_repo.sh", "legacy_move", repo_file_name).run() {
Ok(_) => {} Ok(_) => {}
@ -261,9 +264,7 @@ pub fn legacy_edit_dialog_fn(
apt_src_create_error_dialog.present(); apt_src_create_error_dialog.present();
reload_action_clone0.activate(None); reload_action_clone0.activate(None);
} }
}*/ }
dbg!(&new_repo);
LegacyAptSource::save_to_file(new_repo.clone(), LegacyAptSource::get_legacy_sources().unwrap(), &format!("/tmp/{}.list", repo_file_name)).unwrap();
} }
_ => {} _ => {}
} }

View File

@ -113,9 +113,7 @@ pub fn apt_manage_page(
let unofficial_sources_columnview_bin_clone0 = unofficial_sources_columnview_bin.clone(); let unofficial_sources_columnview_bin_clone0 = unofficial_sources_columnview_bin.clone();
let reload_unofficial_action = gio::SimpleAction::new("reload_unofficial_action", None); retry_signal_action.connect_activate(clone!(
reload_unofficial_action.connect_activate(clone!(
#[weak] #[weak]
unofficial_sources_columnview_bin_clone0, unofficial_sources_columnview_bin_clone0,
move |_, _| { move |_, _| {
@ -264,7 +262,7 @@ pub fn apt_manage_page(
unofficial_sources_columnview_bin_clone0.set_child(Some(&unofficial_sources_columnview)); unofficial_sources_columnview_bin_clone0.set_child(Some(&unofficial_sources_columnview));
})); }));
reload_unofficial_action.activate(None); retry_signal_action.activate(None);
let unofficial_sources_box = Box::builder() let unofficial_sources_box = Box::builder()
.orientation(Orientation::Vertical) .orientation(Orientation::Vertical)
@ -320,13 +318,13 @@ pub fn apt_manage_page(
#[strong] #[strong]
window, window,
#[strong] #[strong]
reload_unofficial_action, retry_signal_action,
move move
|_| |_|
{ {
add_dialog::add_dialog_fn( add_dialog::add_dialog_fn(
window.clone(), window.clone(),
&reload_unofficial_action &retry_signal_action
); );
} }
) )
@ -338,7 +336,7 @@ pub fn apt_manage_page(
#[strong] #[strong]
unofficial_sources_selection_model_rc, unofficial_sources_selection_model_rc,
#[strong] #[strong]
reload_unofficial_action, retry_signal_action,
move move
|_| |_|
{ {
@ -348,10 +346,10 @@ pub fn apt_manage_page(
let apt_src: Ref<AptSourceConfig> = item.borrow(); let apt_src: Ref<AptSourceConfig> = item.borrow();
match apt_src.deref() { match apt_src.deref() {
AptSourceConfig::DEB822(src) => { AptSourceConfig::DEB822(src) => {
deb822_edit_dialog::deb822_edit_dialog_fn(window.clone(), src, &reload_unofficial_action); deb822_edit_dialog::deb822_edit_dialog_fn(window.clone(), src, &retry_signal_action);
} }
AptSourceConfig::Legacy(list) => { AptSourceConfig::Legacy(list) => {
legacy_edit_dialog::legacy_edit_dialog_fn(window.clone(), list, &reload_unofficial_action) legacy_edit_dialog::legacy_edit_dialog_fn(window.clone(), list, &retry_signal_action)
} }
}; };
@ -365,7 +363,7 @@ pub fn apt_manage_page(
#[strong] #[strong]
unofficial_sources_selection_model_rc, unofficial_sources_selection_model_rc,
#[strong] #[strong]
reload_unofficial_action, retry_signal_action,
move move
|_| |_|
{ {
@ -400,13 +398,13 @@ pub fn apt_manage_page(
&t!("apt_src_remove_warning_dialog_ok_label").to_string(), &t!("apt_src_remove_warning_dialog_ok_label").to_string(),
); );
apt_src_remove_warning_dialog.set_response_appearance("apt_src_remove_warning_dialog_ok", adw::ResponseAppearance::Destructive); apt_src_remove_warning_dialog.set_response_appearance("apt_src_remove_warning_dialog_ok", adw::ResponseAppearance::Destructive);
let reload_unofficial_action_clone0 = reload_unofficial_action.clone(); let retry_signal_action_clone0 = retry_signal_action.clone();
apt_src_remove_warning_dialog.clone() apt_src_remove_warning_dialog.clone()
.choose(None::<&gio::Cancellable>, move |choice| { .choose(None::<&gio::Cancellable>, move |choice| {
match choice.as_str() { match choice.as_str() {
"apt_src_remove_warning_dialog_ok" => { "apt_src_remove_warning_dialog_ok" => {
let _ = command.run().unwrap(); let _ = command.run().unwrap();
reload_unofficial_action_clone0.activate(None); retry_signal_action_clone0.activate(None);
} }
_ => {} _ => {}
} }