Skip to content

Commit 6d0c776

Browse files
committed
Unpack info enum in "package" signals, like pk-glib does
CC: #63
1 parent 24d1a52 commit 6d0c776

File tree

1 file changed

+11
-3
lines changed

1 file changed

+11
-3
lines changed

src/transactionprivate.cpp

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -339,9 +339,17 @@ void TransactionPrivate::updateProperties(const QVariantMap &properties)
339339
void TransactionPrivate::Package(uint info, const QString &pid, const QString &summary)
340340
{
341341
Q_Q(Transaction);
342-
q->package(static_cast<Transaction::Info>(info),
343-
pid,
344-
summary);
342+
343+
const auto infoReal = static_cast<Transaction::Info>(info & 0xFFFF);
344+
const auto updateSeverity = static_cast<Transaction::Info>((info >> 16) & 0xFFFF);
345+
346+
// FIXME: This is band-aid for an API break in PackageKit that should not have happened
347+
// It should likely be fixed in a different way, or we need to wait for PK 2.0
348+
if (infoReal == Transaction::InfoUnknown) {
349+
q->package(updateSeverity, pid, summary);
350+
} else {
351+
q->package(infoReal, pid, summary);
352+
}
345353
}
346354

347355
void TransactionPrivate::Packages(const QList<PackageKit::PkPackage> &pkgs)

0 commit comments

Comments
 (0)