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

Method executeTask

launcher/modplatform/EnsureMetadataTask.cpp:88–174  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

86}
87
88void EnsureMetadataTask::executeTask()
89{
90 setStatus(tr("Checking if mods have metadata..."));
91
92 for (auto* mod : m_mods) {
93 if (!mod->valid()) {
94 qDebug() << "Mod" << mod->name() << "is invalid!";
95 emitFail(mod);
96 continue;
97 }
98
99 // They already have the right metadata :o
100 if (mod->status() != ModStatus::NoMetadata && mod->metadata() && mod->metadata()->provider == m_provider) {
101 qDebug() << "Mod" << mod->name() << "already has metadata!";
102 emitReady(mod);
103 continue;
104 }
105
106 // Folders don't have metadata
107 if (mod->type() == ResourceType::FOLDER) {
108 emitReady(mod);
109 }
110 }
111
112 Task::Ptr version_task;
113
114 switch (m_provider) {
115 case (ModPlatform::ResourceProvider::MODRINTH):
116 version_task = modrinthVersionsTask();
117 break;
118 case (ModPlatform::ResourceProvider::FLAME):
119 version_task = flameVersionsTask();
120 break;
121 }
122
123 auto invalidade_leftover = [this] {
124 for (auto mod = m_mods.constBegin(); mod != m_mods.constEnd(); mod++)
125 emitFail(mod.value(), mod.key(), RemoveFromList::No);
126 m_mods.clear();
127
128 emitSucceeded();
129 };
130
131 connect(version_task.get(), &Task::finished, this, [this, invalidade_leftover] {
132 Task::Ptr project_task;
133
134 switch (m_provider) {
135 case (ModPlatform::ResourceProvider::MODRINTH):
136 project_task = modrinthProjectsTask();
137 break;
138 case (ModPlatform::ResourceProvider::FLAME):
139 project_task = flameProjectsTask();
140 break;
141 }
142
143 if (!project_task) {
144 invalidade_leftover();
145 return;

Callers

nothing calls this directly

Calls 12

metadataMethod · 0.80
valueMethod · 0.80
validMethod · 0.45
nameMethod · 0.45
statusMethod · 0.45
typeMethod · 0.45
clearMethod · 0.45
getMethod · 0.45
resetMethod · 0.45
startMethod · 0.45
sizeMethod · 0.45
emptyMethod · 0.45

Tested by

no test coverage detected