catsout / wallpaper-engine-kde-plugin

A kde wallpaper plugin integrating wallpaper engine
https://store.kde.org/p/1475528/
GNU General Public License v2.0
1.73k stars 73 forks source link

Randomize wallpapers failed #79

Closed linsyking closed 2 years ago

linsyking commented 2 years ago

Describe the bug The randomize option doesn't work.

Kde version

Additional context In main.qml:

function changeWallpaper(index) {
            if(this.model.count === 0) return;
            const model = this.model.get(index);
            wallpaper.configuration.WallpaperWorkShopId = model.workshopid;
            wallpaper.configuration.WallpaperFilePath = model.path + "/" + model.file;
            wallpaper.configuration.WallpaperType = model.type;
        }

I change it to

function changeWallpaper(index) {
            if(this.model.count === 0) {
                this.refresh();
                return;
            }
            const model = this.model.get(index);
            wallpaper.configuration.WallpaperWorkShopId = model.workshopid;
            wallpaper.configuration.WallpaperFilePath = model.path + "/" + model.file;
            wallpaper.configuration.WallpaperType = model.type;
        }

Then it works. Is this a bug? The model.count seems to be 0 in the original version.

linsyking commented 2 years ago

Another thing: In config.qml

Image {
                                id: imgPre
                                anchors.fill: parent
                                source: preview?path + "/" + preview:""
                                sourceSize.width: parent.width
                                sourceSize.height: parent.height
                                fillMode: Image.PreserveAspectCrop
                                cache: false
                                asynchronous: true
                                visible: Boolean(preview)
                            }

I think fillMode: Image.PreserveAspectCrop is better than fillMode: Image.Stretch

catsout commented 2 years ago

Fixed.

linsyking commented 2 years ago

thank you

linsyking commented 2 years ago

Fixed.

Sorry, I test your new commit, but it still doesn't work.

catsout commented 2 years ago

Install the main branch version
Disable the randomize option
Run kquitapp5 plasmashell && kstart5 plasmashell
Enable it and test again

linsyking commented 2 years ago

Install the main branch version Disable the randomize option Run kquitapp5 plasmashell && kstart5 plasmashell Enable it and test again

thx

linsyking commented 2 years ago

Install the main branch version Disable the randomize option Run kquitapp5 plasmashell && kstart5 plasmashell Enable it and test again

Sorry, it still doesn't work after i reboot. It seems i need to disable and enable the option every time i reboot.

catsout commented 2 years ago

I can't reproceduce, but I make some possible fix. Please try the new commit.

linsyking commented 2 years ago

I can't reproceduce, but I make some possible fix. Please try the new commit.

Not working... The timer works, but

function changeWallpaper(index) {
            //Here this.model.count==0
            if(this.model.count === 0) return;
            const model = this.model.get(index);
            wallpaper.configuration.WallpaperWorkShopId = model.workshopid;
            wallpaper.configuration.WallpaperFilePath = model.path + "/" + model.file;
            wallpaper.configuration.WallpaperType = model.type;
        }

it seems it hasn't scanned...

catsout commented 2 years ago

Enable randomize
Run kquitapp5 plasmashell && kstart5 plasmashell &> plasma.log
Put the log here

linsyking commented 2 years ago

Enable randomize Run kquitapp5 plasmashell && kstart5 plasmashell &> plasma.log Put the log here

Omitting both --window and --windowclass arguments is not recommended
kf.plasma.quick: Applet preload policy set to 1
trying to show an empty dialog
file:///usr/share/plasma/plasmoids/org.kde.plasma.notes/contents/ui/main.qml:150:13: QML TextArea: Binding loop detected for property "implicitWidth"
file:///usr/share/plasma/plasmoids/org.kde.plasma.systemmonitor/contents/ui/main.qml:56:5: QML MouseArea: Cannot anchor to an item that isn't a parent or sibling.
file:///usr/share/plasma/plasmoids/org.kde.plasma.systemmonitor/contents/ui/main.qml:54: TypeError: Cannot read property 'length' of undefined
qml: load backend: backend/Mpv.qml
Setting property "volume" to QVariant(int, 0)
Setting property "mute" to QVariant(bool, false)
Setting property "keepaspect" to QVariant(bool, true)
Setting property "panscan" to QVariant(int, 0)
kf.kio.core: Malformed JSON protocol file for protocol: "trash" , number of the ExtraNames fields should match the number of ExtraTypes fields
kf.kirigami: Units.devicePixelRatio is deprecated (since 5.86 ): This returns 1 when using Qt HiDPI scaling.
file:///usr/share/ksysguard/sensorfaces/org.kde.ksysguard.piechart/contents/ui/FullRepresentation.qml:34:1: QML FullRepresentation: Binding loop detected for property "implicitHeight"
trying to show an empty dialog
file:///usr/share/plasma/shells/org.kde.plasma.desktop/contents/views/Desktop.qml:146:19: QML Loader: Binding loop detected for property "height"
file:///usr/share/plasma/shells/org.kde.plasma.desktop/contents/views/Desktop.qml:146:19: QML Loader: Binding loop detected for property "height"
qt.core.qabstractitemmodel.checkindex: Index QModelIndex(-1,-1,0x0,QObject(0x0)) is not valid (expected valid)
qt.core.qabstractitemmodel.checkindex: Index QModelIndex(-1,-1,0x0,QObject(0x0)) is not valid (expected valid)
qml: scan folder: file:///run/media/linsy/Data/SteamLibrary/steamapps/common/wallpaper_engine/projects/myprojects, found 0 subdir
qml: scan folder: file:///run/media/linsy/Data/SteamLibrary/steamapps/common/wallpaper_engine/projects/defaultprojects, found 20 subdir
qml: show the first: file:///run/media/linsy/Data/SteamLibrary/steamapps/common/wallpaper_engine/projects/defaultprojects/arsenal
qml: scan folder: file:///run/media/linsy/Data/SteamLibrary/steamapps/workshop/content/431960, found 22 subdir
qml: show the first: file:///run/media/linsy/Data/SteamLibrary/steamapps/workshop/content/431960/1139304621
Plasma Shell startup completed
qt.core.qabstractitemmodel.checkindex: Index QModelIndex(-1,-1,0x0,QObject(0x0)) is not valid (expected valid)
Setting property "mute" to QVariant(bool, false)
file:///usr/share/plasma/plasmoids/org.kde.plasma.notes/contents/ui/main.qml:202:17: QML Binding: Not restoring previous value because restoreMode has not been set.
This behavior is deprecated.
You have to import QtQml 2.15 after any QtQuick imports and set
the restoreMode of the binding to fix this warning.
In Qt < 6.0 the default is Binding.RestoreBinding.
In Qt >= 6.0 the default is Binding.RestoreBindingOrValue.

Error: cannot change the containment to AppletsLayout
QProcess: Destroyed while process ("/bin/sh") is still running.
qt.core.qabstractitemmodel.checkindex: Index QModelIndex(-1,-1,0x0,QObject(0x0)) is not valid (expected valid)
file:///usr/share/plasma/plasmoids/org.kde.plasma.panelspacer/contents/ui/main.qml:53:5: Unable to assign [undefined] to QQuickGridLayout*
Loading Calendar plugin HolidaysEventsPlugin(0x555e65f7faf0)
trying to show an empty dialog
file:///usr/share/plasma/plasmoids/org.kde.panel/contents/ui/main.qml:30:1: QML DropArea (parent or ancestor of QQuickLayoutAttached): Binding loop detected for property "minimumWidth"
trying to show an empty dialog
Setting property "mute" to QVariant(bool, false)
file:///usr/share/plasma/plasmoids/org.kde.plasma.notes/contents/ui/main.qml:202:17: QML Binding: Not restoring previous value because restoreMode has not been set.
This behavior is deprecated.
You have to import QtQml 2.15 after any QtQuick imports and set
the restoreMode of the binding to fix this warning.
In Qt < 6.0 the default is Binding.RestoreBinding.
In Qt >= 6.0 the default is Binding.RestoreBindingOrValue.

Error: cannot change the containment to AppletsLayout
Both point size and pixel size set. Using pixel size.
file:///usr/share/plasma/plasmoids/org.kde.plasma.digitalclock/contents/ui/Tooltip.qml:66:9: QML GridLayout (parent or ancestor of QQuickLayoutAttached): Binding loop detected for property "minimumWidth"
libkcups: CUPS-Get-Printers last error: 1030 未添加目标。
libkcups: Create-Printer-Subscriptions last error: 0 successful-ok
libkcups: Get-Jobs last error: 0 successful-ok
libkcups: Get-Jobs last error: 0 successful-ok
Cyclic dependency detected between "file:///usr/share/plasma/plasmoids/org.kde.plasma.notifications/contents/ui/global/Globals.qml" and "file:///usr/share/plasma/plasmoids/org.kde.plasma.notifications/contents/ui/NotificationHeader.qml"
qml: filtered, filter: 11111111011111111111111111111111111, from 0 to 0
libkcups: 0
libkcups: 0
Setting property "mute" to QVariant(bool, false)
qml: SystemTray ItemLoader: Invalid state, cannot determine source!
file:///usr/share/plasma/plasmoids/org.kde.plasma.private.systemtray/contents/ui/main.qml:30:1: QML MouseArea (parent or ancestor of QQuickLayoutAttached): Binding loop detected for property "minimumWidth"
file:///usr/share/plasma/plasmoids/org.kde.plasma.notes/contents/ui/main.qml:202:17: QML Binding: Not restoring previous value because restoreMode has not been set.
This behavior is deprecated.
You have to import QtQml 2.15 after any QtQuick imports and set
the restoreMode of the binding to fix this warning.
In Qt < 6.0 the default is Binding.RestoreBinding.
In Qt >= 6.0 the default is Binding.RestoreBindingOrValue.

Error: cannot change the containment to AppletsLayout
Both point size and pixel size set. Using pixel size.
trying to show an empty dialog
file:///usr/share/plasma/shells/org.kde.plasma.desktop/contents/views/Desktop.qml:146:19: QML Loader: Binding loop detected for property "height"
file:///usr/share/plasma/shells/org.kde.plasma.desktop/contents/views/Desktop.qml:146:19: QML Loader: Binding loop detected for property "height"
QFont::setPointSizeF: Point size <= 0 (0.000000), must be greater than 0
Setting property "pause" to QVariant(bool, true)
Setting property "pause" to QVariant(bool, false)
qml: time out
qml: time out
qml: time out
qml: time out
qml: time out
qml: time out
qml: time out
qml: time out
qml: time out
qml: time out
qml: time out
qml: time out
qml: time out
qml: time out
qml: time out
qml: time out
qml: time out
qml: time out
qml: time out
qml: time out
qml: time out
qml: time out
qml: time out
qml: time out
qml: time out
qml: time out
qml: time out
qml: time out
qml: time out
qml: time out
qml: time out
qml: time out
qml: time out
qml: time out
qml: time out
qml: time out
qml: time out
qml: time out
qml: time out
qml: time out
qml: time out
qml: time out
qml: filtered, filter: 11111111011111111111111111111111111, from 42 to 0
qml: filtered, filter: 11111111011111111111111111111111111, from 42 to 0
Setting property "volume" to QVariant(int, 5)
Setting property "volume" to QVariant(int, 10)
Setting property "volume" to QVariant(int, 15)
Setting property "volume" to QVariant(int, 20)
Setting property "volume" to QVariant(int, 25)
Setting property "volume" to QVariant(int, 30)
Setting property "volume" to QVariant(int, 35)
Setting property "volume" to QVariant(int, 40)
Setting property "volume" to QVariant(int, 45)
catsout commented 2 years ago

Could you give the screenshot of about page?

linsyking commented 2 years ago

Could you give the screenshot of about page?

image

catsout commented 2 years ago

Please try kquitapp5 plasmashell && kstart5 plasmashell &> plasma.log with new commit again
I add some debug info to figure out what happened

linsyking commented 2 years ago

Please try kquitapp5 plasmashell && kstart5 plasmashell &> plasma.log with new commit again I add some debug info to figure out what happened

Omitting both --window and --windowclass arguments is not recommended
kf.plasma.quick: Applet preload policy set to 1
trying to show an empty dialog
file:///usr/share/plasma/plasmoids/org.kde.plasma.notes/contents/ui/main.qml:150:13: QML TextArea: Binding loop detected for property "implicitWidth"
file:///usr/share/plasma/plasmoids/org.kde.plasma.systemmonitor/contents/ui/main.qml:56:5: QML MouseArea: Cannot anchor to an item that isn't a parent or sibling.
file:///usr/share/plasma/plasmoids/org.kde.plasma.systemmonitor/contents/ui/main.qml:54: TypeError: Cannot read property 'length' of undefined
qml: load backend: backend/Mpv.qml
Setting property "volume" to QVariant(int, 0)
Setting property "mute" to QVariant(bool, false)
Setting property "keepaspect" to QVariant(bool, true)
Setting property "panscan" to QVariant(int, 0)
kf.kio.core: Malformed JSON protocol file for protocol: "trash" , number of the ExtraNames fields should match the number of ExtraTypes fields
kf.kirigami: Units.devicePixelRatio is deprecated (since 5.86 ): This returns 1 when using Qt HiDPI scaling.
file:///usr/share/ksysguard/sensorfaces/org.kde.ksysguard.piechart/contents/ui/FullRepresentation.qml:34:1: QML FullRepresentation: Binding loop detected for property "implicitHeight"
trying to show an empty dialog
file:///usr/share/plasma/shells/org.kde.plasma.desktop/contents/views/Desktop.qml:146:19: QML Loader: Binding loop detected for property "height"
file:///usr/share/plasma/shells/org.kde.plasma.desktop/contents/views/Desktop.qml:146:19: QML Loader: Binding loop detected for property "height"
qt.core.qabstractitemmodel.checkindex: Index QModelIndex(-1,-1,0x0,QObject(0x0)) is not valid (expected valid)
qt.core.qabstractitemmodel.checkindex: Index QModelIndex(-1,-1,0x0,QObject(0x0)) is not valid (expected valid)
qml: scan folder: file:///run/media/linsy/Data/SteamLibrary/steamapps/common/wallpaper_engine/projects/myprojects, found 0 subdir
qml: scan folder: file:///run/media/linsy/Data/SteamLibrary/steamapps/workshop/content/431960, found 22 subdir
qml: show the first: file:///run/media/linsy/Data/SteamLibrary/steamapps/workshop/content/431960/1139304621
qml: scan folder: file:///run/media/linsy/Data/SteamLibrary/steamapps/common/wallpaper_engine/projects/defaultprojects, found 20 subdir
qml: show the first: file:///run/media/linsy/Data/SteamLibrary/steamapps/common/wallpaper_engine/projects/defaultprojects/arsenal
Plasma Shell startup completed
file:///usr/share/plasma/plasmoids/org.kde.plasma.panelspacer/contents/ui/main.qml:53:5: Unable to assign [undefined] to QQuickGridLayout*
Loading Calendar plugin HolidaysEventsPlugin(0x55d995785d20)
trying to show an empty dialog
file:///usr/share/plasma/plasmoids/org.kde.panel/contents/ui/main.qml:30:1: QML DropArea (parent or ancestor of QQuickLayoutAttached): Binding loop detected for property "minimumWidth"
trying to show an empty dialog
qt.core.qabstractitemmodel.checkindex: Index QModelIndex(-1,-1,0x0,QObject(0x0)) is not valid (expected valid)
Setting property "mute" to QVariant(bool, false)
file:///usr/share/plasma/plasmoids/org.kde.plasma.notes/contents/ui/main.qml:202:17: QML Binding: Not restoring previous value because restoreMode has not been set.
This behavior is deprecated.
You have to import QtQml 2.15 after any QtQuick imports and set
the restoreMode of the binding to fix this warning.
In Qt < 6.0 the default is Binding.RestoreBinding.
In Qt >= 6.0 the default is Binding.RestoreBindingOrValue.

Error: cannot change the containment to AppletsLayout
Both point size and pixel size set. Using pixel size.
file:///usr/share/plasma/plasmoids/org.kde.plasma.digitalclock/contents/ui/Tooltip.qml:66:9: QML GridLayout (parent or ancestor of QQuickLayoutAttached): Binding loop detected for property "minimumWidth"
qt.core.qabstractitemmodel.checkindex: Index QModelIndex(-1,-1,0x0,QObject(0x0)) is not valid (expected valid)
qt.core.qabstractitemmodel.checkindex: Index QModelIndex(-1,-1,0x0,QObject(0x0)) is not valid (expected valid)
QProcess: Destroyed while process ("/bin/sh") is still running.
Setting property "mute" to QVariant(bool, false)
file:///usr/share/plasma/plasmoids/org.kde.plasma.notes/contents/ui/main.qml:202:17: QML Binding: Not restoring previous value because restoreMode has not been set.
This behavior is deprecated.
You have to import QtQml 2.15 after any QtQuick imports and set
the restoreMode of the binding to fix this warning.
In Qt < 6.0 the default is Binding.RestoreBinding.
In Qt >= 6.0 the default is Binding.RestoreBindingOrValue.

Error: cannot change the containment to AppletsLayout
Both point size and pixel size set. Using pixel size.
libkcups: CUPS-Get-Printers last error: 1030 未添加目标。
libkcups: Create-Printer-Subscriptions last error: 0 successful-ok
libkcups: Get-Jobs last error: 0 successful-ok
libkcups: Get-Jobs last error: 0 successful-ok
Cyclic dependency detected between "file:///usr/share/plasma/plasmoids/org.kde.plasma.notifications/contents/ui/global/Globals.qml" and "file:///usr/share/plasma/plasmoids/org.kde.plasma.notifications/contents/ui/NotificationHeader.qml"
qml: ----python helper connected----
libkcups: 0
libkcups: 0
kf.kirigami: Units.devicePixelRatio is deprecated (since 5.86 ): This returns 1 when using Qt HiDPI scaling.
kf.kirigami: Previous message repeats 11 times.
Setting property "mute" to QVariant(bool, false)
qml: SystemTray ItemLoader: Invalid state, cannot determine source!
file:///usr/share/plasma/plasmoids/org.kde.plasma.private.systemtray/contents/ui/main.qml:30:1: QML MouseArea (parent or ancestor of QQuickLayoutAttached): Binding loop detected for property "minimumWidth"
file:///usr/share/plasma/plasmoids/org.kde.plasma.notes/contents/ui/main.qml:202:17: QML Binding: Not restoring previous value because restoreMode has not been set.
This behavior is deprecated.
You have to import QtQml 2.15 after any QtQuick imports and set
the restoreMode of the binding to fix this warning.
In Qt < 6.0 the default is Binding.RestoreBinding.
In Qt >= 6.0 the default is Binding.RestoreBindingOrValue.

Error: cannot change the containment to AppletsLayout
Both point size and pixel size set. Using pixel size.
trying to show an empty dialog
file:///usr/share/plasma/shells/org.kde.plasma.desktop/contents/views/Desktop.qml:146:19: QML Loader: Binding loop detected for property "height"
file:///usr/share/plasma/shells/org.kde.plasma.desktop/contents/views/Desktop.qml:146:19: QML Loader: Binding loop detected for property "height"
QFont::setPointSizeF: Point size <= 0 (0.000000), must be greater than 0
qml: filtered, filter: 11111111011111111111111111111111111, from 0 to 0
qml: received timeout result, id: 0
qml: received timeout result, id: 1
qml: received timeout result, id: 2
qml: received timeout result, id: 3
qml: received timeout result, id: 4
qml: received timeout result, id: 5
qml: received timeout result, id: 6
qml: received timeout result, id: 7
qml: received timeout result, id: 8
qml: received timeout result, id: 9
qml: received timeout result, id: 10
qml: received timeout result, id: 11
qml: received timeout result, id: 12
qml: received timeout result, id: 13
qml: received timeout result, id: 14
qml: received timeout result, id: 15
qml: received timeout result, id: 16
qml: received timeout result, id: 17
qml: received timeout result, id: 18
qml: received timeout result, id: 19
qml: received timeout result, id: 20
qml: received timeout result, id: 21
qml: received timeout result, id: 22
qml: received timeout result, id: 23
qml: received timeout result, id: 24
qml: received timeout result, id: 25
qml: received timeout result, id: 26
qml: received timeout result, id: 27
qml: received timeout result, id: 28
qml: received timeout result, id: 29
qml: received timeout result, id: 30
qml: received timeout result, id: 31
qml: received timeout result, id: 32
qml: received timeout result, id: 33
qml: received timeout result, id: 34
qml: received timeout result, id: 35
qml: received timeout result, id: 36
qml: received timeout result, id: 37
qml: received timeout result, id: 38
qml: received timeout result, id: 39
qml: received timeout result, id: 40
qml: received timeout result, id: 41
Setting property "pause" to QVariant(bool, true)
Setting property "pause" to QVariant(bool, false)
qml: time out
qml: time out
qml: time out
qml: time out
qml: time out
qml: time out
qml: time out
qml: time out
qml: time out
qml: time out
qml: time out
qml: time out
qml: time out
qml: time out
qml: time out
qml: time out
qml: time out
qml: time out
qml: time out
qml: time out
qml: time out
qml: time out
qml: time out
qml: time out
qml: time out
qml: time out
qml: time out
qml: time out
qml: time out
qml: time out
qml: time out
qml: time out
qml: time out
qml: time out
qml: time out
qml: time out
qml: time out
qml: time out
qml: time out
qml: time out
qml: time out
qml: time out
qml: filtered, filter: 11111111011111111111111111111111111, from 42 to 0
qml: filtered, filter: 11111111011111111111111111111111111, from 42 to 0
Setting property "volume" to QVariant(int, 5)
Setting property "volume" to QVariant(int, 10)
Setting property "volume" to QVariant(int, 15)
Setting property "volume" to QVariant(int, 20)
Setting property "volume" to QVariant(int, 25)
Setting property "volume" to QVariant(int, 30)
Setting property "volume" to QVariant(int, 35)
Setting property "volume" to QVariant(int, 40)
Setting property "volume" to QVariant(int, 45)
catsout commented 2 years ago

It's pretty strange that the same code not working in main.qml but in config.qml
And I can't reproceduce
I try to fix it in the new commit, I hope that it works for you
If it does not work, just modified the code yourself and open a pr, if you find the way to solve this problem

linsyking commented 2 years ago

It's pretty strange that the same code not working in main.qml but in config.qml And I can't reproceduce I try to fix it in the new commit, I hope that it works for you If it does not work, just modified the code yourself and open a pr, if you find the way to solve this problem

thank you, but it still doesn't work for me...