diff options
author | Arno <arno@disconnect.de> | 2017-12-27 10:12:05 +0100 |
---|---|---|
committer | Arno <arno@disconnect.de> | 2017-12-27 10:12:05 +0100 |
commit | 83c8bda5424c9a55cf6a8e7fb8adc7dbdfb8a0ef (patch) | |
tree | d21da1d2d444dd6e53bed42352402cf3e19771cb /filesystemwidget.cpp | |
parent | 887767fe22814301aa73a0d0c589a59d65897124 (diff) | |
download | SheMov-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
Diffstat (limited to 'filesystemwidget.cpp')
-rw-r--r-- | filesystemwidget.cpp | 17 |
1 files changed, 14 insertions, 3 deletions
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); } |