<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/104261/">http://git.reviewboard.kde.org/r/104261/</a>
</td>
</tr>
</table>
<br />
<p>On March 16th, 2012, 1 p.m., <b>makis marimpis</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;">Hm, i did that in order to restore the desktop ids from a previous run of kamd (let's say, in case of log out).</pre>
</blockquote>
<p>On March 17th, 2012, 11:52 a.m., <b>Ivan Čukić</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;">You misunderstood, I don't mind saving it in the config file, I don't understand the need to keep all those in memory.
For example, Bob has 20 activities, usually uses only 3 of them. Why would you want to keep the rest of the VD IDs in memory?
Just read the VD ID when necessary.
As you can see, we are not keeping anything that is saved to a config file in memory apart from the list of activities. The names, icons etc. are read from the config when needed. </pre>
</blockquote>
<p>On March 17th, 2012, 4:18 p.m., <b>makis marimpis</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;">Now i see your point.
I have implemented the same patch using only KConfigGroup but because of the "scheduleConfigSync" there is a case where the sync cannot keep up with the change of the activities - leading to a weird behavior (the changes are not yet made volatile).
That could be solved by calling "configSync" explicitly but that could affect the performace? (no idea).
To sum up: i think it is faster and less error-prone to store in memory and sync whenever sync is scheduled to, than to read/write whenever an activity is changed.</pre>
</blockquote>
<pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">Not knowing the code around this, I would just like to point out that KConfig/KConfigGroup is already a "cache in memory". So, reading/writing should be fast. KConfig::sync is the slow bit (reading from disk if it was changed from the outside, then writing to disk).
Can't comment on "less error-prone" though, I don't know the activity code -- but indeed there's the general risk of a partial config read followed by a "save all", which loses everything that hadn't been read yet. Happened in old kmail far too many times.
</pre>
<br />
<p>- David</p>
<br />
<p>On March 16th, 2012, 11:55 a.m., makis marimpis wrote:</p>
<table bgcolor="#fefadf" width="100%" cellspacing="0" cellpadding="8" style="background-image: url('http://git.reviewboard.kde.org/media/rb/images/review_request_box_top_bg.png'); background-position: left top; background-repeat: repeat-x; border: 1px black solid;">
<tr>
<td>
<div>Review request for KDE Runtime and Plasma.</div>
<div>By makis marimpis.</div>
<p style="color: grey;"><i>Updated March 16, 2012, 11:55 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;">Patches kactivitymanagerd to store (and restore back) the working current directory when switching activities.
The activity-changing-behavior is as follows:
1. Say you have two (or more activities) A and B.
2. You are working on activity A on Desktop 4.
3. You switch to activity B (and by default to Desktop 4).
4. Change to Desktop 1.
5. Go back to activity A and (by default) to Desktop 1, while it should move you to Desktop 4 (this is where my patch kicks in).
I hope it makes sense :-)</pre>
</td>
</tr>
</table>
<div style="margin-top: 1.5em;">
<b style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Bugs: </b>
<a href="http://bugs.kde.org/show_bug.cgi?id=241864">241864</a>,
<a href="http://bugs.kde.org/show_bug.cgi?id=265015">265015</a>
</div>
<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Diffs</b> </h1>
<ul style="margin-left: 3em; padding-left: 0;">
<li>service/ActivityManager.cpp <span style="color: grey">(7af2049)</span></li>
<li>service/ActivityManager_p.h <span style="color: grey">(d054eb7)</span></li>
</ul>
<p><a href="http://git.reviewboard.kde.org/r/104261/diff/" style="margin-left: 3em;">View Diff</a></p>
</td>
</tr>
</table>
</div>
</body>
</html>