Hey vanuan and vocx,
thanks again for your fast replies!
vanuan wrote: ↑Fri Sep 25, 2020 7:32 am
Well, from a developer perspective, a framework/library is not a configuration option. It's a core part of an application.
It's only the Linux desktop that is such a mess that you can't have multiple versions of a framework/library installed. Of course, Windows has its own DLL hell, but somehow it is manageable. OS X is a best of both worlds from a developer perspective.
From the user perspective it's quite the opposite - Windows and OS X are hungry monsters that require hundreds of gigabytes of disk space, while Linux software seem to require little space.
Yeah, in a pure C++ world, where your framework/library is bundled with your app source, I would agree. But FreeCAD also consists of large parts of Python code, where you can also have more than one version. And typically, in Python you may have different versions of packages which are required for the code to work.
vanuan wrote: ↑Fri Sep 25, 2020 7:32 am
So yeah, it's choosing where you want to manage the pain. I hope that some day C++ will get a dependency and package manager similar to other language capabilities, and tech like Flatpak, Snappy and AppImage will allow us to move fast and not be dragged down by supporting dozens of distributions.
Yeah, you're right. I often wish that C++ has a dependency manager like pip or conda, such that it is not such a pain to manage your project there.
Anyway, wouldn't it possible to put a try-except block into the device_pixel_ratio() function and return 1 if it throws an AttributeError?
https://github.com/FreeCAD/FreeCAD/blob ... r.py#L1120
With this change you don't have to monitor the version of Qt and don't have to change different parts of the code in a different manner, since your default value is sane. One can also provide a user warning in the console that an update of Qt is recommended.
Best wishes
Johannes