aboutsummaryrefslogtreecommitdiff
path: root/libs/bsapacker/src/ArchiveBuildDirector.cpp
blob: 300d5705e288d93ff2573deb34e027756216ef67 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#include <bsapacker/ArchiveBuildDirector.h>

#include <QProgressDialog>

namespace BsaPacker
{
	ArchiveBuildDirector::ArchiveBuildDirector(
			const ISettingsService* settingsService,
			IArchiveBuilder* archiveFileBuildService)
		: m_ArchiveFileBuildService(archiveFileBuildService),
		  m_SettingsService(settingsService)
	{
	}

	void ArchiveBuildDirector::Construct()
	{
		QProgressDialog dialog("Adding to archive",
							   "Abort",
							   0,
							   static_cast<int>(this->m_ArchiveFileBuildService->getFileCount()));
		QObject::connect(&dialog, &QProgressDialog::canceled, this->m_ArchiveFileBuildService, &IArchiveBuilder::cancel);
		QObject::connect(this->m_ArchiveFileBuildService, SIGNAL(valueChanged(int)), &dialog, SLOT(setValue(int)));
		dialog.show();
		this->m_ArchiveFileBuildService->setShareData(true);
		this->m_ArchiveFileBuildService->setFiles();
		dialog.close();
	}
} // namespace BsaPacker