sync
This commit is contained in:
parent
8a60c36240
commit
558bc68d81
@ -188,7 +188,9 @@ impl Component for AppModel {
|
|||||||
sender: ComponentSender<Self>,
|
sender: ComponentSender<Self>,
|
||||||
) -> ComponentParts<Self> {
|
) -> ComponentParts<Self> {
|
||||||
|
|
||||||
let layers = Rc::new(RefCell::new(Vec::with_capacity(20)));
|
let layers = Rc::new(RefCell::new(vec![
|
||||||
|
Layer::new(true, "Layer1".to_string(), AssoElement::Test),
|
||||||
|
]));
|
||||||
let control = ControlPanelModel::builder().launch(0).forward(
|
let control = ControlPanelModel::builder().launch(0).forward(
|
||||||
sender.input_sender(),
|
sender.input_sender(),
|
||||||
|msg| match msg {
|
|msg| match msg {
|
||||||
|
|||||||
@ -25,7 +25,8 @@ use super::{
|
|||||||
};
|
};
|
||||||
|
|
||||||
relm4::new_action_group!(LayerActionGroup, "layer");
|
relm4::new_action_group!(LayerActionGroup, "layer");
|
||||||
relm4::new_stateless_action!(ToTime, LayerActionGroup, "to_time");
|
// relm4::new_stateless_action!(ToTime, LayerActionGroup, "to_time");
|
||||||
|
relm4::new_stateful_action!(ToTime, LayerActionGroup, "to_time", u32, u32);
|
||||||
pub struct SideBarModel {
|
pub struct SideBarModel {
|
||||||
layers: Rc<RefCell<Vec<Layer>>>,
|
layers: Rc<RefCell<Vec<Layer>>>,
|
||||||
counter: u8,
|
counter: u8,
|
||||||
@ -132,13 +133,17 @@ impl SimpleComponent for SideBarModel {
|
|||||||
|
|
||||||
let mut bottom_bar_vec = FactoryVecDeque::new(gtk::Box::default(), sender.input_sender());
|
let mut bottom_bar_vec = FactoryVecDeque::new(gtk::Box::default(), sender.input_sender());
|
||||||
|
|
||||||
relm4::main_application().set_accelerators_for_action::<ToTime>(&["<primary>T"]);
|
let mut group = relm4::actions::RelmActionGroup::<LayerActionGroup>::new();
|
||||||
let action: RelmAction<ToTime> = {
|
let action: RelmAction<ToTime> = {
|
||||||
RelmAction::new_stateless(move |_| {
|
RelmAction::new_stateful_with_target_value(&0, |_, state, _value| {
|
||||||
sender.output(SideBarOutputMsg::SwitchToTimeSeries(0));
|
*state ^= 1;
|
||||||
|
dbg!(state);
|
||||||
})
|
})
|
||||||
};
|
};
|
||||||
|
|
||||||
|
group.add_action(action);
|
||||||
|
group.register_for_main_application();
|
||||||
|
|
||||||
{
|
{
|
||||||
let mut bottom_bar_vec_guard = bottom_bar_vec.guard();
|
let mut bottom_bar_vec_guard = bottom_bar_vec.guard();
|
||||||
bottom_bar_vec_guard.push_back(BottomBarModel::new("add-filled".to_string()));
|
bottom_bar_vec_guard.push_back(BottomBarModel::new("add-filled".to_string()));
|
||||||
@ -150,7 +155,7 @@ impl SimpleComponent for SideBarModel {
|
|||||||
meta_list_view.append_column::<TagColumn>();
|
meta_list_view.append_column::<TagColumn>();
|
||||||
meta_list_view.append_column::<InfoColumn>();
|
meta_list_view.append_column::<InfoColumn>();
|
||||||
|
|
||||||
let model = SideBarModel {
|
let mut model = SideBarModel {
|
||||||
meta_list_view,
|
meta_list_view,
|
||||||
layers: init,
|
layers: init,
|
||||||
counter: 0,
|
counter: 0,
|
||||||
@ -163,6 +168,16 @@ impl SimpleComponent for SideBarModel {
|
|||||||
let columns = model.meta_list_view.get_columns();
|
let columns = model.meta_list_view.get_columns();
|
||||||
let info_c = columns.get("info").unwrap();
|
let info_c = columns.get("info").unwrap();
|
||||||
let widgets = view_output!();
|
let widgets = view_output!();
|
||||||
|
{
|
||||||
|
let mut list = model
|
||||||
|
.layers
|
||||||
|
.borrow()
|
||||||
|
.iter()
|
||||||
|
.map(|v| LayerItem::new(v.name.clone(), v.visiable, v.get_thumbnail()))
|
||||||
|
.collect::<Vec<_>>();
|
||||||
|
model.list_view_wrapper.extend_from_iter(list);
|
||||||
|
}
|
||||||
|
|
||||||
ComponentParts { model, widgets }
|
ComponentParts { model, widgets }
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -222,7 +237,7 @@ impl RelmListItem for LayerItem {
|
|||||||
fn setup(_item: >k::ListItem) -> (gtk::Box, Widgets) {
|
fn setup(_item: >k::ListItem) -> (gtk::Box, Widgets) {
|
||||||
relm4::menu! {
|
relm4::menu! {
|
||||||
main_menu: {
|
main_menu: {
|
||||||
"Bind To Time" => ToTime
|
"Bind To Time" => ToTime(_item.position())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
relm4::view! {
|
relm4::view! {
|
||||||
|
|||||||
@ -28,6 +28,7 @@ pub type LayerImplSync = Arc<Mutex<Box<dyn LayerImpl + Send + Sync>>>;
|
|||||||
pub enum AssoElement {
|
pub enum AssoElement {
|
||||||
TimeSeries(Arc<Mutex<element::TimeSeriesElement>>),
|
TimeSeries(Arc<Mutex<element::TimeSeriesElement>>),
|
||||||
Instant(element::InstantElement),
|
Instant(element::InstantElement),
|
||||||
|
Test
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Clone)]
|
#[derive(Clone)]
|
||||||
@ -67,6 +68,7 @@ impl Layer {
|
|||||||
e.render(render);
|
e.render(render);
|
||||||
}
|
}
|
||||||
AssoElement::TimeSeries(ref e) => {}
|
AssoElement::TimeSeries(ref e) => {}
|
||||||
|
_ => {}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user