1 /* This file is part of the KDE project
2 
3     SPDX-FileCopyrightText: 2001, 2003 Lukas Tinkl <lukas@kde.org>
4     SPDX-FileCopyrightText: Andreas Schlapbach <schlpbch@iam.unibe.ch>
5 
6     SPDX-License-Identifier: LGPL-2.0-only
7 */
8 
9 #ifndef kimgalleryplugin_h
10 #define kimgalleryplugin_h
11 
12 #include <kparts/plugin.h>
13 #include <kparts/readonlypart.h>
14 #include <QDir>
15 
16 class QProgressDialog;
17 class KIGPDialog;
18 class QTextStream;
19 
20 typedef QMap<QString, QString> CommentMap;
21 
22 class KImGalleryPlugin : public KParts::Plugin
23 {
24     Q_OBJECT
25 public:
26     KImGalleryPlugin(QObject *parent,
27                      const QVariantList &);
~KImGalleryPlugin()28     ~KImGalleryPlugin() override {}
29 
30 public slots:
31     void slotExecute();
32     void slotCancelled();
33 
34 private:
35     bool m_cancelled;
36     bool m_recurseSubDirectories;
37     bool m_copyFiles;
38     bool m_useCommentFile;
39 
40     int m_imgWidth;
41     int m_imgHeight;
42     int m_imagesPerRow;
43 
44     QProgressDialog *m_progressDlg;
45 
46     KParts::ReadOnlyPart *m_part;
47 
48     KIGPDialog *m_configDlg;
49 
50     CommentMap *m_commentMap;
51 
52     bool createDirectory(const QDir &thumb_dir, const QString &imgGalleryDir, const QString &dirName);
53 
54     void createHead(QTextStream &stream);
55     void createCSSSection(QTextStream &stream);
56     void createBody(QTextStream &stream, const QString &sourceDirName, const QStringList &subDirList, const QDir &imageDir, const QUrl &url, const QString &imageFormat);
57 
58     bool createThumb(const QString &imgName, const QString &sourceDirName, const QString &imgGalleryDir, const QString &imageFormat);
59 
60     bool createHtml(const QUrl &url, const QString &sourceDirName, int recursionLevel, const QString &imageFormat);
61     void deleteCancelledGallery(const QUrl &url, const QString &sourceDirName, int recursionLevel, const QString &imageFormat);
62     void loadCommentFile();
63 
64     static QString extension(const QString &imageFormat);
65 };
66 
67 #endif
68