DWORD WINAPI LoadUpdate (LPVOID param) { CUpdateDlg* dlg = (CUpdateDlg*) param; if (dlg->autoCheck) UpdateVersion (NULL); char buf[2048]; sprintf (buf, "Current version: %s\r\n" "Last version: %s\r\n", formatVersion (curVersion), formatVersion (lastVersion)); dlg->SetDlgItemText (IDC_BUFFER, buf); if (curVersion < lastVersion) { CString log = buf; log += "\r\nLoading changelog..."; dlg->SetDlgItemText (IDC_BUFFER, log); try { CInternetSession inet; CInternetFile* file = dynamic_cast<CInternetFile*> (inet.OpenURL (logURL)); log = buf; log += "\r\nChangelog:\r\n"; if (file != NULL) { while (file->ReadString (buf, sizeof buf - 5)) { if (buf[0] == '*' && buf[1] == '*') { unsigned int ver = parseVersion (buf + 2); if (ver != 0 && ver <= curVersion) break; } log += buf; } log.Replace ("\n", "\r\n"); dlg->SetDlgItemText (IDC_BUFFER, log); delete file; } else lastVersion = 0; } catch (CInternetException*) { } } return 0; }
static void setVersion(ScriptValue* val, uint32 version) { val->setValue(formatVersion(version)); val->addElement("major")->setValue(version / 2600); val->addElement("minor")->setValue((version / 26) % 100); val->addElement("build")->setValue(String(char('a' + (version % 26)))); }
void KaduExtInfo::onDownloaded() { union { uint packed; uchar unpacked[4]; }; packed = extractVersion(http->data().data()); if (packed > extractVersion(EXTINFO_PACKED_VERSION)) { QString str = tr("New %1 version ext_info is available: %2").arg(unpacked[0] ? tr("experimental") : tr("stable")).arg(formatVersion(unpacked)); MessageBox::msg(str); } disconnect(http, SIGNAL(finished()), this, SLOT(onDownloaded())); }