Fix regressions
[kphotoalbum.git] / ImportExport / Export.h
blob8f45176f4a0fcb82c63758a2e0ec7f5992245f87
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 IMPORTEXPORT_H
20 #define IMPORTEXPORT_H
22 #include "ImageManager/ImageClient.h"
23 #include <KDialog>
24 #include "Utilities/UniqFilenameMapper.h"
25 #include <QEventLoop>
27 namespace DB { class Result; }
29 class QRadioButton;
30 class QSpinBox;
31 class QCheckBox;
32 class KZip;
33 class Q3ProgressDialog;
35 namespace ImportExport
38 enum ImageFileLocation { Inline, ManualCopy, AutoCopy, Link };
40 class Export :public ImageManager::ImageClient {
42 public:
43 static void imageExport(const DB::Result& list);
45 Export( const DB::Result& list, const QString& zipFile,
46 bool compress, int maxSize,
47 ImageFileLocation, const QString& baseUrl,
48 bool generateThumbnails,
49 bool *ok);
51 static void showUsageDialog();
53 // ImageManager::ImageClient callback.
54 virtual void pixmapLoaded( const QString& fileName, const QSize& size, const QSize& fullSize, int angle, const QImage&, const bool loadedOK);
56 protected:
57 void generateThumbnails(const DB::Result& list);
58 void copyImages(const DB::Result& list);
60 private:
61 bool* _ok;
62 int _filesRemaining;
63 int _steps;
64 Q3ProgressDialog* _progressDialog;
65 KZip* _zip;
66 int _maxSize;
67 QString _subdir;
68 bool _loopEntered;
69 ImageFileLocation _location;
70 Utilities::UniqFilenameMapper _filenameMapper;
71 bool _copyingFiles;
72 QString _destdir;
73 QEventLoop _eventLoop;
76 class ExportConfig :public KDialog {
77 Q_OBJECT
79 public:
80 ExportConfig();
81 QCheckBox* _compress;
82 QCheckBox* _generateThumbnails;
83 QCheckBox* _enforeMaxSize;
84 QSpinBox* _maxSize;
86 ImageFileLocation imageFileLocation() const;
88 private:
89 QRadioButton* _include;
90 QRadioButton* _manually;
91 QRadioButton* _link;
92 QRadioButton* _auto;
98 #endif /* IMPORTEXPORT_H */