--- /dev/null
+#include "export-html-dialog.h"
+
+#include <QFileDialog>
+#include <QMessageBox>
+
+#include "file.h"
+#include "settings.h"
+
+extern QDir vymBaseDir;
+extern Settings settings;
+extern bool debug;
+
+ExportHTMLDialog::ExportHTMLDialog(QWidget *parent) : QDialog(parent)
+{
+ ui.setupUi(this);
+
+ filepath = "";
+ settingsChanged = false;
+
+ // signals and slots connections
+ connect(ui.browseExportDirButton, SIGNAL(pressed()), this,
+ SLOT(browseDirectoryPressed()));
+ connect(ui.browseCssSrcButton, SIGNAL(pressed()), this,
+ SLOT(browseCssSrcPressed()));
+ connect(ui.browseCssDstButton, SIGNAL(pressed()), this,
+ SLOT(browseCssDstPressed()));
+ connect(ui.imageCheckBox, SIGNAL(toggled(bool)), this,
+ SLOT(imageCheckBoxPressed(bool)));
+ connect(ui.includeImagesCheckBox, SIGNAL(toggled(bool)), this,
+ SLOT(includeImagesCheckBoxPressed(bool)));
+ connect(ui.TOCCheckBox, SIGNAL(toggled(bool)), this,
+ SLOT(TOCCheckBoxPressed(bool)));
+ connect(ui.numberingCheckBox, SIGNAL(toggled(bool)), this,
+ SLOT(numberingCheckBoxPressed(bool)));
+ connect(ui.taskFlagsCheckBox, SIGNAL(toggled(bool)), this,
+ SLOT(taskFlagsCheckBoxPressed(bool)));
+ connect(ui.userFlagsCheckBox, SIGNAL(toggled(bool)), this,
+ SLOT(userFlagsCheckBoxPressed(bool)));
+ connect(ui.textColorCheckBox, SIGNAL(toggled(bool)), this,
+ SLOT(textcolorCheckBoxPressed(bool)));
+ connect(ui.lineEditDir, SIGNAL(textChanged(const QString &)), this,
+ SLOT(dirChanged()));
+ connect(ui.copyCssCheckBox, SIGNAL(pressed()), this,
+ SLOT(copyCssPressed()));
+ connect(ui.lineEditCssSrc, SIGNAL(textChanged(const QString &)), this,
+ SLOT(cssSrcChanged()));
+ connect(ui.lineEditCssDst, SIGNAL(textChanged(const QString &)), this,
+ SLOT(cssDstChanged()));
+ connect(ui.saveSettingsInMapCheckBox, SIGNAL(toggled(bool)), this,
+ SLOT(saveSettingsInMapCheckBoxPressed(bool)));
+ connect(ui.lineEditPostScript, SIGNAL(textChanged(const QString &)), this,
+ SLOT(postscriptChanged()));
+ connect(ui.browsePostExportButton, SIGNAL(pressed()), this,
+ SLOT(browsePostExportButtonPressed()));
+}
+
+void ExportHTMLDialog::readSettings()
+{
+ dir.setPath(settings
+ .localValue(filepath, "/export/html/exportDir",
+ vymBaseDir.currentPath())
+ .toString()); // FIXME-3 exportDir only needed for dialog
+ ui.lineEditDir->setText(dir.absolutePath());
+
+ includeMapImage =
+ settings.localValue(filepath, "/export/html/includeMapImage", "true")
+ .toBool();
+ ui.imageCheckBox->setChecked(includeMapImage);
+
+ includeImages =
+ settings.localValue(filepath, "/export/html/includeImages", "true")
+ .toBool();
+ ui.includeImagesCheckBox->setChecked(includeImages);
+
+ useTOC =
+ settings.localValue(filepath, "/export/html/useTOC", "true").toBool();
+ ui.TOCCheckBox->setChecked(useTOC);
+
+ useNumbering =
+ settings.localValue(filepath, "/export/html/useNumbering", "true")
+ .toBool();
+ ui.numberingCheckBox->setChecked(useNumbering);
+
+ useTaskFlags =
+ settings.localValue(filepath, "/export/html/useTaskFlags", "true")
+ .toBool();
+ ui.taskFlagsCheckBox->setChecked(useTaskFlags);
+
+ useUserFlags =
+ settings.localValue(filepath, "/export/html/useUserFlags", "true")
+ .toBool();
+ ui.userFlagsCheckBox->setChecked(useUserFlags);
+
+ useTextColor =
+ settings.localValue(filepath, "/export/html/useTextColor", "no")
+ .toBool();
+ ui.textColorCheckBox->setChecked(useTextColor);
+
+ /* FIXME-3 this was used in old html export, is not yet in new stylesheet
+ useHeading=settings.readValue
+ ("/export/html/useHeading","false").toBool();
+ checkBox4_2->setChecked(useHeading);
+ */
+
+ saveSettingsInMap =
+ settings.localValue(filepath, "/export/html/saveSettingsInMap", "no")
+ .toBool();
+ ui.saveSettingsInMapCheckBox->setChecked(saveSettingsInMap);
+
+ // CSS settings
+ css_copy =
+ settings.localValue(filepath, "/export/html/copy_css", true).toBool();
+ ui.copyCssCheckBox->setChecked(css_copy);
+
+ QString css_org = vymBaseDir.path() + "/styles/vym.css";
+ css_src = settings.localValue(filepath, "/export/html/css_src", css_org)
+ .toString();
+ css_dst =
+ settings.localValue(filepath, "/export/html/css_dst", basename(css_org))
+ .toString();
+
+ ui.lineEditCssSrc->setText(css_src);
+ ui.lineEditCssDst->setText(css_dst);
+
+ postscript =
+ settings.localValue(filepath, "/export/html/postscript", "").toString();
+ ui.lineEditPostScript->setText(postscript);
+
+ if (!postscript.isEmpty()) {
+ QMessageBox::warning(0, tr("Warning"),
+ tr("The settings saved in the map "
+ "would like to run script:\n\n"
+ "%1\n\n"
+ "Please check, if you really\n"
+ "want to allow this in your system!")
+ .arg(postscript));
+ }
+}
+
+void ExportHTMLDialog::setDirectory(const QString &d) { dir.setPath(d); }
+
+void ExportHTMLDialog::dirChanged()
+{
+ setDirectory(ui.lineEditDir->text());
+ settingsChanged = true;
+}
+
+void ExportHTMLDialog::browseDirectoryPressed()
+{
+ QFileDialog fd(this);
+ fd.setFileMode(QFileDialog::DirectoryOnly);
+ fd.setWindowTitle(tr("VYM - Export HTML to directory"));
+ fd.setModal(true);
+ fd.setDirectory(QDir::current());
+ fd.show();
+
+ if (fd.exec() == QDialog::Accepted) {
+ QDir dir = fd.directory();
+ ui.lineEditDir->setText(dir.path());
+ settingsChanged = true;
+ }
+}
+
+void ExportHTMLDialog::imageCheckBoxPressed(bool b)
+{
+ includeMapImage = b;
+ settingsChanged = true;
+}
+
+void ExportHTMLDialog::includeImagesCheckBoxPressed(bool b)
+{
+ includeImages = b;
+ settingsChanged = true;
+}
+
+void ExportHTMLDialog::TOCCheckBoxPressed(bool b)
+{
+ useTOC = b;
+ settingsChanged = true;
+}
+
+void ExportHTMLDialog::numberingCheckBoxPressed(bool b)
+{
+ useNumbering = b;
+ settingsChanged = true;
+}
+
+void ExportHTMLDialog::taskFlagsCheckBoxPressed(bool b)
+{
+ useTaskFlags = b;
+ settingsChanged = true;
+}
+
+void ExportHTMLDialog::userFlagsCheckBoxPressed(bool b)
+{
+ useUserFlags = b;
+ settingsChanged = true;
+}
+
+void ExportHTMLDialog::textcolorCheckBoxPressed(bool b)
+{
+ useTextColor = b;
+ settingsChanged = true;
+}
+
+void ExportHTMLDialog::saveSettingsInMapCheckBoxPressed(bool b)
+{
+ saveSettingsInMap = b;
+ settingsChanged = true;
+}
+
+void ExportHTMLDialog::warningsCheckBoxPressed(bool b)
+{
+ showWarnings = b;
+ settingsChanged = true;
+}
+
+void ExportHTMLDialog::outputCheckBoxPressed(bool b)
+{
+ showOutput = b;
+ settingsChanged = true;
+}
+
+void ExportHTMLDialog::cssSrcChanged()
+{
+ css_src = ui.lineEditCssSrc->text();
+ settingsChanged = true;
+}
+
+void ExportHTMLDialog::cssDstChanged()
+{
+ css_dst = ui.lineEditCssDst->text();
+ settingsChanged = true;
+}
+
+QString ExportHTMLDialog::getCssSrc()
+{
+ if (css_copy)
+ return css_src;
+ else
+ return QString();
+}
+
+QString ExportHTMLDialog::getCssDst() { return css_dst; }
+
+void ExportHTMLDialog::copyCssPressed()
+{
+ css_copy = ui.imageCheckBox->isChecked();
+ settingsChanged = true;
+}
+
+void ExportHTMLDialog::browseCssSrcPressed()
+{
+ QFileDialog fd(this);
+ fd.setModal(true);
+ fd.setNameFilter("Cascading Stylesheet (*.css)");
+ fd.setDirectory(QDir::current());
+ fd.show();
+
+ if (fd.exec() == QDialog::Accepted) {
+ if (!fd.selectedFiles().isEmpty()) {
+ css_src = fd.selectedFiles().first();
+ ui.lineEditCssSrc->setText(css_src);
+ settingsChanged = true;
+ }
+ }
+}
+
+void ExportHTMLDialog::browseCssDstPressed()
+{
+ QFileDialog fd(this);
+ fd.setModal(true);
+ fd.setNameFilter("Cascading Stylesheet (*.css)");
+ fd.setDirectory(QDir::current());
+ fd.show();
+
+ if (fd.exec() == QDialog::Accepted) {
+ if (!fd.selectedFiles().isEmpty()) {
+ css_dst = fd.selectedFiles().first();
+ ui.lineEditCssDst->setText(css_dst);
+ settingsChanged = true;
+ }
+ }
+}
+
+void ExportHTMLDialog::postscriptChanged()
+{
+ postscript = ui.lineEditPostScript->text();
+ settingsChanged = true;
+}
+
+void ExportHTMLDialog::browsePostExportButtonPressed()
+{
+ QFileDialog fd(this);
+ fd.setModal(true);
+ fd.setNameFilter("Scripts (*.sh *.pl *.py *.php)");
+ fd.setDirectory(QDir::current());
+ fd.show();
+
+ if (fd.exec() == QDialog::Accepted) {
+ if (!fd.selectedFiles().isEmpty()) {
+ postscript = fd.selectedFiles().first();
+ ui.lineEditPostScript->setText(postscript);
+ settingsChanged = true;
+ }
+ }
+}
+
+void ExportHTMLDialog::saveSettings()
+{
+ // Save options to settings file
+ // (but don't save at destructor, which
+ // is called for "cancel", too)
+ if (!saveSettingsInMap)
+ settings.clearLocal(filepath, "/export/html");
+ else {
+ settings.setLocalValue(
+ filepath, "/export/html/exportDir",
+ dir.absolutePath()); // FIXME-3 exportDir only needed for dialog
+ settings.setLocalValue(filepath, "/export/html/saveSettingsInMap",
+ "yes");
+ settings.setLocalValue(filepath, "/export/html/postscript", postscript);
+ settings.setLocalValue(filepath, "/export/html/includeMapImage",
+ includeMapImage);
+ settings.setLocalValue(filepath, "/export/html/includeImages",
+ includeImages);
+ settings.setLocalValue(filepath, "/export/html/useTOC", useTOC);
+ settings.setLocalValue(filepath, "/export/html/useNumbering",
+ useNumbering);
+ settings.setLocalValue(filepath, "/export/html/useTaskFlags",
+ useTaskFlags);
+ settings.setLocalValue(filepath, "/export/html/useUserFlags",
+ useUserFlags);
+ settings.setLocalValue(filepath, "/export/html/useTextColor",
+ useTextColor);
+ settings.setLocalValue(filepath, "/export/html/css_copy", css_copy);
+ settings.setLocalValue(filepath, "/export/html/css_src", css_src);
+ settings.setLocalValue(filepath, "/export/html/css_dst", css_dst);
+ settings.setValue("/export/html/showWarnings", showWarnings);
+ settings.setValue("/export/html/showOutput", showOutput);
+ }
+}
+
+void ExportHTMLDialog::setFilePath(const QString &s) { filepath = s; }
+
+void ExportHTMLDialog::setMapName(const QString &s) { mapname = s; }
+
+QDir ExportHTMLDialog::getDir() { return dir; }
+
+bool ExportHTMLDialog::warnings() { return showWarnings; }
+
+bool ExportHTMLDialog::hasChanged() { return settingsChanged; } // FIXME-2 never used