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