feat: implement zoom and dynamic crop presets - #27
Conversation
…l, and global persistence
|
Hi @FengZeng, as discussed, I have created separate feature branches for each feature. This PR contains the complete implementation for Crop & Zoom presets and persistence. Looking forward to your review! |
Hi, adityaonx, Thanks for the PR! I’ve redesigned the Video Settings UI a bit. To keep the player UI clean, I decided not to add a separate Crop & Zoom button. Instead, I merged Crop & Zoom into the existing Video Settings panel as a separate tab alongside Picture. I also kept the Global option in the Video Settings header, so the crop/zoom settings can still be applied globally or remembered per video. Soia’s design philosophy is simple but powerful, and I think this approach fits that philosophy better while preserving the functionality from your PR. Please take a look at the new UI and let me know what you think. If everything looks good to you, I’ll go ahead and merge the PR. |
|
Hi @FengZeng, Hiding it behind an extra layer adds an extra click for a core action. While bundling actions together makes complete sense for a phone app (where screen real estate is tight and bottom bars get easily cluttered), Soia on a larger screen has enough space to keep primary tools directly accessible. Given Soia's design philosophy of keeping things simple, I worry that hiding a frequent tool might trade visual minimalism for workflow friction. Would it be possible to keep a dedicated button for 'Crop & Zoom' on the bottom bar, and perhaps bundle a less frequently used feature instead? or we give choice onto the user to whether keep it with dedicated icon in bottom bar for crop-zoom or under video settings? What's your opinion on this? |
|
Thanks for the thoughtful UX feedback! I agree that the extra click is worth considering. One thing to keep in mind is that Soia is also intended to support mobile platforms, and I’ve already got Soia running on Android(https://www.reddit.com/r/Soia/comments/1uues22/finally_got_soia_running_on_android/). So for consistency across platforms, I’d still prefer to keep the UI as clean and minimal as possible rather than adding more dedicated buttons to the bottom bar. Also, since Picture and Crop & Zoom are both adjustments to the video, I feel that grouping them together under Video Settings makes sense conceptually and keeps the UI more consistent. That said, I do agree with your point about the extra UX action. One idea would be to make the Picture / Crop & Zoom tabs draggable, so users can choose which one is shown by default. This way, if someone frequently uses Crop & Zoom, they can set it as the default and still access it with a single click, while users who mostly use Picture adjustments can keep Picture as the default. I think this could give us a good balance between keeping the UI simple and minimizing workflow friction. |
|
Yes I agree, the draggable functionality seems best of both worlds here! Giving simplicity as well as way to ease of access to power users! |
|
@FengZeng, |


Summary of Changes
Auto,16:9,16:10,4:3,21:9,2.35:1) that fit the video into the target frame without pixel stretching or aspect distortion.0.50×to3.00×) with one-click reset to1.00×.Globaltoggle in the menu header allowing users to choose between per-video remembering and persistent global application across all media and app restarts.Verification
cargo check&vite build).