From 7818eb87c015be9b6ea03b1d888abd4bde61b5cf Mon Sep 17 00:00:00 2001 From: yggverse Date: Thu, 27 Mar 2025 06:07:27 +0200 Subject: [PATCH] update external redirect indication --- .../page/navigation/request/info/dialog.rs | 48 ++++++++++++------- 1 file changed, 31 insertions(+), 17 deletions(-) diff --git a/src/app/browser/window/tab/item/page/navigation/request/info/dialog.rs b/src/app/browser/window/tab/item/page/navigation/request/info/dialog.rs index 7392dec1..70e0b4a2 100644 --- a/src/app/browser/window/tab/item/page/navigation/request/info/dialog.rs +++ b/src/app/browser/window/tab/item/page/navigation/request/info/dialog.rs @@ -215,10 +215,6 @@ impl Dialog for PreferencesDialog { let t = b[0].event[0].time(); // first event time to count from for (i, r) in b.iter().enumerate() { g.add(&{ - let is_external = r - .redirect - .as_ref() - .is_some_and(|this| this.is_external(r).is_some_and(|v| v)); let a = ActionRow::builder() .css_classes(["property"]) .subtitle_selectable(true) @@ -227,21 +223,42 @@ impl Dialog for PreferencesDialog { .build(); a.add_prefix(&{ let c = i + 1; - Button::builder() - .css_classes([ - "circular", - if is_external { - "warning" - } else if c == l { - "success" + let (css_class, tooltip_text) = if r + .redirect + .as_ref() + .is_some_and(|this| this.is_external(r).is_some_and(|v| v)) + { + if c == l { + ("warning", "Current (External)") + } else { + ( + "warning", + if i == 0 { + "Initial request" + } else { + "External redirect" + }, + ) + } + } else if c == l { + ("success", "Current") + } else { + ( + "accent", + if i == 0 { + "Initial request" } else { - "accent" + "Internal redirect" }, - ]) + ) + }; + Button::builder() + .css_classes(["circular", css_class]) + .halign(Align::Center) .label(c.to_string()) .sensitive(false) + .tooltip_text(tooltip_text) .valign(Align::Center) - .halign(Align::Center) .build() }); if let Some(ref redirect) = r.redirect { @@ -250,9 +267,6 @@ impl Dialog for PreferencesDialog { redirect.method.to_string(), )) } - if is_external { - a.add_suffix(&suffix("application-exit-symbolic", "External")) // @TODO links contain ⇖ text label indication - } // calculate total redirections time in ms let c = r.event.last().unwrap().time(); a.set_subtitle(&if i == 0 {