1 /* Copyright (C) 2003-2006 Jesper K. Pedersen <blackie@kde.org>
3 This program is free software; you can redistribute it and/or
4 modify it under the terms of the GNU General Public
5 License as published by the Free Software Foundation; either
6 version 2 of the License, or (at your option) any later version.
8 This program is distributed in the hope that it will be useful,
9 but WITHOUT ANY WARRANTY; without even the implied warranty of
10 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11 General Public License for more details.
13 You should have received a copy of the GNU General Public License
14 along with this program; see the file COPYING. If not, write to
15 the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
16 Boston, MA 02110-1301, USA.
19 #ifndef IMAGEMANAGER_H
20 #define IMAGEMANAGER_H
21 #include <qwaitcondition.h>
26 #include "RequestQueue.h"
27 #include "StopAction.h"
30 namespace ImageManager
35 class ThumbnailStorage
;
37 class ImageEvent
:public QEvent
{
39 ImageEvent( ImageRequest
* request
, const QImage
& image
);
40 ImageRequest
* loadInfo();
44 ImageRequest
* _request
;
48 // This class needs to inherit QObject to be capable of receiving events.
49 class Manager
:public QObject
{
53 static Manager
* instance();
55 // Request to load an image. The Manager takes over the ownership of
57 void load( ImageRequest
* request
);
59 // Stop loading all images requested by the given client.
60 void stop( ImageClient
*, StopAction action
= StopAll
);
62 // Remove the thumbnail for a given file.
63 void removeThumbnail( const QString
& imageFile
);
65 // Return if downscaled thumbnails exist for the given image file.
66 bool thumbnailsExist( const QString
& imageFile
);
69 virtual void customEvent( QEvent
* ev
);
70 void loadVideo( ImageRequest
* );
71 void loadImage( ImageRequest
* );
74 friend class ImageLoader
; // may call 'next()'
80 static Manager
* _instance
;
82 RequestQueue _loadList
;
83 QWaitCondition _sleepers
;
85 QSet
<ImageRequest
*> _currentLoading
;
86 ThumbnailStorage
* const _thumbnailStorage
;
91 #endif /* IMAGEMANAGER_H */