X-Git-Url: https://git.sven.stormbind.net/?a=blobdiff_plain;f=src%2Fzip-settings-dialog.cpp;fp=src%2Fzip-settings-dialog.cpp;h=f632e017b53f5c3488038bfd0c09fc67d91b0f83;hb=d483bd8e6523c23c6f1d8908a2e0611c2bc9ff4f;hp=0000000000000000000000000000000000000000;hpb=7dfa3fe589d1722d49681f42cdb0bf1e6efb5223;p=sven%2Fvym.git diff --git a/src/zip-settings-dialog.cpp b/src/zip-settings-dialog.cpp new file mode 100644 index 0000000..f632e01 --- /dev/null +++ b/src/zip-settings-dialog.cpp @@ -0,0 +1,127 @@ +#include "zip-settings-dialog.h" + +#include +#include +#include + +#include "file.h" + +extern QString vymName; +extern QString zipToolPath; +extern QString unzipToolPath; +extern bool zipToolAvailable; +extern bool unzipToolAvailable; + +ZipSettingsDialog::ZipSettingsDialog(QWidget *parent) : QDialog(parent) +{ + + ui.setupUi(this); + init(); + + QDialog::setWindowTitle("VYM - " + + tr("zip settings", "dialog window title")); + + connect(ui.zipToolPathLE, SIGNAL(textChanged(const QString &)), this, + SLOT(zipToolPathChanged())); + connect(ui.zipToolButton, SIGNAL(clicked()), this, + SLOT(zipToolButtonPressed())); + connect(ui.closeButton, SIGNAL(clicked()), this, SLOT(accept())); + +#if defined(Q_OS_WIN32) + ui.zipToolLabel->setText(tr("Path to 7z.exe", "zip tool settings dialog")); + + ui.unzipToolPathLE->hide(); + ui.unzipToolButton->hide(); + ui.unzipToolStatusLabel->hide(); + ui.unzipToolLabel->hide(); +#else + connect(ui.unzipToolPathLE, SIGNAL(textChanged(const QString &)), this, + SLOT(unzipToolPathChanged())); + connect(ui.unzipToolButton, SIGNAL(clicked()), this, + SLOT(unzipToolButtonPressed())); +#endif +} + +void ZipSettingsDialog::zipToolPathChanged() +{ + zipToolPath = ui.zipToolPathLE->text(); + updateCheckResults(); +} + +void ZipSettingsDialog::unzipToolPathChanged() +{ + unzipToolPath = ui.unzipToolPathLE->text(); + updateCheckResults(); +} + +void ZipSettingsDialog::zipToolButtonPressed() +{ + QString filter; + QString text; + +#if defined(Q_OS_WIN32) + filter = "Windows executable (*.exe);;"; + text = QString(tr("Set path to 7z to zip/unzip files")); +#else + filter = "All (*);;"; + text = QString(tr("Set path to zip files")); +#endif + + QString fn = QFileDialog::getOpenFileName( + this, vymName + " - " + text + ":", zipToolPath, filter); + + if (!fn.isEmpty()) { + zipToolPath = fn; + ui.zipToolPathLE->setText(fn); + updateCheckResults(); + } +} + +void ZipSettingsDialog::unzipToolButtonPressed() +{ + QString filter; + QString text; + +#if defined(Q_OS_WIN32) + // On windows we just use 7z for both zip/unzip + return; +#else + filter = "All (*);;"; + text = QString(tr("Set path to unzip files")); +#endif + + QString fn = QFileDialog::getOpenFileName( + this, vymName + " - " + text + ":", zipToolPath, filter); + + if (!fn.isEmpty()) { + unzipToolPath = fn; + ui.unzipToolPathLE->setText(fn); + updateCheckResults(); + } +} + +void ZipSettingsDialog::init() +{ + ui.zipToolPathLE->setText(zipToolPath); + ui.unzipToolPathLE->setText(unzipToolPath); + updateCheckResults(); +} + +void ZipSettingsDialog::updateCheckResults() +{ + checkZipTool(); + checkUnzipTool(); + QString zipStatus; + if (zipToolAvailable) + zipStatus = QString(tr("Status: %1").arg("ok")); + else + zipStatus = QString(tr("Status: %1").arg("not ok")); + ui.zipToolStatusLabel->setText(zipStatus); + + QString unzipStatus; + if (unzipToolAvailable) + unzipStatus = QString(tr("Status: %1").arg("ok")); + else + unzipStatus = QString(tr("Status: %1").arg("not ok")); + ui.unzipToolStatusLabel->setText(unzipStatus); +}