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));
|
..set_child(Some(&popover_menu));
|
||||||
};
|
};
|
||||||
self.append(&popover);
|
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 {
|
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| {
|
.connect_local("new-group", false, glib::clone!(@weak self_ => @default-return None, move |args| {
|
||||||
let m = self_.group_model();
|
let m = self_.group_model();
|
||||||
match args[1].get::<String>() {
|
match args[1].get::<String>() {
|
||||||
Ok(_name) => {
|
Ok(name) => {
|
||||||
// m.items_changed(m.n_items() - 2, 0, 1);
|
let new_group = AppGroup::new(BoxedAppGroupType::Group(AppGroupData {
|
||||||
todo!();
|
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!(),
|
_ => unimplemented!(),
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -163,10 +163,7 @@ impl AppLibraryWindow {
|
||||||
let active_window = app
|
let active_window = app
|
||||||
.active_window()
|
.active_window()
|
||||||
.expect("no active window available, closing app library.");
|
.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() {
|
if win == &active_window && !win.is_active() && !inner.is_popup_active() {
|
||||||
dbg!(win);
|
|
||||||
win.close();
|
win.close();
|
||||||
}
|
}
|
||||||
}));
|
}));
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue