Icons + Text overlap / not readable

Report an issue that you found while using QLC+ 5.x.
Please provide as many details as you can, a sample workspace if available and don't forget to read the forum posting guidelines first !
Post Reply
User avatar
kripton
Posts: 42
Joined: Tue Sep 29, 2015 7:01 pm
Real Name: Jannis

Yeah, I finally got to test QLC+5 :D
To my defence: I have 0 experience with or knowledge about QML so bear with me if I made something simple plain wrong.

Environment: Gentoo Linux with Qt 5.9.4 (QML and Qt3D installed): https://gist.github.com/kripton/da1691e ... 2a88b5b987 (The "Installed version:" lines are relevant). I also have QLC+ 4.11.1 installed in /usr. That's why I'm using LD_PRELOAD to prefer the libraries from the local directory. They seem to resolve correctly: https://gist.github.com/kripton/075888d ... 8615c92821

However, the result is not what I expected. The icons seem to overlap and the text is unreadable. The UI is usable when you know where to click:
QLC-QML.png
Startup output is here: https://gist.github.com/kripton/4ba8382 ... 17edb6fc4f

Is there any way to tell QLC+ where to look for plugins? Could it be that it loads an incompatible plugin from the QLC+ 4 directory?

Thanks for any help :)
User avatar
mcallegari
Posts: 4548
Joined: Sun Apr 12, 2015 9:09 am
Location: Italy
Real Name: Massimo Callegari
Contact:

Icons have nothing to do with IO plugins.
What screen resolution do you have ? What is the DPI rate printed at qlcplus-qml startup ?
E.g: Pixel density: 5.57419 size: QSizeF(344, 194)
User avatar
kripton
Posts: 42
Joined: Tue Sep 29, 2015 7:01 pm
Real Name: Jannis

Screen resolution is 1920x1080@60.02.
qlcplus-qml printed:
Pixel density: 6.27323 size: QSizeF(310, 170)
And from Xorg.0.log:
[ 24.224] (==) intel(0): DPI set to (96, 96)
User avatar
mcallegari
Posts: 4548
Joined: Sun Apr 12, 2015 9:09 am
Location: Italy
Real Name: Massimo Callegari
Contact:

Ok, thanks.
In your startup log, there seems to be something I've never seen in my environments:

Code: Select all

Both point size and pixel size set. Using pixel size.
I think that's the cause of all evil.

QLC+ 5 doesn't use libqlcplusui or libqlcpluswebaccess so there's no need to LD_PRELOAD them. It's just qlcplus-qml + libqlcplusengine.
Can you do the same LD_PRELOAD (or LD_LIBRARY_PATH) with my bundle ?
AppImage has an option (--appimage-extract) that will extract the contents into a squashfs-root folder. Please try to load that and see if the look is correct.
User avatar
kripton
Posts: 42
Joined: Tue Sep 29, 2015 7:01 pm
Real Name: Jannis

Extracting the AppImage is a good idea, I was not aware that this is possible. I tried with ark but it refused to open the file.

I had to LD_PRELOAD the libqlcplusengine (obviously) and all of the Qt5 libraries in the AppImage becuase I had symbol errors otherwise
kripton@momo ~/dmx/squashfs-root $ LD_PRELOAD=/home/kripton/dmx/squashfs-root/usr/lib/libqlcplusengine.so.1.0.0 ./AppRun
qlcplus-qml: relocation error: /home/kripton/dmx/squashfs-root/usr/lib/libQt5XcbQpa.so.5: symbol _ZdlPvm, version Qt_5 not defined in file libQt5Core.so.5 with link time reference
or crashes:
kripton@momo ~/dmx/squashfs-root $ LD_PRELOAD="/home/kripton/dmx/squashfs-root/usr/lib/libQt5Core.so.5 /home/kripton/dmx/squashfs-root/usr/lib/libqlcplusengine.so.1.0.0" ./AppRun
Speicherzugriffsfehler
(= SEGFAULT)

However, with all Qt5 preloaded, the UI opens and displays correctly. Pixel density line is identical but the "Both point size and pixel size set. Using pixel size." line is no longer there.

Any ideas on how to proceed? Building QLC+ 5 with specific options or against Qt4?
User avatar
mcallegari
Posts: 4548
Joined: Sun Apr 12, 2015 9:09 am
Location: Italy
Real Name: Massimo Callegari
Contact:

You don't need to LD_PRELOAD everything.
Just use LD_LIBRARY_PATH. It will give precedence to the bundle libraries over your system paths.

Qt4 is not even close to what QLC+ 5 requires. So no, it won't work.

Qt5 QML-based app deployment is new for me too, so I can't really explain why you had the pixel size message.
In your case (Gentoo) I'd try to build QLC+ with the official Qt libraries (like I did) instead of the system ones.
Just invoke "qmake CONFIG+=qmlui" with the absolute path of where you installed Qt.

Please let me know if that works. If it does, then Gentoo is still the inconsistent distro it was used to be 10 years ago when I had the bad idea to adopt it.
User avatar
kripton
Posts: 42
Joined: Tue Sep 29, 2015 7:01 pm
Real Name: Jannis

Hm, using LD_LIBRARY_PATH doesn't prefer the folders specified before the system libraries:
kripton@momo ~/dmx/squashfs-root $ ls usr/lib/libqlcplusengine.so*
usr/lib/libqlcplusengine.so usr/lib/libqlcplusengine.so.1 usr/lib/libqlcplusengine.so.1.0 usr/lib/libqlcplusengine.so.1.0.0
kripton@momo ~/dmx/squashfs-root $ objdump -T usr/lib/libqlcplusengine.so.1.0.0 | grep ZN17MonitorProperties16staticMetaObject
0000000000383bc0 g DO .data.rel.ro 0000000000000030 Base _ZN17MonitorProperties16staticMetaObjectE
kripton@momo ~/dmx/squashfs-root $ LD_LIBRARY_PATH=usr/lib/ ldd usr/bin/qlcplus-qml
linux-vdso.so.1 (0x00007ffcb63eb000)
libqlcplusengine.so.1 => /usr/lib/libqlcplusengine.so.1 (0x00007f8a0797b000)
,,,
kripton@momo ~/dmx/squashfs-root $ LD_LIBRARY_PATH=usr/lib/ usr/bin/qlcplus-qml
usr/bin/qlcplus-qml: symbol lookup error: usr/bin/qlcplus-qml: undefined symbol: _ZN17MonitorProperties16staticMetaObjectE
So you can see that the system library of libqlcplusengine is used although the one in the LD_LIBRARY_PATH is the correct one.

I'll try to build QLC+5 QML using the official Qt5 libraries tomorrow evening and report back how it went.

Thank you very much for the patient help :)
User avatar
kripton
Posts: 42
Joined: Tue Sep 29, 2015 7:01 pm
Real Name: Jannis

Ok, I've built QLC+ 5 alpha 1 against Qt 5.9.4 as downloaded and installed from the web (so not the system libraries).
I've then LD_PRELOADed libqlcplusengine and ran the QML UI. Result: Looks okay, no overlapping.

So, obviously not QLC+'s fault and I'll have to create a QML test case as small as possible to demonstrate and report Gentoo's strange behaviour.

I'll keep you updated on the root cause as soon as I found it ...
nilsvanzuijlen
Posts: 20
Joined: Wed Jun 01, 2016 3:43 pm
Real Name:

Did you found why it did not work ?

I have the same problem with my installation of ArchLinux, so it's not specific to Gentoo.

Every time I build the app, I get these overlapping buttons, which work (you can see it in https://pe.ertu.be/videos/watch/436d948 ... 9d54f4d84f), but is really annoying.
User avatar
mcallegari
Posts: 4548
Joined: Sun Apr 12, 2015 9:09 am
Location: Italy
Real Name: Massimo Callegari
Contact:

QLC+ 5 requires at least Qt 5.10.x, as written in the GitHub wiki.
Shortly, it will require Qt 5.11.x
nilsvanzuijlen
Posts: 20
Joined: Wed Jun 01, 2016 3:43 pm
Real Name:

Oops, I didn't include enough information, I think.

I am running an up to date ArchLinux (it's a rolling release distrib, there is no version of Arch), and compiling and running it with Qt 5.11.2.

And I still get that "Both point size and pixel size set. Using pixel size." line in the logs.

It seems like Arch and Gentoo share the same packaging bug.

@kripton did the Gentoo team fixed that problem or not ? Did they found why this problem occurs ?
User avatar
edogawa
Posts: 584
Joined: Thu May 07, 2015 10:34 am
Real Name: Edgar Aichinger

I've seen this happening with a self built QLC5 on openSUSE, using the system Qt5, too...
The AppImage does not show that behaviour.

So to me it seems not to be a "packaging bug" per se, but rather something all distros change for their Qt5 packages?
User avatar
kripton
Posts: 42
Joined: Tue Sep 29, 2015 7:01 pm
Real Name: Jannis

nilsvanzuijlen wrote: Sat Nov 03, 2018 5:56 pm @kripton did the Gentoo team fixed that problem or not ? Did they found why this problem occurs ?
Mh, I don't think that anyone from the Gentoo crew worked on it. I tried to compile QLC+ 5 Alpha3 and master against the latest Qt shipped for Gentoo (5.11.2) but both fail to compile:

Code: Select all

Project MESSAGE: COLORFILTERSDIR: share/qlcplus/colorfilters
Project MESSAGE: Qt install prefix: /usr
Project MESSAGE: Qt install libs: /usr/lib64
Project MESSAGE: Linux libs dir:  /usr/lib64
Project MESSAGE: Linux plugins dir:  /usr/lib64/qt5/plugins/qlcplus
g++ -c -pipe -Werror -Wno-unused-local-typedefs -g -Wall -W -D_REENTRANT -fPIC -DQMLUI -DQT_3DQUICKEXTRAS_LIB -DQT_3DQUICK_LIB -DQT_QUICK_LIB -DQT_SVG_LIB -DQT_MULTIMEDIAWIDGETS_LIB -DQT_PRINTSUPPORT_LIB -DQT_WIDGETS_LIB -DQT_MULTIMEDIA_LIB -DQT_3DEXTRAS_LIB -DQT_3DRENDER_LIB -DQT_3DINPUT_LIB -DQT_3DLOGIC_LIB -DQT_3DCORE_LIB -DQT_GUI_LIB -DQT_QML_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -I. -I../engine/src -I../engine/audio/src -Ivirtualconsole -Itardis -I../plugins/interfaces -isystem /usr/include/qt5 -isystem /usr/include/qt5/Qt3DQuickExtras -isystem /usr/include/qt5/Qt3DQuick -isystem /usr/include/qt5/QtQuick -isystem /usr/include/qt5/QtSvg -isystem /usr/include/qt5/QtMultimediaWidgets -isystem /usr/include/qt5/QtPrintSupport -isystem /usr/include/qt5/QtWidgets -isystem /usr/include/qt5/QtMultimedia -isystem /usr/include/qt5/Qt3DExtras -isystem /usr/include/qt5/Qt3DRender -isystem /usr/include/qt5/Qt3DInput -isystem /usr/include/qt5/Qt3DLogic -isystem /usr/include/qt5/Qt3DCore -isystem /usr/include/qt5/QtGui -isystem /usr/include/qt5/QtQml -isystem /usr/include/qt5/QtNetwork -isystem /usr/include/qt5/QtCore -I. -isystem /usr/include/libdrm -I/usr/lib64/qt5/mkspecs/linux-g++ -o fixturemanager.o fixturemanager.cpp
fixturemanager.cpp: In member function 'QDir FixtureManager::systemColorFiltersDirectory()':
fixturemanager.cpp:1312:45: error: 'COLORFILTERSDIR' was not declared in this scope
     return QLCFile::systemDirectory(QString(COLORFILTERSDIR), QString(KExtColorFilters));
                                             ^~~~~~~~~~~~~~~
fixturemanager.cpp:1312:45: note: suggested alternative: 'COLORFILTERS_H'
     return QLCFile::systemDirectory(QString(COLORFILTERSDIR), QString(KExtColorFilters));
                                             ^~~~~~~~~~~~~~~
                                             COLORFILTERS_H
fixturemanager.cpp: In member function 'QDir FixtureManager::userColorFiltersDirectory()':
fixturemanager.cpp:1317:43: error: 'USERCOLORFILTERSDIR' was not declared in this scope
     return QLCFile::userDirectory(QString(USERCOLORFILTERSDIR), QString(COLORFILTERSDIR),
                                           ^~~~~~~~~~~~~~~~~~~
fixturemanager.cpp:1317:43: note: suggested alternative: 'COLORFILTERS_H'
     return QLCFile::userDirectory(QString(USERCOLORFILTERSDIR), QString(COLORFILTERSDIR),
                                           ^~~~~~~~~~~~~~~~~~~
                                           COLORFILTERS_H
fixturemanager.cpp:1317:73: error: 'COLORFILTERSDIR' was not declared in this scope
     return QLCFile::userDirectory(QString(USERCOLORFILTERSDIR), QString(COLORFILTERSDIR),
                                                                         ^~~~~~~~~~~~~~~
fixturemanager.cpp:1317:73: note: suggested alternative: 'COLORFILTERS_H'
     return QLCFile::userDirectory(QString(USERCOLORFILTERSDIR), QString(COLORFILTERSDIR),
                                                                         ^~~~~~~~~~~~~~~
                                                                         COLORFILTERS_H
make[1]: *** [Makefile:2465: fixturemanager.o] Error 1
make[1]: Leaving directory '/home/kripton/dmx/qlcplus/qmlui'
make: *** [Makefile:136: sub-qmlui-make_first-ordered] Error 2
User avatar
mcallegari
Posts: 4548
Joined: Sun Apr 12, 2015 9:09 am
Location: Italy
Real Name: Massimo Callegari
Contact:

Did you add CONFIG+=qmlui to qmake as indicated in the GitHub wiki ? https://github.com/mcallegari/qlcplus/w ... uild-HOWTO
User avatar
kripton
Posts: 42
Joined: Tue Sep 29, 2015 7:01 pm
Real Name: Jannis

mcallegari wrote: Mon Nov 05, 2018 9:51 pm Did you add CONFIG+=qmlui to qmake as indicated in the GitHub wiki ? https://github.com/mcallegari/qlcplus/w ... uild-HOWTO
Yes, I did. This morning, I cloned to a fresh directory and now the compilation works. Seems to be some leftovers from the old compilation that broke it.

However, the overlapping buttons are still there :(
nilsvanzuijlen
Posts: 20
Joined: Wed Jun 01, 2016 3:43 pm
Real Name:

I think I found out why there is that "Both point size and pixel size set. Using pixel size." message.

In qmlui/qml/popup/PopupDisclaimer.qml, you use both `font.pixelSize` and `font.pointSize`.
As documented there, "If both pointSize and a pixelSize are specified, pixelSize will be used."

So, I tested if that was the problem by changing the `pointSize` to `pixelSize` and setting the value to `UISettings.iconSizeDefault` because they are icons.
It improved the way the warning message looks (it's still bugged, but it's better, see attached screenshot) but I still get the "point and pixel size" message, maybe from another place.

PS: Can you confirm that the files in the `ui` folder are not used by QLC+5 ? There are some `pointSize` in there too.

--EDIT--
Added a second screenshot, where it behaved better than the first.
Attachments
Screenshot_20181107_001424.png
Screenshot_20181107_000530.png
User avatar
kripton
Posts: 42
Joined: Tue Sep 29, 2015 7:01 pm
Real Name: Jannis

I've got a very interesting twists on this one: I compiled QLC+ 5 Alpha 3 as regular user against Qt 5.12.4 as shipped with my Gentoo installation.
When I run it as this very user, I still have the problem with the overlapping images/labels.
When I run the same program as root, everything is fine.

So it's not an issue of the Qt installation but more like a problem with some setting, probably related to KDE as well?

I'll keep on investigating this :)
User avatar
kripton
Posts: 42
Joined: Tue Sep 29, 2015 7:01 pm
Real Name: Jannis

Another confirmation that it is related to some setting:
When I run it as the user where it was broken before, but have export XDG_CURRENT_DESKTOP=GNOME in my environment, everything is perfectly fine as well
User avatar
kripton
Posts: 42
Joined: Tue Sep 29, 2015 7:01 pm
Real Name: Jannis

As an alternative, what also helps instead is to set export QT_QPA_PLATFORMTHEME=gtk3.

Additional info:
When QLC+ looks broken (no env variables set), I have these additional errors in the console:

Code: Select all

Refresh 2D view...
file:///usr/lib64/qt5/qml/QtQuick/Controls.2/org.kde.desktop/ComboBox.qml:178: TypeError: Type error
file:///usr/lib64/qt5/qml/QtQuick/Controls.2/org.kde.desktop/ComboBox.qml:178: TypeError: Type error
file:///usr/lib64/qt5/qml/QtQuick/Controls.2/org.kde.desktop/ComboBox.qml:178: TypeError: Type error
file:///usr/lib64/qt5/qml/QtQuick/Controls.2/org.kde.desktop/private/MobileTextActionsToolBar.qml:62: TypeError: Cannot read property 'selectedText' of null
file:///usr/lib64/qt5/qml/QtQuick/Controls.2/org.kde.desktop/private/MobileTextActionsToolBar.qml:70: TypeError: Cannot read property 'selectedText' of null
file:///usr/lib64/qt5/qml/QtQuick/Controls.2/org.kde.desktop/private/MobileTextActionsToolBar.qml:78: TypeError: Cannot read property 'canPaste' of null
OpenGL version:  4 5
So that seems totally related to KDE and KDE's Qt-(theme-)configuration messing up QML ....

I'm happy with the workaround and happy to be able to finally use QLC+ 5 without having to use the binary Qt downloaded from their website :)
halls
Posts: 1
Joined: Tue Mar 14, 2023 9:52 pm
Real Name: Chris Halls

Hello, this problem also affects current Debian (11 / Bullseye) with KDE desktop and qlcplus current master (5.0.0 beta2+git)

I can confirm that this workaround works for me too:

Code: Select all

XDG_CURRENT_DESKTOP=GNOME qlcplus-qml
The other suggestion QT_QPA_PLATFORMTHEME=gtk3 does not work for me.

I get similar error messages too:

Code: Select all

Refresh 2D view...
file:///usr/lib/x86_64-linux-gnu/qt5/qml/QtQuick/Controls.2/org.kde.desktop/Dialog.qml:23: TypeError: Cannot read property 'implicitHeight' of null
file:///usr/lib/x86_64-linux-gnu/qt5/qml/QtQuick/Controls.2/org.kde.desktop/Dialog.qml:23: TypeError: Cannot read property 'implicitHeight' of null
OpenGL version:  4 6
Post Reply