Hi, as an update for where we are right now:
On 12/6/23 21:51, Nicolas Fella wrote:
Hi, the transition of many apps to Qt6 provides some challenges for apps producing and consuming KParts. KParts are implemented as Qt plugins and as such are specific to the Qt version they are built against. In other words, a KPart built against Qt5 cannot be loaded by an app using Qt6 and vice versa. Since some parts are used by a variety of apps this is causing problems. When we last discussed this problem the consensus was "Port as many things as possible and see where we are at then". Now we are approaching a point where we need to take stock and decide what to do. There's several cases to consider: 1) Applications using their own parts without external users. This happens in PIM where e.g. kmailpart is only used by KMail and Kontact. No problem here 2) Applications loading specific parts from other applications. These are easy enough to search for. We have the following cases: konsolepart (Konsole master is Qt6 only) is used by: - kdevelop (no Qt6 port)
Qt6 port is in progress, but not finished: https://invent.kde.org/kdevelop/kdevelop/-/merge_requests/522
- konversation (MR with Qt6 port available)
Meanwhile ported to Qt6
- kile (no Qt6 port)
There is a MR to port: https://invent.kde.org/office/kile/-/merge_requests/60
- Dolphin (already using Qt6) - Kate (already using Qt6) - Okteta (Q6 port available)
Unchanged as far as I can tell
- Yakuake (already using Qt6) - Krusader (no Qt6 port)
Small steps towards a port, but still a lot of work
- Hotspot (extenal, Qt6 port available) okularpart (Okular is in the process of getting ported):
Okular is meanwhile ported
- kile (no Qt6 port)
See above
- kbibtex (no Qt6 port)
Builds with Qt6 meanwhile
dolphinpart (Dolphin is using Qt6): - konqueror (already using Qt6) katepart (available for both Qt5 and Qt6): - kompare (Qt6 branch available) kgraphviewerpart (not using Qt6):
No change
- hotspot (external, Qt6 port available) We do have two options for how to deal with these: a) Port and release all relevant consumers of a given part at the same time b) Make sure the part is available for both Qt versions 3) There's a number of "general-purpose file type" parts that aren't loaded explicitly but based on their mime type. Examples include gwenviewpart, svgpart, markdownpart, okularpart. There's a number of applications consuming those: - Ark for file preview (Qt6 port available but not default yet)
Meanwhile using Qt6
- Kate for file preview (Qt6-only) - Konqueror - Krusader - KBibTex Here we would ideally have as many as possible available for both Qt version (as long as we have Qt5-based KParts-consuming software). However in cases like Ark the loss of functionality by not having specific parts available would not be catastrophic. Cheers Nico