diff options
author | Arno <am@disconnect.de> | 2014-06-07 13:49:49 +0200 |
---|---|---|
committer | Arno <am@disconnect.de> | 2014-06-07 13:49:49 +0200 |
commit | 0dd1011617225036a51219125c8f3442b2a0aac3 (patch) | |
tree | a34536f9ccf1072c76f08c8d4a464f7302a8e39e /filesystemwidget.cpp | |
parent | ef640ea25b74cb06ab4d11eb414bc4e96ecb8d65 (diff) | |
download | SheMov-0dd1011617225036a51219125c8f3442b2a0aac3.tar.gz SheMov-0dd1011617225036a51219125c8f3442b2a0aac3.tar.bz2 SheMov-0dd1011617225036a51219125c8f3442b2a0aac3.zip |
Unpack
Added entry for unpacking archives. For now zip and rar are recognized.
Diffstat (limited to 'filesystemwidget.cpp')
-rw-r--r-- | filesystemwidget.cpp | 23 |
1 files changed, 23 insertions, 0 deletions
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());; |