#include "zip-settings-dialog.h"
#include <QDebug>
#include <QFileDialog>
#include <QString>
#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 );
}