From 4d8f068f9cc576c7d1fb19551cb2429282a7c449 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20Mr=C3=A1zek?= Date: Sun, 12 Apr 2015 22:50:52 +0200 Subject: NOISSUE refactor and rearrange zip file utils --- application/MainWindow.cpp | 92 ++-------------------------------------------- 1 file changed, 3 insertions(+), 89 deletions(-) (limited to 'application/MainWindow.cpp') diff --git a/application/MainWindow.cpp b/application/MainWindow.cpp index 5b56ca31..1f6387be 100644 --- a/application/MainWindow.cpp +++ b/application/MainWindow.cpp @@ -323,7 +323,7 @@ namespace Ui { #include #include -#include +#include #include "osutils.h" #include "userutils.h" @@ -1095,7 +1095,7 @@ void MainWindow::instanceFromZipPack(QString instName, QString instGroup, QStrin QTemporaryDir extractTmpDir; QDir extractDir(extractTmpDir.path()); qDebug() << "Attempting to create instance from" << archivePath; - if (JlCompress::extractDir(archivePath, extractDir.absolutePath()).isEmpty()) + if (MMCZip::extractDir(archivePath, extractDir.absolutePath()).isEmpty()) { CustomMessageBox::selectable(this, tr("Error"), tr("Failed to extract modpack"), QMessageBox::Warning)->show(); @@ -1471,92 +1471,6 @@ void MainWindow::on_actionDeleteInstance_triggered() } } -#include - -bool compressSubDir(QuaZip* zip, QString dir, QString origDir, QString prefix) -{ - if (!zip) return false; - if (zip->getMode()!=QuaZip::mdCreate && zip->getMode()!=QuaZip::mdAppend && zip->getMode()!=QuaZip::mdAdd) - { - return false; - } - - QDir directory(dir); - if (!directory.exists()) return false; - - QDir origDirectory(origDir); - if (dir != origDir) - { - QuaZipFile dirZipFile(zip); - auto dirPrefix = PathCombine(prefix, origDirectory.relativeFilePath(dir)) + "/"; - if (!dirZipFile.open(QIODevice::WriteOnly, QuaZipNewInfo(dirPrefix, dir), 0, 0, 0)) - { - return false; - } - dirZipFile.close(); - } - - QFileInfoList files = directory.entryInfoList(QDir::AllDirs | QDir::NoDotAndDotDot | QDir::Hidden); - for (auto file: files) - { - if(!compressSubDir(zip,file.absoluteFilePath(),origDir, prefix)) - { - return false; - } - } - - files = directory.entryInfoList(QDir::Files); - for (auto file: files) - { - if(!file.isFile()) - { - continue; - } - - if(file.absoluteFilePath()==zip->getZipName()) - { - continue; - } - - QString filename = origDirectory.relativeFilePath(file.absoluteFilePath()); - if(prefix.size()) - { - filename = PathCombine(prefix, filename); - } - if (!JlCompress::compressFile(zip,file.absoluteFilePath(),filename)) - { - return false; - } - } - - return true; -} - -bool compressDir(QString zipFile, QString dir, QString prefix = QString()) -{ - QuaZip zip(zipFile); - QDir().mkpath(QFileInfo(zipFile).absolutePath()); - if(!zip.open(QuaZip::mdCreate)) - { - QFile::remove(zipFile); - return false; - } - - QSet added; - if (!compressSubDir(&zip,dir,dir,prefix)) - { - QFile::remove(zipFile); - return false; - } - zip.close(); - if(zip.getZipError()!=0) - { - QFile::remove(zipFile); - return false; - } - return true; -} - void MainWindow::on_actionExportInstance_triggered() { if (m_selectedInstance) @@ -1580,7 +1494,7 @@ void MainWindow::on_actionExportInstance_triggered() } } - if (!compressDir(output, m_selectedInstance->instanceRoot(), name)) + if (!MMCZip::compressDir(output, m_selectedInstance->instanceRoot(), name)) { QMessageBox::warning(this, tr("Error"), tr("Unable to export instance")); } -- cgit v1.2.3