Skip to content

KStandardAction: return name as QString, store as QString-compat raw data

Most API consumers of KStandardAction::name(id) use the returned value with QString type needing code, and thus convert it to a QString, with all the overhead.

Storing the data QString-compatible and directly returning a QString instance spares the extra code needed to convert as well as the runtime paper cut costs.

API breaking change: given only the return type is changed here and there are no versions currently changing to do any deprecation tricks with overloading with a dummy argument, this change will result in some breakages while being rolled out.

Not too many users out there though (https://lxr.kde.org/search?v=kf6-qt6&_string=KStandardAction%3A%3Aname&_filestring=&_advanced=&_casesensitive=1), and some seem to still use Qt's auto-from-ascii-casting, so breakage might not that large.

If approved, would also do respective MRs for at least a number of the affected repos, the remaining should be simple to fix and not annoy people too much here.

Ideally kxmlgui!198 (merged) lands before, as some consumers of KStandardAction::name use it with KXMLGUIClient::action(name), so having the QString type for name supported will avoid intermediate solutions when adapting to this API change.

Edited by Friedrich W. H. Kossebau

Merge request reports