Commit graph

14 commits

Author SHA1 Message Date
Devin Lin
6af5d97595 folio: Ensure y anim signals don't get emitted if value didn't change
This ensures extraneous signals from being emitted when values don't
change in y animations. This fixes the vkbd in the search widget getting
in a weird stuck state due to multiple focuses on the search widget.
2025-06-28 11:04:11 -04:00
Micah Stanley
5fade2d5eb Folio: Search Widget View State Bugfix
Fixes a bug where if one swipes up from the app drawer and immediately swipes up again to the search widget, then lets the widget fully appear, then after that at any point swipes down to dismiss it, it will cause the swipe action to reveal the app drawer instead of the home screen. This was resolved by making sure when `closeAppDrawerAnim` is active, to only set the view state to `PageView` if the view state equals `AppDrawerView`. This prevents `closeAppDrawerAnim` from overwriting the `SearchWidgetView` state and making it seem to think we are still on the home screen when swiping down.

Here is a video of the bug in question.

![Screencast_20250424_225241__online-video-cutter.com_](/uploads/f5d03324850688028628ef8fc18f6c28/Screencast_20250424_225241__online-video-cutter.com_.mp4)
2025-04-25 12:39:05 +00:00
Micah Stanley
a452bc3030 Folio: Settings Component Bugfix
Fixes a bug where if one presses and holds the home screen to bring up the settings component, then swipes up to access the application drawer while the settings component open animation is playing, both the drawer and settings component will be visible on screen at the same time. Fixing this was achieved by setting swipe state back to none whenever the settings component is opening and a onSwipeMove event happens.

Video of the bug.

![Screencast_20250423_151033](/uploads/7f4f04617c42d5898322a8fa5ef306b8/Screencast_20250423_151033.webm)
2025-04-24 13:42:16 +00:00
Devin Lin
3550caa580 folio: Use smart pointers to manage delegate lifetimes
Currently delegates do not get deleted when removed from models. Due to
the complexity of drag state and other objects, we can't simply delete
the delegate when removed from the model because they might still be
involved in animations or other state at the time of removal. Use smart
pointers to have the delegate objects deleted instead.

QML unfortunately doesn't support QSharedPointer, so we need to expose raw pointers to it.
2025-02-21 18:06:24 +00:00
Micah Stanley
3a6a2f78da homescreen/folio: fix icon drop position misalignment within folder and outside folder view check not accounting for size differences
This fixes an issue with folder app icon drop positions being misaligned. Noticeably causing issues when placing apps within folders when using gesture only mode.
Also, this fixes an issue with the outsideView calculation not accounting for folder icon size differences. Causing an issues with some apps still being interactive when outside the current page.
2024-11-20 03:20:01 +00:00
Micah Stanley
f52bf0bd71 homescreens/folio: Homescreen folder page snapping position bugfix
This fixes an issue where if the device is rotated in a folder, the page would not snap immediately back to the right position, but would instead animate icon position changes.

To achieve this, the following changes were made.
- changes were made to how the folder gird size is calculated to prevent an issue with the grid size changing for a brief period of time during screen rotation, causing problems with snapping to the correct page.
- icons position animations are now done by a animated index value to prevent it from animating when the device rotates
- when the device screen size changes (ex: device rotation), it now snaps to the current folder page, as before it would just stay in between the two pages.
2024-11-09 19:04:24 +00:00
Micah Stanley
f5728e1a21 homescreens/folio: Homescreen page snapping position Bugfix
This fixes an issue where if the device is rotated on the 2nd or further page, the page would not snap immediately back to the right position, but would instead animate.
2024-11-07 05:12:47 +00:00
Devin Lin
57caf24504 homescreens/folio: Never open both search and app drawer
This ensures that the search widget and app drawer never simultaneously
both get opened.
2024-10-31 02:55:24 +00:00
Devin Lin
0ce95a604a homescreens/folio: Halve the needed swipe distance for swipe detection
SwipeArea requires 10px to differentiate between taps and swipes. HomeScreenState uses a further 10px to differentiate between vertical and horizontal swipes. This MR combines the swipe detection together so that we only need 10px rather than 20px for gesture detection.
2024-07-08 21:51:18 +00:00
Devin Lin
21ed42ee30 homescreens/folio: Port away from singletons to support multi-display
https://invent.kde.org/plasma/plasma-mobile/-/issues/316
2024-06-22 19:11:04 -04:00
Devin Lin
a049f07095 homescreens/folio: Allow app grid overshoot, and fix app drawer opening state 2023-11-05 09:13:37 -08:00
Devin Lin
4f48f127a4 homescreens/folio: Add widgets support 2023-11-04 22:18:52 -07:00
Devin Lin
f1aff0b13e homescreens/folio: Add import/export homescreen layout setting 2023-10-22 10:17:09 -07:00
Devin Lin
580afdfc9c folio: Rewrite
fix landscape favourites bar drag and drop, and cleanup folder

fix drawer scrolling

add settings
2023-10-22 04:08:28 +00:00