K4AboutData
David Faure
faure at kde.org
Sun Nov 24 18:42:50 UTC 2013
Hi Stephen,
as promised I had another look at the KAboutData vs K4AboutData situation,
in order to attempt to minimize the SIC.
Context:
KCmdLineArgs uses K4AboutData rather than KAboutData: K4AboutData keeps the
old mechanism for delayed translations (I18N_NOOP), while KAboutData is the
one used by plugins, which can use immediate translation (i18n).
Problem:
Existing code needs a s/KAboutData/K4AboutData/ as the very very first porting
step.
Half-solution:
KAboutData could be renamed KAboutInfo, so that K4AboutData can become
KAboutData again.
However, for consistency this means renaming methods like setAboutData() to
setAboutInfo(), which already creates more porting work further down the line.
And worse, there are other classes like KAboutPerson and KAboutLicense which
still need a solution in order to not clash between the deprecated versions
working with KLocalizedString and the new versions working with QString.
Conclusion:
I think it's a lot simpler to keep things as is, and run a very simple perl or
sed script as the first step when porting new code. I can provide it, but I'm
sure you wrote it already :)
Note that kde-dev-scripts/kf5 has a few porting scripts already, I can add it
there of course.
I can see how the compiler error message might confuse people, which is
exactly why it should really in the documented steps for porting to kf5 rather
than letting people discover the error from gcc.
--
David Faure, faure at kde.org, http://www.davidfaure.fr
Working on KDE, in particular KDE Frameworks 5
More information about the Kde-frameworks-devel
mailing list