MCPcopy Create free account
hub / github.com/KangLin/RabbitRemoteControl / Download

Method Download

Src/StatsAppUsage.cpp:149–204  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

147}
148
149void CStatsAppUsage::Download(const QString &szFile)
150{
151 QString file = "Stats" + szFile;
152 if(m_szUrl.isEmpty()) return;
153 QString szUrl = m_szUrl + "/";
154 QString szVersion = m_szVersion;
155 if(!szVersion.isEmpty()) {
156 if(RabbitCommon::CTools::VersionValid(szVersion)) {
157 auto map = RabbitCommon::CTools::GetVersion(szVersion);
158 if(!map.preRelease.isEmpty()
159 || !map.build.isEmpty()) {
160 file += "Dev";
161 static QRegularExpression regex("[-|+]");
162 szVersion = szVersion.left(szVersion.indexOf(regex));
163 qDebug(log) << "Version:" << szVersion;
164 }
165 } else
166 szVersion = QString();
167 if(!szVersion.isEmpty())
168 szUrl += szVersion + "/";
169 }
170
171 szUrl += file;
172 if(!m_szExt.isEmpty())
173 szUrl += "." + m_szExt;
174 qDebug(log) << Q_FUNC_INFO << szUrl;
175
176 // Download
177 CWorkerFileTransfer* pWorker =
178 qobject_cast<CWorkerFileTransfer*>(m_ThreadPool.ChooseWorker());
179 if(pWorker) {
180 QUrl url(szUrl);
181 QString szDownload;
182 if(!url.fileName().isEmpty()) {
183 szDownload = QStandardPaths::writableLocation(
184 QStandardPaths::TempLocation);
185 if(szDownload.right(1) != "/" && szDownload.right(1) != "\\")
186 szDownload += QDir::separator();
187 szDownload += QString("Rabbit") + QDir::separator()
188 + QCoreApplication::applicationName()
189 + QDir::separator();
190 szDownload += url.fileName();
191 }
192 CTaskFileTransfer* task = new CTaskFileTransfer(szUrl, szDownload);
193 bool check = connect(task, &CTaskFileTransfer::sigFinished,
194 this, [task, pWorker]() {
195 qDebug(log) << "Download finished:" << task->Title();
196 task->deleteLater();
197 });
198 check = connect(task, &CTaskFileTransfer::sigError,
199 this, [task, pWorker](int nErr, const QString& szError){
200 qDebug(log) << "Download fail:" << nErr << szError << task->Title();
201 });
202 pWorker->AddTask(task);
203 }
204}

Callers

nothing calls this directly

Calls 1

isEmptyMethod · 0.45

Tested by

no test coverage detected