[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&#39;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&#39;t mind saving it in the config file, I don&#39;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 \
&quot;scheduleConfigSync&quot; 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 &quot;configSync&quot; 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 \
&quot;cache in memory&quot;. 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&#39;t comment on &quot;less error-prone&quot; though, I don&#39;t know the \
activity code -- but indeed there&#39;s the general risk of a partial config read \
followed by a &quot;save all&quot;, which loses everything that hadn&#39;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