this post was submitted on 28 Jan 2024
32 points (94.4% liked)

Rust Programming

7734 readers
3 users here now

founded 5 years ago
MODERATORS
 

cross-posted from: https://lemmy.world/post/11271385

Basically, you can choose some slides from an opened .tex file to copy. It also has the function to see which graphics files are included in the selected files, so you know which ones to copy.

Here is the Github link: https://github.com/Atreyagaurav/beamer-quickie

The PDF pages are shown using the SyncTeX (if available) so that you can visually choose the slides as long as there is a single .tex source file, (might still work without synctex for simple cases).

I've made it on Linux, so it hasn't been tested in windows. You probably will need to compile gtk on Windows if you want to make it work. So if someone is really interested let me know, I can give instructions. Even in linux you'll need to install dependencies.

top 10 comments
sorted by: hot top controversial new old
[–] [email protected] 3 points 6 months ago (1 children)

That's pretty sick! I didn't even realize there were gtk bindings; I might have to use that for an app I'm wanting to build. Torn between that and Tauri

[–] [email protected] 2 points 6 months ago

Yeah, the bindings were a great help. I also tried tauri, iced, beavy, and a lot of libraries. At the end just using gtk4 seemed to be the best for my use case. I went through the grk4-rs book, and then started experimenting. I don't like GUI at all, but for simple cases it works well

[–] [email protected] 2 points 6 months ago (1 children)

nice job! Are the ui files designed with glade?

[–] [email protected] 2 points 6 months ago (1 children)

Glade doesn't work for gtk4. There's cambanche, but it didn't work as smoothly as glade. Originally I tried just using glade and converting to gtk4 for a bit, didn't work great as some classes were different.

So at the end I went with just looking at gtk4 docs and writing xml on the editor. It'd be problematic once in a while if I miss closing some tags, other than that it went well.

[–] [email protected] 2 points 6 months ago

thank you for your reply. Yes it was sadly known to me, but every time I see something done right in gtk I am rekindled in hope that they have put a patch on this totally inexplicable choice to abandon a designer that would allow you not to write xml by hand. I guess I'll have to make peace with that fact :) anyway, nice work you did!

[–] [email protected] 1 points 6 months ago (1 children)

If anyone here is familiar with making GUIs with rust using gtk4-rs, I'd appreciate some guidance. It's been a challenging road as I'm trying to learn GUI developement.

[–] [email protected] 3 points 6 months ago (1 children)

Not an answer to the question, but the 'ToshioCP' tutorials on gtk4 & gobject have been very helpful to me, to wrap my mind around the relevant concepts in C: https://github.com/ToshioCP/Gtk4-tutorial; https://github.com/ToshioCP/Gobject-tutorial — the gobject tutorial is probably even more helpful than the gtk4 tutorial, as it explains signal handling etc.

[–] [email protected] 2 points 6 months ago (1 children)

Thank you, I'll go over them. I think I got a little bit of the basics now. But I need a little advanced knowledge. And most tutorials seems to be for gtk3 and many widgets are now deprecated.

Originally my plan was to make each slide edited separately when you right click and do edit. And be able to drag them up and down and everything, but my skills were not enough. After trying to make that for a week I gave up and made this simpler version. So listview and treeview models from that tutorial could give me more info.

[–] [email protected] 2 points 6 months ago* (last edited 6 months ago) (1 children)

My experience is very limited, especially on GTK3; but I think GTK4 really streamlined listview/model operations, especially with the newly introduced GtkExpression, & the ability to bind GObject properties to expressions that the toolkit will figure out when to evaluate & plug in.

The following blog entries help establish the fundamental concepts pretty well, I think: https://blog.gtk.org/2020/06/07/scalable-lists-in-gtk-4/ https://blog.gtk.org/2020/06/08/more-on-lists-in-gtk-4/ https://blog.gtk.org/2020/09/08/on-list-models/ — but the crux of the matter really is GObject, & signalling; & ToshioCP's tutorial fills an important gap in the existing body of documentation.

Also, the Lists section on the Gtk4 Demo app is really helpful (e.g., the comments on the 'Clocks' example explain how to use GtkExpression really well: https://gitlab.gnome.org/GNOME/gtk/-/blob/main/demos/gtk-demo/listview_clocks.c?ref_type=heads#L2 ).

-- EDIT: Also, I think the new GJS 'GTK4 Book' does a good job explaining the new widgets & data structures -- so even if you aren't using the JS bindings, the code examples can be helpful: https://rmnvgr.gitlab.io/gtk4-gjs-book/application/list-widgets/ ; I never used GJS (just C, and pygobject); but the GJS book helped me quite a bit wrt the ListStore, and setting up DBus connectivity:

[–] [email protected] 2 points 6 months ago

Thank you. I've been using grk4-rs so I went over their examples and the book. Looking at the c examples might be good as well. And I'll learn about the GObjects. So far I've been winging it based on examples I see and the properties of different classes.