summaryrefslogtreecommitdiffstats
path: root/filesystemwidget.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'filesystemwidget.cpp')
-rw-r--r--filesystemwidget.cpp17
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);
}