diff options
Diffstat (limited to 'filesystemwidget.cpp')
-rw-r--r-- | filesystemwidget.cpp | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/filesystemwidget.cpp b/filesystemwidget.cpp index 5141c01..94455f3 100644 --- a/filesystemwidget.cpp +++ b/filesystemwidget.cpp @@ -613,6 +613,20 @@ void FilesystemWidget::unpack(){ mUnpackDlg->doIt(); } +void FilesystemWidget::untar(){ + QModelIndexList selectedIdxs = mFileView->selectionModel()->selectedRows(); + for(const QModelIndex &idx : selectedIdxs){ + QFileInfo fi(idx.data(SmDirModel::FullPathRole).toString()); + QString cmdStr = QString("/usr/bin/tar -C %1 -xf %2").arg(fi.absolutePath()).arg(idx.data(SmDirModel::FullPathRole).toString()); + int retval = QProcess::execute(cmdStr); + if(retval == 0){ + QFile::remove(idx.data(SmDirModel::FullPathRole).toString()); + } + QString msg = QString(tr("Executed %1: %2")).arg(cmdStr).arg(QString::number(retval)); + emit statusbarMessage(msg); + } +} + void FilesystemWidget::selectUnpackDir(){ QSettings s; QString unpackDir = s.value("paths/unpackpath").toString(); |