PresentWindow follows variables instead

This commit is contained in:
Chris Cochrun 2022-07-07 10:44:46 -05:00
parent a7c2c2487a
commit db70ac90f2
4 changed files with 36 additions and 33 deletions

View file

@ -4,24 +4,12 @@
:END: :END:
* Inbox * Inbox
** PROJ [#A] Make Presentation Window follow the presenter component :core:
[[file:~/dev/church-presenter/src/qml/presenter/MainWindow.qml::Presenter.Slide {]]
** TODO Need to make =getLyricList= give back the verses with empty lines as separate slides :core: ** TODO Need to make =getLyricList= give back the verses with empty lines as separate slides :core:
[[file:~/dev/church-presenter/src/songsqlmodel.cpp:://TODO make sure to split empty line in verse into two slides]] [[file:~/dev/church-presenter/src/songsqlmodel.cpp:://TODO make sure to split empty line in verse into two slides]]
** TODO nix-shell needs a little bit of work perhaps yet. But may be working under plasma just not minimal window managers using qt5ct.
https://discourse.nixos.org/t/developing-kirigami-applications/19947/17
This thread helped a lot
** TODO Make toolbar functional for =songeditor= [3/4] [75%] :core:
[[file:~/dev/church-presenter/src/qml/presenter/SongEditor.qml::Controls.ToolBar {]]
- [X] alignment
- [X] font - Need to finish the UI portion of it
- [X] 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 bug in changing slides with the arrows :core: ** TODO bug in changing slides with the arrows :core:
[[file:~/dev/church-presenter/src/qml/presenter/Presentation.qml::function changeSlide() {]] [[file:~/dev/church-presenter/src/qml/presenter/Presentation.qml::function changeSlide() {]]
@ -32,6 +20,15 @@ Maybe my best solution would be to architect a model or class for both the prese
** TODO Check for edge cases in inputing wrong vorder and lyrics :core: ** TODO Check for edge cases in inputing wrong vorder and lyrics :core:
[[file:~/dev/church-presenter/TODO.org::*Fix broken append when importing River song][Fix broken append when importing River song]] [[file:~/dev/church-presenter/TODO.org::*Fix broken append when importing River song][Fix broken append when importing River song]]
** TODO Fix possible bug in arrangingItems in draghandler [1/3] [33%] :bug:
[[file:~/dev/church-presenter/src/qml/presenter/DragHandle.qml::function arrangeItem() {]]
- [X] Basic fixed drag n drop
- [ ] Allow for a less buggy interaction
- [ ] Need to check for edge cases
** TODO Make toolbar functional for =songeditor= [3/4] [75%] :core:
[[file:~/dev/church-presenter/src/qml/presenter/SongEditor.qml::Controls.ToolBar {]]
** TODO Images stored in sql need to have aspect saved and applied dynamically here :core: ** TODO Images stored in sql need to have aspect saved and applied dynamically here :core:
[[file:~/dev/church-presenter/src/qml/presenter/Slide.qml::fillMode: Image.PreserveAspectCrop]] [[file:~/dev/church-presenter/src/qml/presenter/Slide.qml::fillMode: Image.PreserveAspectCrop]]
@ -43,16 +40,6 @@ Maybe my best solution would be to architect a model or class for both the prese
- [ ] Need to perhaps address the MPV crashing problem for a smoother experience. - [ ] 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. 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.
** TODO Fix possible bug in arrangingItems in draghandler [1/3] [33%] :bug:
[[file:~/dev/church-presenter/src/qml/presenter/DragHandle.qml::function arrangeItem() {]]
- [X] Basic fixed drag n drop
- [ ] Allow for a less buggy interaction
- [ ] Need to check for edge cases
** PROJ [#A] Make Presentation Window follow the presenter component :core:
[[file:~/dev/church-presenter/src/qml/presenter/MainWindow.qml::Presenter.Slide {]]
** TODO Finish toolbar in presentation display :ui: ** TODO Finish toolbar in presentation display :ui:
[[file:~/dev/church-presenter/src/qml/presenter/Presentation.qml::Controls.ToolBar {]] [[file:~/dev/church-presenter/src/qml/presenter/Presentation.qml::Controls.ToolBar {]]
@ -61,11 +48,6 @@ Maybe my best solution would be to architect a model or class for both the prese
This may not be as needed. Apparently the text shrinks to fit it's space. This may not be as needed. Apparently the text shrinks to fit it's space.
** TODO Create a nextslide function to be used after the end of the list of slides :slide:
[[file:~/dev/church-presenter/src/qml/presenter/Presentation.qml::function nextSlide() {]]
- [ ] Check to make sure this works in all conditions but I believe it works ok.
** TODO Make sure the video gets changed in a proper manner to not have left over video showing from previous items :video:slide: ** TODO Make sure the video gets changed in a proper manner to not have left over video showing from previous items :video:slide:
[[file:~/dev/church-presenter/src/qml/presenter/Presentation.qml::currentServiceItem++;]] [[file:~/dev/church-presenter/src/qml/presenter/Presentation.qml::currentServiceItem++;]]
@ -74,6 +56,24 @@ This may not be as needed. Apparently the text shrinks to fit it's space.
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. 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.
** TODO Create a nextslide function to be used after the end of the list of slides :slide:
[[file:~/dev/church-presenter/src/qml/presenter/Presentation.qml::function nextSlide() {]]
- [ ] Check to make sure this works in all conditions but I believe it works ok.
** WAIT nix-shell needs a little bit of work perhaps yet. But may be working under plasma just not minimal window managers using qt5ct.
https://discourse.nixos.org/t/developing-kirigami-applications/19947/17
This thread helped a lot
- [X] alignment
- [X] font - Need to finish the UI portion of it
- [X] 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.
** DONE images and videos need a better get system ** DONE images and videos need a better get system
[[file:~/dev/church-presenter/src/videosqlmodel.cpp::QVariantList VideoSqlModel::getVideo(const int &row) {]] [[file:~/dev/church-presenter/src/videosqlmodel.cpp::QVariantList VideoSqlModel::getVideo(const int &row) {]]

View file

@ -13,8 +13,9 @@ Controls.Page {
// properties passed around for the slides // properties passed around for the slides
property int currentServiceItem property int currentServiceItem
property url imageBackground: "" property url imageBackground: presentation.imageBackground
property url videoBackground: "" property url videoBackground: presentation.vidBackground
property string currentText: presentation.text
property int blurRadius: 0 property int blurRadius: 0
/* property var video */ /* property var video */
@ -187,6 +188,7 @@ Controls.Page {
imageEditor.visible = false; imageEditor.visible = false;
presentation.visible = true; presentation.visible = true;
editMode = false; editMode = false;
presenting = true;
} }
} }

View file

@ -26,7 +26,7 @@ Window {
anchors.fill: parent anchors.fill: parent
imageSource: imageBackground imageSource: imageBackground
videoSource: videoBackground videoSource: videoBackground
text: "" text: currentText
Component.onCompleted: slideItem = presentationSlide Component.onCompleted: slideItem = presentationSlide
} }

View file

@ -15,6 +15,7 @@
<file>qml/presenter/SlideEditor.qml</file> <file>qml/presenter/SlideEditor.qml</file>
<file>qml/presenter/DragHandle.qml</file> <file>qml/presenter/DragHandle.qml</file>
<file>qml/presenter/Presentation.qml</file> <file>qml/presenter/Presentation.qml</file>
<file>qml/presenter/PresentationWindow.qml</file>
<file>qml/presenter/Settings.qml</file> <file>qml/presenter/Settings.qml</file>
<file>assets/parallel.jpg</file> <file>assets/parallel.jpg</file>
<file>assets/black.jpg</file> <file>assets/black.jpg</file>