[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-core-devel
Subject: Re: Review Request: Remember current desktop when changing activity
From: "David Faure" <faure () kde ! org>
Date: 2012-03-18 7:54:35
Message-ID: 20120318075435.18250.93245 () vidsolbach ! de
[Download RAW message or body]
> On March 16, 2012, 12:49 p.m., Ivan Čukić wrote:
> >
>
> makis marimpis wrote:
> 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).
> Ivan Čukić wrote:
> 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.
> makis marimpis wrote:
> 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.
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.
- David
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
http://git.reviewboard.kde.org/r/104261/#review11467
-----------------------------------------------------------
On March 16, 2012, 11:55 a.m., makis marimpis wrote:
>
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> http://git.reviewboard.kde.org/r/104261/
> -----------------------------------------------------------
>
> (Updated March 16, 2012, 11:55 a.m.)
>
>
> Review request for KDE Runtime and Plasma.
>
>
> Description
> -------
>
> 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 :-)
>
>
> This addresses bugs 241864 and 265015.
> http://bugs.kde.org/show_bug.cgi?id=241864
> http://bugs.kde.org/show_bug.cgi?id=265015
>
>
> Diffs
> -----
>
> service/ActivityManager.cpp 7af2049
> service/ActivityManager_p.h d054eb7
>
> Diff: http://git.reviewboard.kde.org/r/104261/diff/
>
>
> Testing
> -------
>
>
> Thanks,
>
> makis marimpis
>
>
[Attachment #3 (text/html)]
<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>
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic