[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-panel-devel
Subject:    RE: Desktop Slideshow Settings
From:       Steven Sroka <steven.sroka () live ! ca>
Date:       2010-12-06 5:47:25
Message-ID: BLU146-W233DEA679789A890D70997952B0 () phx ! gbl
[Download RAW message or body]

[Attachment #2 (multipart/alternative)]


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 ;)

From: steven.sroka@live.ca
To: plasma-devel@kde.org
Subject: RE: Desktop Slideshow Settings
Date: Mon, 6 Dec 2010 00:42:01 -0500








On Sunday, December 5, 2010, Steven Sroka wrote:
> I'm assuming the settingsChanged() signal is emitted twice, once by 'Apply'
> and once by 'OK'. Is there anyway to stop the signal from emitting from
> the 'OK' button if the settings aren't changed (because the 'Apply' button
> has already emitted the signal and done all the necessary work)?
 
yes. and now that i understand what you are trying to accomplish ... :)
 
the problem is in BackgroundDialog::saveConfig in 
kdebase/workspace/libs/plasmagenericshell/backgrounddialog.cpp
 
it is called when apply or ok is clicked and it unconditionally resets the 
wallpaper. it probably needs to track when the wallpaper settings actually 
change. right now it does this:
 
connect(wallpaperWidget, SIGNAL(modified(bool)), this, 
SLOT(settingsModified(bool)));
 
settingsModified is a generic "something's changed" handler; a new slot could 
be added that calls settingsModified, but which also tracks that value for the 
wallpaper itself and if no changes have been made to the wallpaper config, 
just not reset it.
-------------------------------------------------------------------------------------------------------------------------------I \
see, now I know what to look for.I noticed that BackgroundDialog keeps track if there \
are changes made through BackgroundDialog::hasChanged()Would it be possible to add at \
the very beginning of BackgroundDialog::saveConfig(),if( !hasChanged() ) { \
return;}orif( hasChanged() ) { //the existing code that is run when a setting is \
changed.} 		 	   		  

_______________________________________________
Plasma-devel mailing list
Plasma-devel@kde.org
https://mail.kde.org/mailman/listinfo/plasma-devel 		 	   		  


[Attachment #5 (text/html)]

<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>



_______________________________________________
Plasma-devel mailing list
Plasma-devel@kde.org
https://mail.kde.org/mailman/listinfo/plasma-devel


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic