summaryrefslogtreecommitdiffstats
path: root/application/MainWindow.cpp
diff options
context:
space:
mode:
authorPetr Mrázek <peterix@gmail.com>2015-04-12 22:50:52 +0200
committerPetr Mrázek <peterix@gmail.com>2015-04-13 00:53:59 +0200
commit4d8f068f9cc576c7d1fb19551cb2429282a7c449 (patch)
treea5f064cbee770aa04f563c19a9dde37c8416d9a6 /application/MainWindow.cpp
parent1f9dd45e498b812a4884ce8221f9ee8250f475df (diff)
downloadMultiMC-4d8f068f9cc576c7d1fb19551cb2429282a7c449.tar
MultiMC-4d8f068f9cc576c7d1fb19551cb2429282a7c449.tar.gz
MultiMC-4d8f068f9cc576c7d1fb19551cb2429282a7c449.tar.lz
MultiMC-4d8f068f9cc576c7d1fb19551cb2429282a7c449.tar.xz
MultiMC-4d8f068f9cc576c7d1fb19551cb2429282a7c449.zip
NOISSUE refactor and rearrange zip file utils
Diffstat (limited to 'application/MainWindow.cpp')
-rw-r--r--application/MainWindow.cpp92
1 files changed, 3 insertions, 89 deletions
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 <QShortcut>
#include <QFileDialog>
-#include <JlCompress.h>
+#include <MMCZip.h>
#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 <pathutils.h>
-
-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<QString> 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"));
}