diff -r c48bb42fb977 -r b98c1793bb8b exportxhtmldialog.cpp
--- a/exportxhtmldialog.cpp Wed Apr 07 10:45:24 2010 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,418 +0,0 @@
-#include "exportxhtmldialog.h"
-
-#include
-#include
-#include
-
-#include "options.h"
-#include "settings.h"
-
-
-extern Options options;
-extern QDir vymBaseDir;
-extern Settings settings;
-extern bool debug;
-
-ExportXHTMLDialog::ExportXHTMLDialog(QWidget* parent) : QDialog(parent)
-{
- ui.setupUi(this);
-
- filepath="";
- settingsChanged=false;
- scriptProc=new Process;
-
- // signals and slots connections
- connect(ui.browseExportDirButton, SIGNAL(pressed()), this, SLOT(browseDirectoryPressed()));
- connect(ui.outputButton, SIGNAL(toggled(bool)), this, SLOT(outputButtonPressed(bool)));
- connect(ui.browseXSLButton, SIGNAL(pressed()), this, SLOT(browseXSLPressed()));
- connect(ui.browseCSSButton, SIGNAL(pressed()), this, SLOT(browseCSSPressed()));
- connect(ui.imageButton, SIGNAL(toggled(bool)), this, SLOT(imageButtonPressed(bool)));
- connect(ui.textColorButton, SIGNAL(toggled(bool)), this, SLOT(textcolorButtonPressed(bool)));
- connect(ui.lineEditDir, SIGNAL(textChanged(const QString&)), this, SLOT(dirChanged()));
- connect(ui.lineEditCSS, SIGNAL(textChanged(const QString&)), this, SLOT(cssChanged()));
- connect(ui.lineEditXSL, SIGNAL(textChanged(const QString&)), this, SLOT(xslChanged()));
- connect(ui.warningsButton, SIGNAL(toggled(bool)), this, SLOT(warningsButtonPressed(bool)));
- connect(ui.saveSettingsInMapButton, SIGNAL(toggled(bool)), this, SLOT(saveSettingsInMapButtonPressed(bool)));
- connect(ui.browsePreExportButton, SIGNAL(pressed()), this, SLOT(browsePreExportButtonPressed()));
- connect(ui.lineEditPreScript, SIGNAL(textChanged(const QString&)), this, SLOT(prescriptChanged()));
- connect(ui.lineEditPostScript, SIGNAL(textChanged(const QString&)), this, SLOT(postscriptChanged()));
- connect(ui.browsePostExportButton, SIGNAL(pressed()), this, SLOT(browsePostExportButtonPressed()));
-}
-
-
-void ExportXHTMLDialog::readSettings()
-{
-
- dir=settings.readLocalEntry (filepath,"/export/xhtml/exportDir",vymBaseDir.currentDirPath() );
- ui.lineEditDir->setText(dir);
-
- if ( settings.readLocalEntry (filepath,"/export/xhtml/useImage","yes")=="yes")
- useImage=true;
- else
- useImage=false;
- ui.imageButton->setChecked(useImage);
-
- if ( settings.readLocalEntry (filepath,"/export/xhtml/useTextColor","no")=="yes")
- useTextColor=true;
- else
- useTextColor=false;
- ui.textColorButton->setChecked(useTextColor);
-
-/* TODO this was used in old html export, is not yet in new stylesheet
- if ( settings.readEntry ("/export/html/useHeading","no")=="yes")
- useHeading=true;
- else
- useHeading=false;
- checkBox4_2->setChecked(useHeading);
-*/
-
- if ( settings.readLocalEntry (filepath,"/export/xhtml/saveSettingsInMap","no")=="yes")
- saveSettingsInMap=true;
- else
- saveSettingsInMap=false;
- ui.saveSettingsInMapButton->setChecked(saveSettingsInMap);
-
- if ( settings.readEntry ("/export/xhtml/showWarnings","yes")=="yes")
- showWarnings=true;
- else
- showWarnings=false;
- ui.warningsButton->setChecked(showWarnings);
-
- if ( settings.readEntry ("/export/xhtml/showOutput","no")=="yes")
- showOutput=true;
- else
- showOutput=false;
- ui.outputButton->setChecked(showOutput);
-
- // For testing better use local styles
- const QString defxsl(vymBaseDir.path() + "/styles/vym2xhtml.xsl");
- const QString defcss(vymBaseDir.path() + "/styles/vym.css");
- if (options.isOn ("local"))
- {
- xsl=defxsl;
- css=defcss;
- } else
- {
- xsl=settings.readLocalEntry
- (filepath,"/export/xhtml/xsl",defxsl);
- css=settings.readLocalEntry
- (filepath,"/export/xhtml/css",defcss);
- }
- ui.lineEditXSL->setText(xsl);
- ui.lineEditCSS->setText(css);
-
- prescript=settings.readLocalEntry
- (filepath,"/export/xhtml/prescript","");
- ui.lineEditPreScript->setText (prescript);
-
- postscript=settings.readLocalEntry
- (filepath,"/export/xhtml/postscript","");
- ui.lineEditPostScript->setText (postscript);
-
- if (!prescript.isEmpty() || !postscript.isEmpty())
- {
- QMessageBox::warning( 0, tr( "Warning" ),tr(
- "The settings saved in the map "
- "would like to run scripts:\n\n"
- "%1\n\n"
- "Please check, if you really\n"
- "want to allow this in your system!").arg(prescript+" "+postscript));
-
- }
-}
-
-void ExportXHTMLDialog::setDir(const QString &d)
-{
- dir=d;
- if (dir.right(1)!="/") dir+="/";
-}
-
-void ExportXHTMLDialog::dirChanged()
-{
- setDir (ui.lineEditDir->text());
- settingsChanged=true;
-}
-
-void ExportXHTMLDialog::browseDirectoryPressed()
-{
- QFileDialog fd( this);
- fd.setMode (QFileDialog::DirectoryOnly);
- fd.setCaption(tr("VYM - Export HTML to directory"));
- fd.setModal (true);
- fd.setDirectory (QDir::current());
- fd.show();
-
- if ( fd.exec() == QDialog::Accepted )
- {
- dir=fd.selectedFile();
- ui.lineEditDir->setText (dir );
- settingsChanged=true;
- }
-}
-
-void ExportXHTMLDialog::imageButtonPressed(bool b)
-{
- useImage=b;
- settingsChanged=true;
-}
-
-void ExportXHTMLDialog::textcolorButtonPressed(bool b)
-{
- useTextColor=b;
- settingsChanged=true;
-}
-
-void ExportXHTMLDialog::saveSettingsInMapButtonPressed(bool b)
-{
- saveSettingsInMap=b;
- settingsChanged=true;
-}
-
-void ExportXHTMLDialog::warningsButtonPressed(bool b)
-{
- showWarnings=b;
- settingsChanged=true;
-}
-
-
-void ExportXHTMLDialog::outputButtonPressed(bool b)
-{
- showOutput=b;
- settingsChanged=true;
-}
-
-void ExportXHTMLDialog::cssChanged()
-{
- css=ui.lineEditCSS->text();
- settingsChanged=true;
-}
-
-void ExportXHTMLDialog::browseCSSPressed()
-{
- QFileDialog fd( this);
- fd.setModal (true);
- fd.setFilter ("Cascading Stylesheet (*.css)");
- fd.setDirectory (QDir::current());
- fd.show();
-
- if ( fd.exec() == QDialog::Accepted )
- {
- css=fd.selectedFile();
- ui.lineEditCSS->setText (css );
- settingsChanged=true;
- }
-}
-
-void ExportXHTMLDialog::xslChanged()
-{
- xsl=ui.lineEditXSL->text();
- settingsChanged=true;
-}
-
-void ExportXHTMLDialog::prescriptChanged()
-{
- prescript=ui.lineEditPreScript->text();
- settingsChanged=true;
-}
-
-void ExportXHTMLDialog::browseXSLPressed()
-{
- QFileDialog fd( this);
- fd.setModal (true);
- fd.setFilter ("Extensible Stylesheet Language (*.xsl)");
- fd.setDirectory (QDir::current());
- fd.show();
-
- if ( fd.exec() == QDialog::Accepted )
- {
- xsl=fd.selectedFile();
- ui.lineEditXSL->setText (xsl );
- settingsChanged=true;
- }
-}
-
-void ExportXHTMLDialog::postscriptChanged()
-{
- postscript=ui.lineEditPostScript->text();
- settingsChanged=true;
-}
-
-void ExportXHTMLDialog::browsePreExportButtonPressed()
-{
- QFileDialog fd( this);
- fd.setModal (true);
- fd.setFilter ("Scripts (*.sh *.pl *.py *.php)");
- fd.setDirectory (QDir::current());
- fd.show();
-
- if ( fd.exec() == QDialog::Accepted )
- {
- prescript=fd.selectedFile();
- ui.lineEditPreScript->setText (prescript );
- settingsChanged=true;
- }
-
-}
-
-void ExportXHTMLDialog::browsePostExportButtonPressed()
-{
- QFileDialog fd( this);
- fd.setModal (true);
- fd.setFilter ("Scripts (*.sh *.pl *.py *.php)");
- fd.setDirectory (QDir::current());
- fd.show();
-
- if ( fd.exec() == QDialog::Accepted )
- {
- postscript=fd.selectedFile();
- ui.lineEditPostScript->setText (postscript );
- settingsChanged=true;
- }
-}
-
-
-void ExportXHTMLDialog::doExport (const QString &mapname)
-{
-
- // Save options to settings file
- // (but don't save at destructor, which
- // is called for "cancel", too)
- settings.setLocalEntry (filepath,"/export/xhtml/exportDir",dir);
- settings.setLocalEntry (filepath,"/export/xhtml/prescript",prescript);
- settings.setLocalEntry (filepath,"/export/xhtml/postscript",postscript);
-
- if (useImage)
- settings.setLocalEntry (filepath,"/export/xhtml/useImage","yes");
- else
- settings.setLocalEntry (filepath,"/export/xhtml/useImage","no");
-
- if (useTextColor)
- settings.setLocalEntry (filepath,"/export/xhtml/useTextColor","yes");
- else
- settings.setLocalEntry (filepath,"/export/xhtml/useTextColor","no");
-
- if (showWarnings)
- settings.writeEntry ("/export/xhtml/showWarnings","yes");
- else
- settings.writeEntry ("/export/xhtml/showWarnings","no");
-
- if (showOutput)
- settings.writeEntry ("/export/xhtml/showOutput","yes");
- else
- settings.writeEntry ("/export/xhtml/showOutput","no");
-
- QString ipath;
- ipath=vymBaseDir.path()+"/flags/flag-url-16x16.png";
- if (!options.isOn ("local"))
- {
- settings.setLocalEntry
- (filepath,"/export/xhtml/xsl",xsl);
- settings.setLocalEntry
- (filepath,"/export/xhtml/css",css);
- }
-
- if (!saveSettingsInMap)
- settings.clearLocal("/export/xhtml");
- else
- settings.setLocalEntry
- (filepath,"/export/xhtml/saveSettingsInMap","yes");
-
- // Provide a smaller URL-icon to improve Layout
- QPixmap pm;
- if (!pm.load(ipath,"PNG") )
- QMessageBox::warning( 0, tr( "Warning" ),tr("Could not open %1").arg(ipath));
-
-
- if(!pm.save (dir + "flags/flag-url-16x16.png","PNG"))
- QMessageBox::warning( 0, tr( "Warning" ),tr("Could not write %1").arg(ipath));
-
- // Copy CSS file
- QFile css_src (css);
- QFile css_dst (dir+"vym.css");
- if (!css_src.open ( QIODevice::ReadOnly))
- QMessageBox::warning( 0, tr( "Warning" ),tr("Could not open %1").arg(css));
- else
- {
- if (!css_dst.open( QIODevice::WriteOnly))
- QMessageBox::warning( 0, tr( "Warning" ), tr("Could not open %1").arg(dir+"vym.css"));
- else
- {
-
- QTextStream tsout( &css_dst);
- QTextStream tsin ( &css_src);
- QString s= tsin.read();
- tsout << s;
- css_dst.close();
- }
- css_src.close();
- }
-
- if (!prescript.isEmpty()) runScript (prescript,dir+mapname+".xml");
-
- if (useImage)
- p.addStringParam ("imagemap","images/"+mapname+".png");
- if (useTextColor)
- p.addStringParam ("use.textcolor","1");
- p.addStringParam ("mapname",mapname+".vym");
-
- p.setOutputFile (dir+mapname+".html");
- p.setInputFile (dir+mapname+".xml");
- p.setXSLFile (xsl);
- p.process();
-
- if (!postscript.isEmpty()) runScript (postscript,dir+mapname+".html");
-
-}
-
-void ExportXHTMLDialog::setFilePath(const QString &s)
-{
- filepath=s;
-}
-
-void ExportXHTMLDialog::setMapName(const QString &s)
-{
- mapname=s;
-}
-
-QString ExportXHTMLDialog::getDir()
-{
- return dir;
-}
-
-bool ExportXHTMLDialog::warnings()
-{
- return showWarnings;
-}
-
-bool ExportXHTMLDialog::hasChanged()
-{
- return settingsChanged;
-}
-
-
-void ExportXHTMLDialog::runScript(QString spath, QString fpath)
-{
- spath.replace ("%f",fpath);
- QStringList args=QStringList::split (' ',spath,false);
-
- p.addOutput ("vym is executing: \n" + spath+" "+args.join(" ") );
- scriptProc->start (spath,args);
- if (!scriptProc->waitForStarted() )
- {
- QMessageBox::critical( 0, tr( "Critical Error" ),
- tr("Could not start %1").arg(spath) );
- } else
- {
- if (!scriptProc->waitForFinished())
- QMessageBox::critical( 0, tr( "Critical Error" ),
- tr("%1 didn't exit normally").arg(spath) +
- scriptProc->getErrout() );
- else
- if (scriptProc->exitStatus()>0) showOutput=true;
-
- }
- p.addOutput ("\n");
- p.addOutput (scriptProc->getErrout());
- p.addOutput (scriptProc->getStdout());
-}
-