adding visual for where pdf pages go in presentation editor
Some checks are pending
/ test (push) Waiting to run
Some checks are pending
/ test (push) Waiting to run
This commit is contained in:
parent
7512965608
commit
67a984a761
1 changed files with 29 additions and 6 deletions
|
|
@ -21,6 +21,7 @@ pub struct PresentationEditor {
|
||||||
pub presentation: Option<Presentation>,
|
pub presentation: Option<Presentation>,
|
||||||
document: Option<Document>,
|
document: Option<Document>,
|
||||||
current_slide: Option<Handle>,
|
current_slide: Option<Handle>,
|
||||||
|
slides: Option<Vec<Handle>>,
|
||||||
page_count: Option<i32>,
|
page_count: Option<i32>,
|
||||||
current_slide_index: Option<i32>,
|
current_slide_index: Option<i32>,
|
||||||
title: String,
|
title: String,
|
||||||
|
|
@ -56,6 +57,7 @@ impl PresentationEditor {
|
||||||
current_slide: None,
|
current_slide: None,
|
||||||
current_slide_index: None,
|
current_slide_index: None,
|
||||||
page_count: None,
|
page_count: None,
|
||||||
|
slides: None,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
pub fn update(&mut self, message: Message) -> Action {
|
pub fn update(&mut self, message: Message) -> Action {
|
||||||
|
|
@ -191,17 +193,38 @@ impl PresentationEditor {
|
||||||
} else {
|
} else {
|
||||||
container(Space::new(0, 0))
|
container(Space::new(0, 0))
|
||||||
};
|
};
|
||||||
|
let pdf_pages: Vec<Element<Message>> =
|
||||||
|
if let Some(pages) = &self.slides {
|
||||||
|
pages
|
||||||
|
.iter()
|
||||||
|
.map(|page| {
|
||||||
|
let image = widget::image(page)
|
||||||
|
.content_fit(ContentFit::ScaleDown);
|
||||||
|
container(image).into()
|
||||||
|
})
|
||||||
|
.collect()
|
||||||
|
} else {
|
||||||
|
vec![horizontal_space().into()]
|
||||||
|
};
|
||||||
|
let pages_column = container(
|
||||||
|
column(pdf_pages)
|
||||||
|
.spacing(theme::active().cosmic().space_xs())
|
||||||
|
.padding(theme::spacing().space_l),
|
||||||
|
)
|
||||||
|
.class(theme::Container::Card);
|
||||||
|
let main_row = row![
|
||||||
|
pages_column.width(Length::FillPortion(1)),
|
||||||
|
presentation.center(Length::FillPortion(2))
|
||||||
|
]
|
||||||
|
.spacing(theme::spacing().space_xxl);
|
||||||
let control_buttons = row![
|
let control_buttons = row![
|
||||||
button::standard("Previous Page")
|
button::standard("Previous Page")
|
||||||
.on_press(Message::PrevPage),
|
.on_press(Message::PrevPage),
|
||||||
horizontal_space(),
|
horizontal_space(),
|
||||||
button::standard("Next Page").on_press(Message::NextPage),
|
button::standard("Next Page").on_press(Message::NextPage),
|
||||||
];
|
];
|
||||||
let column = column![
|
let column =
|
||||||
self.toolbar(),
|
column![self.toolbar(), main_row, control_buttons]
|
||||||
presentation.center(Length::Fill),
|
|
||||||
control_buttons
|
|
||||||
]
|
|
||||||
.spacing(theme::active().cosmic().space_l());
|
.spacing(theme::active().cosmic().space_l());
|
||||||
column.into()
|
column.into()
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue