> On March 16, 2014, 11:10 p.m., Matthew Dawson wrote: > > src/core/kcoreconfigskeleton.h, line 1055 > > <https://git.reviewboard.kde.org/r/116845/diff/1/?file=254551#file254551line1055> > > > > I can't find any instances (lxr.kde.org returns way too many results to > > thoroughly check) where readConfig() was overridden and I don't know why > > you would want to override it, but since some users may have anyways I'd > > prefer if read() stayed a virtual for compatibility, since it replaces > > readConfig. > > David Faure wrote: > It doesn't really replace readConfig(). We offer both: readConfig() (soon > to be renamed load()) which reloads from disk, and read() which only reads > from memory. > > I grepped my kde source code along the lines of grep Skeleton `rgrep -l > 'void.*readConfig'` and I can't find any reimplementations of readConfig() > either. I think it was back in the days of making things virtual "just in > case", like in Qt3 (which then got massively cleaned up for Qt4). We might > want to do the same. Meanwhile this confirms that read() is fine as I wrote > it.... > > If anyone needs to change behavior there's usrReadConfig() anyway - or > the virtual readConfig() in each item. So I see no point in readConfig() or > read() being virtual.
Sounds good to me. This can just be dropped. > On March 16, 2014, 11:10 p.m., Matthew Dawson wrote: > > src/core/kcoreconfigskeleton.cpp, line 989 > > <https://git.reviewboard.kde.org/r/116845/diff/1/?file=254552#file254552line989> > > > > I'd prefer to keep the same behaviour we implemented before. This > > allows for applications to make use of the optimization if they haven't > > been ported yet. > > > > It also reduces developer thought in the simple case, as they can just > > always call readConfig/loadConfig, and be ensured they get the latest > > values from disk, while avoiding an extra read off disk. That leaves the > > read() function there as an optimization for the more advanced cases. > > David Faure wrote: > Well, the apps don't need any porting if they ask kconfig_compiler to > generate a singleton for them (which calls read instead of readConfig). > If they don't use a singleton, then, well, that's what I test in "test1", > and I just debugged it, and we both missed something: > > KCoreConfigSkeleton::addItem calls item->readConfig. So the reading from > KConfig happens automatically, without the need for apps to call readConfig > at all. The singleton-generating code is just stupid, it all happens > automatically without a call to readConfig (except of course if apps wanted > to reimplement that...) > > So DelayedParsing breaks the Test1 case (constructor, no explicit call to > readConfig/read). Yay for unittests. Ah, so then we don't need to call read/readConfig at all. If that is the case, I rather revert the DelayedParsing addition, as we don't need it. The commit can be added later if necessary, without breaking BC, I believe. Can you revert it before committing this then? - Matthew ----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: https://git.reviewboard.kde.org/r/116845/#review53151 ----------------------------------------------------------- On March 17, 2014, 7:17 p.m., David Faure wrote: > > ----------------------------------------------------------- > This is an automatically generated e-mail. To reply, visit: > https://git.reviewboard.kde.org/r/116845/ > ----------------------------------------------------------- > > (Updated March 17, 2014, 7:17 p.m.) > > > Review request for KDE Frameworks and Matthew Dawson. > > > Repository: kconfig > > > Description > ------- > > Make readConfig() non-virtual anymore, it's not useful. > > Apps can reimplement usrReadConfig() or the readConfig() in every item > instead. > > Remove unnecessary debug output > > > Add KCoreConfigSkeleton::read() which doesn't call reparseConfiguration. > > Call it from generated singletons, since the constructor creates > a KConfig from a filename, which already loads from disk. > This removes the need for using DelayedParsing. > > > Diffs > ----- > > autotests/kconfig_compiler/test10.cpp.ref > 21aea9d87af5fce01e64032257283e0883af2d81 > autotests/kconfig_compiler/test1main.cpp > d7dc038d91d2f8babcd281960100d1c6fa264d7c > autotests/kconfig_compiler/test4.cpp.ref > 66d0357f114b0aca6148a2091880dd2f62fbf624 > autotests/kconfig_compiler/test4main.cpp > 8f1c1ec8d41ea123893a59526c52cdbd0b5ee075 > autotests/kconfig_compiler/test5.cpp.ref > 088cc78f4dc96a719628ece342e149553c1d22aa > autotests/kconfig_compiler/test8b.cpp.ref > dcd61693ff86f02eaeb93b4c4da9e6ed20463469 > autotests/kconfig_compiler/test_dpointer.cpp.ref > e50bf8aa29a2d009c4156dabf429c3ffb74eb7ba > autotests/kconfig_compiler/test_signal.cpp.ref > 35b5cba2736761753d1ba32baa6f9fc2e7808ba1 > autotests/kconfigskeletontest.cpp 31278e767655f7e3d25a4ed9984345e8c4e67d82 > src/core/kcoreconfigskeleton.h a2b828a4ef3f881b551049901d4bc26bb23a014b > src/core/kcoreconfigskeleton.cpp 0c1a96faaa9c511d349a26ad8af4b7b2c9bf313e > src/kconfig_compiler/kconfig_compiler.cpp > 7d84cfbc28b1648ca999116726455183d88a7f0a > > Diff: https://git.reviewboard.kde.org/r/116845/diff/ > > > Testing > ------- > > Added two unittests (which is how I discovered I had to remove > DelayedParsing, so the tests were useful). > > The "bool ok + qWarning" thing is a bit clumsy, maybe we want to port these > main() to qtestlib too, even though they are themselves executed by a > unittest :-) > > > Thanks, > > David Faure > >
_______________________________________________ Kde-frameworks-devel mailing list Kde-frameworks-devel@kde.org https://mail.kde.org/mailman/listinfo/kde-frameworks-devel