Desktop Slideshow Settings
Steven Sroka
steven.sroka at live.ca
Mon Dec 6 06:42:01 CET 2010
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.}
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.kde.org/pipermail/plasma-devel/attachments/20101206/d17ead44/attachment-0001.htm
More information about the Plasma-devel
mailing list