-
Notifications
You must be signed in to change notification settings - Fork 11
Expand file tree
/
Copy pathExportToWeb.h
More file actions
227 lines (158 loc) · 5.5 KB
/
Copy pathExportToWeb.h
File metadata and controls
227 lines (158 loc) · 5.5 KB
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
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
/****************************************************************************
This file is part of GLC-Player.
Copyright (C) 2007-2008 Laurent Ribon (laumaya@users.sourceforge.net)
Version 2.2.0, packaged on July 2010.
http://www.glc-player.net
GLC-Player 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.
GLC-Player 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 GLC-Player; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*****************************************************************************/
#ifndef EXPORTTOWEB_H_
#define EXPORTTOWEB_H_
#include "FileEntry.h"
#include <QObject>
#include <QString>
#include <QSize>
#include <QProgressDialog>
class OpenglView;
class QXmlStreamWriter;
class ExportToWeb : public QObject
{
Q_OBJECT
public:
ExportToWeb(QList<FileEntry>&, OpenglView*);
virtual ~ExportToWeb();
//////////////////////////////////////////////////////////////////////
// Public Get function
//////////////////////////////////////////////////////////////////////
public:
//! Get the number of models to export
inline int numberOfModel() const {return m_FileEntrySortedList.size();}
//! Return the Index Path Name
inline QString indexPathName() const {return m_TargetPath + QDir::separator() + QString("index.html");}
//////////////////////////////////////////////////////////////////////
// Public Set function
//////////////////////////////////////////////////////////////////////
public:
//! Set the Album Name
inline void setAlbumName(const QString& name) {m_AlbumName= name;}
//! Set Thumbnail size
void setThumbnailSize(const QSize&);
//! Set Image size
void setImageSize(const QSize&);
//! Export Album to web
bool exportToWeb(const QString&, const QString&);
//! Update the number of row
inline void updateNbrOfRow(int value) {m_NumberOfRow= value;}
//! Update the number of lines
inline void updateNbrOfLine(int value) {m_NumberOfLine= value;}
//! Update the number of pages
inline void updateNbrOfPage(int value) {m_NumberOfPages= value;}
//! Set backgroundColor
inline void setBackgroundColor(const QColor& color) {m_BackgroundColor= color;}
//////////////////////////////////////////////////////////////////////
// Public Slot function
//////////////////////////////////////////////////////////////////////
public slots:
//! Export album and model
void exportAlbumAndModel(bool);
//! View Thumbnail model name
void viewThumbnailModelName(bool);
//! Link Thumbnail to model
void linkThumbnailToModel(bool);
//! View Image model informations
void viewImageModelInformations(bool);
//! Link Image to model
void linkImageToModel(bool);
//////////////////////////////////////////////////////////////////////
// private services function
//////////////////////////////////////////////////////////////////////
private:
//! Create sub directories structure
bool createSubDirectories();
//! Make SnapShots
bool makeSnapShots();
//! Export Album and model
bool exportAlbumAndModels();
//! Export Html
bool exportHtml();
//! Write html header
void writeHtmlHeader(const QString&);
//! Write html title
void writeHtmlTitle(const QString&);
//! Write html page link
void writeHtmlPageLink(int);
//! Return fileName
QString createFileName(int);
//! Write the table
void writeHtmlTable(int);
//! Write a cell
void writeHtmlCell(int);
//! Create the image name
QString createImageName(int);
//! Create model name
QString createModelName(int);
//! Write html images pages
bool writeHtmlImagesPages();
//! Create image page file name
QString createImagePageFileName(int);
//! Write html infomration cell
void writeHtmlInformationCell(const QString&, const QString&);
//////////////////////////////////////////////////////////////////////
// private member
//////////////////////////////////////////////////////////////////////
private:
//! File Entry sorted list
QList<FileEntry> m_FileEntrySortedList;
//! The Opengl View
OpenglView* m_pOpenglView;
//! The Album Name
QString m_AlbumName;
//! The Number of row
int m_NumberOfRow;
//! The Number of line
int m_NumberOfLine;
//! The Number of page
int m_NumberOfPages;
//! The Thumbnail size
QSize m_ThumbnailSize;
//! The Image Size
QSize m_ImageSize;
//! Export Album and Model
bool m_ExportAlbumAndModel;
//! View the thumbnail model name
bool m_ViewThumbnailModelName;
//! Link thumbnail to model
bool m_LinkThumbnailToModel;
//! View the image model informations
bool m_ViewImageModelInformations;
//! Link image to model
bool m_LinkImageToModel;
//! The target Path
QString m_TargetPath;
//! xml/html Writer
QXmlStreamWriter* m_pHtmlWriter;
//! Export to web progress dialog
QProgressDialog m_QProgressDialog;
//! Current progress
int m_CurrentProgressDialog;
//! Thumbnail path name
const QString m_ThumbnailPathName;
//! Image path name
const QString m_ImagePathName;
//! Html Image Page Path name
const QString m_HtmlImagePagePathName;
//! 3D models path name
const QString m_3dModelPathName;
//! Background Color
QColor m_BackgroundColor;
};
#endif /* EXPORTTOWEB_H_ */