summaryrefslogtreecommitdiffstats
path: root/extractordialog.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'extractordialog.cpp')
-rw-r--r--extractordialog.cpp101
1 files changed, 0 insertions, 101 deletions
diff --git a/extractordialog.cpp b/extractordialog.cpp
deleted file mode 100644
index 984c1d8..0000000
--- a/extractordialog.cpp
+++ /dev/null
@@ -1,101 +0,0 @@
-/*
- This program is free software; you can redistribute it and/or
- modify it under the terms of the GNU General Public License
- as published by the Free Software Foundation; either version
- 2 of the License, or (at your option) any later version.
-*/
-
-#include <QTextEdit>
-#include <QProcess>
-#include <QPushButton>
-#include <QVBoxLayout>
-#include <QSettings>
-#include <QFileInfo>
-#include <QByteArray>
-#include <QFont>
-#include <QRegExp>
-#include <QApplication>
-
-#include "extractordialog.h"
-
-ExtractorDialog::ExtractorDialog(const QString &archive, const QString &extractTo, QWidget *parent, Qt::WindowFlags f) : QDialog(parent, f), mArchive(archive), mExtractTo(extractTo){
- QVBoxLayout *mainLayout = new QVBoxLayout;
- mOutput = new QTextEdit;
- mOutput->setReadOnly(true);
- mOutput->setFont(QFont("Courier new", 10));
- mCancelClose = new QPushButton(tr("Close"));
- connect(mCancelClose, SIGNAL(clicked()), this, SLOT(accept()));
- mainLayout->addWidget(mOutput);
- mainLayout->addWidget(mCancelClose);
- setLayout(mainLayout);
-
- mExtractor = new QProcess(this);
-
- QString wTitle = QString(tr("%1 - extracting from %2")).arg(qApp->applicationName()).arg(archive);
- setWindowTitle(wTitle);
- setMinimumWidth(500);
-
- start();
-}
-
-void ExtractorDialog::extractionFinished(){
- mCancelClose->disconnect(SIGNAL(clicked()));
- connect(mCancelClose, SIGNAL(clicked()), this, SLOT(accept()));
- mCancelClose->setText(tr("Close"));
- setWindowTitle(tr("Extraction finished"));
- mOutput->append(tr("\nFinished.\n"));
-}
-
-void ExtractorDialog::killProcess(){
- mExtractor->kill();
- setClose();
-}
-
-void ExtractorDialog::writeOutput(){
- if(mExtractor->canReadLine()){
- mOutput->append(mExtractor->readLine());
- }
-}
-
-void ExtractorDialog::start(){
- QSettings s;
- QString exe = s.value("paths/archiver").toString();
- if(exe.isEmpty()){
- mOutput->append(tr("No archive program configured!"));
- return;
- }
- QFileInfo info(exe);
- if(!info.exists() || !info.isExecutable()){
- QString msg = QString(tr("Unable to call %1")).arg(exe);
- mOutput->append(msg);
- return;
- }
- QStringList args = s.value("paths/archiverargs").toStringList();
- args << mArchive;
- mExtractor = new QProcess(this);
- mExtractor->setWorkingDirectory(mExtractTo);
- mExtractor->setReadChannel(QProcess::StandardOutput);
- QString startmessage = QString("Starting %1 %2\n").arg(exe).arg(args.join(" "));
- mOutput->append(startmessage);
- mExtractor->start(exe, args);
- if(!mExtractor->waitForStarted()){
- mOutput->append(tr("Failed to start extraction!\n"));
- return;
- }
- connect(mExtractor, SIGNAL(readyRead()), this, SLOT(writeOutput()));
- connect(mExtractor, SIGNAL(finished(int, QProcess::ExitStatus)), this, SLOT(extractionFinished()));
- setCancel();
-}
-
-void ExtractorDialog::setClose(){
- mCancelClose->disconnect(SIGNAL(clicked()));
- connect(mCancelClose, SIGNAL(clicked()), this, SLOT(accept()));
- mCancelClose->setText(tr("Close"));
-}
-
-void ExtractorDialog::setCancel(){
- mCancelClose->disconnect(SIGNAL(clicked()));
- connect(mCancelClose, SIGNAL(clicked()), this, SLOT(killProcess()));
- mCancelClose->setText(tr("Cancel"));
-}
-