Kleopatra: Make KXmlGui optional
Closed, ResolvedPublic

Description

KXmlGui pulls in KService and KGlobalAccel. http://api.kde.org/frameworks-api/frameworks5-apidocs/kxmlgui/html/kxmlgui-dependencies.html

My current plan to make it optional:

  • Centralize creation of KActionCollection creation and only do this if Xmlgui is available. Otherwise only work with QActions.
  • Add an own implementation of KAboutApplication (copy from XMLGui?)
  • Restore / Save Window state with Qt only methods.
  • Drop support for configurable toolbars. Maybe configurable shortcuts in the first step, too.
  • Create Qt menu from the kleopatra.rc file.
  • Mark it as optional in the CMakeList with a strong recommendation to packagers to include it.
aheinecke moved this task from Backlog to In Progress on the KDE PIM board.Jan 26 2016, 12:51 PM

Not sure anymore that this is the right way to go. I've locally made XMLGui optional and it was less invasive as imagined but well It's now missing lots of functionality. Apart from the menu, configurable toolbars / shortcuts it's also the Language switching, about dialogs, window state saving and bug report integration. Basically this is all something we want and there is little we don't want in XMLGui

What we don't want from KXmlGui is Global Shortcuts (afaik they never worked on Windows) and Text Editors with KService integration.

So the better approach might be to make GlobalAccel, DBus and TextWidgets optional in XMLGui. I'll take a look at that now.

Making things optional in XMLGui was nicely possible without having to break API/ABI. So this appears to be the better approach.

I'm adding the patches here for now so I can link the complete series from reviewboard:

aheinecke closed this task as Resolved.Jan 28 2016, 6:25 PM

KXmlGui is now part of Gpg4win so this issue is resolved for me.

All patches needed for this can be found at:
http://git.gnupg.org/cgi-bin/gitweb.cgi?p=gpg4win.git;a=tree;f=patches;h=d5ac887c3d61952930e2d4a83a048b1dfb3fbc2f;hb=refs/heads/kleo-kf5

I'm hoping to get most of them upstream. Additionaly to the three patches I've disabled building ksendbugmail as it depends on Qt with SSL support which we don't want.
In ConfigWidgets I've made dbus optional and added a hack (I saw no clean way to avoid API Breakage for KCModule) to remove the KAuth dependency.
In Kiconthemes I've also made dbus optional.

knauss moved this task from In Progress to Done on the KDE PIM board.Apr 21 2018, 4:56 PM