KActivities::WallpapersModel
By using the success story of Latte SlideShow plugin,
Plasma/Wallpapers will become responsible to feed the KActivities::WallpapersModel with data. So WallpapersModel will not be responsible to discover the wallpapers data like it is currently.
The model should provide the following structure:
[Activity1] [Screen1] - [WallpaperData] [Screen2] - [WallpaperData] [Activity2] [Screen1] - [WallpaperData] [Screen2] - [WallpaperData] . .
WallpaperData
type: wallpaper type
path [optional] : file path if there is any
properties [optional] : properties that each wallpaper type provides
Supported Wallpaper Types
type | path | properties | Comment |
image | <image_path> | ||
color | <colorname_string> | ||
video | <video_path> | <video_position>, <video_position_registration_timestamp> | the timestamp can be used from consumers to reposition the video playback properly |
qmlcode (?) | <qml_code_string> | full qml code string that can be used from consumers to recreate a qml code representation | |
WallpaperPreviewItem
It might be a good idea that KActivites provide also a WallpaperPreviewItem that can be used as delegate in ListView(s), GridView(s), Flow(s) etc... when they use the WallpapersModel.
WallpaperPreviewItem is going to be responsible to draw a proper QQuickItem based on the provided WallpaperData.
Use Case Example
- During startup WallpaperModel is completely empty
- Plasma::Wallpapers when loaded are exposing their wallpaper metadata to WallpapersModel
- WallpapersModel is signaling its changes
- WallpaperPreviewItem(s) are updating their visual presentation based on model changes