[Digikam-devel] extragear/graphics/digikam

Marcel Wiesweg marcel.wiesweg at gmx.de
Mon Jan 16 17:08:08 GMT 2006


SVN commit 498926 by mwiesweg:

digikam from trunk: threaded image loading

- threaded image loading
   - add SharedLoadSaveThread class
   - split declarations to different header files
   - add LoadingCache class
   - sharing of loading processes: if an image is currently being loaded in another
     SharedLoadSaveThread, a second thread will wait for the first to finish
     instead of loading it twice
   - caching of images: loaded images are cached and available to subsequent requests
   This should eliminate any unnecessary work.
- Histogram tab
   - adapt to shared loading
   - remove some repaints
   - painting progress message only after timeout value (100 ms), much snappier now
   - fixed display of loading failure
- Image Editor and Showfoto
   - adapt DImgInterface to threaded image loading
   - add appropriate signals and slots to all three layers (DImgInterface, Canvas, ImageWindow and Showfoto)
   - split loading and saving functions in two parts in all three layers
   - for saving, some information needs to be stored across asynchronous calls which
     was previously stored in local variables.
     Added appropriate members respectively SavingContext classes (in ImageWindow, Showfoto).
   - put in hooks for progress info display
   - added preliminary code to wait on asynchronous saving, needed for promptUserSave()
       - added a modal progress dialog
       - needs to be tested and fixed, see TODO below
   - fix creation of ImageWindow singleton upon exiting
     (checking for imageWindow() would create the instance if not yet done)

TODO:
   - add progress display to status bar
   - disable actions when saving (all actions?) and loading (not all actions,
     e.g. selecting another image must be possible and abort loading)
   - test, think about and fix waiting on save() in promptUserSave()
   - more thorough testing
   - fix a bug when fast switching through list in IE. First add disabling of actions.
   - still some debug statements active

CCMAIL: digikam-devel at kde.org



 M  +2 -2      digikam/digikamapp.cpp  
 M  +18 -16    libs/imageproperties/imagepropertiescolorstab.cpp  
 M  +1 -1      libs/imageproperties/imagepropertiescolorstab.h  
 M  +1 -1      libs/threadimageio/Makefile.am  
 A             libs/threadimageio/loadingcache.cpp   [License: GPL]
 A             libs/threadimageio/loadingcache.h   [License: GPL]
 A             libs/threadimageio/loadingdescription.h   [License: GPL]
 M  +336 -36   libs/threadimageio/loadsavethread.cpp  
 M  +32 -79    libs/threadimageio/loadsavethread.h  
 A             libs/threadimageio/managedloadsavethread.h   [License: GPL]
 A             libs/threadimageio/sharedloadsavethread.h   [License: GPL]
 M  +10 -3     libs/widgets/histogramwidget.cpp  
 M  +2 -1      libs/widgets/histogramwidget.h  
 M  +202 -91   showfoto/showfoto.cpp  
 M  +11 -0     showfoto/showfoto.h  
 M  +1 -0      utilities/imageeditor/canvas/Makefile.am  
 M  +46 -25    utilities/imageeditor/canvas/canvas.cpp  
 M  +12 -4     utilities/imageeditor/canvas/canvas.h  
 M  +94 -42    utilities/imageeditor/canvas/dimginterface.cpp  
 M  +14 -4     utilities/imageeditor/canvas/dimginterface.h  
 M  +1 -0      utilities/imageeditor/editor/Makefile.am  
 M  +262 -122  utilities/imageeditor/editor/imagewindow.cpp  
 M  +11 -0     utilities/imageeditor/editor/imagewindow.h  





More information about the Digikam-devel mailing list