Krazy/EBN: fix i18n warnings
[kphotoalbum.git] / ImageManager / Manager.h
blob6385dbe9cb2aabb76cde5d12a8260839ebd8cdd0
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>
22 #include <QList>
23 #include <qevent.h>
24 #include <qmutex.h>
25 #include <qimage.h>
26 #include "RequestQueue.h"
27 #include "StopAction.h"
29 class ImageRequest;
30 namespace ImageManager
33 class ImageClient;
34 class ImageLoader;
35 class ThumbnailStorage;
37 class ImageEvent :public QEvent {
38 public:
39 ImageEvent( ImageRequest* request, const QImage& image );
40 ImageRequest* loadInfo();
41 QImage image();
43 private:
44 ImageRequest* _request;
45 QImage _image;
48 // This class needs to inherit QObject to be capable of receiving events.
49 class Manager :public QObject {
50 Q_OBJECT
52 public:
53 static Manager* instance();
55 // Request to load an image. The Manager takes over the ownership of
56 // the request.
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 );
68 protected:
69 virtual void customEvent( QEvent* ev );
70 void loadVideo( ImageRequest* );
71 void loadImage( ImageRequest* );
73 private:
74 friend class ImageLoader; // may call 'next()'
75 Manager();
76 void init();
78 ImageRequest* next();
80 static Manager* _instance;
82 RequestQueue _loadList;
83 QWaitCondition _sleepers;
84 QMutex _lock;
85 QSet<ImageRequest*> _currentLoading;
86 ThumbnailStorage* const _thumbnailStorage;
91 #endif /* IMAGEMANAGER_H */