Use clone! macro in more cases
This commit is contained in:
parent
6edeb59b16
commit
cb0860cddf
@ -18,6 +18,7 @@
|
|||||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
use glib;
|
use glib;
|
||||||
|
use glib::clone;
|
||||||
use gtk;
|
use gtk;
|
||||||
use gtk::prelude::*;
|
use gtk::prelude::*;
|
||||||
|
|
||||||
@ -82,21 +83,17 @@ impl InAppNotification {
|
|||||||
let notif = InAppNotification::default();
|
let notif = InAppNotification::default();
|
||||||
notif.text.set_text(&text);
|
notif.text.set_text(&text);
|
||||||
|
|
||||||
let revealer_weak = notif.revealer.downgrade();
|
|
||||||
let mut time = 0;
|
let mut time = 0;
|
||||||
let id = timeout_add(250, move || {
|
let id = timeout_add(
|
||||||
if time < timer {
|
250,
|
||||||
time += 250;
|
clone!(@weak notif.revealer as revealer => @default-return glib::Continue(false), move || {
|
||||||
return glib::Continue(true);
|
if time < timer {
|
||||||
};
|
time += 250;
|
||||||
|
return glib::Continue(true);
|
||||||
let revealer = match revealer_weak.upgrade() {
|
};
|
||||||
Some(r) => r,
|
callback(revealer)
|
||||||
None => return glib::Continue(false),
|
}),
|
||||||
};
|
);
|
||||||
|
|
||||||
callback(revealer)
|
|
||||||
});
|
|
||||||
let id = Rc::new(RefCell::new(Some(id)));
|
let id = Rc::new(RefCell::new(Some(id)));
|
||||||
|
|
||||||
if undo_callback.is_some() {
|
if undo_callback.is_some() {
|
||||||
|
|||||||
@ -22,6 +22,8 @@ use failure::Error;
|
|||||||
|
|
||||||
use gtk::{self, prelude::*, Adjustment};
|
use gtk::{self, prelude::*, Adjustment};
|
||||||
|
|
||||||
|
use glib::clone;
|
||||||
|
|
||||||
use crossbeam_channel::Sender;
|
use crossbeam_channel::Sender;
|
||||||
use libhandy::{Column, ColumnExt};
|
use libhandy::{Column, ColumnExt};
|
||||||
use podcasts_data::dbqueries;
|
use podcasts_data::dbqueries;
|
||||||
@ -135,17 +137,11 @@ impl HomeView {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
let home_weak = Rc::downgrade(&home);
|
let callback = clone!(@weak home => move || {
|
||||||
let callback = move || {
|
|
||||||
let home = match home_weak.upgrade() {
|
|
||||||
Some(h) => h,
|
|
||||||
None => return,
|
|
||||||
};
|
|
||||||
|
|
||||||
if let Some(ref v) = vadj {
|
if let Some(ref v) = vadj {
|
||||||
home.view.set_adjustments(None, Some(v))
|
home.view.set_adjustments(None, Some(v))
|
||||||
};
|
};
|
||||||
};
|
});
|
||||||
|
|
||||||
lazy_load_full(episodes, func, callback);
|
lazy_load_full(episodes, func, callback);
|
||||||
home.view.container().show_all();
|
home.view.container().show_all();
|
||||||
|
|||||||
@ -17,6 +17,7 @@
|
|||||||
//
|
//
|
||||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
|
use glib::clone;
|
||||||
use gtk::{self, prelude::*, Adjustment, Align, SelectionMode};
|
use gtk::{self, prelude::*, Adjustment, Align, SelectionMode};
|
||||||
|
|
||||||
use crossbeam_channel::Sender;
|
use crossbeam_channel::Sender;
|
||||||
@ -83,16 +84,14 @@ impl ShowsView {
|
|||||||
fn populate_flowbox(shows: &Rc<ShowsView>, vadj: Option<Adjustment>) -> Result<(), Error> {
|
fn populate_flowbox(shows: &Rc<ShowsView>, vadj: Option<Adjustment>) -> Result<(), Error> {
|
||||||
let ignore = get_ignored_shows()?;
|
let ignore = get_ignored_shows()?;
|
||||||
let podcasts = dbqueries::get_podcasts_filter(&ignore)?;
|
let podcasts = dbqueries::get_podcasts_filter(&ignore)?;
|
||||||
let show_weak = Rc::downgrade(&shows);
|
|
||||||
let flowbox_weak = shows.flowbox.downgrade();
|
let flowbox_weak = shows.flowbox.downgrade();
|
||||||
|
|
||||||
let constructor = move |parent| ShowsChild::new(&parent).child;
|
let constructor = move |parent| ShowsChild::new(&parent).child;
|
||||||
let callback = move || {
|
let callback = clone!(@weak shows => move || {
|
||||||
match (show_weak.upgrade(), &vadj) {
|
if vadj.is_some() {
|
||||||
(Some(ref shows), Some(ref v)) => shows.view.set_adjustments(None, Some(v)),
|
shows.view.set_adjustments(None, vadj.as_ref())
|
||||||
_ => (),
|
}
|
||||||
};
|
});
|
||||||
};
|
|
||||||
|
|
||||||
lazy_load(podcasts, flowbox_weak, constructor, callback);
|
lazy_load(podcasts, flowbox_weak, constructor, callback);
|
||||||
Ok(())
|
Ok(())
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user