Add force remove remote
This commit is contained in:
parent
ac17a93abf
commit
ac7c1ab569
@ -141,5 +141,8 @@
|
|||||||
"flatpak_remote_add_error_dialog_heading": "Flatpak Remote Changes Failed Error:",
|
"flatpak_remote_add_error_dialog_heading": "Flatpak Remote Changes Failed Error:",
|
||||||
"flatpak_remote_add_error_dialog_ok_label": "OK",
|
"flatpak_remote_add_error_dialog_ok_label": "OK",
|
||||||
"flatpak_remote_add_name_prefrencesgroup_title": "Remote Name",
|
"flatpak_remote_add_name_prefrencesgroup_title": "Remote Name",
|
||||||
"flatpak_remote_add_url_prefrencesgroup_title": "Remote Ref URL (flatpakrepo)"
|
"flatpak_remote_add_url_prefrencesgroup_title": "Remote Ref URL (flatpakrepo)",
|
||||||
|
"flatpak_remote_add_error_dialog_used_error_body": "Should We Force Remove The Remote Alongside Everything Using It?",
|
||||||
|
"flatpak_remote_add_error_used_no_label": "No",
|
||||||
|
"flatpak_remote_add_error_used_yes_label": "Yes"
|
||||||
}
|
}
|
@ -328,18 +328,18 @@ pub fn flatpak_manage_page(
|
|||||||
|_|
|
|_|
|
||||||
{
|
{
|
||||||
{
|
{
|
||||||
let (mut installation, mut remote_name): (libflatpak::Installation, libflatpak::glib::GString);
|
let (mut installation, mut remote_name, mut cmd_installation): (libflatpak::Installation, libflatpak::glib::GString, String);
|
||||||
{
|
{
|
||||||
let flatpak_remotes_selection_model = flatpak_remotes_selection_model_rc.borrow();
|
let flatpak_remotes_selection_model = flatpak_remotes_selection_model_rc.borrow();
|
||||||
let selection = flatpak_remotes_selection_model.selected_item().unwrap();
|
let selection = flatpak_remotes_selection_model.selected_item().unwrap();
|
||||||
let item = selection.downcast_ref::<BoxedAnyObject>().unwrap();
|
let item = selection.downcast_ref::<BoxedAnyObject>().unwrap();
|
||||||
let flatpak_remote: Ref<FlatpakRemote> = item.borrow();
|
let flatpak_remote: Ref<FlatpakRemote> = item.borrow();
|
||||||
(installation, remote_name) = match flatpak_remote.deref() {
|
(installation, remote_name, cmd_installation) = match flatpak_remote.deref() {
|
||||||
FlatpakRemote::System(remote) => {
|
FlatpakRemote::System(remote) => {
|
||||||
(libflatpak::Installation::new_system(cancellable_no).unwrap(), remote.name().unwrap_or_default())
|
(libflatpak::Installation::new_system(cancellable_no).unwrap(), remote.name().unwrap_or_default(), "--system".to_string())
|
||||||
}
|
}
|
||||||
FlatpakRemote::User(remote) => {
|
FlatpakRemote::User(remote) => {
|
||||||
(libflatpak::Installation::new_user(cancellable_no).unwrap(), remote.name().unwrap_or_default())
|
(libflatpak::Installation::new_user(cancellable_no).unwrap(), remote.name().unwrap_or_default(), "--user".to_string())
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
@ -347,6 +347,34 @@ pub fn flatpak_manage_page(
|
|||||||
Ok(_) => {
|
Ok(_) => {
|
||||||
retry_signal_action.activate(None);
|
retry_signal_action.activate(None);
|
||||||
}
|
}
|
||||||
|
Err(e) => {
|
||||||
|
match e.matches(libflatpak::Error::RemoteUsed) {
|
||||||
|
true => {
|
||||||
|
let flatpak_remote_add_error_dialog = adw::MessageDialog::builder()
|
||||||
|
.heading(t!("flatpak_remote_add_error_dialog_heading"))
|
||||||
|
.body(e.to_string() + "\n" + &t!("flatpak_remote_add_error_dialog_used_error_body").to_string())
|
||||||
|
.build();
|
||||||
|
flatpak_remote_add_error_dialog.add_response(
|
||||||
|
"flatpak_remote_add_error_dialog_used_no",
|
||||||
|
&t!("flatpak_remote_add_error_used_no_label").to_string(),
|
||||||
|
);
|
||||||
|
flatpak_remote_add_error_dialog.add_response(
|
||||||
|
"flatpak_remote_add_error_dialog_used_yes",
|
||||||
|
&t!("flatpak_remote_add_error_used_yes_label").to_string(),
|
||||||
|
);
|
||||||
|
flatpak_remote_add_error_dialog.set_response_appearance(
|
||||||
|
"flatpak_remote_add_error_dialog_used_yes",
|
||||||
|
adw::ResponseAppearance::Destructive,
|
||||||
|
);
|
||||||
|
let retry_signal_action_clone0 = retry_signal_action.clone();
|
||||||
|
flatpak_remote_add_error_dialog.clone()
|
||||||
|
.choose(None::<&gio::Cancellable>, move |choice| {
|
||||||
|
match choice.as_str() {
|
||||||
|
"flatpak_remote_add_error_dialog_used_yes" => {
|
||||||
|
match duct::cmd!("flatpak", "remote-delete", "--force", "--noninteractive", &cmd_installation, &remote_name).run() {
|
||||||
|
Ok(_) => {
|
||||||
|
retry_signal_action_clone0.activate(None);
|
||||||
|
}
|
||||||
Err(e) => {
|
Err(e) => {
|
||||||
let flatpak_remote_add_error_dialog = adw::MessageDialog::builder()
|
let flatpak_remote_add_error_dialog = adw::MessageDialog::builder()
|
||||||
.heading(t!("flatpak_remote_add_error_dialog_heading"))
|
.heading(t!("flatpak_remote_add_error_dialog_heading"))
|
||||||
@ -360,6 +388,26 @@ pub fn flatpak_manage_page(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
_ => {}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
false => {
|
||||||
|
let flatpak_remote_add_error_dialog = adw::MessageDialog::builder()
|
||||||
|
.heading(t!("flatpak_remote_add_error_dialog_heading"))
|
||||||
|
.body(e.to_string())
|
||||||
|
.build();
|
||||||
|
flatpak_remote_add_error_dialog.add_response(
|
||||||
|
"flatpak_remote_add_error_dialog_ok",
|
||||||
|
&t!("flatpak_remote_add_error_dialog_ok_label").to_string(),
|
||||||
|
);
|
||||||
|
flatpak_remote_add_error_dialog.present();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
Loading…
Reference in New Issue
Block a user