use PackageInfoLookup

This commit is contained in:
Martchus 2015-09-27 19:33:38 +02:00
parent a48a6fd656
commit 6d8cf66f99
1 changed files with 12 additions and 7 deletions

View File

@ -3,6 +3,7 @@
#include "../alpm/manager.h"
#include "../alpm/upgradelookup.h"
#include "../alpm/suggestionslookup.h"
#include "../alpm/packageinfolookup.h"
#include "../alpm/config.h"
#include <QJsonDocument>
@ -77,13 +78,17 @@ void Connection::handleQuery(const QJsonObject &obj)
if(what == QLatin1String("basicrepoinfo")) {
m_repoInfoUpdatesRequested = obj.value(QStringLiteral("updates")).toBool(m_repoInfoUpdatesRequested);
sendResult(what, id, m_manager.basicRepoInfo());
} else if(what == QLatin1String("basicpkginfo")) {
sendResults(what, id, m_manager.packageInfo(obj.value("sel").toObject(), Manager::Basics));
} else if(what == QLatin1String("pkgdetails")) {
sendResults(what, id, m_manager.packageInfo(obj.value("sel").toObject(), Manager::Details));
} else if(what == QLatin1String("fullpkginfo")) {
// TODO: figure out why QFlags doesn't work, in the mean time, use static_cast workaround
sendResults(what, id, m_manager.packageInfo(obj.value("sel").toObject(), static_cast<Manager::PackageInfoPart>(static_cast<int>(Manager::Basics) | static_cast<int>(Manager::Details))));
} else if(what == QLatin1String("basicpkginfo") || what == QLatin1String("pkgdetails") || what == QLatin1String("fullpkginfo")) {
auto *packageInfoLookup = new PackageInfoLookup(m_manager, obj);
if(packageInfoLookup->finished()) {
sendResult(what, id, packageInfoLookup->results());
} else if(!packageInfoLookup->errors().isEmpty()) {
QJsonObject results;
results.insert(QStringLiteral("errors"), packageInfoLookup->errors());
sendResult(what, id, results);
} else {
connect(packageInfoLookup, &SuggestionsLookup::resultsAvailable, this, &Connection::sendResult);
}
} else if(what == QLatin1String("groupinfo")) {
m_groupInfoUpdatesRequested = obj.value(QStringLiteral("updates")).toBool(m_groupInfoUpdatesRequested);
sendResults(what, id, m_manager.groupInfo());