From Fedora Project Wiki
(add release note ticket)
 
(19 intermediate revisions by 3 users not shown)
Line 1: Line 1:
= No custom Qt theming for Fedora Workstation <!-- The name of your change proposal --> =
= No custom Qt theming for Fedora Workstation <!-- The name of your change proposal --> =
{{Change_Proposal_Banner}}


== Summary ==
== Summary ==
Line 19: Line 17:


== Current status ==
== Current status ==
[[Category:ChangePageIncomplete]]
[[Category:ChangeAcceptedF39]]
<!-- When your change proposal page is completed and ready for review and announcement -->
<!-- When your change proposal page is completed and ready for review and announcement -->
<!-- remove Category:ChangePageIncomplete and change it to Category:ChangeReadyForWrangler -->
<!-- remove Category:ChangePageIncomplete and change it to Category:ChangeReadyForWrangler -->
Line 37: Line 35:
ON_QA -> change is fully code complete
ON_QA -> change is fully code complete
-->
-->
* [<will be assigned by the Wrangler> devel thread]
* [https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/thread/6Q5GCO67X5N5D7RKVS4QIPGH25LN5ULE/ devel thread]
* FESCo issue: <will be assigned by the Wrangler>
* FESCo issue: [https://pagure.io/fesco/issue/3025 #3025]
* Tracker bug: <will be assigned by the Wrangler>
* Tracker bug: [https://bugzilla.redhat.com/show_bug.cgi?id=2233235 #2233235]
* Release notes tracker: <will be assigned by the Wrangler>
* Release notes tracker: [https://pagure.io/fedora-docs/release-notes/issue/1015 #1015]


== Detailed Description ==
== Detailed Description ==
[https://github.com/FedoraQt/QGnomePlatform QGnomePlatform] project is a Qt Platform Theme plugin. It reads GNOME configuration, like fonts or icons and applies this configuration to Qt applications. It also provides implementation of Client-Side Window Decorations or native dialogs. This project partially overlaps with Qt's default GTK Platform Theme plugin, but there are some additions that are existing only in QGnomePlatform, like Client-Side Window Decorations.
[https://github.com/FedoraQt/QGnomePlatform QGnomePlatform] project is a Qt Platform Theme plugin. It reads GNOME configuration, like fonts or icons and applies this configuration to Qt applications. It also provides implementation of Client-Side Window Decorations or native dialogs. This project partially overlaps with Qt's default GTK Platform Theme plugin, but there are some additions that are existing only in QGnomePlatform, like Client-Side Window Decorations.


[https://github.com/FedoraQt/adwaita-qt Adwaita-qt] project is a Qt Style plugin. It implements widget styling (e.g. buttons, checkboxes) to match GNOME's Adwaita style. There is no equivalent of such style in Qt, but given the complexity of Qt Style plugins, this project is now outdated and doesn't match the current Adwaita (GTK4) style. It is also for the most of the issues users are facing while using our custom styling.
[https://github.com/FedoraQt/adwaita-qt Adwaita-qt] project is a Qt Style plugin. It implements widget styling (e.g. buttons, checkboxes) to match GNOME's Adwaita style. There is no equivalent of such style in Qt, but given the complexity of Qt Style plugins, this project is now outdated and doesn't match the current Adwaita (GTK4) style. It is also responsible for the most of the issues users are facing while using our custom styling.


Some additional information about these projects and issues:
Some additional information about these projects and issues:
Line 59: Line 57:


== Benefit to Fedora ==
== Benefit to Fedora ==
We will be using more reliable and tested Qt theming/styling instead of our custom solution, which is only used by Fedora Workstation. This brings us more to upstream with upstream support for theming and styling issues. This will eliminate all the issues our users have been experiencing in the past when using Qt applications on Fedora Workstation.
We will be using more reliable and tested Qt theming/styling instead of our custom solution, which is only used by Fedora Workstation. This brings us closer to upstream with benefit of upstream support for theming and styling issues. This will also eliminate all the issues our users have been experiencing in the past when using Qt applications with Adwaita-qt style on Fedora Workstation.


<!-- What is the benefit to the distribution?  Will the software we generate be improved? How will the process of creating Fedora releases be improved?
<!-- What is the benefit to the distribution?  Will the software we generate be improved? How will the process of creating Fedora releases be improved?
Line 89: Line 87:
-->
-->
== Scope ==
== Scope ==
* Proposal owners: Drop QGnomePlatform and Adwaita-qt from Fedora Workstation compose. Drop our custom patches making Qt to use QGnomePlatform by default. Upstream some of the QGnomePlatform features to Qt upstream and backport to Fedora packages to avoid waiting for Qt release, which in case of Qt5 is not going to happen anyway.
* Proposal owners:
# Drop QGnomePlatform and Adwaita-qt from Fedora Workstation compose.
# Drop our custom patches making Qt to use QGnomePlatform by default.
# Upstream some of the QGnomePlatform features to Qt upstream and backport them to Fedora packages (until released upstream).
 
<!-- What work do the feature owners have to accomplish to complete the feature in time for release?  Is it a large change affecting many parts of the distribution or is it a very isolated change? What are those changes?-->
<!-- What work do the feature owners have to accomplish to complete the feature in time for release?  Is it a large change affecting many parts of the distribution or is it a very isolated change? What are those changes?-->
 
* Other developers: [OPTIONAL] Packagers blacklisting either QGnomePlatform or Adwaita-qt in their packages can stop doing that.
* Other developers: <!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
<!-- What work do other developers have to accomplish to complete the feature in time for release?  Is it a large change affecting many parts of the distribution or is it a very isolated change? What are those changes?-->
<!-- What work do other developers have to accomplish to complete the feature in time for release?  Is it a large change affecting many parts of the distribution or is it a very isolated change? What are those changes?-->


Line 109: Line 110:


== Upgrade/compatibility impact ==
== Upgrade/compatibility impact ==
We will make QGnomePlatform to not be used by default even when installed. Users will still be able to use it by using a Qt env variable or passing an option specifying what platform theme should be used. For this reason there shouldn't be any extra work needed to be done by the users who upgraded to Fedora 39.
<!-- What happens to systems that have had a previous versions of Fedora installed and are updated to the version containing this change? Will anything require manual configuration or data migration? Will any existing functionality be no longer supported? -->
<!-- What happens to systems that have had a previous versions of Fedora installed and are updated to the version containing this change? Will anything require manual configuration or data migration? Will any existing functionality be no longer supported? -->


<!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
<!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
== How To Test ==
== How To Test ==
Use Qt apps the normal way as before and check if everything works as expected and there are no issues running Qt apps on Fedora Workstation.  
Use Qt apps the normal way as before and check if everything works as expected and there are no issues running Qt apps on Fedora Workstation.  
Qt apps running on Fedora Workstation should have native Client-Side Window Decorations, native dialogs (e.g. FileDialog) and use icon theme, fonts etc. you have configured on your system.
Qt apps running on Fedora Workstation should:
* Use native Client-Side Window Decorations
* Use native dialogs (e.g. FileDialog)
* Use icon theme, fonts etc. you have configured on your system.
<!-- This does not need to be a full-fledged document. Describe the dimensions of tests that this change implementation is expected to pass when it is done.  If it needs to be tested with different hardware or software configurations, indicate them.  The more specific you can be, the better the community testing can be.  
<!-- This does not need to be a full-fledged document. Describe the dimensions of tests that this change implementation is expected to pass when it is done.  If it needs to be tested with different hardware or software configurations, indicate them.  The more specific you can be, the better the community testing can be.  


Line 129: Line 133:
3. What are the expected results of those actions?
3. What are the expected results of those actions?
-->
-->
<!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
<!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
== User Experience ==
== User Experience ==
The user experience should remain the same or be actually better in case Qt apps they were using were not working properly with QGnomePlatform or Adwaita-qt.
<!-- If this change proposal is noticeable by users, how will their experiences change as a result?
<!-- If this change proposal is noticeable by users, how will their experiences change as a result?



Latest revision as of 23:41, 28 September 2023

No custom Qt theming for Fedora Workstation

Summary

Fedora Workstation has been using QGnomePlatform and Adwaita-qt projects to apply GNOME-like configuration and styling to Qt applications to match the environment. These projects are now in a state where they are outdated and semi-occasionally broken for some applications and it would be better to default to what Qt upstream has to offer.

Owner

Current status

Detailed Description

QGnomePlatform project is a Qt Platform Theme plugin. It reads GNOME configuration, like fonts or icons and applies this configuration to Qt applications. It also provides implementation of Client-Side Window Decorations or native dialogs. This project partially overlaps with Qt's default GTK Platform Theme plugin, but there are some additions that are existing only in QGnomePlatform, like Client-Side Window Decorations.

Adwaita-qt project is a Qt Style plugin. It implements widget styling (e.g. buttons, checkboxes) to match GNOME's Adwaita style. There is no equivalent of such style in Qt, but given the complexity of Qt Style plugins, this project is now outdated and doesn't match the current Adwaita (GTK4) style. It is also responsible for the most of the issues users are facing while using our custom styling.

Some additional information about these projects and issues:

With this change we would like to stop shipping and using these projects by default on Fedora Workstation and default to Qt default theming and styling. Also, because the GTK Platform Theme in Qt doesn't support everything we have support for in QGnomePlatform, we would like to contribute it to Qt instead. With this work, there shouldn't be any drawbacks when using Qt's GTK Platform Theme and we believe we would even get broader usage and more contributors for things like Client-Side Window Decorations. For Adwaita-qt replacement, we would default to Fusion style or possibly to Breeze style for KDE apps. Both styles have benefit of active upstream and broader usage than our custom style that is only used by Fedora Workstation and not tested by developers.

Feedback

Benefit to Fedora

We will be using more reliable and tested Qt theming/styling instead of our custom solution, which is only used by Fedora Workstation. This brings us closer to upstream with benefit of upstream support for theming and styling issues. This will also eliminate all the issues our users have been experiencing in the past when using Qt applications with Adwaita-qt style on Fedora Workstation.

Scope

  • Proposal owners:
  1. Drop QGnomePlatform and Adwaita-qt from Fedora Workstation compose.
  2. Drop our custom patches making Qt to use QGnomePlatform by default.
  3. Upstream some of the QGnomePlatform features to Qt upstream and backport them to Fedora packages (until released upstream).
  • Other developers: [OPTIONAL] Packagers blacklisting either QGnomePlatform or Adwaita-qt in their packages can stop doing that.
  • Policies and guidelines: N/A (not needed for this Change)
  • Trademark approval: N/A (not needed for this Change)
  • Alignment with Community Initiatives:

Upgrade/compatibility impact

We will make QGnomePlatform to not be used by default even when installed. Users will still be able to use it by using a Qt env variable or passing an option specifying what platform theme should be used. For this reason there shouldn't be any extra work needed to be done by the users who upgraded to Fedora 39.

How To Test

Use Qt apps the normal way as before and check if everything works as expected and there are no issues running Qt apps on Fedora Workstation. Qt apps running on Fedora Workstation should:

  • Use native Client-Side Window Decorations
  • Use native dialogs (e.g. FileDialog)
  • Use icon theme, fonts etc. you have configured on your system.

User Experience

The user experience should remain the same or be actually better in case Qt apps they were using were not working properly with QGnomePlatform or Adwaita-qt.

Dependencies

Contingency Plan

  • Contingency mechanism: (What to do? Who will do it?) N/A (not a System Wide Change)
  • Contingency deadline: N/A (not a System Wide Change)
  • Blocks release? N/A (not a System Wide Change), Yes/No


Documentation

N/A (not a System Wide Change)

Release Notes