|
|
@ -1,16 +1,19 @@ |
|
|
|
use gtk::{ |
|
|
|
use gtk::{ |
|
|
|
|
|
|
|
gio::SimpleAction, |
|
|
|
glib::{GString, Uri, UriFlags}, |
|
|
|
glib::{GString, Uri, UriFlags}, |
|
|
|
prelude::{EditableExt, EntryExt, WidgetExt}, |
|
|
|
prelude::{ActionExt, EditableExt, EntryExt, WidgetExt}, |
|
|
|
Entry, |
|
|
|
Entry, |
|
|
|
}; |
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
use std::sync::Arc; |
|
|
|
|
|
|
|
|
|
|
|
pub struct Request { |
|
|
|
pub struct Request { |
|
|
|
widget: Entry, |
|
|
|
widget: Entry, |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
impl Request { |
|
|
|
impl Request { |
|
|
|
// Construct
|
|
|
|
// Construct
|
|
|
|
pub fn new(text: Option<GString>) -> Self { |
|
|
|
pub fn new(text: Option<GString>, action_update: Arc<SimpleAction>) -> Self { |
|
|
|
// GTK
|
|
|
|
// GTK
|
|
|
|
let widget = Entry::builder() |
|
|
|
let widget = Entry::builder() |
|
|
|
.placeholder_text("URL or search term...") |
|
|
|
.placeholder_text("URL or search term...") |
|
|
@ -24,15 +27,13 @@ impl Request { |
|
|
|
.build(); |
|
|
|
.build(); |
|
|
|
|
|
|
|
|
|
|
|
// Connect events
|
|
|
|
// Connect events
|
|
|
|
widget.connect_changed(|entry| { |
|
|
|
widget.connect_changed(move |_| { |
|
|
|
entry |
|
|
|
action_update.activate(None); |
|
|
|
.activate_action("win.update", None) |
|
|
|
|
|
|
|
.expect("Action `win.update` not found") |
|
|
|
|
|
|
|
}); |
|
|
|
}); |
|
|
|
|
|
|
|
|
|
|
|
widget.connect_activate(|entry| { |
|
|
|
widget.connect_activate(|entry| { |
|
|
|
entry |
|
|
|
entry |
|
|
|
.activate_action("win.tab_page_reload", None) |
|
|
|
.activate_action("win.tab_page_reload", None) // @TODO
|
|
|
|
.expect("Action `win.tab_page_reload` not found") |
|
|
|
.expect("Action `win.tab_page_reload` not found") |
|
|
|
}); |
|
|
|
}); |
|
|
|
|
|
|
|
|
|
|
|