<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 10pt;
font-family:Tahoma
}
--></style>
</head>
<body class='hmmessage'>
Excuse the messing message before from me, I should top post like this since Windows Live doesn't put arrows before each line of previous emails when replying to them. Even though its not recommended to top post ;)<br><br><hr id="stopSpelling">From: steven.sroka@live.ca<br>To: plasma-devel@kde.org<br>Subject: RE: Desktop Slideshow Settings<br>Date: Mon, 6 Dec 2010 00:42:01 -0500<br><br>

<meta http-equiv="Content-Type" content="text/html; charset=unicode">
<meta name="Generator" content="Microsoft SafeHTML">
<style>
.ExternalClass .ecxhmmessage P
{padding:0px;}
.ExternalClass body.ecxhmmessage
{font-size:10pt;font-family:Tahoma;}

</style>


<pre><font class="ecxApple-style-span" size="2" face="Tahoma">On Sunday, December 5, 2010, Steven Sroka wrote:<br>&gt; I'm assuming the settingsChanged() signal is emitted twice, once by 'Apply'<br>&gt; and once by 'OK'. Is there anyway to stop the signal from emitting from<br>&gt; the 'OK' button if the settings aren't changed (because the 'Apply' button<br>&gt; has already emitted the signal and done all the necessary work)?<br> <br>yes. and now that i understand what you are trying to accomplish ... :)<br> <br>the problem is in BackgroundDialog::saveConfig in <br>kdebase/workspace/libs/plasmagenericshell/backgrounddialog.cpp<br> <br>it is called when apply or ok is clicked and it unconditionally resets the <br>wallpaper. it probably needs to track when the wallpaper settings actually <br>change. right now it does this:<br> <br>connect(wallpaperWidget, SIGNAL(modified(bool)), this, <br>SLOT(settingsModified(bool)));<br> <br>settingsModified is a generic "something's changed" handler; a new slot could <br>be added that calls settingsModified, but which also tracks that value for the <br>wallpaper itself and if no changes have been made to the wallpaper config, <br>just not reset it.<br></font></pre><pre><font class="ecxApple-style-span" size="2" face="Tahoma">-------------------------------------------------------------------------------------------------------------------------------</font></pre><pre><font class="ecxApple-style-span" size="2" face="Tahoma">I see, now I know what to look for.</font></pre><pre><font class="ecxApple-style-span" size="2" face="Tahoma">I noticed that BackgroundDialog keeps track if there are changes made through BackgroundDialog::hasChanged()</font></pre><pre><font class="ecxApple-style-span" size="2" face="Tahoma">Would it be possible to add at the very beginning of BackgroundDialog::saveConfig(),</font></pre><pre><font class="ecxApple-style-span" size="2" face="Tahoma"></font><span class="ecxApple-style-span" style="font-family:Tahoma;font-size:10pt">if( !hasChanged() ) {</span></pre><pre><span class="ecxApple-style-span" style="font-family:Tahoma;font-size:10pt"> return;</span></pre><pre><span class="ecxApple-style-span" style="font-family:Tahoma;font-size:10pt">}</span></pre><pre><span class="ecxApple-style-span" style="font-family:Tahoma;font-size:10pt">or</span></pre><pre><font class="ecxApple-style-span" size="2" face="Tahoma"><span class="ecxApple-style-span" style="font-family:'Times New Roman';white-space:normal;font-size:12pt"><pre style="text-indent:0px !important"><span class="ecxApple-style-span" style="text-indent:0px !important;font-family:Tahoma;font-size:10pt">if( hasChanged() ) {</span></pre></span><span class="ecxApple-style-span" style="font-family:'Times New Roman';white-space:normal;font-size:12pt"><pre style="text-indent:0px !important"><span class="ecxApple-style-span" style="text-indent:0px !important;font-family:Tahoma;font-size:10pt"> //the existing code that is run when a setting is changed.</span></pre></span><span class="ecxApple-style-span" style="font-family:'Times New Roman';white-space:normal;font-size:12pt"><pre style="text-indent:0px !important"><span class="ecxApple-style-span" style="text-indent:0px !important;font-family:Tahoma;font-size:10pt">}</span></pre></span></font></pre>                                               
<br>_______________________________________________
Plasma-devel mailing list
Plasma-devel@kde.org
https://mail.kde.org/mailman/listinfo/plasma-devel                                               </body>
</html>