Qaterial icon indicating copy to clipboard operation
Qaterial copied to clipboard

Qt6 support

Open moodyhunter opened this issue 3 years ago • 16 comments

😢 I tried my best but cannot make Qaterial support both Qt5 and 6 at the same time In this case, a new branch is needed, to continue working with both 5 and 6. Since WASM is still under heavy development, I think this PR can be delayed until they stabilize everything in Qt 6.2

See: https://bugreports.qt.io/browse/QTBUG-78647

Changes:

  • added qt5compat Qt extra module in CI configuration, this is required when using QtGraphicalEffects
  • find_package now finds Qt6 only
  • removed all versioned QML imports, Qt6 supports versionless QML import which ensures the latest version is used.
  • updated QOlm to commit https://github.com/OlivierLDff/QOlm/commit/13a6cf91ee21f3f558fcebf0f3b683e4f21018e9
  • in qml/Qaterial/ApplicationWindow.qml IDK why overlay should be written as Overlay
  • removed qtquick_compiler_add_resources and use qt6_add_resources instead, since https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=36b253eebdf5169709475a8e9b4726f3d19a771b
  • upstream commit https://github.com/OlivierLDff/Qaterial/commit/8ab7d4678586d2afd1085441cc160f48dbe68601 and https://github.com/OlivierLDff/Qaterial/commit/61748ffdf53c8e18955685b72fce15d3da3883bb
  • in qml/Qaterial/Style.qml the != and == is replaced by !== and === ~~(hell no javascript)~~
  • added template type in src/Qaterial/ColorTheme.cpp, float is used since QColor returns floats rather than double
  • AA_EnableHighDpiScaling attribute is now deprecated and HiDPI scaling is always on

TODOs:

  • ~~RegExpValidator needs to be replaced by QRegularExpressionValidator https://code.qt.io/cgit/qt/qtdeclarative.git/log/?qt=grep&q=RegExpValidator~~ done

moodyhunter avatar May 21 '21 08:05 moodyhunter

Yes i think we really need 6.2 to merge into master.

  • My idea is when 6.2 will go out, is to only use Qt6 and drop support for Qt5. Since they said everything should be there.
  • QtGraphicalEffects will be build as a standalone library if i understand well, so we won't need compat with Qt6

Thanks for preliminary work.

Maybe some stuff can already premerged:

  • RegExpValidator to RegularExpressionValidator
  • The QColor stuff
  • AA_EnableHighDpiScaling

OlivierLDff avatar May 21 '21 08:05 OlivierLDff

I'm putting back discord of Qaterial here if you are interested : https://discord.gg/Bb5SeCD7

OlivierLDff avatar May 21 '21 08:05 OlivierLDff

Thanks anyway, but I rarely use Discord, so sorry about that.

BTW I will split those commits up into smaller changesets later today so that parts of this PR can be merged separately.

moodyhunter avatar May 21 '21 09:05 moodyhunter

just rearranged the commits, probably https://github.com/OlivierLDff/Qaterial/pull/111/commits/0d1b5bb2dd59e451af61550e04a21b2e5b675901 https://github.com/OlivierLDff/Qaterial/pull/111/commits/7e2e4b9fb097c4d58064f620470553559c56b881 https://github.com/OlivierLDff/Qaterial/pull/111/commits/3181e66980a15201650b0c5d981be650085db3dc and https://github.com/OlivierLDff/Qaterial/pull/111/commits/b63b7cc452130cbecb6d4b8a0f28426fd8ba0b06 can be merged now.

moodyhunter avatar May 22 '21 06:05 moodyhunter

Hi, the commit https://github.com/OlivierLDff/Qaterial/pull/111/commits/88209d5225b2cc9fcf5d051e0289b979027e284c removes the need for 5compat module, a self-built Qt6 dev branch can be found here

Tested under Windows, Linux and WASM platform, the new QtGraphicalEffects is fully compatible out-of-box and there's no need for "porting" or "migration".


For now I'll mark this PR ready-to-review but I think it's better to be cherry-picked (as some changes are already merged)

moodyhunter avatar May 28 '21 00:05 moodyhunter

Hi, the commit 88209d5 removes the need for 5compat module, a self-built Qt6 dev branch can be found here

Tested under Windows, Linux and WASM platform, the new QtGraphicalEffects is fully compatible out-of-box and there's no need for "porting" or "migration".

For now I'll mark this PR ready-to-review but I think it's better to be cherry-picked (as some changes are already merged)

Thanks for this work, i'm looking forward, once Qt 6.2 is out we will also upgrade https://github.com/KomodoPlatform/atomicDEX-Desktop to the last Qaterial !

Milerius avatar Jun 17 '21 10:06 Milerius

Thanks a lot, I will wait for 6.2 before moving Qaterial to Qt6 too!

OlivierLDff avatar Jun 17 '21 11:06 OlivierLDff

Hi, the commit 88209d5 removes the need for 5compat module, a self-built Qt6 dev branch can be found here

Tested under Windows, Linux and WASM platform, the new QtGraphicalEffects is fully compatible out-of-box and there's no need for "porting" or "migration".

For now I'll mark this PR ready-to-review but I think it's better to be cherry-picked (as some changes are already merged)

This is erroneous, you need to put back the Qt5CompactModule for QtGraphicalEffects, version 6.2 is not usable otherwise.

Suggesting to revert: https://github.com/OlivierLDff/Qaterial/commit/88209d5225b2cc9fcf5d051e0289b979027e284c

source: https://doc-snapshots.qt.io/qt6-dev/graphicaleffects5.html

There is no support for a regular include of QtGraphicalEffects in Qt6, you need to use the compat mod

Milerius avatar Jun 23 '21 06:06 Milerius

That's sad. but I was using my personally-built Qt dev branch and found the QtGraphicalEffects is actually working.

https://github.com/moodyhunter/QtSnapshot/actions

I may need further investigation.

moodyhunter avatar Jun 23 '21 08:06 moodyhunter

That's sad. but I was using my personally-built Qt dev branch and found the QtGraphicalEffects is actually working.

https://github.com/moodyhunter/QtSnapshot/actions

I may need further investigation.

It's likely the unofficial way, atleast i was not able to start my app with Qt6 without the Qt5CompatMode using online installer, so i think the official way is to use the good include

Also @OlivierLDff is it possible to merge this pr into a qt6_migration branch ? So projects that use qaterial can try the experimental branch

Milerius avatar Jun 23 '21 08:06 Milerius

Hi all, sorry for the late update, I was not working on QML within last month. Just reverted the Core5Compat and the old QtGraphicalEffects module back. https://github.com/OlivierLDff/Qaterial/pull/111/commits/c3b8f695a26b55e1df4303f28214d73ca7d18259

moodyhunter avatar Jul 06 '21 13:07 moodyhunter

Hi all, sorry for the late update, I was not working on QML within last month. Just reverted the Core5Compat and the old QtGraphicalEffects module back. c3b8f69

is it also possible to fix the conflict ?

Milerius avatar Jul 06 '21 14:07 Milerius

I merged this into my master branch and it worked like a charm! I tested only on Windows so far.

ahmedyarub avatar Jul 17 '21 22:07 ahmedyarub

I started to merge:

  • AA_EnableHighDpiScaling attribute is now deprecated and HiDPI scaling is always on (https://github.com/OlivierLDff/Qaterial/pull/121)
  • added template type in src/Qaterial/ColorTheme.cpp, float is used since QColor returns floats rather than double (https://github.com/OlivierLDff/Qaterial/pull/122)
  • The regex stuff (https://github.com/OlivierLDff/Qaterial/pull/120)

OlivierLDff avatar Jul 18 '21 08:07 OlivierLDff

Qt 6.3 released. When will Qaterial support Qt 6? Thanks

vincent-hui avatar Apr 12 '22 15:04 vincent-hui

No date for now, I'm not working on UI right now

OlivierLDff avatar Apr 12 '22 16:04 OlivierLDff