hook up popover button signals

This commit is contained in:
Ashley Wulber 2022-01-21 15:13:01 -05:00
parent 1fa7b8243a
commit 36d317a3e3
3 changed files with 33 additions and 10 deletions

View file

@ -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));
}
}
}

View file

@ -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!(),
};

View file

@ -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();
}
}));