#include "downloadmanagerproxy.h"
#include "organizerproxy.h"
#include "proxyutils.h"
using namespace MOBase;
using namespace MOShared;
DownloadManagerProxy::DownloadManagerProxy(OrganizerProxy* oproxy,
DownloadManager* downloadManager)
: m_OrganizerProxy(oproxy), m_Proxied(downloadManager)
{}
DownloadManagerProxy::~DownloadManagerProxy()
{
disconnectSignals();
}
void DownloadManagerProxy::connectSignals()
{
m_Connections.push_back(m_Proxied->onDownloadComplete(
callSignalIfPluginActive(m_OrganizerProxy, m_DownloadComplete)));
m_Connections.push_back(m_Proxied->onDownloadFailed(
callSignalIfPluginActive(m_OrganizerProxy, m_DownloadFailed)));
m_Connections.push_back(m_Proxied->onDownloadRemoved(
callSignalIfPluginActive(m_OrganizerProxy, m_DownloadRemoved)));
m_Connections.push_back(m_Proxied->onDownloadPaused(
callSignalIfPluginActive(m_OrganizerProxy, m_DownloadPaused)));
}
void DownloadManagerProxy::disconnectSignals()
{
for (auto& conn : m_Connections) {
conn.disconnect();
}
m_Connections.clear();
}
int DownloadManagerProxy::startDownloadURLs(const QStringList& urls)
{
return m_Proxied->startDownloadURLs(urls);
}
int DownloadManagerProxy::startDownloadNexusFile(int modID, int fileID)
{
return m_Proxied->startDownloadNexusFile(
m_OrganizerProxy->managedGame()->gameNexusName(), modID, fileID);
}
int DownloadManagerProxy::startDownloadNexusFileForGame(const QString& gameName,
int modID, int fileID)
{
return m_Proxied->startDownloadNexusFile(gameName, modID, fileID);
}
QString DownloadManagerProxy::downloadPath(int id)
{
return m_Proxied->downloadPath(id);
}
bool DownloadManagerProxy::onDownloadComplete(const std::function<void(int)>& callback)
{
return m_DownloadComplete.connect(callback).connected();
}
bool DownloadManagerProxy::onDownloadPaused(const std::function<void(int)>& callback)
{
return m_DownloadPaused.connect(callback).connected();
}
bool DownloadManagerProxy::onDownloadFailed(const std::function<void(int)>& callback)
{
return m_DownloadFailed.connect(callback).connected();
}
bool DownloadManagerProxy::onDownloadRemoved(const std::function<void(int)>& callback)
{
return m_DownloadRemoved.connect(callback).connected();
}