This repository has been archived by the owner on Sep 8, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 19
/
ThumbnailEngine.h
94 lines (80 loc) · 2.64 KB
/
ThumbnailEngine.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
/***************************************************************************//**
* @brief Thumbnail me 3.0
* Thumbnail me is a user interface for Movie thumbnailer.
* Generate thumbnails from any movie is now easier !
*
* @file ThumbnailEngine.h
* @class ThumbnailEngine
* Cette classe est le moteur de ThumbnailMe, c'est dans cette classe que le processus est exécuté.
*
* @author Quentin Rousseau\n
* @note Copyright (C) 2011-2012 Quentin Rousseau\n
* License: GNU General Public License version 2 (GPLv2) - http://www.gnu.org/licenses/gpl-2.0.html\n
* Site web: www.thumbnailme.com\n
* Email: [email protected]
*
* @since 3.0
* @version 3.0
* @date 2011-2012
*******************************************************************************/
#ifndef HEADER_THUMBNAILENGINE
#define HEADER_THUMBNAILENGINE
#include <QObject>
#include <QSettings>
#include <QProcess>
#include <QSignalMapper>
#include <QLinkedList>
#include <QThreadPool>
class MainWindow;
class ThumbnailItem;
class ThumbnailEngine : public QObject
{
Q_OBJECT
public:
/**
* SIMPLEMOD: Conversion simple.\n
* PREVIEWMOD: Preview.
*/
enum Mode
{
SIMPLEMOD,
PREVIEWMOD
};
public:
explicit ThumbnailEngine(MainWindow *main_window);
virtual ~ThumbnailEngine();
private:
MainWindow *main_window;
QSettings *settings;
QLinkedList <ThumbnailItem*> listInputFile;
QThreadPool *pool;
QProcess *process;
QImage *img;
QStringList currentOutput;
ThumbnailItem *currentItem;
//int current;
//QSignalMapper *convertSignalMapper;
Mode modeConversion;
private:
void launchProcess(QLinkedList <ThumbnailItem*> listInputFile);
private slots:
void initSuccessDialog(QLinkedList <ThumbnailItem*> listInputFile);
void success(ThumbnailItem *item);
public:
QString absoluteFilePathOutput(QString pathOutput, QString absoluteOutputPath,QString suffix,QString format = QString());
Mode mode() const;
void setMode(Mode mode);
public slots:
void buildOutput();
void deleteTemporaryFiles();
//void detectShortDuration();
void run(int mode);
void successDialogItemRemove(ThumbnailItem *item);
signals:
/**
*@brief Lève le signal lorsque la durée de l'item est trop court.
*@param item - Thumbnail item.
*/
void itemTooShortDuration(ThumbnailItem *item);
};
#endif // HEADER_THUMBNAILENGINE