summaryrefslogtreecommitdiffstats
path: root/src/sq_thumbnailloadjob.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/sq_thumbnailloadjob.h')
-rw-r--r--src/sq_thumbnailloadjob.h102
1 files changed, 102 insertions, 0 deletions
diff --git a/src/sq_thumbnailloadjob.h b/src/sq_thumbnailloadjob.h
new file mode 100644
index 0000000..5e9d9bb
--- /dev/null
+++ b/src/sq_thumbnailloadjob.h
@@ -0,0 +1,102 @@
+/*
+ copyright : (C) 2004 by Baryshev Dmitry
+ KSquirrel - image viewer for KDE
+*/
+
+/* This file is part of the KDE project
+ Copyright (C) 2000 David Faure <[email protected]>
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+*/
+
+#ifndef SQ_THUMBNAILLOADJOB_H
+#define SQ_THUMBNAILLOADJOB_H
+
+#include <tqimage.h>
+
+#include <tdeio/job.h>
+
+#include "sq_thumbnailinfo.h"
+
+class KFileItem;
+class KTempFile;
+
+class SQ_DirThumbs;
+class SQ_FileThumbView;
+
+typedef TQPtrList<KFileItem> KFileItemList;
+
+/*
+ * SQ_ThumbnailLoadJob is a job for loading thumbnails
+ * in given directory.
+ */
+
+class SQ_ThumbnailLoadJob : public TDEIO::Job
+{
+ TQ_OBJECT
+
+
+ public:
+ SQ_ThumbnailLoadJob(const KFileItemList &itemList, SQ_FileThumbView *parnt);
+ ~SQ_ThumbnailLoadJob();
+
+ virtual void kill(bool q = true);
+
+ void start();
+ void itemRemoved(const KFileItem* item);
+ void itemsRemoved(const KFileItemList &list);
+ void appendItem(const KFileItem* item);
+ void appendItems(const KFileItemList &items);
+ void prependItems(const KFileItemList &items);
+
+ void pop(const KFileItemList &items);
+
+ private:
+ void determineNextIcon();
+ bool statResultThumbnail();
+ void createThumbnail(const KURL &);
+ void emitThumbnailLoaded(SQ_Thumbnail &);
+ void emitThumbnailLoadingFailed();
+ void insertOrSync(const KURL &, SQ_Thumbnail &th);
+ void nextFile(bool b);
+
+ signals:
+ void thumbnailLoaded(const KFileItem* item, const SQ_Thumbnail &t);
+ void done();
+
+ private slots:
+ void slotResult(TDEIO::Job *job);
+ void slotData(TDEIO::Job *job, const TQByteArray &data);
+
+ private:
+ enum { STATE_STATORIG, STATE_PREDOWNLOAD, STATE_DOWNLOAD } mState;
+
+ KFileItemList mItems;
+ KFileItem *mCurrentItem;
+ KURL mCurrentURL;
+ KURL mThumbURL;
+ KURL mTempURL;
+ TDEIO::filesize_t totalSize, size;
+ KTempFile *tmp;
+ time_t mOriginalTime;
+ TQString mime;
+ bool continueDownload, donothing;
+
+ SQ_DirThumbs *dir;
+ SQ_Thumbnail mBrokenThumbnail;
+ SQ_FileThumbView *parent;
+};
+
+#endif