MCPcopy Create free account
hub / github.com/FreesmTeam/FreesmLauncher / buildZip

Method buildZip

launcher/modplatform/flame/FlamePackExportTask.cpp:331–370  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

329}
330
331void FlamePackExportTask::buildZip()
332{
333 setStatus(tr("Adding files..."));
334 setProgress(4, 5);
335
336 auto zipTask = makeShared<MMCZip::ExportToZipTask>(output, gameRoot, files, "overrides/", true, false);
337 zipTask->addExtraFile("manifest.json", generateIndex());
338 zipTask->addExtraFile("modlist.html", generateHTML());
339
340 QStringList exclude;
341 std::transform(resolvedFiles.keyBegin(), resolvedFiles.keyEnd(), std::back_insert_iterator(exclude),
342 [this](QString file) { return gameRoot.relativeFilePath(file); });
343 zipTask->setExcludeFiles(exclude);
344
345 auto progressStep = std::make_shared<TaskStepProgress>();
346 connect(zipTask.get(), &Task::finished, this, [this, progressStep] {
347 progressStep->state = TaskStepState::Succeeded;
348 stepProgress(*progressStep);
349 });
350
351 connect(zipTask.get(), &Task::succeeded, this, &FlamePackExportTask::emitSucceeded);
352 connect(zipTask.get(), &Task::aborted, this, &FlamePackExportTask::emitAborted);
353 connect(zipTask.get(), &Task::failed, this, [this, progressStep](QString reason) {
354 progressStep->state = TaskStepState::Failed;
355 stepProgress(*progressStep);
356 emitFailed(reason);
357 });
358 connect(zipTask.get(), &Task::stepProgress, this, &FlamePackExportTask::propagateStepProgress);
359
360 connect(zipTask.get(), &Task::progress, this, [this, progressStep](qint64 current, qint64 total) {
361 progressStep->update(current, total);
362 stepProgress(*progressStep);
363 });
364 connect(zipTask.get(), &Task::status, this, [this, progressStep](QString status) {
365 progressStep->status = status;
366 stepProgress(*progressStep);
367 });
368 task.reset(zipTask);
369 zipTask->start();
370}
371
372QByteArray FlamePackExportTask::generateIndex()
373{

Callers

nothing calls this directly

Calls 6

addExtraFileMethod · 0.80
setExcludeFilesMethod · 0.80
getMethod · 0.45
updateMethod · 0.45
resetMethod · 0.45
startMethod · 0.45

Tested by

no test coverage detected