Commit graph

788 commits

Author SHA1 Message Date
Chris Cochrun
43f8c92253 add image_model file and video_thumbnail
Neither of these are used yet, but it's time to start added the code
2023-04-03 14:57:23 -05:00
Chris Cochrun
cf48c86202 udpating cargo 2023-04-03 14:57:17 -05:00
Chris Cochrun
97b949a704 removing unused video_thumbnail code to be used later 2023-04-03 14:57:01 -05:00
Chris Cochrun
6f545c3bf8 removing unused tests and unused video_thumbnail mod 2023-04-03 14:56:44 -05:00
Chris Cochrun
b95c429ca7 remove unnecessary type 2023-04-03 10:37:47 -05:00
Chris Cochrun
71fb6f4aee fixing some rust environment issues for the shell
Updated a lot of things to include ffmpeg_6-full so that we can use
some of the latest ffmpeg features and include ffmpeg-next in our rust
project.

Then some of the environment pieces were missing for ffmpeg-next to build.
2023-04-03 10:36:30 -05:00
Chris Cochrun
89c270e6a0 fix pdfs not working with rust model right 2023-04-03 06:12:20 -05:00
Chris Cochrun
4296a205a8 making signal and slots use appropriate signals
This makes it so other DataChanged signals don't reset the view as was
happening before.
2023-04-01 07:20:46 -05:00
Chris Cochrun
d2f26e4cc0 reorder roles 2023-04-01 07:19:35 -05:00
Chris Cochrun
146b54239e remove commented code 2023-04-01 07:13:54 -05:00
Chris Cochrun
0b052bb463 simplify DataChanged signal in rust 2023-04-01 07:13:11 -05:00
Chris Cochrun
060341adb7 video_thumbnail works to be set in rust
Since every slide is asking for their own, we don't need to loop
through all slides, we just use the index to put the thumbnail into
the right slides and emit data changed.
2023-04-01 07:02:42 -05:00
Chris Cochrun
995f9ffc03 add video_thumbnail additional
The actual code to generate thumbnails is still in C++ but I've added
a helper method to Rust now. It still needs connected.
2023-04-01 06:52:02 -05:00
Chris Cochrun
6a15f9a652 remove old commented code 2023-04-01 06:51:42 -05:00
Chris Cochrun
0efccdfa54 fix insert_item_from_service 2023-04-01 06:51:07 -05:00
Chris Cochrun
6377182ab3 add enum Role
This will make it easier to ensure we are always using the appropriate
data type in the DataChanged signal since we won't need to hand pass
i32s around and instead define them once in the function get_role.
2023-03-31 15:21:28 -05:00
Chris Cochrun
0f0f16e069 fix activate
slide_model.rs activate function now properly tells of the data that
was changed so that ListViews that use it as a model will reset their
data properly on changes.

The important parts were to ensure we are using the right indexes for
top_left and bottom_right. Then also ensure the roles are correct, but
I think I had that already, just went with the implementation that
CXX-Qt used in their examples.
2023-03-31 14:47:44 -05:00
Chris Cochrun
bd2002ada2 ensure active is proper color
For some reason the right value isn't being loaded on dataChanged, so
this makes sure to reset the value correctly for now.
2023-03-31 14:10:17 -05:00
Chris Cochrun
0a9c17cdde add activate function properly
While the previous function technically worked, the connections
weren't setup properly. Also the row_count function wasn't running
because it requires a QModelIndex parameter. Added a simple count
function to make sure we know how many slides there are in QML.
2023-03-31 13:13:20 -05:00
Chris Cochrun
b8bfa4b108 adding a proper Cxx type for slides 2023-03-31 09:56:22 -05:00
Chris Cochrun
98233e040a add ffmepg 2023-03-31 09:56:13 -05:00
Chris Cochrun
9938241ebb use correct ids and models 2023-03-31 09:55:52 -05:00
Chris Cochrun
be988e9ade use correct index for SlideChanged signal 2023-03-31 09:55:24 -05:00
Chris Cochrun
df7e85957c use rust slide_model activate 2023-03-31 09:55:00 -05:00
Chris Cochrun
23bc1435ea remove old debug info 2023-03-31 09:54:47 -05:00
Chris Cochrun
609d2af90b idk attempt to add ffmpeg? 2023-03-30 15:31:43 -05:00
Chris Cochrun
469837ca8e add a bit of iter 2023-03-30 13:25:00 -05:00
Chris Cochrun
6f185e6f6e slide_model.rs functions like get_item and activate
These functions aren't perfect, but this code all makes them
essentially work so that we can call from QML
2023-03-30 09:33:51 -05:00
Chris Cochrun
7e8694eca2 mapping slide_model.rs to serviceItems better 2023-03-29 15:10:04 -05:00
Chris Cochrun
fc1eb193dd image_count > slide_count
This is a better name for this field as it encapsulates that the
slides are not just images
2023-03-29 14:29:29 -05:00
Chris Cochrun
b3de8dfabf remove my_object.rs
This was a testing file while figuring out rust in qt
2023-03-29 14:29:03 -05:00
Chris Cochrun
7180c02876 model adds slides more properly 2023-03-29 13:50:12 -05:00
Chris Cochrun
90c1825b10 a compiling and sorta working model
This model, built in Rust, works in that functions are getting called
and the right pieces are mapped into the model. I've yet to connect
things up to see if QML is talking to the model just yet.
2023-03-28 15:05:36 -05:00
Chris Cochrun
08507bfc0d adding build_debug to build.sh without params 2023-03-28 15:05:09 -05:00
Chris Cochrun
09e784537b update readme
I'm going to start adding info on CXX-QT to the readme in order for
others to know how Rust is used in the project
2023-03-28 09:45:27 -05:00
Chris Cochrun
236503e877 adjusting settings and slide_model.rs
These are trying to get more code written in Rust rather than c++. Not
there yet, but I need to sync these to another machine.
2023-03-28 06:15:11 -05:00
Chris Cochrun
ec95ba0d89 add slide_model.rs
This file will eventually be the model of slides to be used in the app.
2023-03-24 16:36:05 -05:00
Chris Cochrun
f17a88ff68 fix serviceList sometimes having overlapping items 2023-03-24 15:17:25 -05:00
Chris Cochrun
17082bcc67 fix slideModel not activating after slideChanged 2023-03-24 15:17:06 -05:00
Chris Cochrun
c02f9509ff debug info in slide_obj.rs 2023-03-24 15:16:47 -05:00
Chris Cochrun
0caadfc5c8 slide_obj.rs working
This commit finally has a working basic slide_obj implemented in Rust!
There are likely still some things that need to be tweaked and
massaged in order for things to translate back and forth from QML to
Rust.

The key was to make the old SlideObject written in C++ to act as a
bridge between QML and Rust. QML can't seem to understand CXX-QT's
QMap_QString_QVariant type as a QVariantMap and thus didn't translate
the Javascript object properly. Having the call first go into a C++
class translated it and then was trivial to pass into Rust.
2023-03-24 11:31:18 -05:00
Chris Cochrun
0936490bee attempt use slide_obj in qml
QML doesn't understand QMap_QString_QVariant yet.
2023-03-23 19:09:32 -05:00
Chris Cochrun
1fefe5dca3 basic slide_obj.rs
This very basic slide object implemented in rust will possibly suffice
as our first attempt at doing this in rust.
2023-03-23 16:55:04 -05:00
Chris Cochrun
2b5a699000 add next & previous fn
These functions allow us to change the slide to the next and previous slides
2023-03-23 15:58:20 -05:00
Chris Cochrun
b32d35c385 adding a slide_obj in rust
This object is still unfinished, but it will later serve as our main
object to connect to for the slides that are shown on screen. All of
this needed some heavy tweaking and I still need to learn more about
rust, but the beginnings are there and it will be worth it to have the
safety and speed that rust provides
2023-03-21 10:34:54 -05:00
Chris Cochrun
78e6a5c9ca attempts to decode the windowing system
I want to eventually get a more consistent way for windows to be
handled on wayland. But I can't figure out how to make it work on all compositors
2023-03-21 10:34:00 -05:00
Chris Cochrun
554dbc7d29 more versatile key handling
This allows us to later add and tweak the keyboard keys used to
navigate the slides and UI.
2023-03-21 10:33:15 -05:00
Chris Cochrun
175b327c5c refocus the presentation item
This command sets the keyboard focus to the presentation item which
controls when slides are changed. It ensures that after every action
you can use the arrow keys to switch the slides.
2023-03-20 11:38:07 -05:00
Chris Cochrun
310c71e18c removing podofo 2023-03-20 11:36:53 -05:00
Chris Cochrun
a39b492791 tweaking env 2023-03-20 11:36:32 -05:00