hook up popover button signals
This commit is contained in:
parent
1fa7b8243a
commit
36d317a3e3
3 changed files with 33 additions and 10 deletions
|
|
@ -158,13 +158,30 @@ impl GridItem {
|
|||
..set_child(Some(&popover_menu));
|
||||
};
|
||||
self.append(&popover);
|
||||
popover.connect_closed(glib::clone!(@weak self as self_ => move |_| {
|
||||
self_.emit_by_name::<()>("popover-closed", &[]);
|
||||
|
||||
popover.connect_closed(
|
||||
glib::clone!(@weak self as self_, @weak dialog_entry => move |_| {
|
||||
dialog_entry.set_text("");
|
||||
self_.emit_by_name::<()>("popover-closed", &[]);
|
||||
}),
|
||||
);
|
||||
ok_btn.connect_clicked(
|
||||
glib::clone!(@weak self as self_, @weak dialog_entry, @weak popover => move |_| {
|
||||
let new_name = dialog_entry.text().to_string();
|
||||
popover.popdown();
|
||||
glib::idle_add_local_once(glib::clone!(@weak self_ => move || {
|
||||
self_.emit_by_name::<()>("new-group", &[&new_name]);
|
||||
}));
|
||||
}),
|
||||
);
|
||||
cancel_btn.connect_clicked(glib::clone!(@weak popover => move |_| {
|
||||
popover.popdown();
|
||||
}));
|
||||
imp.popover.replace(Some(popover));
|
||||
if popover_active {
|
||||
self.popup();
|
||||
popover.popup();
|
||||
}
|
||||
|
||||
imp.popover.replace(Some(popover));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -198,9 +198,18 @@ impl GroupGrid {
|
|||
.connect_local("new-group", false, glib::clone!(@weak self_ => @default-return None, move |args| {
|
||||
let m = self_.group_model();
|
||||
match args[1].get::<String>() {
|
||||
Ok(_name) => {
|
||||
// m.items_changed(m.n_items() - 2, 0, 1);
|
||||
todo!();
|
||||
Ok(name) => {
|
||||
let new_group = AppGroup::new(BoxedAppGroupType::Group(AppGroupData {
|
||||
id: 0,
|
||||
name: name,
|
||||
icon: "folder".to_string(),
|
||||
mutable: false,
|
||||
app_names: Vec::new(),
|
||||
category: "".to_string(),
|
||||
})).upcast::<Object>();
|
||||
|
||||
m.insert(m.n_items() - 1, &new_group);
|
||||
self_.store_data();
|
||||
}
|
||||
_ => unimplemented!(),
|
||||
};
|
||||
|
|
|
|||
|
|
@ -163,10 +163,7 @@ impl AppLibraryWindow {
|
|||
let active_window = app
|
||||
.active_window()
|
||||
.expect("no active window available, closing app library.");
|
||||
dbg!(&active_window);
|
||||
dbg!(!inner.is_popup_active());
|
||||
if win == &active_window && !win.is_active() && !inner.is_popup_active() {
|
||||
dbg!(win);
|
||||
win.close();
|
||||
}
|
||||
}));
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue