File indexing completed on 2024-04-21 04:58:01

0001 /* This file is part of the KDE project
0002 
0003     SPDX-FileCopyrightText: 2001, 2003 Lukas Tinkl <lukas@kde.org>
0004     SPDX-FileCopyrightText: Andreas Schlapbach <schlpbch@iam.unibe.ch>
0005 
0006     SPDX-License-Identifier: LGPL-2.0-only
0007 */
0008 
0009 #ifndef kimgalleryplugin_h
0010 #define kimgalleryplugin_h
0011 
0012 #include <kparts/readonlypart.h>
0013 #include <konq_kpart_plugin.h>
0014 
0015 #include <QDir>
0016 
0017 class QProgressDialog;
0018 class KIGPDialog;
0019 class QTextStream;
0020 
0021 typedef QMap<QString, QString> CommentMap;
0022 
0023 class KImGalleryPlugin : public KonqParts::Plugin
0024 {
0025     Q_OBJECT
0026 public:
0027     KImGalleryPlugin(QObject *parent,
0028                      const QVariantList &);
0029     ~KImGalleryPlugin() override {}
0030 
0031 public slots:
0032     void slotExecute();
0033     void slotCancelled();
0034 
0035 private:
0036     bool m_cancelled;
0037     bool m_recurseSubDirectories;
0038     bool m_copyFiles;
0039     bool m_useCommentFile;
0040 
0041     int m_imgWidth;
0042     int m_imgHeight;
0043     int m_imagesPerRow;
0044 
0045     QProgressDialog *m_progressDlg;
0046 
0047     KParts::ReadOnlyPart *m_part;
0048 
0049     KIGPDialog *m_configDlg;
0050 
0051     CommentMap *m_commentMap;
0052 
0053     bool createDirectory(const QDir &thumb_dir, const QString &imgGalleryDir, const QString &dirName);
0054 
0055     void createHead(QTextStream &stream);
0056     void createCSSSection(QTextStream &stream);
0057     void createBody(QTextStream &stream, const QString &sourceDirName, const QStringList &subDirList, const QDir &imageDir, const QUrl &url, const QString &imageFormat);
0058 
0059     bool createThumb(const QString &imgName, const QString &sourceDirName, const QString &imgGalleryDir, const QString &imageFormat);
0060 
0061     bool createHtml(const QUrl &url, const QString &sourceDirName, int recursionLevel, const QString &imageFormat);
0062     void deleteCancelledGallery(const QUrl &url, const QString &sourceDirName, int recursionLevel, const QString &imageFormat);
0063     void loadCommentFile();
0064 
0065     static QString extension(const QString &imageFormat);
0066 };
0067 
0068 #endif