[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