lumina/TODO.org
2023-01-03 07:25:20 -06:00

12 KiB

Todo List

Tasks [72%] [31/43]

TODO Start planning out what a 1.0 release would look like and decide how to get there   roadmap

A 1.0 release may be achievable soon as long as I can figure out what is good have in and what isn't. Then figure out what outstanding bugs and odd workflows exist and fix them. Then figure out deploying the package to various distros, windows, and mac.

TODO What is out

Some of the special effects and things that I wanted to do could perhaps hold off. A lot of the things that I want to do to help make this really special could hold off. Blur, Color Adjustments, and Shadows for backgrounds and text and stuff can hold off for now. More of the special propresenter kind of things.

Others:

  • Grid Layout
  • Detail Layout
  • Effects
  • Overall Search

TODO What is In

I need to make the UI fit so much better. A lot of making the UI work is going to start being top priority. So for starters.

Others:

  • Multi Select and Delete

    • Need to have the model give back all ids of the selected items so they can be manipulated
  • Multi Drag? Maybe…
  • Adding the ability to use Librepresenter in other wayland compositors - Need to address the QWindow problem.

TODO Major Bugs

  • Drag and Drop of ServiceList
  • UI Blocking when saving

TODO Deployment

  • Linux Need to figure out if I can use Nix to deploy in various fashions. Maybe I'll need to handcraft my own things for Arch, flatpak, and or snap.
  • Windows
  • Macos

TODO UI Blocks while saving   bug

TODO give images an aspect ratio option   feature

TODO Fix ImageEditor to make more sense for images   ui

TODO Add image slideshow with looping   feature

I could add this by adding a bool as a gallery option in the ImageSqlModel. Then add a loop bool as well. Then perhaps I'd ask if this image item contains a gallery and if so, make sure to loop through all of the filePaths as they could be saved as a list instead of a single filepath. Then decide on the last one whether or not to loop back to the beginning based on the loop bool in the image item.

TODO Add image gallery options   feature

TODO Add video repeat pieces   feature

TODO Make libraries and models aware of being selected.

This allows us to drag multiple to service list and delete multiple. final part to this is allowing for multiple select and multiple move in service list or library

WAIT Make toolbar functional for songeditor [3/4] [75%]   core

/chris/lumina/src/commit/8e576309733f4d7383f69c8fb56e738cb95d465a/~/dev/church-presenter/src/qml/presenter/SongEditor.qml::Controls.ToolBar%20%7B

  • alignment
  • font - Need to finish the UI portion of it
  • fontsize - Need to finish the UI portion of it
  • effects? For effects, I'm not 100% sure how to do this in an easy to build out way. Should I just do them the same as the other attributes or have effects be individually stored? Which effects to use? I'm thinking shadows for sure for readability on slides. Also, maybe I should have an effect of like glow? But maybe I'll come back to this after more of the core system is finished.

TODO Build out a slide preview system so we can see each slide in the song or image slideshow   ui

/chris/lumina/src/commit/8e576309733f4d7383f69c8fb56e738cb95d465a/~/dev/church-presenter/src/qml/presenter/SongEditor.qml::Presenter.SlideEditor%20%7B

  • Initial ListView with text coming from getLyricList
  • Depending on this Need to make getLyricList give back the verses with empty lines as separate slides
  • Need to perhaps address the MPV crashing problem for a smoother experience. Essentially, mpv objects cause a seg fault when we remove them from the qml graph scene and are somehow re-referencing them. Using reuseItems, I can prevent the seg fault but then we are storing a lot of things in memory and will definitely cause slowdowns on older hardware. So far I haven't seen too many problems with the reuseItems piece yet. Apparently, I still have crashing Setting a really high cacheBuffer in the ListView seems to have fixed the crashing, but will result in higher memory use. As of right now we are using 1.1Gb total, so I may think of a better solution later, but for now, that'll have to work.
  • There is also a small hiccup in switching between songs. I appears as if songs that don't have any slides will have ghost slides from the previously selected song.
  • Another issue I discovered was that when switching to a song with videoBackgrounds, the mpv object doesn't ALWAYS load the first frame of the slide. Can I let the video play a tiny bit longer to make sure frames ALWAYS get loaded? That didn't work.. Maybe I'll need to change something else but what?

WAIT nix-shell needs a little bit of work perhaps yet. But may be working under plasma just not minimal window managers using qt5ct.

DONE Library and ServiceList scrollbar is in the way   bug ui

DONE bug in dragging servicelist items to reorder. Maybe I can fix with me simplified model system   bug

I switched back to using Kirigami.dragHandler and properly implemented moveRows in the serviceItemModel

DONE Check for edge cases in inputing wrong vorder and lyrics   core

Fix broken append when importing River song

Let's test this, because I think I fixed it. still extra bits on last slide

DONE Fix possible bug in arrangingItems in draghandler [1/3] [33%]   bug

/chris/lumina/src/commit/8e576309733f4d7383f69c8fb56e738cb95d465a/~/dev/church-presenter/src/qml/presenter/DragHandle.qml::function%20arrangeItem%28%29%20%7B

  • Basic fixed drag n drop
  • Allow for a less buggy interaction I think one of the major problems has to do with moving the item while I am still draggin it. This means that I am then shifting the item's id whilst dragging and causing some unsuspected behavior? Not sure, need to maybe consult some one else if possible.
  • Need to check for edge cases

DONE Make serviceItemModel aware of being selected and active

Being selected means that those items can be dragged or deleted or moved together. Being active, means that the singular item is the currently displayed item.

DONE ServiceItemModel load needs to first look for on disk path and then the archive path

Check audio and background first, if they don't exist, grab the file in the archive and put it in the local folder and use that path to create the serviceitem

DONE Unload video when switching to something with just image   core bug

DONE Create a nextslide function to be used after the end of the list of slides   slide

DONE To finish the UX of which item is active, the Presentation needs to switch to the active slide in the preview system.

  • To make this work I think I'll need to make serviceitemmodel able to signal when a particular item is active and give it's index so the list can follow suit. nevermind, I can just check if it's active in the delegate.

DONE Images stored in sql need to have aspect saved and applied dynamically here   core

DONE Add ability to use arrow keys to move through slides   core feature

DONE Make sure the video gets changed in a proper manner to not have left over video showing from previous items   video slide

/chris/lumina/src/commit/8e576309733f4d7383f69c8fb56e738cb95d465a/~/dev/church-presenter/src/qml/presenter/Presentation.qml::currentServiceItem++;

  • Build a basic system that changes to black first and then switches to the video
  • Build out a loading system that will load the next video if it needs to and then the switch can be instant. The second option is the best, but requires a lot more work. I have the first already working so I'll come back to this once I have more of an idea of how to do it.

DONE Add an audio file to the song so that it will play when the song is presented   feature song

  • Add audio file to model
  • add ui for adding audio file
  • add extra mpv piece to slide to play audio file

DONE Make the hover effect of dragging items over the servicelist show in the correct spot at all times.

Believe I've fixed this

DONE add a dropping area in the library   feature ui

  • Basic droparea
  • Determine which library to add to based on extension.
  • Add a presentation model so that presentations can be added this way.

DONE Bug in mpv race condition with selecting with the presenter but not with the actual PresentationWindow.   bug

when selecting an item in the ServiceList, if the PresentationWindow isn't visible, it seems to prompt mpv to show a window of it's own with the video playing if the item contains a video.

DONE Find a way to maths the textsize   slide

DONE Fix bug in not removing old slides in the SongEditor when switching songs from the Library   bug

DONE bug in changing slides with the arrows   core

/chris/lumina/src/commit/8e576309733f4d7383f69c8fb56e738cb95d465a/~/dev/church-presenter/src/qml/presenter/Presentation.qml::function%20changeSlide%28%29%20%7B

slides are inconsistent in changing from one slide to the next or previous. Both functions need looked at.

Maybe my best solution would be to architect a model or class for both the presentation controller and the presentation window to follow and do all the heavy lifting in there.

Finished the arrows working through a proper c++ class

DONE Fix broken append when importing River song

/chris/lumina/src/commit/8e576309733f4d7383f69c8fb56e738cb95d465a/~/dev/church-presenter/src/qml/presenter/LeftDock.qml::function%20appendItem%28name,%20type,%20background,%20backgroundType,%20text,%20itemID%29%20%7B

This was due to the song not having a vorder. Need to protect from edge cases of the user inputing the formatted text that doesn't fit what's expected in code.

DONE Need to make ListModel capable of bringing in a string list [2/2] [100%]

  • Create a Model
  • Create a class that we'll make a list of in the model

DONE [A] Make Presentation Window follow the presenter component   core

/chris/lumina/src/commit/8e576309733f4d7383f69c8fb56e738cb95d465a/~/dev/church-presenter/src/qml/presenter/MainWindow.qml::Presenter.Slide%20%7B

Starting this by creating a slide singleton that will carry the variables for the current visible slide in the presentation.

May need to think about making this a slide class for all possible slides and a presentation singleton which carries the slide, but first I'll work out if this implementation works instead.

The left dock doesn't carry the change from the arrow buttons and the video on the actual presentation doesn't load.'

All pieces working now

DONE Parse Lyrics to create a list of strings for slides

SCHEDULED: <2022-03-23 Wed 10:00>

DONE BUG in dropping and then selecting song will duplicate entries   dev

SCHEDULED: <2022-04-05 Tue> /chris/lumina/src/commit/8e576309733f4d7383f69c8fb56e738cb95d465a/~/dev/church-presenter/src/qml/presenter/LeftDock.qml::Layout.fillHeight:%20true

or at least turns the entry above it into the same as itself while retaining it's title?