From 0dd1011617225036a51219125c8f3442b2a0aac3 Mon Sep 17 00:00:00 2001 From: Arno Date: Sat, 7 Jun 2014 13:49:49 +0200 Subject: Unpack Added entry for unpacking archives. For now zip and rar are recognized. --- filesystemwidget.cpp | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) (limited to 'filesystemwidget.cpp') diff --git a/filesystemwidget.cpp b/filesystemwidget.cpp index 6fbe552..b8c2168 100644 --- a/filesystemwidget.cpp +++ b/filesystemwidget.cpp @@ -477,6 +477,29 @@ void FilesystemWidget::preview(){ } } +void FilesystemWidget::unpack(){ + QModelIndexList selectedIdxs = mFileView->selectionModel()->selectedIndexes(); + foreach(QModelIndex idx, selectedIdxs){ + if(!idx.column() == SmDirModel::NameRole){ + return; + } + QString mimeType = idx.data(SmDirModel::TypeRole).toString(); + if(mimeType == "application/zip" || mimeType == "application/x-rar"){ + QString prg = "/usr/bin/7z"; + QString archive = idx.data(SmDirModel::NameRole).toString(); + QStringList args = QStringList() << "-o/home/am/movs/pics/7z" << "-y" << "e" << idx.data(SmDirModel::FullPathRole).toString(); + QString msg = QString(tr("Unpacking %1")).arg(archive); + emit statusbarMessage(msg); + int retval = QProcess::execute(prg, args); + if(retval == 0){ + emit statusbarMessage(tr("Unpacking: success!")); + }else{ + emit statusbarMessage(tr("Unpacking: failed!")); + } + } + } +} + void FilesystemWidget::deleteRecursive(const QFileInfo &start){ if(start.isDir()){ QDir curDir = QDir(start.absoluteFilePath());; -- cgit v1.2.3-70-g09d2