KParts and the Qt5->Qt6 transition
Nicolas Fella
nicolas.fella at gmx.de
Tue Jan 23 15:30:43 GMT 2024
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
>
More information about the kde-devel
mailing list