summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArno <arno@disconnect.de>2017-12-27 10:12:05 +0100
committerArno <arno@disconnect.de>2017-12-27 10:12:05 +0100
commit83c8bda5424c9a55cf6a8e7fb8adc7dbdfb8a0ef (patch)
treed21da1d2d444dd6e53bed42352402cf3e19771cb
parent887767fe22814301aa73a0d0c589a59d65897124 (diff)
downloadSheMov-83c8bda5424c9a55cf6a8e7fb8adc7dbdfb8a0ef.tar.gz
SheMov-83c8bda5424c9a55cf6a8e7fb8adc7dbdfb8a0ef.tar.bz2
SheMov-83c8bda5424c9a55cf6a8e7fb8adc7dbdfb8a0ef.zip
Make unpack directory configurable
Add option and use it. Warn if the directory is not accessible and bail out. Initialize mFilesCtr to 0 so we don't crash if it's < 0
-rw-r--r--configurationdialog.cpp5
-rw-r--r--configurationdialog.h1
-rw-r--r--filesystemwidget.cpp17
-rw-r--r--newpicsdialog.cpp2
4 files changed, 21 insertions, 4 deletions
diff --git a/configurationdialog.cpp b/configurationdialog.cpp
index 7e357f4..5f4f2c2 100644
--- a/configurationdialog.cpp
+++ b/configurationdialog.cpp
@@ -69,6 +69,9 @@ ConfigurationDialog::ConfigurationDialog(QWidget *parent, Qt::WindowFlags f) : S
mCoverPath = new QLineEdit;
mCoverPath->setCompleter(fsCompleter);
pathL->addRow(tr("Cover directory"), mCoverPath);
+ mUnpackPath = new QLineEdit;
+ mUnpackPath->setCompleter(fsCompleter);
+ pathL->addRow(tr("Unpack directory"), mUnpackPath);
pathBox->setLayout(pathL);
QVBoxLayout *pathLayout = new QVBoxLayout;
pathLayout->addWidget(pathBox);
@@ -464,6 +467,7 @@ void ConfigurationDialog::readSettings(){
mFfMpegPath->setText(s.value("paths/ffmpeg").toString());
mDvdMountPath->setText(s.value("paths/dvdmount").toString());
mCoverPath->setText(s.value("paths/coverpath").toString());
+ mUnpackPath->setText(s.value("paths/unpackpath").toString());
mExpensive->setChecked(s.value("ui/expensiveops", true).toBool());
//read pictures
@@ -526,6 +530,7 @@ void ConfigurationDialog::writeSettings(){
s.setValue("paths/dvdmount", mDvdMountPath->text());
}
s.setValue("paths/coverpath", mCoverPath->text());
+ s.setValue("paths/unpackpath", mUnpackPath->text());
s.setValue("ui/expensiveops", (mExpensive->checkState() == Qt::Checked));
//write icons
diff --git a/configurationdialog.h b/configurationdialog.h
index 5801c98..dd6b451 100644
--- a/configurationdialog.h
+++ b/configurationdialog.h
@@ -62,6 +62,7 @@ class ConfigurationDialog : public SmDialog {
QLineEdit *mFfMpegPath;
QLineEdit *mDvdMountPath;
QLineEdit *mCoverPath;
+ QLineEdit *mUnpackPath;
QLineEdit *mDatabaseHost;
QLineEdit *mDatabaseName;
QLineEdit *mDatabaseUsername;
diff --git a/filesystemwidget.cpp b/filesystemwidget.cpp
index a03b6f0..33491bb 100644
--- a/filesystemwidget.cpp
+++ b/filesystemwidget.cpp
@@ -583,15 +583,26 @@ void FilesystemWidget::unpack(){
foreach(QModelIndex idx, selectedIdxs){
QString mimeType = idx.data(SmDirModel::TypeRole).toString();
if(mimeType == "application/zip" || mimeType == "application/x-rar"){
- QStringList args = QStringList() << "-o/home/am/movs/pics/7z" << "-y" << "e" << idx.data(SmDirModel::FullPathRole).toString();
- mUnpackDlg->appendCommand(args);
+ QSettings s;
+ QString outputDir = s.value("paths/unpackpath").toString();
+ QFileInfo fi(outputDir);
+ if(fi.isDir() && fi.isWritable()){
+ QString outOption = QString("-o%1").arg(outputDir);
+ QStringList args = QStringList() << outOption << "-y" << "e" << idx.data(SmDirModel::FullPathRole).toString();
+ mUnpackDlg->appendCommand(args);
+ }else{
+ QMessageBox::critical(this, tr("Error"), tr("Unpack directory invalid.\nEither it doesn't exist or it's not writable!"));
+ return;
+ }
}
}
mUnpackDlg->doIt();
}
void FilesystemWidget::selectUnpackDir(){
- QModelIndex unpackDirIdx = mModel->index("/home/am/movs/pics/7z");
+ QSettings s;
+ QString unpackDir = s.value("paths/unpackpath").toString();
+ QModelIndex unpackDirIdx = mModel->index(unpackDir);
if(unpackDirIdx.isValid()){
mDirView->selectionModel()->setCurrentIndex(mDirProxy->mapFromSource(unpackDirIdx), QItemSelectionModel::ClearAndSelect);
}
diff --git a/newpicsdialog.cpp b/newpicsdialog.cpp
index d904142..20d5d4a 100644
--- a/newpicsdialog.cpp
+++ b/newpicsdialog.cpp
@@ -28,7 +28,7 @@
#include "delegates.h"
#include "smglobals.h"
-NewPicsDialog::NewPicsDialog(QWidget *parent, Qt::WindowFlags f) : QDialog(parent, f) {
+NewPicsDialog::NewPicsDialog(QWidget *parent, Qt::WindowFlags f) : QDialog(parent, f), mFilesCtr(0) {
qRegisterMetaType<MappingData>("MappingData");
qRegisterMetaTypeStreamOperators<MappingData>("MappingData");
setupDlg();