Bug 425349

Summary: QML error in Breeze SDDM theme reported by sddm-greeter
Product: [Plasma] plasmashell Reporter: Aurélien Oudelet (auroud85_fr) <aoudelet>
Component: Theme - BreezeAssignee: Nate Graham <nate>
Status: RESOLVED FIXED    
Severity: normal CC: nate, plasma-bugs
Priority: NOR    
Version: 5.19.4   
Target Milestone: 1.0   
Platform: Mageia RPMs   
OS: Linux   
Latest Commit: Version Fixed In: 5.20
Sentry Crash Report:
Bug Depends on:    
Bug Blocks: 430857    

Description Aurélien Oudelet (auroud85_fr) 2020-08-14 16:07:39 UTC
SUMMARY
sddm-greeter complains about Breeze Login theme. Here is output from journal:

sddm-greeter[2075]: Loading file:///usr/share/sddm/themes/breeze/Main.qml...
sddm-greeter[2075]: QObject: Cannot create children for a parent that is in a different thread.
                   (Parent is QGuiApplication(0x7ffec7657f50), parent's thread is QThread(0x1451d10), current thread is QThread(0x14b3060)
sddm-greeter[2075]: QObject: Cannot create children for a parent that is in a different thread.
                   (Parent is QGuiApplication(0x7ffec7657f50), parent's thread is QThread(0x1451d10), current thread is QThread(0x14b3060)
sddm-greeter[2075]: QObject: Cannot create children for a parent that is in a different thread.
                   (Parent is QGuiApplication(0x7ffec7657f50), parent's thread is QThread(0x1451d10), current thread is QThread(0x14b3060)
sddm-greeter[2075]: QObject::installEventFilter(): Cannot filter events for objects in a different thread.
sddm-greeter[2075]: Error: could not load plugin for platform "" error: "La bibliothèque partagée est introuvable." QObject(0x0)
sddm-greeter[2075]: file:///usr/share/sddm/themes/breeze/Main.qml:495:5: QML Connections: Implicitly defined onFoo properties in Connections are deprecated. Use this syntax instead: function onFoo(<argument>
sddm-greeter[2075]: <input>:406:376: Could not add child element to parent element because the types are incorrect.
sddm-greeter[2075]: <input>:407:126: Could not add child element to parent element because the types are incorrect.
sddm-greeter[2075]: <input>:408:126: Could not add child element to parent element because the types are incorrect.
sddm-greeter[2075]: <input>:408:385: Could not add child element to parent element because the types are incorrect.
sddm-greeter[2075]: <input>:409:125: Could not add child element to parent element because the types are incorrect.
sddm-greeter[2075]: <input>:410:124: Could not add child element to parent element because the types are incorrect.
sddm-greeter[2075]: <input>:411:125: Could not add child element to parent element because the types are incorrect.
sddm-greeter[2075]: <input>:411:371: Could not add child element to parent element because the types are incorrect.
sddm-greeter[2075]: <input>:411:619: Could not add child element to parent element because the types are incorrect.
sddm-greeter[2075]: file:///usr/lib64/qt5/qml/QtQuick/Controls/Styles/Plasma/ToolButtonStyle.qml:209:13: QML Connections: Implicitly defined onFoo properties in Connections are deprecated. Use this syntax i>
sddm-greeter[2075]: file:///usr/lib64/qt5/qml/QtQuick/Controls/Styles/Plasma/ToolButtonStyle.qml:209:13: QML Connections: Implicitly defined onFoo properties in Connections are deprecated. Use this syntax i>
sddm-greeter[2075]: file:///usr/lib64/qt5/qml/QtQuick/Controls/Styles/Plasma/ToolButtonStyle.qml:209:13: QML Connections: Implicitly defined onFoo properties in Connections are deprecated. Use this syntax i>
sddm-greeter[2075]: file:///usr/share/sddm/themes/breeze/components/VirtualKeyboard.qml:20:1: module "QtQuick.VirtualKeyboard" is not installed
sddm-greeter[2075]: file:///usr/share/sddm/themes/breeze/Login.qml:103:13: QML Connections: Implicitly defined onFoo properties in Connections are deprecated. Use this syntax instead: function onFoo(<argume>
sddm-greeter[2075]: file:///usr/lib64/qt5/qml/org/kde/plasma/components/Button.qml:52: ReferenceError: PlasmaCore is not defined
sddm-greeter[2075]: file:///usr/share/sddm/themes/breeze/Main.qml:192: TypeError: Cannot read property 'Locked' of undefined
sddm-greeter[2075]: file:///usr/share/sddm/themes/breeze/Main.qml:463: TypeError: Cannot read property 'smallSpacing' of null
sddm-greeter[2075]: file:///usr/lib64/qt5/qml/org/kde/plasma/workspace/components/BatteryIcon.qml:42: TypeError: Cannot call method 'roundToIconSize' of null
sddm-greeter[2075]: file:///usr/share/sddm/themes/breeze/components/Battery.qml:27: TypeError: Cannot read property 'smallSpacing' of null
sddm-greeter[2075]: file:///usr/share/sddm/themes/breeze/Main.qml:441: TypeError: Cannot read property 'largeSpacing' of null
sddm-greeter[2075]: file:///usr/share/sddm/themes/breeze/Main.qml:446: TypeError: Cannot read property 'gridUnit' of null
sddm-greeter[2075]: file:///usr/share/sddm/themes/breeze/Main.qml:157: TypeError: Cannot read property 'gridUnit' of null
sddm-greeter[2075]: file:///usr/share/sddm/themes/breeze/components/ActionButton.qml:102: TypeError: Cannot read property 'smallSpacing' of null
sddm-greeter[2075]: file:///usr/share/sddm/themes/breeze/components/ActionButton.qml:39: TypeError: Cannot read property 'gridUnit' of null
sddm-greeter[2075]: file:///usr/share/sddm/themes/breeze/components/ActionButton.qml:55: TypeError: Cannot read property 'smallSpacing' of null
sddm-greeter[2075]: file:///usr/share/sddm/themes/breeze/components/ActionButton.qml:41: TypeError: Cannot read property 'largeSpacing' of null
sddm-greeter[2075]: file:///usr/share/sddm/themes/breeze/components/ActionButton.qml:42: TypeError: Cannot read property 'smallSpacing' of null
sddm-greeter[2075]: file:///usr/share/sddm/themes/breeze/components/ActionButton.qml:102: TypeError: Cannot read property 'smallSpacing' of null
sddm-greeter[2075]: file:///usr/share/sddm/themes/breeze/components/ActionButton.qml:39: TypeError: Cannot read property 'gridUnit' of null
sddm-greeter[2075]: file:///usr/share/sddm/themes/breeze/components/ActionButton.qml:55: TypeError: Cannot read property 'smallSpacing' of null
sddm-greeter[2075]: file:///usr/share/sddm/themes/breeze/components/ActionButton.qml:41: TypeError: Cannot read property 'largeSpacing' of null
sddm-greeter[2075]: file:///usr/share/sddm/themes/breeze/components/ActionButton.qml:42: TypeError: Cannot read property 'smallSpacing' of null
sddm-greeter[2075]: file:///usr/share/sddm/themes/breeze/components/ActionButton.qml:102: TypeError: Cannot read property 'smallSpacing' of null
sddm-greeter[2075]: file:///usr/share/sddm/themes/breeze/components/ActionButton.qml:39: TypeError: Cannot read property 'gridUnit' of null
sddm-greeter[2075]: file:///usr/share/sddm/themes/breeze/components/ActionButton.qml:55: TypeError: Cannot read property 'smallSpacing' of null
sddm-greeter[2075]: file:///usr/share/sddm/themes/breeze/components/ActionButton.qml:41: TypeError: Cannot read property 'largeSpacing' of null
sddm-greeter[2075]: file:///usr/share/sddm/themes/breeze/components/ActionButton.qml:42: TypeError: Cannot read property 'smallSpacing' of null
sddm-greeter[2075]: file:///usr/share/sddm/themes/breeze/components/ActionButton.qml:102: TypeError: Cannot read property 'smallSpacing' of null
sddm-greeter[2075]: file:///usr/share/sddm/themes/breeze/components/ActionButton.qml:39: TypeError: Cannot read property 'gridUnit' of null
sddm-greeter[2075]: file:///usr/share/sddm/themes/breeze/components/ActionButton.qml:55: TypeError: Cannot read property 'smallSpacing' of null
sddm-greeter[2075]: file:///usr/share/sddm/themes/breeze/components/ActionButton.qml:41: TypeError: Cannot read property 'largeSpacing' of null
sddm-greeter[2075]: file:///usr/share/sddm/themes/breeze/components/ActionButton.qml:42: TypeError: Cannot read property 'smallSpacing' of null
sddm-greeter[2075]: file:///usr/share/sddm/themes/breeze/Login.qml:120: TypeError: Cannot read property 'smallSpacing' of null
sddm-greeter[2075]: file:///usr/share/sddm/themes/breeze/Login.qml:115: TypeError: Cannot read property 'smallSpacing' of null
sddm-greeter[2075]: file:///usr/share/sddm/themes/breeze/components/SessionManagementScreen.qml:84: TypeError: Cannot read property 'gridUnit' of null
sddm-greeter[2075]: file:///usr/share/sddm/themes/breeze/components/SessionManagementScreen.qml:114: TypeError: Cannot read property 'largeSpacing' of null
sddm-greeter[2075]: file:///usr/share/sddm/themes/breeze/components/SessionManagementScreen.qml:100: TypeError: Cannot read property 'gridUnit' of null
sddm-greeter[2075]: file:///usr/share/sddm/themes/breeze/components/SessionManagementScreen.qml:101: TypeError: Cannot read property 'gridUnit' of null
sddm-greeter[2075]: file:///usr/share/sddm/themes/breeze/components/SessionManagementScreen.qml:91: TypeError: Cannot read property 'gridUnit' of null
kernel: traps: sddm-greeter[2075] general protection fault ip:7fd5d704e137 sp:7ffec7655cc0 error:0 in libQt5Qml.so.5.15.0[7fd5d6e2e000+2b6000]

sddm-greeter[2075]: file:///usr/share/sddm/themes/breeze/Login.qml:120: TypeError: Cannot read property 'smallSpacing' of null
sddm-greeter[2075]: file:///usr/share/sddm/themes/breeze/Login.qml:115: TypeError: Cannot read property 'smallSpacing' of null
sddm-greeter[2075]: file:///usr/share/sddm/themes/breeze/components/SessionManagementScreen.qml:84: TypeError: Cannot read property 'gridUnit' of null
sddm-greeter[2075]: file:///usr/share/sddm/themes/breeze/components/SessionManagementScreen.qml:114: TypeError: Cannot read property 'largeSpacing' of null
sddm-greeter[2075]: file:///usr/share/sddm/themes/breeze/components/SessionManagementScreen.qml:100: TypeError: Cannot read property 'gridUnit' of null
sddm-greeter[2075]: file:///usr/share/sddm/themes/breeze/components/SessionManagementScreen.qml:101: TypeError: Cannot read property 'gridUnit' of null
sddm-greeter[2075]: file:///usr/share/sddm/themes/breeze/components/SessionManagementScreen.qml:91: TypeError: Cannot read property 'gridUnit' of null

OBSERVED RESULT
Login is fine, no lag on my system. Therefore, such logging errors in journal are cumbersome and come from default Breeze theme shipped by Breeze package. Upstream issue?

EXPECTED RESULT
Login fine. No errors in journal related to Breeze files.

SOFTWARE/OS VERSIONS

Operating System: Mageia 8
KDE Plasma Version: 5.19.4
KDE Frameworks Version: 5.73.0
Qt Version: 5.15.0
Kernel Version: 5.8.1-desktop-2.mga8
OS Type: 64-bit
Processors: 4 × Intel® Core™ i5-6600K CPU @ 3.50GHz
Memory: 15.6 Gio of RAM
Graphics Processor: GeForce GTX 1660 Ti/PCIe/SSE2

On Mageia-side,
sddm is at version 0.18.1 (Latest upstream version)
Breeze theme is 5.73
And Breeze SDDM theme comes from our plasma-workspace-5.19.4-2.mga8 package.
Comment 1 Nate Graham 2020-08-17 16:34:09 UTC
Will be fixed by https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/209
Comment 2 Nate Graham 2020-08-20 16:28:44 UTC
Git commit bcaf3886d92da5b5cc6f2ab6a6b43dbc096d7c60 by Nate Graham.
Committed on 20/08/2020 at 16:24.
Pushed by ngraham into branch 'master'.

Fix all errors and warnings on login, lock, and logout screens

There were three principal sources of errors and warnings:
1. Un-ported `onFooChanged` statements
2. `config.fontSize` being unconditionally referenced from components
   without access to it (it comes from the SDDM config)
3. Accessing units from the context property rather than the singleton

All are fixed now. Tested with:
1. `sddm-greeter --test-mode --theme ~/kde/usr/share/sddm/themes/breeze/`
2. `~/kde/usr/lib64/libexec/kscreenlocker_greet --testing --theme ~/kde/src/plasma-workspace/lookandfeel`
3. `/kde/usr/lib64/libexec/ksmserver-logout-greeter --fakearg`

No regressions found.
FIXED-IN: 5.20

M  +1    -1    components/workspace/BatteryIcon.qml
M  +2    -2    lookandfeel/contents/components/ActionButton.qml
M  +6    -2    lookandfeel/contents/components/Battery.qml
M  +0    -4    lookandfeel/contents/components/KeyboardLayoutButton.qml
M  +3    -2    lookandfeel/contents/components/SessionManagementScreen.qml
M  +2    -3    lookandfeel/contents/components/UserDelegate.qml
M  +3    -0    lookandfeel/contents/components/UserList.qml
M  +1    -1    lookandfeel/contents/lockscreen/LockScreen.qml
M  +5    -5    lookandfeel/contents/lockscreen/LockScreenUi.qml
M  +1    -1    lookandfeel/contents/lockscreen/MainBlock.qml
M  +0    -1    lookandfeel/contents/logout/Logout.qml
M  +0    -1    sddm-theme/KeyboardButton.qml
M  +1    -1    sddm-theme/Login.qml
M  +20   -2    sddm-theme/Main.qml
M  +0    -2    sddm-theme/SessionButton.qml

https://invent.kde.org/plasma/plasma-workspace/commit/bcaf3886d92da5b5cc6f2ab6a6b43dbc096d7c60