mirror of
https://github.com/YGGverse/Yoda.git
synced 2025-09-06 03:41:59 +00:00
draft redirection chain widget
This commit is contained in:
parent
96230ee476
commit
97b22fd09c
@ -106,6 +106,10 @@ impl Info {
|
|||||||
|
|
||||||
// Getters
|
// Getters
|
||||||
|
|
||||||
|
pub fn request(&self) -> Option<&str> {
|
||||||
|
self.request.as_deref()
|
||||||
|
}
|
||||||
|
|
||||||
pub fn matches(&self, request: &str) -> bool {
|
pub fn matches(&self, request: &str) -> bool {
|
||||||
self.request.as_ref().is_some_and(|r| r == request)
|
self.request.as_ref().is_some_and(|r| r == request)
|
||||||
}
|
}
|
||||||
|
@ -55,14 +55,25 @@ impl Dialog for PreferencesDialog {
|
|||||||
} // @TODO header size, total size, etc.
|
} // @TODO header size, total size, etc.
|
||||||
p
|
p
|
||||||
});
|
});
|
||||||
if let Some(ref redirect) = info.redirect {
|
if info.redirect.is_some() {
|
||||||
d.add(&{
|
d.add(&{
|
||||||
PreferencesPage::builder()
|
let g = PreferencesGroup::new();
|
||||||
|
let p = PreferencesPage::builder()
|
||||||
.title("Redirect")
|
.title("Redirect")
|
||||||
.icon_name("insert-link-symbolic")
|
.icon_name("insert-link-symbolic")
|
||||||
.build()
|
.build();
|
||||||
});
|
p.add(&{
|
||||||
// @TODO recursive lookup
|
fn chain(g: &PreferencesGroup, i: &Info) {
|
||||||
|
g.add(&ActionRow::builder().title(i.request().unwrap()).build());
|
||||||
|
if let Some(ref r) = i.redirect {
|
||||||
|
chain(g, r)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
chain(&g, info);
|
||||||
|
g
|
||||||
|
});
|
||||||
|
p
|
||||||
|
}) // @TODO reverse, time total
|
||||||
}
|
}
|
||||||
if !info.event.is_empty() {
|
if !info.event.is_empty() {
|
||||||
d.add(&{
|
d.add(&{
|
||||||
@ -75,24 +86,22 @@ impl Dialog for PreferencesDialog {
|
|||||||
let e = &info.event[0];
|
let e = &info.event[0];
|
||||||
let t = e.time();
|
let t = e.time();
|
||||||
let n = e.name();
|
let n = e.name();
|
||||||
g.add(&{
|
g.add(
|
||||||
let r = ActionRow::builder()
|
&ActionRow::builder()
|
||||||
.subtitle(t.format_iso8601().unwrap())
|
.subtitle(t.format_iso8601().unwrap())
|
||||||
.title(n)
|
.title(n)
|
||||||
.build();
|
.build(),
|
||||||
r
|
);
|
||||||
});
|
|
||||||
for e in &info.event[1..] {
|
for e in &info.event[1..] {
|
||||||
g.add(&{
|
g.add(
|
||||||
let r = ActionRow::builder()
|
&ActionRow::builder()
|
||||||
.subtitle(gtk::glib::gformat!(
|
.subtitle(gtk::glib::gformat!(
|
||||||
"{} ms",
|
"{} ms",
|
||||||
e.time().difference(t).as_milliseconds()
|
e.time().difference(t).as_milliseconds()
|
||||||
))
|
))
|
||||||
.title(e.name())
|
.title(e.name())
|
||||||
.build();
|
.build(),
|
||||||
r
|
)
|
||||||
})
|
|
||||||
}
|
}
|
||||||
g
|
g
|
||||||
});
|
});
|
||||||
|
Loading…
x
Reference in New Issue
Block a user