<table><tr><td style="">dfaure added a comment.
</td><a style="text-decoration: none; padding: 4px 8px; margin: 0 8px 8px; float: right; color: #464C5C; font-weight: bold; border-radius: 3px; background-color: #F7F7F9; background-image: linear-gradient(to bottom,#fff,#f1f0f1); display: inline-block; border: 1px solid rgba(71,87,120,.2);" href="https://phabricator.kde.org/D28128">View Revision</a></tr></table><br /><div><div><p>I did some debugging.</p>

<p>e.bForceSave is set to true at the time of doing the writeEntry("testRestore", "restore") -- or if I split this and create another KConfig instance (I thought this would fail...) it is then set while loading the file (good).</p>

<p>The naming of that bool sounds weird though, because it sounds like it might force saving in cases where we don't want that.</p>

<p>But in fact this bool is only used when reverting. So it should be renamed to something like bRevertShouldSave or bSaveWhenReverting. It has no effect on "normal saving".<br />
Or maybe it should be called based on what we know at the time of parsing, rather than on what it's going to be used for. Something like bOverridesGlobal?</p>

<p>Sorry to nitpick on naming, but I think the patch would make a lot more sense, and the next reader would be much less confused by all this.</p>

<p>Also, what happens if both kdeglobals and the local file have the same value? Should there be a e.mValue != value check after <tt style="background: #ebebeb; font-size: 13px;">e = *it</tt>? In fact, the new code could move there since this can only happen if we *found* an existing entry, no? The test passes for me with <a href="http://www.davidfaure.fr/2020/moved.diff" class="remarkup-link" target="_blank" rel="noreferrer">http://www.davidfaure.fr/2020/moved.diff</a></p></div></div><br /><div><strong>INLINE COMMENTS</strong><div><div style="margin: 6px 0 12px 0;"><div style="border: 1px solid #C7CCD9; border-radius: 3px;"><div style="padding: 0; background: #F7F7F7; border-color: #e3e4e8; border-style: solid; border-width: 0 0 1px 0; margin: 0;"><div style="color: #74777d; background: #eff2f4; padding: 6px 8px; overflow: hidden;"><a style="float: right; text-decoration: none;" href="https://phabricator.kde.org/D28128#inline-160854">View Inline</a><span style="color: #4b4d51; font-weight: bold;">kconfigdata.h:170</span></div>
<div style="font: 11px/15px "Menlo", "Consolas", "Monaco", monospace; white-space: pre-wrap; clear: both; padding: 4px 0; margin: 0;"><div style="padding: 0 8px; margin: 0 4px; ">        <span class="n">EntryNotify</span> <span style="color: #aa2211">=</span> <span style="color: #601200">128</span><span class="p">,</span>
</div><div style="padding: 0 8px; margin: 0 4px; background: rgba(151, 234, 151, .6);">        <span class="n">EntryForceSave</span> <span style="color: #aa2211">=</span> <span style="color: #601200">256</span><span class="p">,</span>
</div><div style="padding: 0 8px; margin: 0 4px; ">        <span class="n">EntryDefault</span> <span style="color: #aa2211">=</span> <span class="p">(</span><span class="n">SearchDefaults</span> <span style="color: #aa2211"><<</span> <span style="color: #601200">16</span><span class="p">),</span>
</div></div></div>
<div style="margin: 8px 0; padding: 0 12px;"><p style="padding: 0; margin: 8px;">This enum value isn't set anywhere except in the unittest, no?<br />
I guess it's here for consistency, but it still seems pretty useless?</p></div></div></div></div></div><br /><div><strong>REPOSITORY</strong><div><div>R237 KConfig</div></div></div><br /><div><strong>REVISION DETAIL</strong><div><a href="https://phabricator.kde.org/D28128">https://phabricator.kde.org/D28128</a></div></div><br /><div><strong>To: </strong>bport, ervin, dfaure, meven, crossi, hchain<br /><strong>Cc: </strong>kde-frameworks-devel, LeGast00n, cblack, GB_2, michaelh, ngraham, bruns<br /></div>