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

use new in Qt6.8 windows fluent style #7416

Merged
merged 6 commits into from
Jan 27, 2025
Merged

Conversation

mgallien
Copy link
Collaborator

No description provided.

@mgallien
Copy link
Collaborator Author

image

@mgallien
Copy link
Collaborator Author

image
on windows 11 with dark mode

@claucambra claucambra added this to the 3.14.4 milestone Oct 28, 2024
@claucambra claucambra force-pushed the feature/windowsQmlStyleFluent branch from df467f7 to 72c7217 Compare October 28, 2024 06:29
@mgallien mgallien force-pushed the feature/windowsQmlStyleFluent branch from 72c7217 to 07daf46 Compare October 31, 2024 13:10
@claucambra claucambra force-pushed the feature/windowsQmlStyleFluent branch from 07daf46 to 96eb414 Compare November 3, 2024 01:23
@claucambra claucambra modified the milestones: 3.14.4, 3.14.5 Nov 3, 2024
Copy link

sonarqubecloud bot commented Nov 3, 2024

Copy link
Collaborator

@claucambra claucambra left a comment

Choose a reason for hiding this comment

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

We need to check for the Qt version being at least 6.8

@Rello Rello modified the milestones: 3.14.5, 3.15.0 Nov 11, 2024
@claucambra claucambra modified the milestones: 3.15.0, 3.16.0 Nov 18, 2024
@nextcloud nextcloud deleted a comment from claucambra Nov 29, 2024
@mgallien mgallien force-pushed the feature/windowsQmlStyleFluent branch from 96eb414 to e9e639b Compare December 3, 2024 17:09
@mgallien
Copy link
Collaborator Author

mgallien commented Dec 4, 2024

for people wanting to test, here is a build of this branch https://cloud.nextcloud.com/s/oT8mypQmQn9gPDc
keep it for testing only please

@mgallien
Copy link
Collaborator Author

mgallien commented Dec 4, 2024

there are a couple of small issues
see
image

@mgallien mgallien force-pushed the feature/windowsQmlStyleFluent branch 2 times, most recently from 3fa9632 to 1964dd5 Compare December 20, 2024 15:36
@Rello
Copy link
Contributor

Rello commented Jan 2, 2025

@nilsding

@Rello Rello requested a review from nilsding January 2, 2025 09:10
@nilsding nilsding force-pushed the feature/windowsQmlStyleFluent branch from 795c739 to a47f18f Compare January 3, 2025 10:27
@nilsding
Copy link
Member

nilsding commented Jan 3, 2025

@mgallien the transparency in light mode is gone now:

Screenshot_20250103_111247

I also tried to make the background have some extra blur (like you'd see in the background of the start menu), but I couldn't get it to work right with the Rectangle border :/ maybe something to revisit later.

@mgallien mgallien force-pushed the feature/windowsQmlStyleFluent branch from e8dbb74 to ed557f6 Compare January 15, 2025 11:51
@mgallien mgallien force-pushed the feature/windowsQmlStyleFluent branch from ed557f6 to 74a922f Compare January 23, 2025 10:26
@mgallien mgallien requested a review from claucambra January 23, 2025 10:28
@mgallien
Copy link
Collaborator Author

We need to check for the Qt version being at least 6.8

@claucambra this is now being done and the build should work fine on all platforms

@mgallien mgallien force-pushed the feature/windowsQmlStyleFluent branch from 74a922f to b95ca11 Compare January 23, 2025 12:24
@nextcloud-desktop-bot
Copy link

AppImage file: nextcloud-PR-7416-b95ca11bb2d85a0f25bf8e240a08f0d4eebfba86-x86_64.AppImage

To test this change/fix you can simply download above AppImage file and test it.

Please make sure to quit your existing Nextcloud app and backup your data.

@mgallien mgallien force-pushed the feature/windowsQmlStyleFluent branch from b95ca11 to 7c03ce3 Compare January 24, 2025 08:42
@mgallien
Copy link
Collaborator Author

@ivaradi I am not sure if had seen that
we are going to merge this very soon in master branch and the next release will require at least Qt 6.8.0

@ivaradi
Copy link
Contributor

ivaradi commented Jan 24, 2025

@ivaradi I am not sure if had seen that we are going to merge this very soon in master branch and the next release will require at least Qt 6.8.0

Well, the current stable version requires 6.7.0, so it is already being patched for almost all distributions (even Oracular contains only Qt 6.6). So I have started to work on providing a few extra packages containing Qt 6.8.0 and the required KDE Frameworks libraries, installing the files under /opt to avoid any clash with the existing Qt packages.

Another way would be to recompile the newer versions of the Qt and KDE Frameworks packages for these older distributions, but there is a large number of them, and I am not sure what problems it would cause for the other Qt-based applications or on KDE-based systems.

So it is perhaps better to provide Qt 6.8.0 in an isolated manner, though I am not sure what advantage the native packages have over the AppImage version then... Maybe only the file manager plugins.

@mgallien
Copy link
Collaborator Author

mgallien commented Jan 24, 2025

@ivaradi I am not sure if had seen that we are going to merge this very soon in master branch and the next release will require at least Qt 6.8.0

Well, the current stable version requires 6.7.0, so it is already being patched for almost all distributions (even Oracular contains only Qt 6.6). So I have started to work on providing a few extra packages containing Qt 6.8.0 and the required KDE Frameworks libraries, installing the files under /opt to avoid any clash with the existing Qt packages.

Another way would be to recompile the newer versions of the Qt and KDE Frameworks packages for these older distributions, but there is a large number of them, and I am not sure what problems it would cause for the other Qt-based applications or on KDE-based systems.

So it is perhaps better to provide Qt 6.8.0 in an isolated manner, though I am not sure what advantage the native packages have over the AppImage version then... Maybe only the file manager plugins.

I am very sorry if you feel like we do not care.
This is really the opposite and I think your packages are being used and valued by many people including some of my colleagues.
We did not wanted to have different Qt minimum required versions on different platforms. I feel like it would be fine to patch this in your packaging work. We only really need it on Windows for the new Windows 11 style

Your packages provide a much better integration with the user's system including app menu and files explorer integration. We are currently unable to provide this with the AppImage. This is something that we find very valuable and I cannot say thank you enough for your contributions.
I know that finding time to contribute is not something easy and I would really want to say thank you again

@mgallien mgallien force-pushed the feature/windowsQmlStyleFluent branch from 7c03ce3 to f7d3901 Compare January 24, 2025 10:13
@ivaradi
Copy link
Contributor

ivaradi commented Jan 24, 2025

@ivaradi I am not sure if had seen that we are going to merge this very soon in master branch and the next release will require at least Qt 6.8.0

Well, the current stable version requires 6.7.0, so it is already being patched for almost all distributions (even Oracular contains only Qt 6.6). So I have started to work on providing a few extra packages containing Qt 6.8.0 and the required KDE Frameworks libraries, installing the files under /opt to avoid any clash with the existing Qt packages.
Another way would be to recompile the newer versions of the Qt and KDE Frameworks packages for these older distributions, but there is a large number of them, and I am not sure what problems it would cause for the other Qt-based applications or on KDE-based systems.
So it is perhaps better to provide Qt 6.8.0 in an isolated manner, though I am not sure what advantage the native packages have over the AppImage version then... Maybe only the file manager plugins.

I am very sorry if you feel like we do not care. This is really the opposite and I think your packages are being used and valued by many people including some of my colleagues. We did not wanted to have different Qt minimum required versions on different platforms. I feel like it would be fine to patch this in your packaging work. We only really need it on Windows for the new Windows 11 style

Your packages provide a much better integration with the user's system including app menu and files explorer integration. We are currently unable to provide this with the AppImage. This is something that we find very valuable and I cannot say thank you enough for your contributions. I know that finding time to contribute is not something easy and I would really want to say thank you again

Thank you for appreciating my work, I did not mean to imply that I feel you do not care. I assume you have your reasons for requiring a certain minimum version of Qt.

However, the patches are not simply about changing the required Qt version in the CMakeLists.txt file, but some parts of the code, that are used under Linux, also use newer APIs that are not present in the earlier versions (Jammy has Qt 6.2, Noble has Qt 6.4), and I am not even sure some of the fixes I made, even if they compile, really work as they should (I am a software developer, but not much familiar with Qt.), though no one seems to complain about them. This is why I thought having a recent version of Qt to build with instead of having to maintain the patches is easier.

That said, I think it would be the best if you could ensure that the code compiles with earlier versions of Qt6 as well, at the price of certain, possibly rather special features not being available with earlier Qt versions. I know that in some instances it may require #ifdef's, which is not really elegant, though maybe with some conditional template programming this could be avoided.

src/gui/main.cpp Outdated Show resolved Hide resolved
mgallien and others added 6 commits January 27, 2025 10:03
Signed-off-by: Matthieu Gallien <[email protected]>
For some reason Windows11 has some transparency in the system colours
which makes reading drawers difficult

Signed-off-by: Jyrki Gadinger <[email protected]>
Signed-off-by: Matthieu Gallien <[email protected]>
use Universal qmt style on windows release before windows 11 then use
FluentWinUI3 which should fit with default windows 11 native style

Signed-off-by: Matthieu Gallien <[email protected]>
@mgallien mgallien force-pushed the feature/windowsQmlStyleFluent branch from f7d3901 to 21c2407 Compare January 27, 2025 09:07
Copy link

Artifact containing the AppImage: nextcloud-appimage-pr-7416.zip

SHA256 checksum: 0671259efb15ae670a89ab8f756b775ebd241086a2a0bad5b548bdf488cee50c

To test this change/fix you can download the above artifact file, unzip it, and run it.

Please make sure to quit your existing Nextcloud app and backup your data.

Copy link

Quality Gate Failed Quality Gate failed

Failed conditions
1 New Code Smells (required ≤ 0)
B Maintainability Rating on New Code (required ≥ A)

See analysis details on SonarQube Cloud

Catch issues before they fail your Quality Gate with our IDE extension SonarQube for IDE

@mgallien mgallien merged commit 53bf28e into master Jan 27, 2025
13 of 17 checks passed
@mgallien mgallien deleted the feature/windowsQmlStyleFluent branch January 27, 2025 10:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Status: ☑️ Done
Development

Successfully merging this pull request may close these issues.

6 participants