diff options
author | Aleks Kissinger <aleks0@gmail.com> | 2018-12-31 19:51:04 +0100 |
---|---|---|
committer | Aleks Kissinger <aleks0@gmail.com> | 2018-12-31 19:51:04 +0100 |
commit | d27a6bf59d5a9d0cd2c21820d5d94bd4131100c8 (patch) | |
tree | 8b5e39e0a436a87a47021c8fdb1dc4e096a944a5 /src/gui | |
parent | c5fedfb1ec79b97edec4a82b70f082fba93a5b5d (diff) |
added export dialog
Diffstat (limited to 'src/gui')
-rw-r--r-- | src/gui/exportdialog.cpp | 36 | ||||
-rw-r--r-- | src/gui/exportdialog.ui | 8 |
2 files changed, 40 insertions, 4 deletions
diff --git a/src/gui/exportdialog.cpp b/src/gui/exportdialog.cpp index 2d0d8a0..b176c71 100644 --- a/src/gui/exportdialog.cpp +++ b/src/gui/exportdialog.cpp @@ -3,6 +3,9 @@ #include "tikzit.h" +#include <QFileDialog> +#include <QSettings> + ExportDialog::ExportDialog(QWidget *parent) : QDialog(parent), ui(new Ui::ExportDialog) @@ -70,11 +73,44 @@ void ExportDialog::on_keepAspect_stateChanged(int state) void ExportDialog::on_browseButton_clicked() { + QSettings settings("tikzit", "tikzit"); + + QString suffix; + switch (ui->fileFormat->currentIndex()) { + case PNG: suffix = "png"; break; + case JPG: suffix = "jpg"; break; + case PDF: suffix = "pdf"; break; + } + + QFileDialog dialog; + dialog.setDefaultSuffix(suffix); + dialog.setWindowTitle(tr("Export File Path")); + dialog.setAcceptMode(QFileDialog::AcceptSave); + dialog.setNameFilter(ui->fileFormat->currentText()); + dialog.setFileMode(QFileDialog::AnyFile); + if (!settings.value("previous-export-file-path").isNull()) + dialog.setDirectory(settings.value("previous-export-file-path").toString()); + dialog.setOption(QFileDialog::DontUseNativeDialog); + if (dialog.exec()) { + ui->filePath->setText(QDir::toNativeSeparators(dialog.selectedFiles()[0])); + } } void ExportDialog::on_fileFormat_currentIndexChanged(int f) { ui->width->setEnabled(f != PDF); ui->height->setEnabled(f != PDF); + + QString path = ui->filePath->text(); + if (!path.isEmpty()) { + QRegularExpression re("\\.[^.]*$"); + switch (f) { + case PNG: path.replace(re, ".png"); break; + case JPG: path.replace(re, ".jpg"); break; + case PDF: path.replace(re, ".pdf"); break; + } + + ui->filePath->setText(path); + } } diff --git a/src/gui/exportdialog.ui b/src/gui/exportdialog.ui index 69e2a22..82cefdc 100644 --- a/src/gui/exportdialog.ui +++ b/src/gui/exportdialog.ui @@ -17,7 +17,7 @@ </sizepolicy> </property> <property name="windowTitle"> - <string>Dialog</string> + <string>Export Image</string> </property> <layout class="QHBoxLayout" name="horizontalLayout"> <item> @@ -54,17 +54,17 @@ <widget class="QComboBox" name="fileFormat"> <item> <property name="text"> - <string>Portable Network Graphics (PNG)</string> + <string>Portable Network Graphics (*.png)</string> </property> </item> <item> <property name="text"> - <string>Jpeg Image (JPG)</string> + <string>Jpeg Image (*.jpg)</string> </property> </item> <item> <property name="text"> - <string>Original (PDF)</string> + <string>Original (*.pdf)</string> </property> </item> </widget> |