diff options
-rw-r--r-- | configurationdialog.cpp | 5 | ||||
-rw-r--r-- | configurationdialog.h | 1 | ||||
-rw-r--r-- | filesystemwidget.cpp | 17 | ||||
-rw-r--r-- | newpicsdialog.cpp | 2 |
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(); |