From 83c8bda5424c9a55cf6a8e7fb8adc7dbdfb8a0ef Mon Sep 17 00:00:00 2001 From: Arno Date: Wed, 27 Dec 2017 10:12:05 +0100 Subject: 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 --- filesystemwidget.cpp | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) (limited to 'filesystemwidget.cpp') 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); } -- cgit v1.2.3-70-g09d2