629f2ba9d0
Implement watched toggle for films in details modal
...
- Watched status is stored in the local database
- Gave details modals a set size
- Added a for now useless play button to film details modal
2026-01-24 18:25:59 +01:00
406a423478
Use more appropriate icon for series button in header bar
2026-01-22 23:23:18 +01:00
a1835be5fe
Indicate which films have been watched, log unknown database errors
...
Also use "is" instead of "=" in SQL statements where sensible.
2026-01-22 23:22:15 +01:00
4c2ad03a0e
Implement Clippy suggestions
...
They were actually sensible for once???
2026-01-22 15:59:51 +01:00
2c2afb4b33
Add comments about (Typed)GridView to media grids
2026-01-22 15:42:32 +01:00
313a492ee7
Introduce margin between grid item title(s) and details
2026-01-22 14:13:34 +01:00
5a615ad3a3
Centralise error handling in SQLite manager
2026-01-22 14:09:17 +01:00
8a8ea5fb94
Attach shared and local DBs to temporary main DB
...
We now have one connection to the temporary main DB instead of one for
each. The two actual databases are attached to it during initialization.
2026-01-22 12:02:51 +01:00
ec0b5ce757
Simplify CSS resource loading
2026-01-22 11:58:13 +01:00
5eb18e231f
Replace unwrap with expect in setting RELM_THREADS
2026-01-21 17:28:30 +01:00
2014c83224
Use multiple threads for Relm async tasks depending on system
2026-01-21 17:24:36 +01:00
5e5df5c401
Include CSS as GResource
...
Also use explicit namespace for bare functions and constants used in
main.rs.
2026-01-21 16:56:05 +01:00
ce19ba9226
Replace unwrap with expect in getting display for CSS loading
2026-01-21 13:31:42 +01:00
4d4b7eb1c7
Rewrite using Relm4
...
Yes, this is a monster commit but at this stage I'm the only one working
on this project anyway. Further commits will follow Best Practises™
again.
2026-01-21 13:25:57 +01:00
d25fdd0a32
Fix formatting in concat_os_str
2026-01-21 13:11:20 +01:00
56376569ae
Actually open local database in its client instead of shared one
2026-01-21 13:11:02 +01:00
df3c9cba8a
Further code style conformity
2026-01-08 23:08:52 +01:00
2982a13bc2
Use cargo fmt and conform to Style Guide (mostly)
2026-01-08 14:07:40 +01:00
1f1eac6369
Remove todo about async multithreading
...
Turns out there is no async code that would benefit from being executed
on e.g. a multithreaded Tokio executor. Image loading is already being
run on GIO's threadpool, and async-sqlite already has its own thread on
which the connection lives. We also cannot easily bypass the latter and
do Rusqlite connection IO on a Tokio threadpool because Rusqlite
connections are not Send. Overall the current implementation is already
pretty optimal given that we're not exactly dealing with thousands of
operations per second in this little app.
2026-01-02 21:48:51 +01:00
1101e96765
Use regular view macro where more appropriate
2026-01-02 13:59:28 +01:00
6446d43d76
Replace custom widget macros with Relm4 view macro based ones
...
Also move margin styling to the CSS file.
2026-01-02 13:41:27 +01:00
6df7530b33
Use px size instead of w+h reqs for poster images
...
The old method worked only by accident on older GTK4 versions.
2026-01-01 14:37:29 +01:00
96ea810ace
Add todo about async multithreading
2026-01-01 14:34:13 +01:00
0d841f95c4
Load posters by UUID from XDG data directory
2025-03-21 13:18:24 +01:00
08ede4ed82
Use XDG directory structure, introduce split DB format
2025-03-17 13:16:03 +01:00
4699e0de38
Use AsyncFn now that we're on Rust 2024
2025-02-21 16:28:52 +01:00
a758dd113c
Pass media tracks and subs file to Celluloid, improve modal spacing
2025-02-21 16:07:35 +01:00
a3040e6735
Introduce pinned_async macro
2025-02-18 18:31:05 +01:00
90594514bd
Encapsulate window and its operations in struct
2025-02-18 18:09:09 +01:00
8bea2088a0
DataManager :: get_film_details now handles optional source properly
2025-02-18 17:50:32 +01:00
20326fde8f
Film modal now obtains data from DataManager
2025-02-18 17:40:37 +01:00
8639e08ac5
Add leak_mut convenience function
2025-02-18 17:40:32 +01:00
6021fb5901
Implement getting film details from DataManager
2025-02-18 15:09:05 +01:00
462a644952
Show basic film properties in media modal
2025-02-18 13:42:53 +01:00
2c40217497
Include static lifetime in MediaAdapter trait, formatting
2025-02-12 14:32:16 +01:00
be92920cc5
Implement structure to open modal when clicking on media item
2025-02-12 14:11:53 +01:00
2ec2fda116
Improve error handling
2025-02-12 11:34:38 +01:00
e633000de5
Use futures crate to await collection rendering concurrently
2025-02-12 10:27:29 +01:00
85b0fc2f21
Switch to using ToolbarView
2025-02-11 15:01:25 +01:00
7127dd57c6
Derive defaults for sorting enums, remove ordering from films SQL query
2025-02-11 00:20:29 +01:00
c3e2bd0f69
Fully deduplicate shared logic between films and series
2025-02-10 23:56:48 +01:00
c3dfa5b459
Collection items are now clickable
2025-02-07 16:22:34 +01:00
a9ec7bdcc9
g_box UI macro can now take inline conditional children
2025-02-07 15:19:41 +01:00
cd45d4303b
Use label UI macro in collection item rendering
2025-02-07 13:54:44 +01:00
38adb5f4b9
Introduce image UI macro, require explicit borrowing in UI macros
2025-02-07 13:36:14 +01:00
86f9ee7672
Implement series first release date sorting
2025-02-07 01:46:51 +01:00
2803767ed8
Formatting
2025-02-05 14:57:07 +01:00
547a811acf
Make loading of poster images async
2025-02-05 13:51:22 +01:00
11dca1fab2
Use data manager name everywhere
2025-02-05 00:03:26 +01:00
7610b291a4
Replace single data model with data management struct and views
2025-02-04 23:46:51 +01:00