insilmaril@382
|
1 |
#include "exportxhtmldialog.h"
|
insilmaril@382
|
2 |
|
insilmaril@382
|
3 |
#include <QFileDialog>
|
insilmaril@382
|
4 |
#include <QMessageBox>
|
insilmaril@382
|
5 |
#include <QTextStream>
|
insilmaril@382
|
6 |
|
insilmaril@382
|
7 |
#include "options.h"
|
insilmaril@382
|
8 |
#include "settings.h"
|
insilmaril@382
|
9 |
|
insilmaril@382
|
10 |
|
insilmaril@382
|
11 |
extern Options options;
|
insilmaril@382
|
12 |
extern QDir vymBaseDir;
|
insilmaril@382
|
13 |
extern Settings settings;
|
insilmaril@515
|
14 |
extern bool debug;
|
insilmaril@382
|
15 |
|
insilmaril@382
|
16 |
ExportXHTMLDialog::ExportXHTMLDialog(QWidget* parent) : QDialog(parent)
|
insilmaril@382
|
17 |
{
|
insilmaril@382
|
18 |
ui.setupUi(this);
|
insilmaril@382
|
19 |
|
insilmaril@382
|
20 |
filepath="";
|
insilmaril@382
|
21 |
settingsChanged=false;
|
insilmaril@382
|
22 |
scriptProc=new Process;
|
insilmaril@382
|
23 |
|
insilmaril@382
|
24 |
// signals and slots connections
|
insilmaril@382
|
25 |
connect(ui.browseExportDirButton, SIGNAL(pressed()), this, SLOT(browseDirectoryPressed()));
|
insilmaril@382
|
26 |
connect(ui.outputButton, SIGNAL(toggled(bool)), this, SLOT(outputButtonPressed(bool)));
|
insilmaril@382
|
27 |
connect(ui.browseXSLButton, SIGNAL(pressed()), this, SLOT(browseXSLPressed()));
|
insilmaril@382
|
28 |
connect(ui.browseCSSButton, SIGNAL(pressed()), this, SLOT(browseCSSPressed()));
|
insilmaril@382
|
29 |
connect(ui.imageButton, SIGNAL(toggled(bool)), this, SLOT(imageButtonPressed(bool)));
|
insilmaril@382
|
30 |
connect(ui.textColorButton, SIGNAL(toggled(bool)), this, SLOT(textcolorButtonPressed(bool)));
|
insilmaril@382
|
31 |
connect(ui.lineEditDir, SIGNAL(textChanged(const QString&)), this, SLOT(dirChanged()));
|
insilmaril@382
|
32 |
connect(ui.lineEditCSS, SIGNAL(textChanged(const QString&)), this, SLOT(cssChanged()));
|
insilmaril@382
|
33 |
connect(ui.lineEditXSL, SIGNAL(textChanged(const QString&)), this, SLOT(xslChanged()));
|
insilmaril@382
|
34 |
connect(ui.warningsButton, SIGNAL(toggled(bool)), this, SLOT(warningsButtonPressed(bool)));
|
insilmaril@382
|
35 |
connect(ui.saveSettingsInMapButton, SIGNAL(toggled(bool)), this, SLOT(saveSettingsInMapButtonPressed(bool)));
|
insilmaril@382
|
36 |
connect(ui.browsePreExportButton, SIGNAL(pressed()), this, SLOT(browsePreExportButtonPressed()));
|
insilmaril@382
|
37 |
connect(ui.lineEditPreScript, SIGNAL(textChanged(const QString&)), this, SLOT(prescriptChanged()));
|
insilmaril@382
|
38 |
connect(ui.lineEditPostScript, SIGNAL(textChanged(const QString&)), this, SLOT(postscriptChanged()));
|
insilmaril@382
|
39 |
connect(ui.browsePostExportButton, SIGNAL(pressed()), this, SLOT(browsePostExportButtonPressed()));
|
insilmaril@382
|
40 |
}
|
insilmaril@382
|
41 |
|
insilmaril@382
|
42 |
|
insilmaril@382
|
43 |
void ExportXHTMLDialog::readSettings()
|
insilmaril@382
|
44 |
{
|
insilmaril@382
|
45 |
|
insilmaril@382
|
46 |
dir=settings.readLocalEntry (filepath,"/export/xhtml/exportDir",vymBaseDir.currentDirPath() );
|
insilmaril@382
|
47 |
ui.lineEditDir->setText(dir);
|
insilmaril@382
|
48 |
|
insilmaril@382
|
49 |
if ( settings.readLocalEntry (filepath,"/export/xhtml/useImage","yes")=="yes")
|
insilmaril@382
|
50 |
useImage=true;
|
insilmaril@382
|
51 |
else
|
insilmaril@382
|
52 |
useImage=false;
|
insilmaril@382
|
53 |
ui.imageButton->setChecked(useImage);
|
insilmaril@382
|
54 |
|
insilmaril@382
|
55 |
if ( settings.readLocalEntry (filepath,"/export/xhtml/useTextColor","no")=="yes")
|
insilmaril@382
|
56 |
useTextColor=true;
|
insilmaril@382
|
57 |
else
|
insilmaril@382
|
58 |
useTextColor=false;
|
insilmaril@382
|
59 |
ui.textColorButton->setChecked(useTextColor);
|
insilmaril@382
|
60 |
|
insilmaril@412
|
61 |
/* TODO this was used in old html export, is not yet in new stylesheet
|
insilmaril@382
|
62 |
if ( settings.readEntry ("/export/html/useHeading","no")=="yes")
|
insilmaril@382
|
63 |
useHeading=true;
|
insilmaril@382
|
64 |
else
|
insilmaril@382
|
65 |
useHeading=false;
|
insilmaril@382
|
66 |
checkBox4_2->setChecked(useHeading);
|
insilmaril@382
|
67 |
*/
|
insilmaril@382
|
68 |
|
insilmaril@382
|
69 |
if ( settings.readLocalEntry (filepath,"/export/xhtml/saveSettingsInMap","no")=="yes")
|
insilmaril@382
|
70 |
saveSettingsInMap=true;
|
insilmaril@382
|
71 |
else
|
insilmaril@382
|
72 |
saveSettingsInMap=false;
|
insilmaril@382
|
73 |
ui.saveSettingsInMapButton->setChecked(saveSettingsInMap);
|
insilmaril@382
|
74 |
|
insilmaril@382
|
75 |
if ( settings.readEntry ("/export/xhtml/showWarnings","yes")=="yes")
|
insilmaril@382
|
76 |
showWarnings=true;
|
insilmaril@382
|
77 |
else
|
insilmaril@382
|
78 |
showWarnings=false;
|
insilmaril@382
|
79 |
ui.warningsButton->setChecked(showWarnings);
|
insilmaril@382
|
80 |
|
insilmaril@382
|
81 |
if ( settings.readEntry ("/export/xhtml/showOutput","no")=="yes")
|
insilmaril@382
|
82 |
showOutput=true;
|
insilmaril@382
|
83 |
else
|
insilmaril@382
|
84 |
showOutput=false;
|
insilmaril@382
|
85 |
ui.outputButton->setChecked(showOutput);
|
insilmaril@382
|
86 |
|
insilmaril@382
|
87 |
// For testing better use local styles
|
insilmaril@624
|
88 |
const QString defxsl(vymBaseDir.path() + "/styles/vym2xhtml.xsl");
|
insilmaril@624
|
89 |
const QString defcss(vymBaseDir.path() + "/styles/vym.css");
|
insilmaril@382
|
90 |
if (options.isOn ("local"))
|
insilmaril@382
|
91 |
{
|
insilmaril@624
|
92 |
xsl=defxsl;
|
insilmaril@624
|
93 |
css=defcss;
|
insilmaril@382
|
94 |
} else
|
insilmaril@382
|
95 |
{
|
insilmaril@382
|
96 |
xsl=settings.readLocalEntry
|
insilmaril@624
|
97 |
(filepath,"/export/xhtml/xsl",defxsl);
|
insilmaril@382
|
98 |
css=settings.readLocalEntry
|
insilmaril@624
|
99 |
(filepath,"/export/xhtml/css",defcss);
|
insilmaril@382
|
100 |
}
|
insilmaril@382
|
101 |
ui.lineEditXSL->setText(xsl);
|
insilmaril@382
|
102 |
ui.lineEditCSS->setText(css);
|
insilmaril@382
|
103 |
|
insilmaril@382
|
104 |
prescript=settings.readLocalEntry
|
insilmaril@382
|
105 |
(filepath,"/export/xhtml/prescript","");
|
insilmaril@382
|
106 |
ui.lineEditPreScript->setText (prescript);
|
insilmaril@382
|
107 |
|
insilmaril@382
|
108 |
postscript=settings.readLocalEntry
|
insilmaril@382
|
109 |
(filepath,"/export/xhtml/postscript","");
|
insilmaril@382
|
110 |
ui.lineEditPostScript->setText (postscript);
|
insilmaril@382
|
111 |
|
insilmaril@382
|
112 |
if (!prescript.isEmpty() || !postscript.isEmpty())
|
insilmaril@382
|
113 |
{
|
insilmaril@382
|
114 |
QMessageBox::warning( 0, tr( "Warning" ),tr(
|
insilmaril@382
|
115 |
"The settings saved in the map "
|
insilmaril@382
|
116 |
"would like to run scripts:\n\n"
|
insilmaril@382
|
117 |
"%1\n\n"
|
insilmaril@382
|
118 |
"Please check, if you really\n"
|
insilmaril@382
|
119 |
"want to allow this in your system!").arg(prescript+" "+postscript));
|
insilmaril@382
|
120 |
|
insilmaril@382
|
121 |
}
|
insilmaril@382
|
122 |
}
|
insilmaril@382
|
123 |
|
insilmaril@515
|
124 |
void ExportXHTMLDialog::setDir(const QString &d)
|
insilmaril@515
|
125 |
{
|
insilmaril@515
|
126 |
dir=d;
|
insilmaril@515
|
127 |
if (dir.right(1)!="/") dir+="/";
|
insilmaril@515
|
128 |
}
|
insilmaril@515
|
129 |
|
insilmaril@382
|
130 |
void ExportXHTMLDialog::dirChanged()
|
insilmaril@382
|
131 |
{
|
insilmaril@515
|
132 |
setDir (ui.lineEditDir->text());
|
insilmaril@382
|
133 |
settingsChanged=true;
|
insilmaril@382
|
134 |
}
|
insilmaril@382
|
135 |
|
insilmaril@382
|
136 |
void ExportXHTMLDialog::browseDirectoryPressed()
|
insilmaril@382
|
137 |
{
|
insilmaril@382
|
138 |
QFileDialog fd( this);
|
insilmaril@382
|
139 |
fd.setMode (QFileDialog::DirectoryOnly);
|
insilmaril@382
|
140 |
fd.setCaption(tr("VYM - Export HTML to directory"));
|
insilmaril@382
|
141 |
fd.setModal (true);
|
insilmaril@382
|
142 |
fd.setDirectory (QDir::current());
|
insilmaril@382
|
143 |
fd.show();
|
insilmaril@382
|
144 |
|
insilmaril@382
|
145 |
if ( fd.exec() == QDialog::Accepted )
|
insilmaril@382
|
146 |
{
|
insilmaril@382
|
147 |
dir=fd.selectedFile();
|
insilmaril@382
|
148 |
ui.lineEditDir->setText (dir );
|
insilmaril@382
|
149 |
settingsChanged=true;
|
insilmaril@382
|
150 |
}
|
insilmaril@382
|
151 |
}
|
insilmaril@382
|
152 |
|
insilmaril@382
|
153 |
void ExportXHTMLDialog::imageButtonPressed(bool b)
|
insilmaril@382
|
154 |
{
|
insilmaril@382
|
155 |
useImage=b;
|
insilmaril@382
|
156 |
settingsChanged=true;
|
insilmaril@382
|
157 |
}
|
insilmaril@382
|
158 |
|
insilmaril@382
|
159 |
void ExportXHTMLDialog::textcolorButtonPressed(bool b)
|
insilmaril@382
|
160 |
{
|
insilmaril@382
|
161 |
useTextColor=b;
|
insilmaril@382
|
162 |
settingsChanged=true;
|
insilmaril@382
|
163 |
}
|
insilmaril@382
|
164 |
|
insilmaril@382
|
165 |
void ExportXHTMLDialog::saveSettingsInMapButtonPressed(bool b)
|
insilmaril@382
|
166 |
{
|
insilmaril@382
|
167 |
saveSettingsInMap=b;
|
insilmaril@382
|
168 |
settingsChanged=true;
|
insilmaril@382
|
169 |
}
|
insilmaril@382
|
170 |
|
insilmaril@382
|
171 |
void ExportXHTMLDialog::warningsButtonPressed(bool b)
|
insilmaril@382
|
172 |
{
|
insilmaril@382
|
173 |
showWarnings=b;
|
insilmaril@382
|
174 |
settingsChanged=true;
|
insilmaril@382
|
175 |
}
|
insilmaril@382
|
176 |
|
insilmaril@382
|
177 |
|
insilmaril@382
|
178 |
void ExportXHTMLDialog::outputButtonPressed(bool b)
|
insilmaril@382
|
179 |
{
|
insilmaril@382
|
180 |
showOutput=b;
|
insilmaril@382
|
181 |
settingsChanged=true;
|
insilmaril@382
|
182 |
}
|
insilmaril@382
|
183 |
|
insilmaril@382
|
184 |
void ExportXHTMLDialog::cssChanged()
|
insilmaril@382
|
185 |
{
|
insilmaril@382
|
186 |
css=ui.lineEditCSS->text();
|
insilmaril@382
|
187 |
settingsChanged=true;
|
insilmaril@382
|
188 |
}
|
insilmaril@382
|
189 |
|
insilmaril@382
|
190 |
void ExportXHTMLDialog::browseCSSPressed()
|
insilmaril@382
|
191 |
{
|
insilmaril@382
|
192 |
QFileDialog fd( this);
|
insilmaril@382
|
193 |
fd.setModal (true);
|
insilmaril@382
|
194 |
fd.setFilter ("Cascading Stylesheet (*.css)");
|
insilmaril@382
|
195 |
fd.setDirectory (QDir::current());
|
insilmaril@382
|
196 |
fd.show();
|
insilmaril@382
|
197 |
|
insilmaril@382
|
198 |
if ( fd.exec() == QDialog::Accepted )
|
insilmaril@382
|
199 |
{
|
insilmaril@382
|
200 |
css=fd.selectedFile();
|
insilmaril@382
|
201 |
ui.lineEditCSS->setText (css );
|
insilmaril@382
|
202 |
settingsChanged=true;
|
insilmaril@382
|
203 |
}
|
insilmaril@382
|
204 |
}
|
insilmaril@382
|
205 |
|
insilmaril@382
|
206 |
void ExportXHTMLDialog::xslChanged()
|
insilmaril@382
|
207 |
{
|
insilmaril@382
|
208 |
xsl=ui.lineEditXSL->text();
|
insilmaril@382
|
209 |
settingsChanged=true;
|
insilmaril@382
|
210 |
}
|
insilmaril@382
|
211 |
|
insilmaril@382
|
212 |
void ExportXHTMLDialog::prescriptChanged()
|
insilmaril@382
|
213 |
{
|
insilmaril@382
|
214 |
prescript=ui.lineEditPreScript->text();
|
insilmaril@382
|
215 |
settingsChanged=true;
|
insilmaril@382
|
216 |
}
|
insilmaril@382
|
217 |
|
insilmaril@382
|
218 |
void ExportXHTMLDialog::browseXSLPressed()
|
insilmaril@382
|
219 |
{
|
insilmaril@382
|
220 |
QFileDialog fd( this);
|
insilmaril@382
|
221 |
fd.setModal (true);
|
insilmaril@382
|
222 |
fd.setFilter ("Extensible Stylesheet Language (*.xsl)");
|
insilmaril@382
|
223 |
fd.setDirectory (QDir::current());
|
insilmaril@382
|
224 |
fd.show();
|
insilmaril@382
|
225 |
|
insilmaril@382
|
226 |
if ( fd.exec() == QDialog::Accepted )
|
insilmaril@382
|
227 |
{
|
insilmaril@382
|
228 |
xsl=fd.selectedFile();
|
insilmaril@382
|
229 |
ui.lineEditXSL->setText (xsl );
|
insilmaril@382
|
230 |
settingsChanged=true;
|
insilmaril@382
|
231 |
}
|
insilmaril@382
|
232 |
}
|
insilmaril@382
|
233 |
|
insilmaril@382
|
234 |
void ExportXHTMLDialog::postscriptChanged()
|
insilmaril@382
|
235 |
{
|
insilmaril@382
|
236 |
postscript=ui.lineEditPostScript->text();
|
insilmaril@382
|
237 |
settingsChanged=true;
|
insilmaril@382
|
238 |
}
|
insilmaril@382
|
239 |
|
insilmaril@382
|
240 |
void ExportXHTMLDialog::browsePreExportButtonPressed()
|
insilmaril@382
|
241 |
{
|
insilmaril@382
|
242 |
QFileDialog fd( this);
|
insilmaril@382
|
243 |
fd.setModal (true);
|
insilmaril@382
|
244 |
fd.setFilter ("Scripts (*.sh *.pl *.py *.php)");
|
insilmaril@382
|
245 |
fd.setDirectory (QDir::current());
|
insilmaril@382
|
246 |
fd.show();
|
insilmaril@382
|
247 |
|
insilmaril@382
|
248 |
if ( fd.exec() == QDialog::Accepted )
|
insilmaril@382
|
249 |
{
|
insilmaril@382
|
250 |
prescript=fd.selectedFile();
|
insilmaril@382
|
251 |
ui.lineEditPreScript->setText (prescript );
|
insilmaril@382
|
252 |
settingsChanged=true;
|
insilmaril@382
|
253 |
}
|
insilmaril@382
|
254 |
|
insilmaril@382
|
255 |
}
|
insilmaril@382
|
256 |
|
insilmaril@382
|
257 |
void ExportXHTMLDialog::browsePostExportButtonPressed()
|
insilmaril@382
|
258 |
{
|
insilmaril@382
|
259 |
QFileDialog fd( this);
|
insilmaril@382
|
260 |
fd.setModal (true);
|
insilmaril@382
|
261 |
fd.setFilter ("Scripts (*.sh *.pl *.py *.php)");
|
insilmaril@382
|
262 |
fd.setDirectory (QDir::current());
|
insilmaril@382
|
263 |
fd.show();
|
insilmaril@382
|
264 |
|
insilmaril@382
|
265 |
if ( fd.exec() == QDialog::Accepted )
|
insilmaril@382
|
266 |
{
|
insilmaril@382
|
267 |
postscript=fd.selectedFile();
|
insilmaril@382
|
268 |
ui.lineEditPostScript->setText (postscript );
|
insilmaril@382
|
269 |
settingsChanged=true;
|
insilmaril@382
|
270 |
}
|
insilmaril@382
|
271 |
}
|
insilmaril@382
|
272 |
|
insilmaril@382
|
273 |
|
insilmaril@382
|
274 |
void ExportXHTMLDialog::doExport (const QString &mapname)
|
insilmaril@382
|
275 |
{
|
insilmaril@822
|
276 |
|
insilmaril@382
|
277 |
// Save options to settings file
|
insilmaril@382
|
278 |
// (but don't save at destructor, which
|
insilmaril@382
|
279 |
// is called for "cancel", too)
|
insilmaril@382
|
280 |
settings.setLocalEntry (filepath,"/export/xhtml/exportDir",dir);
|
insilmaril@382
|
281 |
settings.setLocalEntry (filepath,"/export/xhtml/prescript",prescript);
|
insilmaril@382
|
282 |
settings.setLocalEntry (filepath,"/export/xhtml/postscript",postscript);
|
insilmaril@382
|
283 |
|
insilmaril@382
|
284 |
if (useImage)
|
insilmaril@382
|
285 |
settings.setLocalEntry (filepath,"/export/xhtml/useImage","yes");
|
insilmaril@382
|
286 |
else
|
insilmaril@382
|
287 |
settings.setLocalEntry (filepath,"/export/xhtml/useImage","no");
|
insilmaril@382
|
288 |
|
insilmaril@382
|
289 |
if (useTextColor)
|
insilmaril@382
|
290 |
settings.setLocalEntry (filepath,"/export/xhtml/useTextColor","yes");
|
insilmaril@382
|
291 |
else
|
insilmaril@382
|
292 |
settings.setLocalEntry (filepath,"/export/xhtml/useTextColor","no");
|
insilmaril@382
|
293 |
|
insilmaril@382
|
294 |
if (showWarnings)
|
insilmaril@382
|
295 |
settings.writeEntry ("/export/xhtml/showWarnings","yes");
|
insilmaril@382
|
296 |
else
|
insilmaril@382
|
297 |
settings.writeEntry ("/export/xhtml/showWarnings","no");
|
insilmaril@382
|
298 |
|
insilmaril@382
|
299 |
if (showOutput)
|
insilmaril@382
|
300 |
settings.writeEntry ("/export/xhtml/showOutput","yes");
|
insilmaril@382
|
301 |
else
|
insilmaril@382
|
302 |
settings.writeEntry ("/export/xhtml/showOutput","no");
|
insilmaril@382
|
303 |
|
insilmaril@382
|
304 |
QString ipath;
|
insilmaril@382
|
305 |
ipath=vymBaseDir.path()+"/flags/flag-url-16x16.png";
|
insilmaril@382
|
306 |
if (!options.isOn ("local"))
|
insilmaril@382
|
307 |
{
|
insilmaril@382
|
308 |
settings.setLocalEntry
|
insilmaril@382
|
309 |
(filepath,"/export/xhtml/xsl",xsl);
|
insilmaril@382
|
310 |
settings.setLocalEntry
|
insilmaril@382
|
311 |
(filepath,"/export/xhtml/css",css);
|
insilmaril@382
|
312 |
}
|
insilmaril@382
|
313 |
|
insilmaril@822
|
314 |
if (!saveSettingsInMap)
|
insilmaril@822
|
315 |
settings.clearLocal("/export/xhtml");
|
insilmaril@822
|
316 |
else
|
insilmaril@822
|
317 |
settings.setLocalEntry
|
insilmaril@822
|
318 |
(filepath,"/export/xhtml/saveSettingsInMap","yes");
|
insilmaril@822
|
319 |
|
insilmaril@382
|
320 |
// Provide a smaller URL-icon to improve Layout
|
insilmaril@382
|
321 |
QPixmap pm;
|
insilmaril@382
|
322 |
if (!pm.load(ipath,"PNG") )
|
insilmaril@382
|
323 |
QMessageBox::warning( 0, tr( "Warning" ),tr("Could not open %1").arg(ipath));
|
insilmaril@382
|
324 |
|
insilmaril@382
|
325 |
|
insilmaril@382
|
326 |
if(!pm.save (dir + "flags/flag-url-16x16.png","PNG"))
|
insilmaril@382
|
327 |
QMessageBox::warning( 0, tr( "Warning" ),tr("Could not write %1").arg(ipath));
|
insilmaril@382
|
328 |
|
insilmaril@382
|
329 |
// Copy CSS file
|
insilmaril@382
|
330 |
QFile css_src (css);
|
insilmaril@382
|
331 |
QFile css_dst (dir+"vym.css");
|
insilmaril@382
|
332 |
if (!css_src.open ( QIODevice::ReadOnly))
|
insilmaril@382
|
333 |
QMessageBox::warning( 0, tr( "Warning" ),tr("Could not open %1").arg(css));
|
insilmaril@382
|
334 |
else
|
insilmaril@382
|
335 |
{
|
insilmaril@382
|
336 |
if (!css_dst.open( QIODevice::WriteOnly))
|
insilmaril@382
|
337 |
QMessageBox::warning( 0, tr( "Warning" ), tr("Could not open %1").arg(dir+"vym.css"));
|
insilmaril@382
|
338 |
else
|
insilmaril@382
|
339 |
{
|
insilmaril@382
|
340 |
|
insilmaril@382
|
341 |
QTextStream tsout( &css_dst);
|
insilmaril@382
|
342 |
QTextStream tsin ( &css_src);
|
insilmaril@382
|
343 |
QString s= tsin.read();
|
insilmaril@382
|
344 |
tsout << s;
|
insilmaril@382
|
345 |
css_dst.close();
|
insilmaril@382
|
346 |
}
|
insilmaril@382
|
347 |
css_src.close();
|
insilmaril@382
|
348 |
}
|
insilmaril@382
|
349 |
|
insilmaril@382
|
350 |
if (!prescript.isEmpty()) runScript (prescript,dir+mapname+".xml");
|
insilmaril@382
|
351 |
|
insilmaril@382
|
352 |
if (useImage)
|
insilmaril@382
|
353 |
p.addStringParam ("imagemap","images/"+mapname+".png");
|
insilmaril@382
|
354 |
if (useTextColor)
|
insilmaril@382
|
355 |
p.addStringParam ("use.textcolor","1");
|
insilmaril@382
|
356 |
p.addStringParam ("mapname",mapname+".vym");
|
insilmaril@382
|
357 |
|
insilmaril@382
|
358 |
p.setOutputFile (dir+mapname+".html");
|
insilmaril@382
|
359 |
p.setInputFile (dir+mapname+".xml");
|
insilmaril@382
|
360 |
p.setXSLFile (xsl);
|
insilmaril@382
|
361 |
p.process();
|
insilmaril@382
|
362 |
|
insilmaril@382
|
363 |
if (!postscript.isEmpty()) runScript (postscript,dir+mapname+".html");
|
insilmaril@382
|
364 |
|
insilmaril@382
|
365 |
}
|
insilmaril@382
|
366 |
|
insilmaril@382
|
367 |
void ExportXHTMLDialog::setFilePath(const QString &s)
|
insilmaril@382
|
368 |
{
|
insilmaril@382
|
369 |
filepath=s;
|
insilmaril@382
|
370 |
}
|
insilmaril@382
|
371 |
|
insilmaril@382
|
372 |
void ExportXHTMLDialog::setMapName(const QString &s)
|
insilmaril@382
|
373 |
{
|
insilmaril@382
|
374 |
mapname=s;
|
insilmaril@382
|
375 |
}
|
insilmaril@382
|
376 |
|
insilmaril@382
|
377 |
QString ExportXHTMLDialog::getDir()
|
insilmaril@382
|
378 |
{
|
insilmaril@382
|
379 |
return dir;
|
insilmaril@382
|
380 |
}
|
insilmaril@382
|
381 |
|
insilmaril@382
|
382 |
bool ExportXHTMLDialog::warnings()
|
insilmaril@382
|
383 |
{
|
insilmaril@382
|
384 |
return showWarnings;
|
insilmaril@382
|
385 |
}
|
insilmaril@382
|
386 |
|
insilmaril@382
|
387 |
bool ExportXHTMLDialog::hasChanged()
|
insilmaril@382
|
388 |
{
|
insilmaril@382
|
389 |
return settingsChanged;
|
insilmaril@382
|
390 |
}
|
insilmaril@382
|
391 |
|
insilmaril@382
|
392 |
|
insilmaril@382
|
393 |
void ExportXHTMLDialog::runScript(QString spath, QString fpath)
|
insilmaril@382
|
394 |
{
|
insilmaril@382
|
395 |
spath.replace ("%f",fpath);
|
insilmaril@382
|
396 |
QStringList args=QStringList::split (' ',spath,false);
|
insilmaril@382
|
397 |
|
insilmaril@408
|
398 |
p.addOutput ("vym is executing: \n" + spath+" "+args.join(" ") );
|
insilmaril@408
|
399 |
scriptProc->start (spath,args);
|
insilmaril@408
|
400 |
if (!scriptProc->waitForStarted() )
|
insilmaril@382
|
401 |
{
|
insilmaril@382
|
402 |
QMessageBox::critical( 0, tr( "Critical Error" ),
|
insilmaril@382
|
403 |
tr("Could not start %1").arg(spath) );
|
insilmaril@382
|
404 |
} else
|
insilmaril@382
|
405 |
{
|
insilmaril@428
|
406 |
if (!scriptProc->waitForFinished())
|
insilmaril@382
|
407 |
QMessageBox::critical( 0, tr( "Critical Error" ),
|
insilmaril@382
|
408 |
tr("%1 didn't exit normally").arg(spath) +
|
insilmaril@382
|
409 |
scriptProc->getErrout() );
|
insilmaril@382
|
410 |
else
|
insilmaril@382
|
411 |
if (scriptProc->exitStatus()>0) showOutput=true;
|
insilmaril@382
|
412 |
|
insilmaril@382
|
413 |
}
|
insilmaril@382
|
414 |
p.addOutput ("\n");
|
insilmaril@382
|
415 |
p.addOutput (scriptProc->getErrout());
|
insilmaril@382
|
416 |
p.addOutput (scriptProc->getStdout());
|
insilmaril@382
|
417 |
}
|
insilmaril@382
|
418 |
|