Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update Qt version to 5.15.2 #1882

Merged
merged 24 commits into from
Jul 7, 2023
Merged

Update Qt version to 5.15.2 #1882

merged 24 commits into from
Jul 7, 2023

Conversation

cbentejac
Copy link
Contributor

@cbentejac cbentejac commented Jan 27, 2023

Description

This PR updates the version of PySide2 required by Meshroom to 5.15.2.1 (with Qt 5.15.2 being the corresponding Qt release).

Meshroom can now be used with any Python version > 3.4 and < 3.11, as specified by PySide2 5.15.2.1.

Issues introduced by the change of PySide2 version have been fixed, all the used QML modules have been updated to their correct Qt 5.15-compatible versions, and all the QML syntax warnings have been fixed.

QtAliceVision and QmlAlembic, Meshroom's plugins, do not require any update but will need to be rebuilt with Qt 5.15.2 (instead of Qt 5.14.1) to be compatible.

Note: the AssimpSceneParser plugin is missing in the 5.15.2 release and needs to be added manually (see https://bugreports.qt.io/browse/QTBUG-88821). This will not affect release versions but should be taken into account when building Meshroom from source. The missing libraries can directly be downloaded from these links:

and then copied into PySide's installation folder, in plugins/sceneparsers.

Features list

  • Upgrade the installation requirements
  • Upgrade all the used QML modules
  • Update the documentation
  • Update and test all docker files for Linux distributions (note: Open Source Qt Linux packages have been discontinued since Qt 5.15.0)

Implementation remarks

  • The alternative color palette is disabled to keep the full support of disabled elements' colors.

The upgrade concerns the following modules:
- QtCharts
- QtPositioning
- QtLocation
- QtGraphicalEffects
- QtQml
Slots now need to be written as function; the previous syntax is
deprecated.
Setting this variable allows to keep on using "GET" on local files
with XMLHttpRequest.
This commit addresses warnings that were raised by QtCreator's linter:
- IDs declared more than once
- variables declared more than once in the same scope
- type coercions
- variables declared as "var" when their type is known
- unclosed "case" in switch-case
By setting the height on the "onLoaded" event, no height update was
possible unless the component was unloaded (which happens when "active"
gets set to false) first and then reloaded (which happens when "active"
gets set to true). If an attribute was to be hidden (by unchecking the
"advanced attributes" checkbox, for example), its content was effectively
hidden, but as its height was not being updated, a blank block remained
in its place.

Similarly, for attributes that are filled with a lot of content after
being initialized (ChoiceParams, for example), the height was set once
at the attribute's initialization but never updated afterwards.
Manually convert the QPalette object to a QML Palette manually. The
conversion is not straight forward anymore, and not performing it
leads to an incomplete alternate (light) palette.

QML Palette in Qt 5.15 does not support yet disabled elements, the
support will only be enabled with Qt 6.
Qt installation within the dockers is directly handled with command-line
parameters of the installer itself.
…ments

Supporting the alternative palette (triggered with Ctrl+Shift+P) requires
a manual conversion from the QPalette to the QML palette, which does not
directly support disabled elements.

Keeping the previous palette management will support disabled elements,
but cause issues when switching to the alternative palette. Until both
can be fully supported, the alternative palette is disabled.
@cbentejac cbentejac added this to the Meshroom 2023.3.0 milestone Jul 4, 2023
`libassimpsceneimport.so` is missing from Qt 5.15.2 and must therefore
be added manually. Without it, there will be no OBJ files support in the
3D Viewer.
@cbentejac cbentejac marked this pull request as ready for review July 5, 2023 16:47
Add direct download links for `assimpsceneimport.dll` and
`libassimpsceneimport.so` and indications as to where to copy them to
avoid errors related to a missing AssimpSceneParser plugin.
@mugulmd mugulmd merged commit 0cf6984 into develop Jul 7, 2023
2 checks passed
@mugulmd mugulmd deleted the dev/qt5.15-migration branch July 7, 2023 15:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants