Skip to content

Migrate to Qt6 - #4659

Open
selsta wants to merge 1 commit into
monero-project:masterfrom
selsta:qt6
Open

Migrate to Qt6#4659
selsta wants to merge 1 commit into
monero-project:masterfrom
selsta:qt6

Conversation

@selsta

@selsta selsta commented Jul 17, 2026

Copy link
Copy Markdown
Collaborator

This PR migrates Monero GUI from Qt 5 to Qt 6, including the necessary QML, C++, CMake, deployment, CI, and packaging changes.

@Malinero started this effort and provided much of the foundational work that made this migration possible.

The migration is kept as one large commit because its individual parts are tightly coupled and intermediate commits would not compile. Splitting it further would therefore create an artificial history rather than a useful sequence of working changes.

Everyone who commited code changes to this PR is listed as an author, and also thank you to @jpk68 and RavFX for helping with testing.

Closes #4348

@selsta selsta mentioned this pull request Jul 17, 2026
@selsta
selsta force-pushed the qt6 branch 2 times, most recently from 200cdba to dfd2f1b Compare July 17, 2026 23:26
Comment thread pages/settings/SettingsInfo.qml Outdated
Comment thread wizard/WizardLanguage.qml Outdated
Comment thread cmake/FixupMacBundle.cmake Outdated
Comment thread components/StandardDialog.qml
Comment thread components/IconButton.qml Outdated
Comment thread wizard/WizardWalletInput.qml Outdated
Comment thread pages/Sign.qml Outdated
Comment thread src/main/main.cpp
Comment thread main.qml Outdated
@selsta

selsta commented Jul 18, 2026

Copy link
Copy Markdown
Collaborator Author

Force pushed to implemented all the suggested changes. @jpk68 @thomasbuilds

@thomasbuilds

Copy link
Copy Markdown
Contributor

QR scanner is still Qt5?

@selsta

selsta commented Jul 18, 2026

Copy link
Copy Markdown
Collaborator Author

Likely yes, I did not compile with SCANNER enabled, will put it on my to-do.

@jpk68

jpk68 commented Jul 18, 2026

Copy link
Copy Markdown
Contributor

The code looks good to me, however I have not yet gone through Docker-related files. I'll wait for the QR code thing to be resolved before approving.

@thomasbuilds

Copy link
Copy Markdown
Contributor

List of things my AI said (not verified - cherry pick if you want)

  • Restore the sacrificial SOCKS5 proxy line in NetworkAccessBlockingFactory (defense-in-depth; the main block is intact)
  • ProcessingSplash animator: running: parent.visible on the RotationAnimator resolves through the document root (Animators have no parent), so it spins forever even when hidden
  • GradientBackground strokeWidth: 0 → -1 (0 doesn't disable the stroke; default stroke color is white)
  • Leftover console.log in LanguageSidebar (lines 88, 177)
  • PortableSettings::setPortable copies from the file, racing the QML Settings ~500 ms flush; portableFilePath() is CWD-relative and uncached
  • CI: two jobs still on checkout@v1, upload-artifact name: dead under archive: false, ccache installed but never cached, NDK pinned by SHA-1
  • Cosmetic: white-theme close/minimize SVGs are dark so colorization can't tint them, InlineButton's white-theme shadow was dropped, MoneroCalendar hover overrides the selected-day highlight, QtQuickControls1 import alias is misleading

Comment thread src/qt/PortableSettings.h
Comment thread src/qt/PortableSettings.cpp Outdated
@selsta

selsta commented Jul 18, 2026

Copy link
Copy Markdown
Collaborator Author

Addressed most of the points mentioned above. Also implemented SCANNER support, was only able to test it on macOS.

Tomorrow I will try to extract a couple more changes that are not strictly Qt6 related as separate PRs.

Restore the sacrificial SOCKS5 proxy line in NetworkAccessBlockingFactory (defense-in-depth; the main block is intact)

This was intentional to reduce the amount of dependencies we need when compiling Qt.

@jpk68 jpk68 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good to me; again, I have not tested Docker-related "code" or the QR scanner functionality.

@selsta

selsta commented Jul 23, 2026

Copy link
Copy Markdown
Collaborator Author

I will have to do one more force push in the next days to make this Qt 6.8.4 ready (Qt does not offer pre-built binaries anymore due to their LTS licensing agreement with KDE), so it will require changes to CI and Docker build scripts.

Co-authored-by: malinero <malinero@protonmail.com>
Co-authored-by: auth <auth@waifu.club>
Co-authored-by: jpk68 <jpk68@tutanota.com>
@selsta

selsta commented Jul 27, 2026

Copy link
Copy Markdown
Collaborator Author

Updated Docker to 6.8.4. This should soon be merge ready unless we receive new bug reports.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Migrate to Qt 6

3 participants