Version: 1.6.0 (using KDE KDE 3.5.5) Installed from: Debian testing/unstable Packages When enabling filter preview, the control elements to adjust the filter settings are hardly to use because updating the preview freezes the whole dialog. I think it would be good to have a delay (e.g. 1 sec) between the last action in the settings (e.g. a click that changes a value) and refreshing the preview.
We already do that for some filters, but in a rather ham-fisted way. I see we could improve on that, make it more generic by putting the delay in the filter manager, instead of in the individual filter widgets. Not sure whether that code would survive in 2.0, although I've already tried to implement something like this in trunk.
Okay I know what to do now. Forget timers, use Thomas' actions that only execute the last action in the queue. (Setting to normal so I'm reminded of this much more)
SVN commit 606301 by berger: - delay the update of applying change to a filter in the preview dialog (the delay needs to be adjusted) CCBUG:137003 M +3 -1 kis_filter_manager.cc M +1 -0 kis_filter_manager.h --- branches/koffice/1.6/koffice/krita/ui/kis_filter_manager.cc #606300:606301 @@ -55,6 +55,7 @@ : m_view(view), m_doc(doc) { + connect(&m_delayer, SIGNAL(timeout()), this, SLOT(refreshPreview())); // XXX: Store & restore last filter & last filter configuration in session settings m_reapplyAction = 0; m_lastFilterConfig = 0; @@ -385,7 +386,8 @@ return; if(m_lastDialog->previewWidget()->getAutoUpdate()) { - refreshPreview(); +// refreshPreview(); + m_delayer.start(1000, true); } else { m_lastDialog->previewWidget()->needUpdate(); } --- branches/koffice/1.6/koffice/krita/ui/kis_filter_manager.h #606300:606301 @@ -81,6 +81,7 @@ QSignalMapper * m_filterMapper; QDict<KActionMenu> m_filterActionMenus; + QTimer m_delayer; }; #endif
The filter preview is currently disabled (trunk r875799) so I can't really check. It will hopefully work once it's back.
This is fixed now.