QString InstalledPackages::saveToRegistry(InstalledPackageVersion *ipv) { WindowsRegistry machineWR(HKEY_LOCAL_MACHINE, false); QString r; QString keyName = "SOFTWARE\\Npackd\\Npackd\\Packages"; Version v = ipv->version; v.normalize(); QString pn = ipv->package + "-" + v.getVersionString(); /*WPMUtils::outputTextConsole( "InstalledPackages::saveToRegistry " + ipv->directory + " " + ipv->package + " " + ipv->version.getVersionString() + " " + ipv->detectionInfo + "\r\n");*/ if (!ipv->directory.isEmpty()) { WindowsRegistry wr = machineWR.createSubKey(keyName + "\\" + pn, &r); if (r.isEmpty()) { wr.set("DetectionInfo", ipv->detectionInfo); // for compatibility with Npackd 1.16 and earlier. They // see all package versions by default as "externally installed" wr.setDWORD("External", 0); r = wr.set("Path", ipv->directory); } // qDebug() << "saveToRegistry 1 " << r; } else { // qDebug() << "deleting " << pn; WindowsRegistry packages; r = packages.open(machineWR, keyName, KEY_ALL_ACCESS); if (r.isEmpty()) { r = packages.remove(pn); } // qDebug() << "saveToRegistry 2 " << r; } //qDebug() << "InstalledPackageVersion::save " << pn << " " << // this->directory; // qDebug() << "saveToRegistry returns " << r; return r; }
void AbstractRepository::setRepositoryURLs(QList<QUrl*>& urls, QString* err) { WindowsRegistry wr; *err = wr.open(HKEY_LOCAL_MACHINE, "", false, KEY_CREATE_SUB_KEY); if (err->isEmpty()) { WindowsRegistry wrr = wr.createSubKey( "Software\\Npackd\\Npackd\\Reps", err, KEY_ALL_ACCESS); if (err->isEmpty()) { wrr.setDWORD("size", urls.count()); for (int i = 0; i < urls.count(); i++) { WindowsRegistry r = wrr.createSubKey(QString("%1").arg(i + 1), err, KEY_ALL_ACCESS); if (err->isEmpty()) { r.set("repository", urls.at(i)->toString()); } } } } }