<html>
<body>
<div style="font-family: Verdana, Arial, Helvetica, Sans-Serif;">
<table bgcolor="#f9f3c9" width="100%" cellpadding="8" style="border: 1px #c9c399 solid;">
<tr>
<td>
This is an automatically generated e-mail. To reply, visit:
<a href="http://git.reviewboard.kde.org/r/111908/">http://git.reviewboard.kde.org/r/111908/</a>
</td>
</tr>
</table>
<br />
<blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
<p style="margin-top: 0;">On August 7th, 2013, 3:41 p.m. UTC, <b>David Faure</b> wrote:</p>
<blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
<table width="100%" border="0" bgcolor="white" style="border: 1px solid #C0C0C0; border-collapse: collapse; margin: 2px padding: 2px;">
<thead>
<tr>
<th colspan="4" bgcolor="#F0F0F0" style="border-bottom: 1px solid #C0C0C0; font-size: 9pt; padding: 4px 8px; text-align: left;">
<a href="http://git.reviewboard.kde.org/r/111908/diff/1/?file=176357#file176357line56" style="color: black; font-weight: bold; text-decoration: underline;">tier1/kconfig/autotests/kconfigloadertest.cpp</a>
<span style="font-weight: normal;">
(Diff revision 1)
</span>
</th>
</tr>
</thead>
<tbody>
<tr>
<th bgcolor="#b1ebb0" style="border-right: 1px solid #C0C0C0;" align="right"><font size="2"></font></th>
<td bgcolor="#c5ffc4" width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; "></pre></td>
<th bgcolor="#b1ebb0" style="border-left: 1px solid #C0C0C0; border-right: 1px solid #C0C0C0;" align="right"><font size="2">56</font></th>
<td bgcolor="#c5ffc4" width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; "> <span class="n">GET_CONFIG_ITEM_VALUE</span><span class="p">(</span><span class="n">KCoreConfigSkeleton</span><span class="o">::</span><span class="n">ItemBool</span><span class="o">*</span><span class="p">,</span> <span class="s">"DefaultBoolItem"</span><span class="p">);</span></pre></td>
</tr>
</tbody>
</table>
<pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">I have trouble understanding the purpose of this class. How is this different from
QCOMPARE(configGroup.readEntry("DefaultBoolItem", true), true);
?
OK the one difference is that the default value comes from the XML file instead of coming from the code, but apart from that?
KConfigXT's entire purpose was to make things statically checked (compile-time), on top of the dynamic (string-based) KConfig. And now this is another layer on top, which makes things dynamic (string-based) again? I'm confused :-)
Ah, is this actually only about introspecting KConfigXT xml files, to extract the defaults from it? But what would be the purpose of that? (isn't this accessible in the KConfigXT-generated code too?)
Please expand the class documentation to make it clear for dummies like me, what is the actual purpose of the class, and in which case it should be used.
</pre>
</blockquote>
<p>On August 8th, 2013, 4:58 a.m. UTC, <b>Martin Gräßlin</b> wrote:</p>
<blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
<pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">I think it's best explained to think of cases where you don't have any code in the first place. Examples are plasmoids or KWin scripts which just ship a kconfigxt file and a ui file and with the help of the KConfigLoader we are able to provide a working config interface dynamically loaded.
@Aaron: do you have a suggestion on how to improve the documentation?</pre>
</blockquote>
</blockquote>
<pre style="margin-left: 1em; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">Ah, GUI generation, I see. A bit like KConfigDialog then, but you separated the parsing and the UI generation, and you don't need the compile-time generated KCoreConfigSkeleton).
So I was wrong, it's not on top of the KConfigXT-generated code, it's instead of that.
It just seems to me that KConfigLoader alone isn't really useful, but OK, it's a component in the overall architecture.
It definitely needs documentation about what it can be used for, and how.</pre>
<br />
<p>- David</p>
<br />
<p>On August 8th, 2013, 4:58 a.m. UTC, Martin Gräßlin wrote:</p>
<table bgcolor="#fefadf" width="100%" cellspacing="0" cellpadding="8" style="background-image: url('http://git.reviewboard.kde.org/static/rb/images/review_request_box_top_bg.ab6f3b1072c9.png'); background-position: left top; background-repeat: repeat-x; border: 1px black solid;">
<tr>
<td>
<div>Review request for KDE Frameworks, Plasma and Aaron J. Seigo.</div>
<div>By Martin Gräßlin.</div>
<p style="color: grey;"><i>Updated Aug. 8, 2013, 4:58 a.m.</i></p>
<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Description </h1>
<table width="100%" bgcolor="#ffffff" cellspacing="0" cellpadding="10" style="border: 1px solid #b8b5a0">
<tr>
<td>
<pre style="margin: 0; padding: 0; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">Add KConfigLoader from Plasma Framework to KConfigGui
The ConfigLoader is way to awesome to not be directly in KConfig.</pre>
</td>
</tr>
</table>
<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Diffs</b> </h1>
<ul style="margin-left: 3em; padding-left: 0;">
<li>tier1/kconfig/autotests/CMakeLists.txt <span style="color: grey">(PRE-CREATION)</span></li>
<li>tier1/kconfig/autotests/kconfigloadertest.h <span style="color: grey">(PRE-CREATION)</span></li>
<li>tier1/kconfig/autotests/kconfigloadertest.cpp <span style="color: grey">(PRE-CREATION)</span></li>
<li>tier1/kconfig/autotests/kconfigloadertest.xml <span style="color: grey">(PRE-CREATION)</span></li>
<li>tier1/kconfig/src/gui/CMakeLists.txt <span style="color: grey">(PRE-CREATION)</span></li>
<li>tier1/kconfig/src/gui/kconfigloader.h <span style="color: grey">(PRE-CREATION)</span></li>
<li>tier1/kconfig/src/gui/kconfigloader.cpp <span style="color: grey">(PRE-CREATION)</span></li>
<li>tier1/kconfig/src/gui/kconfigloader_p.h <span style="color: grey">(PRE-CREATION)</span></li>
<li>tier1/kconfig/src/gui/kconfigloaderhandler_p.h <span style="color: grey">(PRE-CREATION)</span></li>
</ul>
<p><a href="http://git.reviewboard.kde.org/r/111908/diff/" style="margin-left: 3em;">View Diff</a></p>
</td>
</tr>
</table>
</div>
</body>
</html>