3.4 KiB
The Task list for Lumina
- Check into
mupdf-rs
for loading PDF's. - Text could be built by using SVG instead of the text element. Maybe I could construct my own text element even
- Make the presenter more modular so things are easier to change.
- Need to fix tests now that the basic app is working
- Build library to see all available songs, images, videos, presentations, and slides
- Build editors for each possible item
- Develop ui for settings
- Develop library system for slides that are more than images or video i.e. content
- Functions for text alignments
- Figure out why the Video element seems to have problems when moving the mouse around
- Find a way to load and discover every font on the system for slide building
- Use Rich Text instead of normal text for slides
- Find a way for text to pass through a service item to a slide i.e. content piece
- Change return type of all components to an Action enum instead of the Task<Message> type
[0%]
[0/0]
TODO
Check into mupdf-rs
for loading PDF's.
TODO [A] Text could be built by using SVG instead of the text element. Maybe I could construct my own text element even
This does almost work. There is a clear amount of lag or rather hang up since switching to the text_svg
element. I think I may only keep it till I can figure out how to do strokes and shadows in iced's normal text element.
Actually, what if we just made the svg at load/creation time and stored it in the file system for later, then load the entire songs svg's into memory during the presentation to speed things up? Would that be faster than creating them at on the fly? Is it the creation of them that is slow or the rendering?
SVG performs badly
Since SVG's apparently run poorly in iced, instead I'll need to see about either creating a new text element, or teaching Iced to render strokes and shadows on text.
TODO [C] Make the presenter more modular so things are easier to change.
TODO [A] Need to fix tests now that the basic app is working
TODO Build library to see all available songs, images, videos, presentations, and slides
DONE Develop ui for libraries
I've got the library basic layer done, I need to develop a way to open the libraries accordion button and then show the list of items in the library
TODO [A] Develop DnD for library items
This is limited by the fact that I need to develop this in cosmic. I am honestly thinking that I'll need to build my own drag and drop system or at least work with system76 to fix their dnd system on other systems.
TODO [B] Build editors for each possible item
TODO Develop ui for editors
TODO [B] Develop ui for settings
TODO [B] Develop library system for slides that are more than images or video i.e. content
TODO [B] Functions for text alignments
This will need to be matched on for the TextAlignment
from the user
TODO [C] Figure out why the Video element seems to have problems when moving the mouse around
TODO [B] Find a way to load and discover every font on the system for slide building
This may not be necessary since it is possible to create a font using Box::leak()
.
let font = self.current_slide.font().into_boxed_str();
let family = Family::Name(Box::leak(font));
let weight = Weight::Normal;
let stretch = Stretch::Normal;
let style = Style::Normal;
let font = Font {
family,
weight,
stretch,
style,
};
This code creates a font by leaking the Box to a 'static &str
. I just am not sure if the &str stays around in memory after the view function. If it does, then it's not on the stack anymore and should be fine, but if it isn't cleaned up then we will have a memory leak.
Krimzin on Discord told me that maybe the update
method is a better place for this Box to be created or updated and then maybe I could generate the view from there.
DONE Use Rich Text instead of normal text for slides
This will make it so that we can add styling to the text like borders and backgrounds or highlights. Maybe in the future it'll add shadows too.
DONE Find a way for text to pass through a service item to a slide i.e. content piece
This proved easier by just creating the Slide
first and inserting it into the ServiceItem
.