summaryrefslogtreecommitdiffstats
path: root/filesystemwidget.cpp
diff options
context:
space:
mode:
authorArno <am@disconnect.de>2014-06-07 13:49:49 +0200
committerArno <am@disconnect.de>2014-06-07 13:49:49 +0200
commit0dd1011617225036a51219125c8f3442b2a0aac3 (patch)
treea34536f9ccf1072c76f08c8d4a464f7302a8e39e /filesystemwidget.cpp
parentef640ea25b74cb06ab4d11eb414bc4e96ecb8d65 (diff)
downloadSheMov-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.cpp23
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());;