itom-project / itom

itom core repository
https://itom-project.github.io/
Other
14 stars 5 forks source link

Qt version for next setup 4.3.0 #290

Open magro11 opened 3 months ago

magro11 commented 3 months ago

In opened this issue in order to discuss which Qt version we should use for the upcoming setup 4.3.0, especially for the Windows builds.

If we would go with Qt6, we have currently the following opportunitities in terms of existing AllInOne development packages (see https://sourceforge.net/projects/itom/files/all-in-one-build-setup/):

  1. Qt 6.4.1 with a modified Qt6DesignerComponents.dll (see my bug issue in the Qt bug tracker: https://bugreports.qt.io/browse/QTBUG-111603). The modified DLL is already contained in the corresponding AllInOne since last year.
  2. Qt 6.6.0. In this version there seem to be a problem related to the QWebView widget / plugin with Windows 10 only.
  3. Alter Qt 6.6.0 to 6.6.3 in order to benefit from a bunch of bugfixes in the 6.6 version (all 6.6.x series are fully binary compatibel, files can simply be replaced)

Some details to point 2, Qt 6.6.0:

When the Qt Linguist is opened to modify a translation file ts of itom, that contains translation strings for some ui files, the Linguist seems to hang under Windows 10 and does not react any more. Under Windows 11 it works. It is very likely that this is related to a known Qt bug that is related to the QWebView component, which is the browser widget of Qt. This is for instance used in the help widget of itom, in the SOU file generated if the ITO (private plugin of ITO)... It is likely that this Linguist problem is related to this Qt bug report: https://bugreports.qt.io/plugins/servlet/mobile#issue/QTBUG-118317

When the Qt WebView designer plugin (plugins/designer/qwebengineview.dll) is removed, the Linguist works. This is what the QTBUG-118317 shows as workaround. This plugin is only the designer plugin of the web view widget. It has to be checked, if or for which cases this designer plugin is required, since the real web view widget is part of another DLL.

It seems, that this bug is also fixed, but only with an upcoming Qt version 6.7 or 6.8.

We should check the following things in order to decide this question:

  1. Will Qt6.6.3 (binary compatibel) fix the web view issue? Download Qt6.6.3, open the linguist and open the qitom_de.ts file (todo: Johann)
  2. With Qt6.6.0: is itom working properly besides the linguist with the qwebengineview.dll? Tests: Open the designer and open some or all ui files from the demo folder, create a new widget in the designer and add the webview widget, build the itom help and open the help widget in itom, check if the plotly plot is working (demo script), check if the ITO sou generator (ask Christof if unknown) is still loading and working.
  3. With Qt6.6.0: remove qwebengineview.dll and test the same than under 2.

A quick pro-cons-list for the decision:

  1. Qt 6.4.1: PRO: well tested at different computers since a couple of months, CONS: manually modified QDesignerComponents.dll for Windows, which fixes a crucial bug.
  2. Qt 6.6.0: PRO: QDesignerComponents.dll bug officially fixes, also tested with itom at different computers. CONS: issue with the web view, Linguist.
  3. Qt 6.6.3: PRO: many bugfixes in the Qt6.6. branch, maybe: fixes web view issue, CONS: not well tested in daily operation

For the 6.6 branch, we have the option to use the original version with the qwebengineview.dll plugin, meaning that the Linguist will not operate well for all ts files under Windows 10 or to remove this dll. In this case, we should check if everything else is working and if it is necessary to have a web browser widget in the QtDesigner, that one can add to its own user interface.

photoniker commented 3 months ago

The Linguist issue still exists with QT6.6.3. If the webengieview.dll are deleted in the plugins/designer folder, Linguist can open the translation file.

photoniker commented 3 months ago

itom helpviewer works with qt6.6.3 if qwebengineview.dll is removed from msvc2019_64\plugins\designer folder.