[PackageKit-commit] packagekit: Branch 'master' - 5 commits

Richard Hughes hughsient at kemper.freedesktop.org
Mon Sep 6 07:51:11 PDT 2010


 docs/html/pk-matrix.html                     |   42 +
 lib/packagekit-qt/src/client.cpp             |  141 +++---
 lib/packagekit-qt/src/client.h               |   32 +
 lib/packagekit-qt/src/clientprivate.cpp      |   65 +--
 lib/packagekit-qt/src/clientprivate.h        |   22 -
 lib/packagekit-qt/src/common.h               |    1 
 lib/packagekit-qt/src/package.cpp            |    4 
 lib/packagekit-qt/src/package.h              |    7 
 lib/packagekit-qt/src/transaction.cpp        |  579 ++++++++++++++++++++++-----
 lib/packagekit-qt/src/transaction.h          |  365 +++++++++++++++--
 lib/packagekit-qt/src/transactionprivate.cpp |   12 
 lib/packagekit-qt/src/transactionprivate.h   |    5 
 po/pa.po                                     |  342 ++++++++-------
 13 files changed, 1178 insertions(+), 439 deletions(-)

New commits:
commit 18042ac75d46ff4e02b09f1c6b3aa7706f688ba5
Author: aalam <aalam at fedoraproject.org>
Date:   Sun Sep 5 15:21:53 2010 +0000

    l10n: Updates to Panjabi (Punjabi) (pa) translation
    
    Transmitted-via: Transifex (translate.fedoraproject.org)

diff --git a/po/pa.po b/po/pa.po
index 6be751a..299e028 100644
--- a/po/pa.po
+++ b/po/pa.po
@@ -9,8 +9,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: packagekit.master.pa\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-05-05 16:54+0000\n"
-"PO-Revision-Date: 2010-05-06 07:38+0530\n"
+"POT-Creation-Date: 2010-09-05 04:07+0000\n"
+"PO-Revision-Date: 2010-09-05 20:30+0530\n"
 "Last-Translator: A S Alam <aalam at users.sf.net>\n"
 "Language-Team: Punjabi/Panjabi <punjabi-users at lists.sf.net>\n"
 "MIME-Version: 1.0\n"
@@ -200,7 +200,7 @@ msgstr "ਜਾਰੀ ਕੀਤਾ"
 
 #. TRANSLATORS: details about the update, date the update was updated
 #. TRANSLATORS: The action of the package, in past tense
-#: ../client/pk-console.c:390 ../lib/packagekit-glib2/pk-console-shared.c:511
+#: ../client/pk-console.c:390 ../lib/packagekit-glib2/pk-console-shared.c:517
 msgid "Updated"
 msgstr "ਅੱਪਡੇਟ ਕੀਤੇ"
 
@@ -281,8 +281,8 @@ msgstr "ਘਾਤਕ ਗਲਤੀ"
 
 #. TRANSLATORS: the transaction failed in a way we could not expect
 #: ../client/pk-console.c:696
-#: ../contrib/command-not-found/pk-command-not-found.c:433
-#: ../contrib/command-not-found/pk-command-not-found.c:606
+#: ../contrib/command-not-found/pk-command-not-found.c:454
+#: ../contrib/command-not-found/pk-command-not-found.c:634
 msgid "The transaction failed"
 msgstr "ਟਰਾਂਸੈਕਸ਼ਨ ਫੇਲ੍ਹ ਹੋਈ"
 
@@ -378,7 +378,7 @@ msgid "Failed to get the time since this action was last completed"
 msgstr "ਇਸ ਕਾਰਵਾਈ ਦੇ ਆਖਰੀ ਵਾਰ ਪੂਰੀ ਹੋਣ ਤੋਂ ਬਾਅਦ ਸਮਾਂ ਲੈਣ ਲਈ ਫੇਲ੍ਹ ਹੈ"
 
 #. TRANSLATORS: command line argument, just show the version string
-#: ../client/pk-console.c:1268 ../client/pk-monitor.c:326
+#: ../client/pk-console.c:1268 ../client/pk-monitor.c:373
 msgid "Show the program version and exit"
 msgstr "ਪਰੋਗਰਾਮ ਵਰਜਨ ਵੇਖੋ ਅਤੇ ਬੰਦ ਕਰੋ"
 
@@ -419,122 +419,122 @@ msgid "Failed to contact PackageKit"
 msgstr "ਪੈਕੇਜਕਿੱਟ ਨਾਲ ਸੰਪਰਕ ਲਈ ਫੇਲ੍ਹ ਹੈ"
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1369
+#: ../client/pk-console.c:1370
 msgid "The proxy could not be set"
 msgstr "ਪਰਾਕਸੀ ਸੈੱਟ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਿਆ"
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1381
+#: ../client/pk-console.c:1382
 msgid "The install root could not be set"
 msgstr "ਇੰਸਟਾਲ ਰੂਟ ਸੈੱਟ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਿਆ"
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1393
+#: ../client/pk-console.c:1394
 msgid "The filter specified was invalid"
 msgstr "ਦਿੱਤਾ ਫਿਲਟਰ ਅਢੁੱਕਵਾਂ ਹੈ।"
 
 #. TRANSLATORS: a search type can be name, details, file, etc
-#: ../client/pk-console.c:1412
+#: ../client/pk-console.c:1413
 msgid "A search type is required, e.g. name"
 msgstr "ਖੋਜ ਕਿਸਮ ਚਾਹੀਦੀ ਹੈ, ਜਿਵੇਂ ਨਾਂ"
 
 #. TRANSLATORS: the user needs to provide a search term
-#: ../client/pk-console.c:1419 ../client/pk-console.c:1431
-#: ../client/pk-console.c:1443 ../client/pk-console.c:1455
+#: ../client/pk-console.c:1420 ../client/pk-console.c:1432
+#: ../client/pk-console.c:1444 ../client/pk-console.c:1456
 msgid "A search term is required"
 msgstr "ਖੋਜ ਸ਼ਬਦ ਦੀ ਲੋੜ ਹੈ"
 
 #. TRANSLATORS: the search type was provided, but invalid
-#: ../client/pk-console.c:1465
+#: ../client/pk-console.c:1466
 msgid "Invalid search type"
 msgstr "ਗਲਤ ਖੋਜ ਟਾਈਪ"
 
 #. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console.c:1471
+#: ../client/pk-console.c:1472
 msgid "A package name to install is required"
 msgstr "ਇੰਸਟਾਲ ਕਰਨ ਲਈ ਪੈਕੇਜ ਨਾਂ ਲਾਜ਼ਮੀ ਹੈ"
 
 #. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console.c:1480
+#: ../client/pk-console.c:1481
 msgid "A filename to install is required"
 msgstr "ਇੰਸਟਾਲ ਕਰਨ ਲਈ ਇੱਕ ਫਾਇਲ ਨਾਂ ਦੀ ਲੋੜ ਹੈ"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1492
+#: ../client/pk-console.c:1493
 msgid "A type, key_id and package_id are required"
 msgstr "ਟਾਈਪ, key_id ਜਾਂ package_id ਦੇਣ ਦੀ ਲੋੜ ਹੈ"
 
 #. TRANSLATORS: the user did not specify what they wanted to remove
-#: ../client/pk-console.c:1503
+#: ../client/pk-console.c:1504
 msgid "A package name to remove is required"
 msgstr "ਹਟਾਉਣ ਵਾਸਤੇ ਪੈਕੇਜ ਨਾਂ ਚਾਹੀਦਾ ਹੈ"
 
 #. TRANSLATORS: the user did not specify anything about what to download or where
-#: ../client/pk-console.c:1512
+#: ../client/pk-console.c:1513
 msgid "A destination directory and the package names to download are required"
 msgstr "ਡਾਊਨਲੋਡ ਕਰਨ ਵਾਸਤੇ ਟਿਕਾਣਾ ਡਾਇਰੈਕਟਰੀ ਅਤੇ ਪੈਕੇਜ ਨਾਂ ਲਾਜ਼ਮੀ ਹੈ"
 
 #. TRANSLATORS: the directory does not exist, so we can't continue
-#: ../client/pk-console.c:1519
+#: ../client/pk-console.c:1520
 msgid "Directory not found"
 msgstr "ਡਾਇਰੈਕਟਰੀ ਨਹੀਂ ਲੱਭੀ"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1528
+#: ../client/pk-console.c:1529
 msgid "A licence identifier (eula-id) is required"
 msgstr "ਇੱਕ ਲਾਈਸੈਂਸ ਪਛਾਣਕਰਤਾ (eula-id) ਲਾਜ਼ਮੀ ਹੈ"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1539
+#: ../client/pk-console.c:1540
 msgid "A transaction identifier (tid) is required"
 msgstr "ਟਰਾਂਸੈਕਸ਼ਨ ਪਛਾਣ (tid) ਲੋੜੀਦਾ ਹੈ"
 
 #. TRANSLATORS: The user did not specify a package name
-#: ../client/pk-console.c:1560
+#: ../client/pk-console.c:1561
 msgid "A package name to resolve is required"
 msgstr "ਹੱਲ ਕਰਨ ਲਈ ਪੈਕੇਜ ਨਾਂ ਲਾਜ਼ਮੀ ਹੈ"
 
 #. TRANSLATORS: The user did not specify a repository (software source) name
-#: ../client/pk-console.c:1571 ../client/pk-console.c:1582
+#: ../client/pk-console.c:1572 ../client/pk-console.c:1583
 msgid "A repository name is required"
 msgstr "ਰਿਪੋਜ਼ਟਰੀ ਨਾਂ ਲੋੜੀਦਾ ਹੈ"
 
 #. TRANSLATORS: The user didn't provide any data
-#: ../client/pk-console.c:1593
+#: ../client/pk-console.c:1594
 msgid "A repo name, parameter and value are required"
 msgstr "ਰੈਪੋ ਨਾਂ, ਪੈਰਾਮੀਟਰ ਅਤੇ ਮੁੱਲ ਲੋੜੀਦਾ ਹੈ"
 
 #. TRANSLATORS: The user didn't specify what action to use
-#: ../client/pk-console.c:1610
+#: ../client/pk-console.c:1611
 msgid "An action, e.g. 'update-system' is required"
 msgstr "ਕਾਰਵਾਈ, ਜਿਵੇਂ 'ਅੱਪਡੇਟ-ਸਿਸਟਮ' ਲੋੜੀਦਾ ਹੈ"
 
 #. TRANSLATORS: The user specified an invalid action
-#: ../client/pk-console.c:1617
+#: ../client/pk-console.c:1618
 msgid "A correct role is required"
 msgstr "ਠੀਕ ਰੋਲ ਲੋੜੀਦਾ ਹੈ"
 
 #. TRANSLATORS: The user did not provide a package name
 #. TRANSLATORS: This is when the user fails to supply the package name
-#: ../client/pk-console.c:1627 ../client/pk-console.c:1642
-#: ../client/pk-console.c:1651 ../client/pk-console.c:1671
-#: ../client/pk-console.c:1680 ../client/pk-generate-pack.c:316
+#: ../client/pk-console.c:1628 ../client/pk-console.c:1643
+#: ../client/pk-console.c:1652 ../client/pk-console.c:1672
+#: ../client/pk-console.c:1681 ../client/pk-generate-pack.c:316
 msgid "A package name is required"
 msgstr "ਪੈਕੇਜ ਨਾਂ ਲੋੜੀਦਾ ਹੈ"
 
 #. TRANSLATORS: each package "provides" certain things, e.g. mime(gstreamer-decoder-mp3), the user didn't specify it
-#: ../client/pk-console.c:1660
+#: ../client/pk-console.c:1661
 msgid "A package provide string is required"
 msgstr "ਪੈਕੇਜ ਦੇਣ ਵਾਲੀ ਸਤਰ ਲੋੜੀਦੀ ਹੈ"
 
 #. TRANSLATORS: The user tried to use an unsupported option on the command line
-#: ../client/pk-console.c:1740
+#: ../client/pk-console.c:1742
 #, c-format
 msgid "Option '%s' is not supported"
 msgstr "ਚੋਣ '%s' ਸਹਾਇਕ ਨਹੀਂ ਹੈ"
 
 #. TRANSLATORS: Generic failure of what they asked to do
-#: ../client/pk-console.c:1750
+#: ../client/pk-console.c:1752
 msgid "Command failed"
 msgstr "ਕਮਾਂਡ ਫੇਲ੍ਹ ਹੈ"
 
@@ -646,160 +646,164 @@ msgstr "ਸਰਵਿਸ ਪੈਕ ਬਣਾਇਆ '%s'"
 msgid "Failed to create '%s': %s"
 msgstr "'%s' ਬਣਾਉਣ ਲਈ ਫੇਲ੍ਹ: %s"
 
-#: ../client/pk-monitor.c:256
+#: ../client/pk-monitor.c:286
 msgid "Failed to get daemon state"
 msgstr "ਡੈਮਨ ਹਾਲਤ ਪਤਾ ਕਰਨ ਲਈ ਫੇਲ੍ਹ ਹੈ।"
 
+#: ../client/pk-monitor.c:351
+msgid "Failed to get properties"
+msgstr "ਵਿਸ਼ੇਸ਼ਤਾ ਲੈਣ ਲਈ ਫੇਲ੍ਹ ਹੈ"
+
 #. TRANSLATORS: this is a program that monitors PackageKit
-#: ../client/pk-monitor.c:342
+#: ../client/pk-monitor.c:389
 msgid "PackageKit Monitor"
 msgstr "ਪੈਕੇਜਕਿੱਟ ਮਾਨੀਟਰ"
 
 #. TRANSLATORS: when we are getting data from the daemon
-#: ../contrib/browser-plugin/pk-plugin-install.c:495
+#: ../contrib/browser-plugin/pk-plugin-install.c:497
 msgid "Getting package information..."
 msgstr "ਪੈਕੇਜ ਜਾਣਕਾਰੀ ਲਈ ਜਾ ਰਹੀ ਹੈ..."
 
 #. TRANSLATORS: run an applicaiton
-#: ../contrib/browser-plugin/pk-plugin-install.c:501
+#: ../contrib/browser-plugin/pk-plugin-install.c:503
 #, c-format
 msgid "Run %s"
 msgstr "%s ਚਲਾਓ"
 
 #. TRANSLATORS: show the installed version of a package
-#: ../contrib/browser-plugin/pk-plugin-install.c:507
+#: ../contrib/browser-plugin/pk-plugin-install.c:509
 msgid "Installed version"
 msgstr "ਇੰਸਟਾਲ ਕੀਤੇ ਵਰਜਨ"
 
 #. TRANSLATORS: run the application now
-#: ../contrib/browser-plugin/pk-plugin-install.c:515
+#: ../contrib/browser-plugin/pk-plugin-install.c:517
 #, c-format
 msgid "Run version %s now"
 msgstr "ਵਰਜਨ %s ਹੁਣੇ ਚਲਾਓ"
 
 #. TRANSLATORS: run the application now
-#: ../contrib/browser-plugin/pk-plugin-install.c:521
+#: ../contrib/browser-plugin/pk-plugin-install.c:523
 msgid "Run now"
 msgstr "ਹੁਣੇ ਚਲਾਓ"
 
 #. TRANSLATORS: update to a new version of the package
-#: ../contrib/browser-plugin/pk-plugin-install.c:527
+#: ../contrib/browser-plugin/pk-plugin-install.c:529
 #, c-format
 msgid "Update to version %s"
 msgstr "ਵਰਜਨ %s ਲਈ ਅੱਪਡੇਟ ਕਰੋ"
 
 #. TRANSLATORS: To install a package
-#: ../contrib/browser-plugin/pk-plugin-install.c:533
+#: ../contrib/browser-plugin/pk-plugin-install.c:535
 #, c-format
 msgid "Install %s now"
 msgstr "%s ਹੁਣੇ ਇੰਸਟਾਲ ਕਰੋ"
 
 #. TRANSLATORS: the version of the package
-#: ../contrib/browser-plugin/pk-plugin-install.c:536
+#: ../contrib/browser-plugin/pk-plugin-install.c:538
 msgid "Version"
 msgstr "ਵਰਜਨ"
 
 #. TRANSLATORS: noting found, so can't install
-#: ../contrib/browser-plugin/pk-plugin-install.c:541
+#: ../contrib/browser-plugin/pk-plugin-install.c:543
 msgid "No packages found for your system"
 msgstr "ਤੁਹਾਡੇ ਸਿਸਟਮ ਉੱਤੇ ਕੋਈ ਪੈਕੇਜ ਨਹੀਂ ਲੱਭਿਆ"
 
 #. TRANSLATORS: package is being installed
-#: ../contrib/browser-plugin/pk-plugin-install.c:546
+#: ../contrib/browser-plugin/pk-plugin-install.c:548
 msgid "Installing..."
 msgstr "ਇੰਸਟਾਲ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ..."
 
 #. TRANSLATORS: downloading repo data so we can search
-#: ../contrib/command-not-found/pk-command-not-found.c:366
+#: ../contrib/command-not-found/pk-command-not-found.c:367
 msgid "Downloading details about the software sources."
 msgstr "ਸਾਫਟਵੇਅਰ ਸਰੋਤਾਂ ਬਾਰੇ ਵੇਰਵਾ ਡਾਊਨਲੋਡ ਕਰ ਰਿਹਾ ਹੈ।"
 
 #. TRANSLATORS: downloading file lists so we can search
-#: ../contrib/command-not-found/pk-command-not-found.c:370
+#: ../contrib/command-not-found/pk-command-not-found.c:371
 msgid "Downloading filelists (this may take some time to complete)."
 msgstr "ਫਾਇਲ-ਲਿਸਟ ਡਾਊਨਲੋਡ ਕੀਤੀ ਜਾ ਰਹੀ ਹੈ (ਇਹ ਪੂਰਾ ਹੋਣ ਲਈ ਕੁਝ ਸਮਾਂ ਲੈ ਸਕਦਾ ਹੈ)।"
 
 #. TRANSLATORS: waiting for native lock
-#: ../contrib/command-not-found/pk-command-not-found.c:374
+#: ../contrib/command-not-found/pk-command-not-found.c:375
 msgid "Waiting for package manager lock."
 msgstr "ਪੈਕੇਜ ਮੈਨੇਜਰ ਲਾਕ ਉਡੀਕਿਆ ਜਾ ਰਿਹਾ ਹੈ।"
 
 #. TRANSLATORS: loading package cache so we can search
-#: ../contrib/command-not-found/pk-command-not-found.c:378
+#: ../contrib/command-not-found/pk-command-not-found.c:379
 msgid "Loading list of packages."
 msgstr "ਪੈਕੇਜ ਲਿਸਟ ਲੋਡ ਕੀਤੀ ਜਾ ਰਹੀ ਹੈ।"
 
 #. TRANSLATORS: we failed to find the package, this shouldn't happen
-#: ../contrib/command-not-found/pk-command-not-found.c:424
+#: ../contrib/command-not-found/pk-command-not-found.c:445
 msgid "Failed to search for file"
 msgstr "ਫਾਇਲ ਲਈ ਖੋਜ ਫੇਲ੍ਹ ਹੈ"
 
 #. TRANSLATORS: we failed to launch the executable, the error follows
-#: ../contrib/command-not-found/pk-command-not-found.c:569
+#: ../contrib/command-not-found/pk-command-not-found.c:597
 msgid "Failed to launch:"
 msgstr "ਚਲਾਉਣ ਲਈ ਫੇਲ੍ਹ:"
 
 #. TRANSLATORS: we failed to install the package
-#: ../contrib/command-not-found/pk-command-not-found.c:597
+#: ../contrib/command-not-found/pk-command-not-found.c:625
 msgid "Failed to install packages"
 msgstr "ਪੈਕੇਜ ਇੰਸਟਾਲ ਕਰਨ ਲਈ ਫੇਲ੍ਹ"
 
 #. TRANSLATORS: tool that gets called when the command is not found
-#: ../contrib/command-not-found/pk-command-not-found.c:673
+#: ../contrib/command-not-found/pk-command-not-found.c:701
 msgid "PackageKit Command Not Found"
 msgstr "ਪੈਕੇਜਕਿੱਟ ਕਮਾਂਡ ਨਹੀਂ ਲੱਭੀ"
 
 #. TRANSLATORS: the prefix of all the output telling the user why it's not executing
-#: ../contrib/command-not-found/pk-command-not-found.c:699
+#: ../contrib/command-not-found/pk-command-not-found.c:727
 msgid "Command not found."
 msgstr "ਕਮਾਂਡ ਨਹੀਂ ਲੱਭੀ।"
 
 #. TRANSLATORS: tell the user what we think the command is
-#: ../contrib/command-not-found/pk-command-not-found.c:717
+#: ../contrib/command-not-found/pk-command-not-found.c:745
 msgid "Similar command is:"
 msgstr "ਰਲਦੀ ਕਮਾਂਡ ਹੈ:"
 
 #. TRANSLATORS: Ask the user if we should run the similar command
-#: ../contrib/command-not-found/pk-command-not-found.c:727
+#: ../contrib/command-not-found/pk-command-not-found.c:755
 msgid "Run similar command:"
 msgstr "ਰਲਦੀ ਕਮਾਂਡ ਚਲਾਓ:"
 
 #. TRANSLATORS: show the user a list of commands that they could have meant
 #. TRANSLATORS: show the user a list of commands we could run
-#: ../contrib/command-not-found/pk-command-not-found.c:741
-#: ../contrib/command-not-found/pk-command-not-found.c:750
+#: ../contrib/command-not-found/pk-command-not-found.c:769
+#: ../contrib/command-not-found/pk-command-not-found.c:778
 msgid "Similar commands are:"
 msgstr "ਰਲਦੀਆਂ ਕਮਾਂਡਾਂ ਹਨ:"
 
 #. TRANSLATORS: ask the user to choose a file to run
-#: ../contrib/command-not-found/pk-command-not-found.c:757
+#: ../contrib/command-not-found/pk-command-not-found.c:785
 msgid "Please choose a command to run"
 msgstr "ਚਲਾਉਣ ਲਈ ਕਮਾਂਡ ਦੀ ਚੋਣ ਕਰੋ ਜੀ"
 
 #. TRANSLATORS: tell the user what package provides the command
-#: ../contrib/command-not-found/pk-command-not-found.c:775
+#: ../contrib/command-not-found/pk-command-not-found.c:803
 msgid "The package providing this file is:"
 msgstr "ਪੈਕੇਜ ਇਹ ਫਾਇਲ ਦਿੰਦਾ ਹੈ:"
 
 #. TRANSLATORS: as the user if we want to install a package to provide the command
-#: ../contrib/command-not-found/pk-command-not-found.c:780
+#: ../contrib/command-not-found/pk-command-not-found.c:808
 #, c-format
 msgid "Install package '%s' to provide command '%s'?"
 msgstr "ਕਮਾਂਡ '%2$s' ਦੇਣ ਲਈ ਪੈਕੇਜ '%1$s' ਇੰਸਟਾਲ ਕਰਨਾ ਹੈ?"
 
 #. TRANSLATORS: Show the user a list of packages that provide this command
-#: ../contrib/command-not-found/pk-command-not-found.c:804
+#: ../contrib/command-not-found/pk-command-not-found.c:832
 msgid "Packages providing this file are:"
 msgstr "ਪੈਕੇਜ ਇਹ ਫਾਇਲ ਦਿੰਦਾ ਹੈ:"
 
 #. TRANSLATORS: Show the user a list of packages that they can install to provide this command
-#: ../contrib/command-not-found/pk-command-not-found.c:814
+#: ../contrib/command-not-found/pk-command-not-found.c:842
 msgid "Suitable packages are:"
 msgstr "ਢੁੱਕਵੇਂ ਪੈਕੇਜ ਹਨ:"
 
 #. get selection
 #. TRANSLATORS: ask the user to choose a file to install
-#: ../contrib/command-not-found/pk-command-not-found.c:823
+#: ../contrib/command-not-found/pk-command-not-found.c:851
 msgid "Please choose a package to install"
 msgstr "ਇੰਸਟਾਲ ਕਰਨ ਲਈ ਪੈਕੇਜ ਚੁਣੋ ਜੀ"
 
@@ -967,7 +971,7 @@ msgstr "ਸਿਮੂਲੇਟ ਮੋਡ ਵਿੱਚ ਪੈਕੇਜ ਇੰਸ
 #. TRANSLATORS: we are now installing the debuginfo packages we found earlier
 #. TRANSLATORS: transaction state, installing packages
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:862
-#: ../lib/packagekit-glib2/pk-console-shared.c:283
+#: ../lib/packagekit-glib2/pk-console-shared.c:289
 #, c-format
 msgid "Installing packages"
 msgstr "ਪੈਕੇਜ ਇੰਸਟਾਲ ਕੀਤੇ ਜਾ ਰਹੇ ਹਨ"
@@ -1098,464 +1102,464 @@ msgstr "ਪੈਕੇਜਕਿੱਟ ਪੈਕੇਜ ਲਿਸਟ"
 msgid "PackageKit Service Pack"
 msgstr "ਪੈਕੇਜਕਿੱਟ ਸਰਵਿਸ ਪੈਕ"
 
-#: ../lib/packagekit-glib2/pk-console-shared.c:59
+#: ../lib/packagekit-glib2/pk-console-shared.c:65
 #, c-format
 msgid "Please enter a number from 1 to %i: "
 msgstr "੧ ਤੋਂ %i ਤੱਕ ਨੰਬਰ ਦਿਓ ਜੀ:"
 
 #. TRANSLATORS: more than one package could be found that matched, to follow is a list of possible packages
-#: ../lib/packagekit-glib2/pk-console-shared.c:185
+#: ../lib/packagekit-glib2/pk-console-shared.c:191
 msgid "More than one package matches:"
 msgstr "ਇੱਕ ਤੋਂ ਵੱਧ ਰਲਦੇ ਪੈਕੇਜ ਲੱਭੇ:"
 
 #. TRANSLATORS: This finds out which package in the list to use
-#: ../lib/packagekit-glib2/pk-console-shared.c:196
+#: ../lib/packagekit-glib2/pk-console-shared.c:202
 msgid "Please choose the correct package: "
 msgstr "ਠੀਕ ਪੈਕੇਜ ਚੁਣੋ ਜੀ:"
 
 #. TRANSLATORS: This is when the transaction status is not known
-#: ../lib/packagekit-glib2/pk-console-shared.c:251
+#: ../lib/packagekit-glib2/pk-console-shared.c:257
 msgid "Unknown state"
 msgstr "ਅਣਜਾਣ ਹਾਲਤ"
 
 #. TRANSLATORS: transaction state, the daemon is in the process of starting
-#: ../lib/packagekit-glib2/pk-console-shared.c:255
+#: ../lib/packagekit-glib2/pk-console-shared.c:261
 msgid "Starting"
 msgstr "ਸ਼ੁਰੂ ਹੋ ਰਿਹਾ ਹੈ"
 
 #. TRANSLATORS: transaction state, the transaction is waiting for another to complete
-#: ../lib/packagekit-glib2/pk-console-shared.c:259
+#: ../lib/packagekit-glib2/pk-console-shared.c:265
 msgid "Waiting in queue"
 msgstr "ਕਤਾਰ ਵਿੱਚ ਉਡੀਕ ਜਾਰੀ"
 
 #. TRANSLATORS: transaction state, just started
-#: ../lib/packagekit-glib2/pk-console-shared.c:263
+#: ../lib/packagekit-glib2/pk-console-shared.c:269
 msgid "Running"
 msgstr "ਚੱਲ ਰਿਹਾ ਹੈ"
 
 #. TRANSLATORS: transaction state, is querying data
-#: ../lib/packagekit-glib2/pk-console-shared.c:267
+#: ../lib/packagekit-glib2/pk-console-shared.c:273
 msgid "Querying"
 msgstr "ਕਿਊਰੀ ਕੀਤੀ ਜਾ ਰਹੀ ਹੈ"
 
 #. TRANSLATORS: transaction state, getting data from a server
-#: ../lib/packagekit-glib2/pk-console-shared.c:271
+#: ../lib/packagekit-glib2/pk-console-shared.c:277
 msgid "Getting information"
 msgstr "ਜਾਣਕਾਰੀ ਲਈ ਜਾ ਰਹੀ ਹੈ"
 
 #. TRANSLATORS: transaction state, removing packages
-#: ../lib/packagekit-glib2/pk-console-shared.c:275
+#: ../lib/packagekit-glib2/pk-console-shared.c:281
 msgid "Removing packages"
 msgstr "ਪੈਕੇਜ ਹਟਾਏ ਜਾ ਰਹੇ ਹਨ"
 
 #. TRANSLATORS: transaction state, downloading package files
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:279
-#: ../lib/packagekit-glib2/pk-console-shared.c:657
+#: ../lib/packagekit-glib2/pk-console-shared.c:285
+#: ../lib/packagekit-glib2/pk-console-shared.c:663
 msgid "Downloading packages"
 msgstr "ਪੈਕੇਜ ਡਾਊਨਲੋਡ ਕੀਤੇ ਜਾ ਰਹੇ ਹਨ"
 
 #. TRANSLATORS: transaction state, refreshing internal lists
-#: ../lib/packagekit-glib2/pk-console-shared.c:287
+#: ../lib/packagekit-glib2/pk-console-shared.c:293
 msgid "Refreshing software list"
 msgstr "ਸਾਫਟਵੇਅਰ ਲਿਸਟ ਤਾਜ਼ਾ ਕੀਤੀ ਜਾ ਰਹੀ ਹੈ"
 
 #. TRANSLATORS: transaction state, installing updates
-#: ../lib/packagekit-glib2/pk-console-shared.c:291
+#: ../lib/packagekit-glib2/pk-console-shared.c:297
 msgid "Installing updates"
 msgstr "ਅੱਪਡੇਟ ਇੰਸਟਾਲ ਕੀਤੇ ਜਾ ਰਹੇ ਹਨ"
 
 #. TRANSLATORS: transaction state, removing old packages, and cleaning config files
-#: ../lib/packagekit-glib2/pk-console-shared.c:295
+#: ../lib/packagekit-glib2/pk-console-shared.c:301
 msgid "Cleaning up packages"
 msgstr "ਪੈਕੇਜ ਸਾਫ਼ ਕੀਤੇ ਜਾ ਰਹੇ ਹਨ"
 
 #. TRANSLATORS: transaction state, obsoleting old packages
-#: ../lib/packagekit-glib2/pk-console-shared.c:299
+#: ../lib/packagekit-glib2/pk-console-shared.c:305
 msgid "Obsoleting packages"
 msgstr "ਪੈਕੇਜ ਬਰਤਰਫ਼ ਕੀਤੇ ਜਾ ਰਹੇ ਹਨ"
 
 #. TRANSLATORS: transaction state, checking the transaction before we do it
-#: ../lib/packagekit-glib2/pk-console-shared.c:303
+#: ../lib/packagekit-glib2/pk-console-shared.c:309
 msgid "Resolving dependencies"
 msgstr "ਨਿਰਭਰਤਾ ਹੱਲ ਕੀਤੀ ਜਾ ਰਹੀ ਹੈ"
 
 #. TRANSLATORS: transaction state, checking if we have all the security keys for the operation
-#: ../lib/packagekit-glib2/pk-console-shared.c:307
+#: ../lib/packagekit-glib2/pk-console-shared.c:313
 msgid "Checking signatures"
 msgstr "ਦਸਤਖਤ ਚੈੱਕ ਕੀਤੇ ਜਾ ਰਹੇ ਹਨ"
 
 #. TRANSLATORS: transaction state, when we return to a previous system state
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:311
-#: ../lib/packagekit-glib2/pk-console-shared.c:617
+#: ../lib/packagekit-glib2/pk-console-shared.c:317
+#: ../lib/packagekit-glib2/pk-console-shared.c:623
 msgid "Rolling back"
 msgstr "ਰੋਲ ਬੈਕ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ"
 
 #. TRANSLATORS: transaction state, when we're doing a test transaction
-#: ../lib/packagekit-glib2/pk-console-shared.c:315
+#: ../lib/packagekit-glib2/pk-console-shared.c:321
 msgid "Testing changes"
 msgstr "ਬਦਲਾਅ ਦੀ ਜਾਂਚ ਕੀਤੀ ਜਾ ਰਹੀ ਹੈ"
 
 #. TRANSLATORS: transaction state, when we're writing to the system package database
-#: ../lib/packagekit-glib2/pk-console-shared.c:319
+#: ../lib/packagekit-glib2/pk-console-shared.c:325
 msgid "Committing changes"
 msgstr "ਬਦਲਾਅ ਕਮਿਟ ਕੀਤੇ ਜਾ ਰਹੇ ਹਨ"
 
 #. TRANSLATORS: transaction state, requesting data from a server
-#: ../lib/packagekit-glib2/pk-console-shared.c:323
+#: ../lib/packagekit-glib2/pk-console-shared.c:329
 msgid "Requesting data"
 msgstr "ਡਾਟਾ ਮੰਗਿਆ ਜਾ ਰਿਹਾ ਹੈ"
 
 #. TRANSLATORS: transaction state, all done!
-#: ../lib/packagekit-glib2/pk-console-shared.c:327
+#: ../lib/packagekit-glib2/pk-console-shared.c:333
 msgid "Finished"
 msgstr "ਮੁਕੰਮਲ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ"
 
 #. TRANSLATORS: transaction state, in the process of cancelling
-#: ../lib/packagekit-glib2/pk-console-shared.c:331
+#: ../lib/packagekit-glib2/pk-console-shared.c:337
 msgid "Cancelling"
 msgstr "ਰੱਦ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:335
+#: ../lib/packagekit-glib2/pk-console-shared.c:341
 msgid "Downloading repository information"
 msgstr "ਰਿਪੋਜ਼ਟਰੀ ਜਾਣਕਾਰੀ ਡਾਊਨਲੋਡ ਕੀਤੀ ਜਾ ਰਹੀ ਹੈ"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:339
+#: ../lib/packagekit-glib2/pk-console-shared.c:345
 msgid "Downloading list of packages"
 msgstr "ਪੈਕੇਜ ਲਿਸਟ ਡਾਊਨਲੋਡ ਕੀਤੀ ਜਾ ਰਹੀ ਹੈ"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:343
+#: ../lib/packagekit-glib2/pk-console-shared.c:349
 msgid "Downloading file lists"
 msgstr "ਫਾਇਲ ਲਿਸਟਾਂ ਡਾਊਨਲੋਡ ਕੀਤੀਆਂ ਜਾ ਰਹੀਆਂ ਹਨ"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:347
+#: ../lib/packagekit-glib2/pk-console-shared.c:353
 msgid "Downloading lists of changes"
 msgstr "ਬਦਲਾਅ ਲਈ ਲਿਸਟ ਡਾਊਨਲੋਡ ਕੀਤੀ ਜਾ ਰਹੀ ਹੈ"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:351
+#: ../lib/packagekit-glib2/pk-console-shared.c:357
 msgid "Downloading groups"
 msgstr "ਗਰੁੱਡ ਡਾਊਨਲੋਡ ਕੀਤੇ ਜਾ ਰਹੇ ਹਨ"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:355
+#: ../lib/packagekit-glib2/pk-console-shared.c:361
 msgid "Downloading update information"
 msgstr "ਅੱਪਡੇਟ ਜਾਣਕਾਰੀ ਡਾਊਨਲੋਡ ਕੀਤੀ ਜਾ ਰਹੀ ਹੈ"
 
 #. TRANSLATORS: transaction state, repackaging delta files
-#: ../lib/packagekit-glib2/pk-console-shared.c:359
+#: ../lib/packagekit-glib2/pk-console-shared.c:365
 msgid "Repackaging files"
 msgstr "ਫਾਇਲਾਂ ਮੁੜ-ਪੈਕ ਕੀਤੀਆਂ ਜਾ ਰਹੀਆਂ ਹਨ"
 
 #. TRANSLATORS: transaction state, loading databases
-#: ../lib/packagekit-glib2/pk-console-shared.c:363
+#: ../lib/packagekit-glib2/pk-console-shared.c:369
 msgid "Loading cache"
 msgstr "ਕੈਸ ਲੋਡ ਕੀਤੀ ਜਾ ਰਹੀ ਹੈ"
 
 #. TRANSLATORS: transaction state, scanning for running processes
-#: ../lib/packagekit-glib2/pk-console-shared.c:367
+#: ../lib/packagekit-glib2/pk-console-shared.c:373
 msgid "Scanning applications"
 msgstr "ਐਪਲੀਕੇਸ਼ਨਾਂ ਸਕੈਨ ਕੀਤੀਆਂ ਜਾ ਰਹੀਆਂ ਹਨ"
 
 #. TRANSLATORS: transaction state, generating a list of packages installed on the system
-#: ../lib/packagekit-glib2/pk-console-shared.c:371
+#: ../lib/packagekit-glib2/pk-console-shared.c:377
 msgid "Generating package lists"
 msgstr "ਪੈਕੇਜ ਲਿਸਟ ਬਣਾਈ ਜਾ ਰਹੀ ਹੈ"
 
 #. TRANSLATORS: transaction state, when we're waiting for the native tools to exit
-#: ../lib/packagekit-glib2/pk-console-shared.c:375
+#: ../lib/packagekit-glib2/pk-console-shared.c:381
 msgid "Waiting for package manager lock"
 msgstr "ਪੈਕੇਜ ਮੈਨੇਜਰ ਲਾਕ ਦੀ ਉਡੀਕ ਕੀਤੀ ਜਾ ਰਹੀ ਹੈ"
 
 #. TRANSLATORS: transaction state, waiting for user to type in a password
-#: ../lib/packagekit-glib2/pk-console-shared.c:379
+#: ../lib/packagekit-glib2/pk-console-shared.c:385
 msgid "Waiting for authentication"
 msgstr "ਪ੍ਰਮਾਣਿਕਤਾ ਲਈ ਉਡੀਕ ਜਾਰੀ"
 
 #. TRANSLATORS: transaction state, we are updating the list of processes
-#: ../lib/packagekit-glib2/pk-console-shared.c:383
+#: ../lib/packagekit-glib2/pk-console-shared.c:389
 msgid "Updating running applications"
 msgstr "ਚੱਲਦੀ ਐਪਲੀਕੇਸ਼ਨ ਅੱਪਡੇਟ ਕੀਤੀ ਜਾ ਰਹੀ ਹੈ"
 
 #. TRANSLATORS: transaction state, we are checking executable files currently in use
-#: ../lib/packagekit-glib2/pk-console-shared.c:387
+#: ../lib/packagekit-glib2/pk-console-shared.c:393
 msgid "Checking applications in use"
 msgstr "ਵਰਤੋਂ ਅਧੀਨ ਐਪਲੀਕੇਸ਼ਨਾਂ ਦੀ ਜਾਂਚ ਹੋ ਰਹੀ ਹੈ"
 
 #. TRANSLATORS: transaction state, we are checking for libraries currently in use
-#: ../lib/packagekit-glib2/pk-console-shared.c:391
+#: ../lib/packagekit-glib2/pk-console-shared.c:397
 msgid "Checking libraries in use"
 msgstr "ਵਰਤੋਂ ਅਧੀਨ ਲਾਇਬਰੇਰੀਆਂ ਦੀ ਜਾਂਚ ਹੋ ਰਹੀ ਹੈ"
 
 #. TRANSLATORS: transaction state, we are copying package files before or after the transaction
-#: ../lib/packagekit-glib2/pk-console-shared.c:395
+#: ../lib/packagekit-glib2/pk-console-shared.c:401
 msgid "Copying files"
 msgstr "ਫਾਇਲਾਂ ਕਾਪੀ ਕੀਤੀਆਂ ਜਾ ਰਹੀਆਂ ਹਨ"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:413
+#: ../lib/packagekit-glib2/pk-console-shared.c:419
 msgid "Trivial"
 msgstr "ਛੋਟਾ"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:417
+#: ../lib/packagekit-glib2/pk-console-shared.c:423
 msgid "Normal"
 msgstr "ਸਧਾਰਨ"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:421
+#: ../lib/packagekit-glib2/pk-console-shared.c:427
 msgid "Important"
 msgstr "ਜ਼ਰੂਰੀ"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:425
+#: ../lib/packagekit-glib2/pk-console-shared.c:431
 msgid "Security"
 msgstr "ਸੁਰੱਖਿਆ"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:429
+#: ../lib/packagekit-glib2/pk-console-shared.c:435
 msgid "Bug fix "
 msgstr "ਬੱਗ ਫਿਕਸ "
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:433
+#: ../lib/packagekit-glib2/pk-console-shared.c:439
 msgid "Enhancement"
 msgstr "ਸੋਧ"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:437
+#: ../lib/packagekit-glib2/pk-console-shared.c:443
 msgid "Blocked"
 msgstr "ਬਲਾਕ ਕੀਤੇ"
 
 #. TRANSLATORS: The state of a package
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:442
-#: ../lib/packagekit-glib2/pk-console-shared.c:515
+#: ../lib/packagekit-glib2/pk-console-shared.c:448
+#: ../lib/packagekit-glib2/pk-console-shared.c:521
 msgid "Installed"
 msgstr "ਇੰਸਟਾਲ ਕੀਤੇ"
 
 #. TRANSLATORS: The state of a package, i.e. not installed
-#: ../lib/packagekit-glib2/pk-console-shared.c:447
+#: ../lib/packagekit-glib2/pk-console-shared.c:453
 msgid "Available"
 msgstr "ਉਪਲੱਬਧ"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:465
+#: ../lib/packagekit-glib2/pk-console-shared.c:471
 msgid "Downloading"
 msgstr "ਡਾਊਨਲੋਡ ਜਾਰੀ"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:469
+#: ../lib/packagekit-glib2/pk-console-shared.c:475
 msgid "Updating"
 msgstr "ਅੱਪਡੇਟ ਜਾਰੀ"
 
 #. TRANSLATORS: The action of the package, in present tense
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:473
-#: ../lib/packagekit-glib2/pk-console-shared.c:593
+#: ../lib/packagekit-glib2/pk-console-shared.c:479
+#: ../lib/packagekit-glib2/pk-console-shared.c:599
 msgid "Installing"
 msgstr "ਇੰਸਟਾਲ ਕਰਨਾ ਜਾਰੀ"
 
 #. TRANSLATORS: The action of the package, in present tense
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:477
-#: ../lib/packagekit-glib2/pk-console-shared.c:589
+#: ../lib/packagekit-glib2/pk-console-shared.c:483
+#: ../lib/packagekit-glib2/pk-console-shared.c:595
 msgid "Removing"
 msgstr "ਹਟਾਇਆ ਜਾ ਰਿਹਾ ਹੈ"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:481
+#: ../lib/packagekit-glib2/pk-console-shared.c:487
 msgid "Cleaning up"
 msgstr "ਸਾਫ਼ ਕਰਨਾ ਜਾਰੀ"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:485
+#: ../lib/packagekit-glib2/pk-console-shared.c:491
 msgid "Obsoleting"
 msgstr "ਬਰਤਰ਼ਫ ਜਾਰੀ"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:489
+#: ../lib/packagekit-glib2/pk-console-shared.c:495
 msgid "Reinstalling"
 msgstr "ਮੁੜ-ਇੰਸਟਾਲ ਕਰਨਾ ਜਾਰੀ"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:507
+#: ../lib/packagekit-glib2/pk-console-shared.c:513
 msgid "Downloaded"
 msgstr "ਡਾਊਨਲੋਡ ਕੀਤੇ"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:519
+#: ../lib/packagekit-glib2/pk-console-shared.c:525
 msgid "Removed"
 msgstr "ਹਟਾਏ ਗਏ ਹਨ"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:523
+#: ../lib/packagekit-glib2/pk-console-shared.c:529
 msgid "Cleaned up"
 msgstr "ਸਾਫ਼ ਕੀਤੇ"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:527
+#: ../lib/packagekit-glib2/pk-console-shared.c:533
 msgid "Obsoleted"
 msgstr "ਬਰਤਰਫ਼ ਕੀਤੇ"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:531
+#: ../lib/packagekit-glib2/pk-console-shared.c:537
 msgid "Reinstalled"
 msgstr "ਮੁੜ-ਇੰਸਟਾਲ ਕੀਤੇ"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:549
+#: ../lib/packagekit-glib2/pk-console-shared.c:555
 msgid "Unknown role type"
 msgstr "ਅਣਜਾਣ ਰੋਲ ਕਿਸਮ"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:553
+#: ../lib/packagekit-glib2/pk-console-shared.c:559
 msgid "Getting dependencies"
 msgstr "ਨਿਰਭਰਤਾ ਲਈ ਜਾ ਰਹੀ ਹੈ"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:557
+#: ../lib/packagekit-glib2/pk-console-shared.c:563
 msgid "Getting update details"
 msgstr "ਅੱਪਡੇਟ ਜਾਣਕਾਰੀ ਲਈ ਜਾ ਰਹੀ ਹੈ"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:561
+#: ../lib/packagekit-glib2/pk-console-shared.c:567
 msgid "Getting details"
 msgstr "ਵੇਰਵਾ ਲਿਆ ਜਾ ਰਿਹਾ ਹੈ"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:565
+#: ../lib/packagekit-glib2/pk-console-shared.c:571
 msgid "Getting requires"
 msgstr "ਲੋੜੀਦੇ ਪੈਕੇਜ ਲਏ ਜਾ ਰਹੇ ਹਨ"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:569
+#: ../lib/packagekit-glib2/pk-console-shared.c:575
 msgid "Getting updates"
 msgstr "ਅੱਪਡੇਟ ਲਏ ਜਾ ਰਹੇ ਹਨ"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:573
+#: ../lib/packagekit-glib2/pk-console-shared.c:579
 msgid "Searching by details"
 msgstr "ਵੇਰਵੇ ਮੁਤਾਬਕ ਖੋਜ ਜਾਰੀ"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:577
+#: ../lib/packagekit-glib2/pk-console-shared.c:583
 msgid "Searching by file"
 msgstr "ਫਾਇਲ ਮੁਤਾਬਕ ਖੋਜ ਜਾਰੀ"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:581
+#: ../lib/packagekit-glib2/pk-console-shared.c:587
 msgid "Searching groups"
 msgstr "ਗਰੁੱਪ ਮੁਤਾਬਕ ਖੋਜ ਜਾਰੀ"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:585
+#: ../lib/packagekit-glib2/pk-console-shared.c:591
 msgid "Searching by name"
 msgstr "ਨਾਂ ਮੁਤਾਬਕ ਖੋਜ ਜਾਰੀ"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:597
+#: ../lib/packagekit-glib2/pk-console-shared.c:603
 msgid "Installing files"
 msgstr "ਫਾਇਲਾਂ ਇੰਸਟਾਲ ਕੀਤੀਆਂ ਜਾ ਰਹੀਆਂ ਹਨ"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:601
+#: ../lib/packagekit-glib2/pk-console-shared.c:607
 msgid "Refreshing cache"
 msgstr "ਕੈਸ਼ ਮੁੜ-ਤਾਜ਼ਾ ਕੀਤੀ ਜਾ ਰਹੀ ਹੈ"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:605
+#: ../lib/packagekit-glib2/pk-console-shared.c:611
 msgid "Updating packages"
 msgstr "ਪੈਕੇਜ ਅੱਪਡੇਟ ਕੀਤੇ ਜਾ ਰਹੇ ਹਨ"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:609
+#: ../lib/packagekit-glib2/pk-console-shared.c:615
 msgid "Updating system"
 msgstr "ਸਿਸਟਮ ਅੱਪਡੇਟ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:613
+#: ../lib/packagekit-glib2/pk-console-shared.c:619
 msgid "Canceling"
 msgstr "ਰੱਦ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:621
+#: ../lib/packagekit-glib2/pk-console-shared.c:627
 msgid "Getting repositories"
 msgstr "ਰਿਪੋਜ਼ਟਰੀ ਲਈ ਜਾ ਰਹੀ ਹੈ"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:625
+#: ../lib/packagekit-glib2/pk-console-shared.c:631
 msgid "Enabling repository"
 msgstr "ਰਿਪੋਜ਼ਟਰੀ ਚਾਲੂ ਕੀਤੀ ਜਾ ਰਹੀ ਹੈ"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:629
+#: ../lib/packagekit-glib2/pk-console-shared.c:635
 msgid "Setting data"
 msgstr "ਡਾਟਾ ਸੈੱਟ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:633
+#: ../lib/packagekit-glib2/pk-console-shared.c:639
 msgid "Resolving"
 msgstr "ਹੱਲ਼ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:637
+#: ../lib/packagekit-glib2/pk-console-shared.c:643
 msgid "Getting file list"
 msgstr "ਫਾਇਲ ਲਿਸਟ ਲਈ ਜਾ ਰਹੀ ਹੈ"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:641
+#: ../lib/packagekit-glib2/pk-console-shared.c:647
 msgid "Getting provides"
 msgstr "ਦੇਣ ਵਾਲੇ ਪੈਕੇਜ ਲਏ ਜਾ ਰਹੇ ਹਨ"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:645
+#: ../lib/packagekit-glib2/pk-console-shared.c:651
 msgid "Installing signature"
 msgstr "ਦਸਤਖਤ ਇੰਸਟਾਲ ਕੀਤੇ ਜਾ ਰਹੇ ਹਨ"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:649
+#: ../lib/packagekit-glib2/pk-console-shared.c:655
 msgid "Getting packages"
 msgstr "ਪੈਕੇਜ ਲਏ ਜਾ ਰਹੇ ਹਨ"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:653
+#: ../lib/packagekit-glib2/pk-console-shared.c:659
 msgid "Accepting EULA"
 msgstr "EULA ਮਨਜ਼ੂਰ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:661
+#: ../lib/packagekit-glib2/pk-console-shared.c:667
 msgid "Getting upgrades"
 msgstr "ਅੱਪਗਰੇਡ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:665
+#: ../lib/packagekit-glib2/pk-console-shared.c:671
 msgid "Getting categories"
 msgstr "ਕੈਟਾਗਰੀਆਂ ਲਈਆਂ ਜਾ ਰਹੀਆਂ ਹਨ"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:669
+#: ../lib/packagekit-glib2/pk-console-shared.c:675
 msgid "Getting transactions"
 msgstr "ਟਰਾਂਸੈਕਸ਼ਨਾਂ ਲਈ ਜਾ ਰਹੀਆਂ ਹਨ"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:673
-#: ../lib/packagekit-glib2/pk-console-shared.c:677
+#: ../lib/packagekit-glib2/pk-console-shared.c:679
+#: ../lib/packagekit-glib2/pk-console-shared.c:683
 msgid "Simulating install"
 msgstr "ਇੰਸਟਾਲ ਕਰਨ ਦੀ ਨਕਲ ਜਾਰੀ"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:681
+#: ../lib/packagekit-glib2/pk-console-shared.c:687
 msgid "Simulating remove"
 msgstr "ਹਟਾਉਣ ਦੀ ਨਕਲ ਜਾਰੀ"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:685
+#: ../lib/packagekit-glib2/pk-console-shared.c:691
 msgid "Simulating update"
 msgstr "ਅੱਪਡੇਟ ਦੀ ਨਕਲ ਜਾਰੀ"
 
@@ -1906,47 +1910,47 @@ msgid ""
 msgstr "org.freedesktop.PackageKit.conf ਫਾਇਲ ਸਿਸਟਮ ਡਾਇਰੈਕਟਰੀ ਵਿੱਚ ਇੰਸਟਾਲ ਨਹੀਂ ਹੈ।"
 
 #. TRANSLATORS: a backend is the system package tool, e.g. yum, apt
-#: ../src/pk-main.c:199
+#: ../src/pk-main.c:200
 msgid "Packaging backend to use, e.g. dummy"
 msgstr "ਵਰਤਣ ਲਈ ਪੈਕੇਜਿੰਗ ਬੈਕਐਂਡ, ਜਿਵੇਂ ਕਿ ਫ਼ਰਜ਼ੀ"
 
 #. TRANSLATORS: if we should run in the background
-#: ../src/pk-main.c:202
+#: ../src/pk-main.c:203
 msgid "Daemonize and detach from the terminal"
 msgstr "ਡੈਮੇਨਾਈਜ਼ ਅਤੇ ਟਰਮੀਨਲ ਤੋਂ ਵੱਖ"
 
 #. TRANSLATORS: if we should not monitor how long we are inactive for
-#: ../src/pk-main.c:205
+#: ../src/pk-main.c:206
 msgid "Disable the idle timer"
 msgstr "ਵੇਹਲਾ ਟਾਈਮਰ ਆਯੋਗ"
 
 #. TRANSLATORS: show version
-#: ../src/pk-main.c:208
+#: ../src/pk-main.c:209
 msgid "Show version and exit"
 msgstr "ਵਰਜਨ ਵੇਖਾ ਕੇ ਬੰਦ ਕਰੋ"
 
 #. TRANSLATORS: exit after we've started up, used for user profiling
-#: ../src/pk-main.c:211
+#: ../src/pk-main.c:212
 msgid "Exit after a small delay"
 msgstr "ਥੋੜ੍ਹੀ ਦੇਰ ਬਾਅਦ ਬੰਦ ਕਰੋ"
 
 #. TRANSLATORS: exit straight away, used for automatic profiling
-#: ../src/pk-main.c:214
+#: ../src/pk-main.c:215
 msgid "Exit after the engine has loaded"
 msgstr "ਇੰਜਣ ਲੋਡ ਕਰਨ ਦੇ ਬਾਅਦ ਬੰਦ ਕਰੋ"
 
 #. TRANSLATORS: describing the service that is running
-#: ../src/pk-main.c:229
+#: ../src/pk-main.c:230
 msgid "PackageKit service"
 msgstr "ਪੈਕੇਜਕਿੱਟ ਸਰਵਿਸ"
 
 #. TRANSLATORS: fatal error, dbus is not running
-#: ../src/pk-main.c:266
+#: ../src/pk-main.c:267
 msgid "Cannot connect to the system bus"
 msgstr "ਸਿਸਟਮ ਬੱਸ ਨਾਲ ਕੁਨੈਕਟ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਦਾ"
 
 #. TRANSLATORS: cannot register on system bus, unknown reason -- geeky error follows
-#: ../src/pk-main.c:317
+#: ../src/pk-main.c:318
 msgid "Error trying to start:"
 msgstr "ਸ਼ੁਰੂ ਕਰਨ ਲਈ ਗਲਤੀ:"
 
commit daa24593fea9ad8ff3b0601dc0c933dadd6b2505
Author: Daniel Nicoletti <dantti85-pk at yahoo.com.br>
Date:   Sun Sep 5 01:15:04 2010 -0300

    packagekit-qt: Forgot to setHints()

diff --git a/lib/packagekit-qt/src/client.cpp b/lib/packagekit-qt/src/client.cpp
index 3fe29c7..4f0a292 100644
--- a/lib/packagekit-qt/src/client.cpp
+++ b/lib/packagekit-qt/src/client.cpp
@@ -41,6 +41,7 @@
 #define RUN_TRANSACTION(blurb) \
 		Q_D(Client);           \
 		CREATE_NEW_TRANSACTION \
+		t->setHints(d->hints); \
 		t->blurb;              \
 		return t;              \
 
commit 3d2cdb95b9c78a767ebe29d0ce771143ce206fac
Merge: bd21a16... f89b106...
Author: Daniel Nicoletti <dantti85-pk at yahoo.com.br>
Date:   Sun Sep 5 01:11:06 2010 -0300

    Merge branch 'master' of git+ssh://git.packagekit.org/srv/git/PackageKit

commit bd21a167b09f0b3a4d7fc745a970e3671107f734
Author: Daniel Nicoletti <dantti85-pk at yahoo.com.br>
Date:   Sun Sep 5 01:06:54 2010 -0300

    packagekit-qt: Fixed error on proxy creating,
    extended API but unprotecting some methods and
    moving Transaction methods to the Transaction
    object. Hopefully fixed the bug where the
    Application got irresponsive when packagekid exits.

diff --git a/lib/packagekit-qt/src/client.cpp b/lib/packagekit-qt/src/client.cpp
index 674c724..3fe29c7 100644
--- a/lib/packagekit-qt/src/client.cpp
+++ b/lib/packagekit-qt/src/client.cpp
@@ -1,6 +1,7 @@
 /*
  * This file is part of the QPackageKit project
  * Copyright (C) 2008 Adrien Bustany <madcat at mymadcat.com>
+ * Copyright (C) 2010 Daniel Nicoletti <dantti85-pk at yahoo.com.br>
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Library General Public
@@ -27,29 +28,20 @@
 #include "daemonproxy.h"
 #include "transaction.h"
 #include "transactionprivate.h"
-#include "transactionproxy.h"
 #include "package.h"
 #include "util.h"
 
-#define CREATE_NEW_TRANSACTION                      \
-		Transaction* t = d->createNewTransaction(); \
-		if (t->tid ().isEmpty ()) {                                   \
-			setLastError (ErrorDaemonUnreachable);  \
-			setTransactionError (t, ErrorDaemonUnreachable); \
-			return t;                            \
-		}                                           \
-
-#define CHECK_TRANSACTION                                          \
-		if (r.isError ()) {                                       \
-			setTransactionError (t, daemonErrorFromDBusReply (r)); \
-		}                                                          \
+#define CREATE_NEW_TRANSACTION                             \
+		Transaction* t = new Transaction(QString(), this); \
+		if (t->tid().isEmpty()) {                          \
+			setLastError(ErrorDaemonUnreachable);          \
+			return t;                                      \
+		}                                                  \
 
 #define RUN_TRANSACTION(blurb) \
-		Q_D(Client);   \
+		Q_D(Client);           \
 		CREATE_NEW_TRANSACTION \
-		QDBusPendingReply<> r = t->d_ptr->p->blurb;        \
-		r.waitForFinished (); \
-		CHECK_TRANSACTION      \
+		t->blurb;              \
 		return t;              \
 
 #define PK_DESKTOP_DEFAULT_DATABASE		LOCALSTATEDIR "/lib/PackageKit/desktop-files.db"
@@ -190,6 +182,12 @@ Enum::Authorize Client::canAuthorize(const QString &actionId) const
 	return (Enum::Authorize) Util::enumFromString<Enum>(result, "Authorize", "Authorize");;
 }
 
+QString Client::getTid() const
+{
+    Q_D(const Client);
+    return d->daemon->GetTid();
+}
+
 uint Client::getTimeSinceAction(Enum::Role role) const
 {
 	Q_D(const Client);
@@ -197,12 +195,23 @@ uint Client::getTimeSinceAction(Enum::Role role) const
 	return d->daemon->GetTimeSinceAction(roleName);
 }
 
-QList<Transaction*> Client::getTransactions()
+QStringList Client::getTransactions() const
+{
+    Q_D(const Client);
+    return d->daemon->GetTransactionList();
+}
+
+QList<Transaction*> Client::getTransactions(QObject *parent)
 {
 	Q_D(Client);
 	QStringList tids = d->daemon->GetTransactionList();
 
-	return d->transactions(tids);
+	return d->transactions(tids, parent);
+}
+
+QList<Transaction*> Client::getTransactions()
+{
+    return getTransactions(this);
 }
 
 void Client::setHints(const QStringList& hints)
@@ -270,12 +279,12 @@ uint Client::versionMicro() const
 
 Transaction* Client::acceptEula(EulaInfo info)
 {
-	RUN_TRANSACTION(AcceptEula(info.id))
+	RUN_TRANSACTION(acceptEula(info))
 }
 
 Transaction* Client::downloadPackages(const QList<QSharedPointer<Package> >& packages)
 {
-	RUN_TRANSACTION(DownloadPackages(Util::packageListToPids(packages)))
+	RUN_TRANSACTION(downloadPackages(packages))
 }
 
 Transaction* Client::downloadPackages(QSharedPointer<Package> package)
@@ -285,7 +294,7 @@ Transaction* Client::downloadPackages(QSharedPointer<Package> package)
 
 Transaction* Client::getDepends(const QList<QSharedPointer<Package> >& packages, Enum::Filters filters, bool recursive)
 {
-	RUN_TRANSACTION(GetDepends(Util::filtersToString(filters), Util::packageListToPids(packages), recursive))
+	RUN_TRANSACTION(getDepends(packages, filters, recursive))
 }
 
 Transaction* Client::getDepends(QSharedPointer<Package> package, Enum::Filters filters, bool recursive)
@@ -293,21 +302,9 @@ Transaction* Client::getDepends(QSharedPointer<Package> package, Enum::Filters f
 	return getDepends(QList<QSharedPointer<Package> >() << package, filters, recursive);
 }
 
-Transaction* Client::getDetails(const QList<QSharedPointer<Package> >& packages)
+Transaction* Client::getDetails(const QList<QSharedPointer<Package> > &packages)
 {
-	Q_D(Client);
-	CREATE_NEW_TRANSACTION
-
-	foreach(QSharedPointer<Package> p, packages) {
-		t->d_ptr->packageMap.insert(p->id(), p);
-	}
-
-	QDBusPendingReply<> r = t->d_ptr->p->GetDetails(Util::packageListToPids(packages));
-	r.waitForFinished ();
-
-	CHECK_TRANSACTION
-
-	return t;
+    RUN_TRANSACTION(getDetails(packages))
 }
 
 Transaction* Client::getDetails(QSharedPointer<Package> package)
@@ -317,7 +314,7 @@ Transaction* Client::getDetails(QSharedPointer<Package> package)
 
 Transaction* Client::getFiles(const QList<QSharedPointer<Package> >& packages)
 {
-	RUN_TRANSACTION(GetFiles(Util::packageListToPids(packages)))
+	RUN_TRANSACTION(getFiles(packages))
 }
 
 Transaction* Client::getFiles(QSharedPointer<Package> package)
@@ -327,22 +324,22 @@ Transaction* Client::getFiles(QSharedPointer<Package> package)
 
 Transaction* Client::getOldTransactions(uint number)
 {
-	RUN_TRANSACTION(GetOldTransactions(number))
+	RUN_TRANSACTION(getOldTransactions(number))
 }
 
 Transaction* Client::getPackages(Enum::Filters filters)
 {
-	RUN_TRANSACTION(GetPackages(Util::filtersToString(filters)))
+	RUN_TRANSACTION(getPackages(filters))
 }
 
 Transaction* Client::getRepoList(Enum::Filters filters)
 {
-	RUN_TRANSACTION(GetRepoList(Util::filtersToString(filters)))
+	RUN_TRANSACTION(getRepoList(filters))
 }
 
 Transaction* Client::getRequires(const QList<QSharedPointer<Package> >& packages, Enum::Filters filters, bool recursive)
 {
-	RUN_TRANSACTION(GetRequires(Util::filtersToString(filters), Util::packageListToPids(packages), recursive))
+	RUN_TRANSACTION(getRequires(packages, filters, recursive))
 }
 
 Transaction* Client::getRequires(QSharedPointer<Package> package, Enum::Filters filters, bool recursive)
@@ -352,7 +349,7 @@ Transaction* Client::getRequires(QSharedPointer<Package> package, Enum::Filters
 
 Transaction* Client::getUpdateDetail(const QList<QSharedPointer<Package> >& packages)
 {
-	RUN_TRANSACTION(GetUpdateDetail(Util::packageListToPids(packages)))
+	RUN_TRANSACTION(getUpdateDetail(packages))
 }
 
 Transaction* Client::getUpdateDetail(QSharedPointer<Package> package)
@@ -362,17 +359,17 @@ Transaction* Client::getUpdateDetail(QSharedPointer<Package> package)
 
 Transaction* Client::getUpdates(Enum::Filters filters)
 {
-	RUN_TRANSACTION(GetUpdates(Util::filtersToString(filters)))
+	RUN_TRANSACTION(getUpdates(filters))
 }
 
 Transaction* Client::getDistroUpgrades()
 {
-	RUN_TRANSACTION(GetDistroUpgrades())
+	RUN_TRANSACTION(getDistroUpgrades())
 }
 
 Transaction* Client::installFiles(const QStringList& files, bool only_trusted)
 {
-	RUN_TRANSACTION(InstallFiles(only_trusted, files))
+	RUN_TRANSACTION(installFiles(files, only_trusted))
 }
 
 Transaction* Client::installFiles(const QString& file, bool only_trusted)
@@ -382,7 +379,7 @@ Transaction* Client::installFiles(const QString& file, bool only_trusted)
 
 Transaction* Client::installPackages(bool only_trusted, const QList<QSharedPointer<Package> >& packages)
 {
-	RUN_TRANSACTION(InstallPackages(only_trusted, Util::packageListToPids(packages)))
+	RUN_TRANSACTION(installPackages(only_trusted, packages))
 }
 
 Transaction* Client::installPackages(bool only_trusted, QSharedPointer<Package> p)
@@ -392,17 +389,17 @@ Transaction* Client::installPackages(bool only_trusted, QSharedPointer<Package>
 
 Transaction* Client::installSignature(Enum::SigType type, const QString& key_id, QSharedPointer<Package> p)
 {
-	RUN_TRANSACTION(InstallSignature(Util::enumToString<Enum>(type, "SigType", "Signature"), key_id, p->id()))
+	RUN_TRANSACTION(installSignature(type, key_id, p))
 }
 
 Transaction* Client::refreshCache(bool force)
 {
-	RUN_TRANSACTION(RefreshCache(force))
+	RUN_TRANSACTION(refreshCache(force))
 }
 
 Transaction* Client::removePackages(const QList<QSharedPointer<Package> >& packages, bool allow_deps, bool autoremove)
 {
-	RUN_TRANSACTION(RemovePackages(Util::packageListToPids(packages), allow_deps, autoremove))
+	RUN_TRANSACTION(removePackages(packages, allow_deps, autoremove))
 }
 
 Transaction* Client::removePackages(QSharedPointer<Package> p, bool allow_deps, bool autoremove)
@@ -412,17 +409,17 @@ Transaction* Client::removePackages(QSharedPointer<Package> p, bool allow_deps,
 
 Transaction* Client::repoEnable(const QString& repo_id, bool enable)
 {
-	RUN_TRANSACTION(RepoEnable(repo_id, enable))
+	RUN_TRANSACTION(repoEnable(repo_id, enable))
 }
 
-Transaction* Client::repoSetData(const QString& repo_id, const QString& parameter, const QString& value)
+Transaction* Client::repoSetData(const QString& repo_id, const QString &parameter, const QString& value)
 {
-	RUN_TRANSACTION(RepoSetData(repo_id, parameter, value))
+	RUN_TRANSACTION(repoSetData(repo_id, parameter, value))
 }
 
 Transaction* Client::resolve(const QStringList& packageNames, Enum::Filters filters)
 {
-	RUN_TRANSACTION(Resolve(Util::filtersToString(filters), packageNames))
+	RUN_TRANSACTION(resolve(packageNames, filters))
 }
 
 Transaction* Client::resolve(const QString& packageName, Enum::Filters filters)
@@ -432,12 +429,13 @@ Transaction* Client::resolve(const QString& packageName, Enum::Filters filters)
 
 Transaction* Client::rollback(Transaction* oldtrans)
 {
-	RUN_TRANSACTION(Rollback(oldtrans->tid()))
+    qWarning("NOT IMPLEMENTED");
+    return 0;
 }
 
 Transaction* Client::searchFiles(const QStringList& search, Enum::Filters filters)
 {
-	RUN_TRANSACTION(SearchFiles(Util::filtersToString(filters), search))
+	RUN_TRANSACTION(searchFiles(search, filters))
 }
 
 Transaction* Client::searchFiles(const QString& search, Enum::Filters filters)
@@ -447,7 +445,7 @@ Transaction* Client::searchFiles(const QString& search, Enum::Filters filters)
 
 Transaction* Client::searchDetails(const QStringList& search, Enum::Filters filters)
 {
-	RUN_TRANSACTION(SearchDetails(Util::filtersToString(filters), search))
+	RUN_TRANSACTION(searchDetails(search, filters))
 }
 
 Transaction* Client::searchDetails(const QString& search, Enum::Filters filters)
@@ -457,12 +455,7 @@ Transaction* Client::searchDetails(const QString& search, Enum::Filters filters)
 
 Transaction* Client::searchGroups(Enum::Groups groups, Enum::Filters filters)
 {
-	QStringList groupsSL;
-	foreach (const Enum::Group group, groups) {
-		groupsSL << Util::enumToString<Enum>(group, "Group", "Group");
-	}
-
-	RUN_TRANSACTION(SearchGroups(Util::filtersToString(filters), groupsSL))
+	RUN_TRANSACTION(searchGroups(groups, filters))
 }
 
 Transaction* Client::searchGroups(Enum::Group group, Enum::Filters filters)
@@ -472,7 +465,7 @@ Transaction* Client::searchGroups(Enum::Group group, Enum::Filters filters)
 
 Transaction* Client::searchNames(const QStringList& search, Enum::Filters filters)
 {
-	RUN_TRANSACTION(SearchNames(Util::filtersToString(filters), search))
+	RUN_TRANSACTION(searchNames(search, filters))
 }
 
 Transaction* Client::searchNames(const QString& search, Enum::Filters filters)
@@ -504,7 +497,7 @@ QSharedPointer<Package> Client::searchFromDesktopFile(const QString& path)
 
 Transaction* Client::simulateInstallFiles(const QStringList& files)
 {
-	RUN_TRANSACTION(SimulateInstallFiles(files))
+	RUN_TRANSACTION(simulateInstallFiles(files))
 }
 
 Transaction* Client::simulateInstallFiles(const QString& file)
@@ -514,7 +507,7 @@ Transaction* Client::simulateInstallFiles(const QString& file)
 
 Transaction* Client::simulateInstallPackages(const QList<QSharedPointer<Package> >& packages)
 {
-	RUN_TRANSACTION(SimulateInstallPackages(Util::packageListToPids(packages)))
+	RUN_TRANSACTION(simulateInstallPackages(packages))
 }
 
 Transaction* Client::simulateInstallPackages(QSharedPointer<Package> package)
@@ -524,7 +517,7 @@ Transaction* Client::simulateInstallPackages(QSharedPointer<Package> package)
 
 Transaction* Client::simulateRemovePackages(const QList<QSharedPointer<Package> >& packages, bool autoremove)
 {
-	RUN_TRANSACTION(SimulateRemovePackages(Util::packageListToPids(packages), autoremove))
+	RUN_TRANSACTION(simulateRemovePackages(packages, autoremove))
 }
 
 Transaction* Client::simulateRemovePackages(QSharedPointer<Package> package, bool autoremove)
@@ -534,7 +527,7 @@ Transaction* Client::simulateRemovePackages(QSharedPointer<Package> package, boo
 
 Transaction* Client::simulateUpdatePackages(const QList<QSharedPointer<Package> >& packages)
 {
-	RUN_TRANSACTION(SimulateUpdatePackages(Util::packageListToPids(packages)))
+	RUN_TRANSACTION(simulateUpdatePackages(packages))
 }
 
 Transaction* Client::simulateUpdatePackages(QSharedPointer<Package> package)
@@ -544,7 +537,7 @@ Transaction* Client::simulateUpdatePackages(QSharedPointer<Package> package)
 
 Transaction* Client::updatePackages(bool only_trusted, const QList<QSharedPointer<Package> >& packages)
 {
-	RUN_TRANSACTION(UpdatePackages(only_trusted, Util::packageListToPids(packages)))
+	RUN_TRANSACTION(updatePackages(only_trusted, packages))
 }
 
 Transaction* Client::updatePackages(bool only_trusted, QSharedPointer<Package> package)
@@ -554,12 +547,12 @@ Transaction* Client::updatePackages(bool only_trusted, QSharedPointer<Package> p
 
 Transaction* Client::updateSystem(bool only_trusted)
 {
-	RUN_TRANSACTION(UpdateSystem(only_trusted))
+	RUN_TRANSACTION(updateSystem(only_trusted))
 }
 
 Transaction* Client::whatProvides(Enum::Provides type, const QStringList& search, Enum::Filters filters)
 {
-	RUN_TRANSACTION(WhatProvides(Util::filtersToString(filters), Util::enumToString<Enum>(type, "Provides", "Provides"), search))
+	RUN_TRANSACTION(whatProvides(type, search, filters))
 }
 
 Transaction* Client::whatProvides(Enum::Provides type, const QString& search, Enum::Filters filters)
@@ -574,15 +567,10 @@ void Client::setLastError (DaemonError e)
 	emit error (e);
 }
 
-void Client::setTransactionError (Transaction* t, DaemonError e)
-{
-	t->d_ptr->error = e;
-}
-
 void Client::destroyTransaction(const QString &tid)
 {
 	Q_D(Client);
-	d->removeTransactionFromPool(tid);
+	d->destroyTransaction(tid);
 }
 
 #include "client.moc"
diff --git a/lib/packagekit-qt/src/client.h b/lib/packagekit-qt/src/client.h
index 64d6a7a..a05adeb 100644
--- a/lib/packagekit-qt/src/client.h
+++ b/lib/packagekit-qt/src/client.h
@@ -133,8 +133,24 @@ public:
 	 */
 	uint getTimeSinceAction(Enum::Role action) const;
 
+    /**
+     * Returns the list of current transactions
+     */
+    QStringList getTransactions() const;
+
+    /**
+     * Convenience function
+     * Returns the list of current transactions
+     * You must delete these yourself or pass a
+     * \p parent for these comming transactions
+     */
+    QList<Transaction*> getTransactions(QObject *parent = 0);
+
 	/**
+     * DEPRECATED
 	 * Returns the list of current transactions
+     * You must delete these yourself or pass a
+     * \p parent for these comming transactions
 	 */
 	QList<Transaction*> getTransactions();
 
@@ -579,6 +595,17 @@ Q_SIGNALS:
 	void updatesChanged();
 
 protected:
+    /**
+     * \brief creates a new transaction path
+     * This function register a new DBus path on PackageKit
+     * allowing a \c Transaction object to be created,
+     * unless you want to know the transaction id
+     * before creating the \c Transaction this function
+     * is not useful since passing a NULL string (QString())
+     * when contructing the \c Transaction object will
+     * automatically create this path.
+     */
+    QString getTid() const;
 	ClientPrivate * const d_ptr;
 
 private:
@@ -586,10 +613,9 @@ private:
 	Client(QObject* parent = 0);
 	static Client* m_instance;
 	friend class TransactionPrivate;
+    friend class Transaction;
 
-
-	void setLastError (DaemonError e);
-	void setTransactionError (Transaction* t, DaemonError e);
+	void setLastError(DaemonError e);
 
 	void destroyTransaction(const QString &tid);
 };
diff --git a/lib/packagekit-qt/src/clientprivate.cpp b/lib/packagekit-qt/src/clientprivate.cpp
index 179f5c8..dbb6035 100644
--- a/lib/packagekit-qt/src/clientprivate.cpp
+++ b/lib/packagekit-qt/src/clientprivate.cpp
@@ -19,14 +19,15 @@
  */
 
 #include "clientprivate.h"
-#include "daemonproxy.h"
 #include "transaction.h"
 #include "transactionprivate.h"
 #include "common.h"
 
 using namespace PackageKit;
 
-ClientPrivate::ClientPrivate(Client* parent) : QObject(parent), c(parent)
+ClientPrivate::ClientPrivate(Client* parent)
+ : QObject(parent),
+   c(parent)
 {
 }
 
@@ -34,24 +35,7 @@ ClientPrivate::~ClientPrivate()
 {
 }
 
-Transaction* ClientPrivate::createNewTransaction()
-{
-	Transaction* t = new Transaction(daemon->GetTid(), c);
-	if (t->tid().isEmpty()) {
-		qDebug() << "empty tid, the daemon is probably not here anymore";
-		return t;
-	}
-
-	if(!hints.isEmpty())
-		t->setHints(hints);
-
-// 	qDebug() << "creating a transaction : " << t->tid();
-	runningTransactions.insert(t->tid(), t);
-
-	return t;
-}
-
-QList<Transaction*> ClientPrivate::transactions(const QStringList& tids)
+QList<Transaction*> ClientPrivate::transactions(const QStringList& tids, QObject *parent)
 {
 // 	qDebug() << "entering transactionListChanged";
 	QList<Transaction*> trans;
@@ -61,7 +45,7 @@ QList<Transaction*> ClientPrivate::transactions(const QStringList& tids)
 			trans.append(runningTransactions.value(tid));
 		} else {
 //			qDebug() << "external transaction : " << tid;
-			Transaction* t = new Transaction(tid, c);
+			Transaction* t = new Transaction(tid, parent);
 			trans.append(t);
 			runningTransactions.insert(tid, t);
 		}
@@ -71,31 +55,38 @@ QList<Transaction*> ClientPrivate::transactions(const QStringList& tids)
 
 void ClientPrivate::transactionListChanged(const QStringList& tids)
 {
-	c->transactionListChanged(transactions(tids));
+	c->transactionListChanged(transactions(tids, Client::instance()));
 }
 
 void ClientPrivate::serviceOwnerChanged (const QString& name, const QString& oldOnwer, const QString& newOwner)
 {
-	if (name != PK_NAME)
-		return;
-	if (!newOwner.isEmpty ())
-		return;
-	
-	error = Client::ErrorDaemonUnreachable;
-	c->error(error);
+    if (name != PK_NAME){
+        return;
+    }
 
-	foreach(Transaction *t, runningTransactions) {
-		t->finished (Enum::ExitFailed, 0);
-		t->d_ptr->destroy ();
-	}
+    // next time a transaction need to be created
+    // we start the Daemon, we have to find a way
+    // to avoid DBus error that sericeHasNoOwner
+    startDaemon = newOwner.isEmpty();
+
+    if (!newOwner.isEmpty()){
+        return;
+    }
+
+    error = Client::ErrorDaemonUnreachable;
+    c->error(error);
+
+    foreach (Transaction *t, runningTransactions) {
+        t->finished (Enum::ExitFailed, 0);
+        t->d_ptr->destroy ();
+    }
 }
 
-void ClientPrivate::removeTransactionFromPool(const QString &tid)
+void ClientPrivate::destroyTransaction(const QString &tid)
 {
 // 	qDebug() << "removing transaction from pool: " << tid;
-
-	runningTransactions[tid]->deleteLater();
-	runningTransactions.remove(tid);
+    runningTransactions[tid]->deleteLater();
+    runningTransactions.remove(tid);
 }
 
 #include "clientprivate.moc"
diff --git a/lib/packagekit-qt/src/clientprivate.h b/lib/packagekit-qt/src/clientprivate.h
index 50bfc83..f71b9e9 100644
--- a/lib/packagekit-qt/src/clientprivate.h
+++ b/lib/packagekit-qt/src/clientprivate.h
@@ -39,33 +39,21 @@ public:
 
 	::DaemonProxy* daemon;
 	Client* c;
-
 	QStringList hints;
-
 	QHash<QString, Transaction*> runningTransactions;
-
-	// Get a tid, creates a new transaction and sets it up (ie call SetHints)
-	Transaction* createNewTransaction();
-
 	Client::DaemonError error;
 
-	QSharedPointer<Package> packageFromCache(const QString& pid);
-	void removeTransactionFromPool(const QString &tid);
+    QList<Transaction*> transactions(const QStringList& tids, QObject *parent);
+	void destroyTransaction(const QString &tid);
 
 public Q_SLOTS:
-	// org.freedesktop.PackageKit
 	void transactionListChanged(const QStringList& tids);
-	QList<Transaction*> transactions(const QStringList& tids);
-	// restartScheduled
-	// repoListChanged
-	// updatesChanged
 	void serviceOwnerChanged(const QString&, const QString&, const QString&);
 
 private:
-	friend class Client;
-	ClientPrivate(Client* parent);
-
-	QHash<QString, QSharedPointer<Package> > retrievedPackages;
+    friend class Client;
+    bool startDaemon;
+    ClientPrivate(Client* parent);
 };
 
 } // End namespace PackageKit
diff --git a/lib/packagekit-qt/src/common.h b/lib/packagekit-qt/src/common.h
index af32bbf..eb5e57b 100644
--- a/lib/packagekit-qt/src/common.h
+++ b/lib/packagekit-qt/src/common.h
@@ -18,6 +18,7 @@
  * Boston, MA 02110-1301, USA.
  */
 
+#define PK_TRANSACTION_INTERFACE "org.freedesktop.PackageKit.Transaction"
 #define PK_NAME					"org.freedesktop.PackageKit"
 #define PK_PATH					"/org/freedesktop/PackageKit"
 
diff --git a/lib/packagekit-qt/src/package.cpp b/lib/packagekit-qt/src/package.cpp
index bd5a110..b256139 100644
--- a/lib/packagekit-qt/src/package.cpp
+++ b/lib/packagekit-qt/src/package.cpp
@@ -105,7 +105,7 @@ public:
 	QString iconPath;
 };
 
-Package::Package(const QString& packageId, const QString& info, const QString& summary)
+Package::Package(const QString& packageId, Enum::Info info, const QString& summary)
     : d(new Private)
 {
 	d->id = packageId;
@@ -119,7 +119,7 @@ Package::Package(const QString& packageId, const QString& info, const QString& s
 		d->data = tokens.at(3);
 	}
 
-	d->info = (Enum::Info)Util::enumFromString<Enum>(info, "Info", "Info");
+	d->info = info;
 	d->summary = summary;
 	d->details = NULL;
 	d->iconPath = QString ();
diff --git a/lib/packagekit-qt/src/package.h b/lib/packagekit-qt/src/package.h
index 2c5bf6f..6528cc9 100644
--- a/lib/packagekit-qt/src/package.h
+++ b/lib/packagekit-qt/src/package.h
@@ -22,11 +22,11 @@
 #define PACKAGE_H
 
 #include <QtCore>
-#include "client.h"
 #include "enum.h"
 
 namespace PackageKit {
 
+class Client;
 /**
  * \class Package package.h Package
  * \author Adrien Bustany <madcat at mymadcat.com>
@@ -40,6 +40,7 @@ namespace PackageKit {
 class Package
 {
 public:
+    Package(const QString& packageId, Enum::Info info = Enum::UnknownInfo, const QString& summary = QString());
 	/**
 	 * Destructor
 	 */
@@ -162,11 +163,7 @@ public:
 	bool operator==(const Package *package) const;
 
 private:
-	friend class Transaction;
 	friend class TransactionPrivate;
-	friend class Details;
-	friend class Client;
-	Package(const QString& packageId, const QString& info = QString(), const QString& summary = QString());
 	void setDetails(Details* det);
 	void setInfoSummary(const QString& info, const QString& summary);
 	class Private;
diff --git a/lib/packagekit-qt/src/transaction.cpp b/lib/packagekit-qt/src/transaction.cpp
index f17b389..3868c2c 100644
--- a/lib/packagekit-qt/src/transaction.cpp
+++ b/lib/packagekit-qt/src/transaction.cpp
@@ -1,6 +1,7 @@
 /*
  * This file is part of the QPackageKit project
  * Copyright (C) 2008 Adrien Bustany <madcat at mymadcat.com>
+ * Copyright (C) 2010 Daniel Nicoletti <dantti85-pk at yahoo.com.br>
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Library General Public
@@ -19,62 +20,135 @@
  */
 
 #include "transaction.h"
-#include "common.h"
 #include "transactionprivate.h"
 #include "transactionproxy.h"
+
+#include "clientprivate.h"
+#include "common.h"
 #include "package.h"
 #include "util.h"
 
+#define CHECK_TRANSACTION                           \
+        if (r.isError()) {                          \
+            d->error = daemonErrorFromDBusReply(r); \
+        }                                           \
+
+#define RUN_TRANSACTION(blurb)                      \
+        Q_D(Transaction);                           \
+        QDBusPendingReply<> r = d->p->blurb;        \
+        r.waitForFinished();                        \
+        CHECK_TRANSACTION                           \
+
 using namespace PackageKit;
 
-Transaction::Transaction(const QString& tid, Client* parent)
-	: QObject(parent), d_ptr(new TransactionPrivate(this))
-{
-	Q_D(Transaction);
-	d->oldtrans = FALSE;
-	d->tid = tid;
-	d->client = parent;
-	d->p = new TransactionProxy(PK_NAME, tid, QDBusConnection::systemBus(), this);
-	if(!d->p->isValid())
-		qDebug("Error, cannot create transaction proxy");
-
-	d->error = Client::NoError;
-
-	connect(d->p, SIGNAL(Changed()), this, SIGNAL(changed()));
-	connect(d->p, SIGNAL(Category(const QString&, const QString&, const QString&, const QString&, const QString&)), this, SIGNAL(category(const QString&, const QString&, const QString&, const QString&, const QString&)));
-	connect(d->p, SIGNAL(Destroy()), d, SLOT(destroy()));
-	connect(d->p, SIGNAL(Details(const QString&, const QString&, const QString&, const QString&, const QString&, qulonglong)), d, SLOT(details(const QString&, const QString&, const QString&, const QString&, const QString&, qulonglong)));
-	connect(d->p, SIGNAL(DistroUpgrade(const QString&, const QString&, const QString&)), d, SLOT(distroUpgrade(const QString&, const QString&, const QString&)));
-	connect(d->p, SIGNAL(ErrorCode(const QString&, const QString&)), d, SLOT(errorCode(const QString&, const QString&)));
-	connect(d->p, SIGNAL(Files(const QString&, const QString&)), d, SLOT(files(const QString&, const QString&)));
-	connect(d->p, SIGNAL(Finished(const QString&, uint)), d, SLOT(finished(const QString&, uint)));
-	connect(d->p, SIGNAL(Message(const QString&, const QString&)), d, SLOT(message(const QString&, const QString&)));
-	connect(d->p, SIGNAL(Package(const QString&, const QString&, const QString&)), d, SLOT(package(const QString&, const QString&, const QString&)));
-	connect(d->p, SIGNAL(RepoDetail(const QString&, const QString&, bool)), this, SIGNAL(repoDetail(const QString&, const QString&, bool)));
-	connect(d->p, SIGNAL(RepoSignatureRequired(const QString&, const QString&, const QString&, const QString&, const QString&, const QString&, const QString&, const QString&)), d, SLOT(repoSignatureRequired(const QString&, const QString&, const QString&, const QString&, const QString&, const QString&, const QString&, const QString&)));
-	connect(d->p, SIGNAL(EulaRequired(const QString&, const QString&, const QString&, const QString&)), d, SLOT(eulaRequired(const QString&, const QString&, const QString&, const QString&)));
-	connect(d->p, SIGNAL(MediaChangeRequired(const QString&, const QString&, const QString&)), d, SLOT(mediaChangeRequired(const QString&, const QString&, const QString&)));
-	connect(d->p, SIGNAL(RequireRestart(const QString&, const QString&)), d, SLOT(requireRestart(const QString&, const QString&)));
-	connect(d->p, SIGNAL(Transaction(const QString&, const QString&, bool, const QString&, uint, const QString&, uint, const QString&)), d, SLOT(transaction(const QString&, const QString&, bool, const QString&, uint, const QString&, uint, const QString&)));
-	connect(d->p, SIGNAL(UpdateDetail(const QString&, const QString&, const QString&, const QString&, const QString&, const QString&, const QString&, const QString&, const QString&, const QString&, const QString&, const QString&)), d, SLOT(updateDetail(const QString&, const QString&, const QString&, const QString&, const QString&, const QString&, const QString&, const QString&, const QString&, const QString&, const QString&, const QString&)));
-
-}
-
-Transaction::Transaction(const QString& tid, const QString& timespec, bool succeeded, const QString& role, uint duration, const QString& data, uint uid, const QString& cmdline, Client* parent)
-	: QObject(parent), d_ptr(new TransactionPrivate(this))
-{
-	Q_D(Transaction);
-	d->oldtrans = TRUE;
-	d->tid = tid;
-	d->timespec = QDateTime::fromString(timespec, Qt::ISODate);
-	d->succeeded = succeeded;
-	d->role = (Enum::Role)Util::enumFromString<Enum>(role, "Role", "Role");
-	d->duration = duration;
-	d->data = data;
-	d->uid = uid;
-	d->cmdline = cmdline;
-	d->client = parent;
-	d->error = Client::NoError;
+template<class T> Client::DaemonError daemonErrorFromDBusReply(QDBusPendingReply<T> e) {
+    return Util::errorFromString(e.error().name());
+}
+
+Transaction::Transaction(const QString &tid, QObject *parent)
+ : QObject(parent),
+   d_ptr(new TransactionPrivate(this))
+{
+    Q_D(Transaction);
+
+    d->tid = tid;
+    d->oldtrans = FALSE;
+    d->p = 0;
+
+    // If the user used a null tid
+    // he want us to get it
+    if (tid.isNull()) {
+        d->tid = Client::instance()->getTid();
+    }
+
+    int retry = 0;
+    do {
+        delete d->p;
+        d->p = new TransactionProxy(PK_NAME, d->tid, QDBusConnection::systemBus(), this);
+        if (d->p->lastError().isValid()) {
+            qDebug() << "Error, cannot create transaction proxy";
+            qDebug() << d->p->lastError();
+            QDBusMessage message;
+            message = QDBusMessage::createMethodCall("org.freedesktop.DBus",
+                                                     "/",
+                                                     "org.freedesktop.DBus",
+                                                     QLatin1String("StartServiceByName"));
+            message << qVariantFromValue(QString("org.freedesktop.PackageKit"));
+            message << qVariantFromValue((uint) 0);
+            QDBusConnection::sessionBus().call(message, QDBus::BlockWithGui);
+            retry++;
+        } else {
+            retry = 0;
+        }
+    } while (retry == 1);
+
+    if (d->tid.isEmpty()) {
+        d->error = Client::ErrorDaemonUnreachable;
+    } else {
+        d->error = Client::NoError;
+        Client::instance()->d_ptr->runningTransactions.insert(d->tid, this);
+    }
+
+    connect(d->p, SIGNAL(Changed()),
+            this, SIGNAL(changed()));
+    connect(d->p, SIGNAL(Category(const QString&, const QString&, const QString&, const QString&, const QString&)),
+            this, SIGNAL(category(const QString&, const QString&, const QString&, const QString&, const QString&)));
+    connect(d->p, SIGNAL(Destroy()),
+            d, SLOT(destroy()));
+    connect(d->p, SIGNAL(Details(const QString&, const QString&, const QString&, const QString&, const QString&, qulonglong)),
+            d, SLOT(details(const QString&, const QString&, const QString&, const QString&, const QString&, qulonglong)));
+    connect(d->p, SIGNAL(DistroUpgrade(const QString&, const QString&, const QString&)),
+            d, SLOT(distroUpgrade(const QString&, const QString&, const QString&)));
+    connect(d->p, SIGNAL(ErrorCode(const QString&, const QString&)),
+            d, SLOT(errorCode(const QString&, const QString&)));
+    connect(d->p, SIGNAL(Files(const QString&, const QString&)),
+            d, SLOT(files(const QString&, const QString&)));
+    connect(d->p, SIGNAL(Finished(const QString&, uint)),
+            d, SLOT(finished(const QString&, uint)));
+    connect(d->p, SIGNAL(Message(const QString&, const QString&)),
+            d, SLOT(message(const QString&, const QString&)));
+    connect(d->p, SIGNAL(Package(const QString&, const QString&, const QString&)),
+            d, SLOT(package(const QString&, const QString&, const QString&)));
+    connect(d->p, SIGNAL(RepoDetail(const QString&, const QString&, bool)),
+            this, SIGNAL(repoDetail(const QString&, const QString&, bool)));
+    connect(d->p, SIGNAL(RepoSignatureRequired(const QString&, const QString&, const QString&, const QString&, const QString&, const QString&, const QString&, const QString&)),
+            d, SLOT(repoSignatureRequired(const QString&, const QString&, const QString&, const QString&, const QString&, const QString&, const QString&, const QString&)));
+    connect(d->p, SIGNAL(EulaRequired(const QString&, const QString&, const QString&, const QString&)),
+            d, SLOT(eulaRequired(const QString&, const QString&, const QString&, const QString&)));
+    connect(d->p, SIGNAL(MediaChangeRequired(const QString&, const QString&, const QString&)), d, SLOT(mediaChangeRequired(const QString&, const QString&, const QString&)));
+    connect(d->p, SIGNAL(RequireRestart(const QString&, const QString&)),
+            d, SLOT(requireRestart(const QString&, const QString&)));
+    connect(d->p, SIGNAL(Transaction(const QString&, const QString&, bool, const QString&, uint, const QString&, uint, const QString&)),
+            d, SLOT(transaction(const QString&, const QString&, bool, const QString&, uint, const QString&, uint, const QString&)));
+    connect(d->p, SIGNAL(UpdateDetail(const QString&, const QString&, const QString&, const QString&, const QString&, const QString&, const QString&, const QString&, const QString&, const QString&, const QString&, const QString&)),
+            d, SLOT(updateDetail(const QString&, const QString&, const QString&, const QString&, const QString&, const QString&, const QString&, const QString&, const QString&, const QString&, const QString&, const QString&)));
+
+}
+
+Transaction::Transaction(const QString &tid,
+                         const QString &timespec,
+                         bool succeeded,
+                         const QString &role,
+                         uint duration,
+                         const QString &data,
+                         uint uid,
+                         const QString &cmdline,
+                         QObject *parent)
+ : QObject(parent),
+   d_ptr(new TransactionPrivate(this))
+{
+    Q_D(Transaction);
+    d->oldtrans = TRUE;
+    d->tid = tid;
+    d->timespec = QDateTime::fromString(timespec, Qt::ISODate);
+    d->succeeded = succeeded;
+    d->role = (Enum::Role)Util::enumFromString<Enum>(role, "Role", "Role");
+    d->duration = duration;
+    d->data = data;
+    d->uid = uid;
+    d->cmdline = cmdline;
+    d->error = Client::NoError;
+    d->destroyed = true;
 }
 
 Transaction::~Transaction()
@@ -84,136 +158,441 @@ Transaction::~Transaction()
 
 QString Transaction::tid() const
 {
-	Q_D(const Transaction);
-	return d->tid;
+    Q_D(const Transaction);
+    return d->tid;
 }
 
 Client::DaemonError Transaction::error () const
 {
-	Q_D(const Transaction);
-	return d->error;
+    Q_D(const Transaction);
+    return d->error;
 }
 
 bool Transaction::allowCancel() const
 {
-	Q_D(const Transaction);
-	return d->p->allowCancel ();
+    Q_D(const Transaction);
+    if (d->destroyed) {
+        return false;
+    }
+    return d->p->allowCancel ();
 }
 
 bool Transaction::callerActive() const
 {
-	Q_D(const Transaction);
-	return d->p->callerActive ();
+    Q_D(const Transaction);
+    if (d->destroyed) {
+        return false;
+    }
+    return d->p->callerActive ();
 }
 
 void Transaction::cancel()
 {
-	Q_D(Transaction);
-	QDBusReply<void> r = d->p->Cancel ();
-	if (!r.isValid ()) {
-		d->error = Util::errorFromString (r.error ().message ());
-	}
+    Q_D(Transaction);
+    if (d->destroyed) {
+        return;
+    }
+    QDBusReply<void> r = d->p->Cancel ();
+    if (!r.isValid ()) {
+        d->error = Util::errorFromString (r.error ().message ());
+    }
 }
 
 QSharedPointer<Package> Transaction::lastPackage() const
 {
-	Q_D(const Transaction);
-	return QSharedPointer<Package> (new Package(d->p->lastPackage ()));
+    Q_D(const Transaction);
+    if (d->destroyed) {
+        return QSharedPointer<Package>();
+    }
+    return QSharedPointer<Package> (new Package(d->p->lastPackage ()));
 }
 
 uint Transaction::percentage() const
 {
-	Q_D(const Transaction);
-	return d->p->percentage ();
+    Q_D(const Transaction);
+    if (d->destroyed) {
+        return 0;
+    }
+    return d->p->percentage ();
 }
 
 uint Transaction::subpercentage() const
 {
-	Q_D(const Transaction);
-	return d->p->subpercentage ();
+    Q_D(const Transaction);
+    if (d->destroyed) {
+        return 0;
+    }
+    return d->p->subpercentage ();
 }
 
 uint Transaction::elapsedTime() const
 {
-	Q_D(const Transaction);
-	return d->p->elapsedTime ();
+    Q_D(const Transaction);
+    if (d->destroyed) {
+        return 0;
+    }
+    return d->p->elapsedTime ();
 }
 
 uint Transaction::remainingTime() const
 {
-	Q_D(const Transaction);
-	return d->p->remainingTime ();
+    Q_D(const Transaction);
+    if (d->destroyed) {
+        return 0;
+    }
+    return d->p->remainingTime ();
 }
 
 uint Transaction::speed() const
 {
-	Q_D(const Transaction);
-	return d->p->speed ();
+    Q_D(const Transaction);
+    if (d->destroyed) {
+        return 0;
+    }
+    return d->p->speed ();
 }
 
 Enum::Role Transaction::role() const
 {
-	Q_D(const Transaction);
-	if(d->oldtrans)
-		return d->role;
+    Q_D(const Transaction);
+    if(d->oldtrans)
+        return d->role;
 
-	return (Enum::Role) Util::enumFromString<Enum>(d->p->role (), "Role", "Role");
+    if (d->destroyed) {
+        return Enum::UnknownRole;
+    }
+    return (Enum::Role) Util::enumFromString<Enum>(d->p->role (), "Role", "Role");
 }
 
-void Transaction::setHints(const QStringList& hints)
+void Transaction::setHints(const QStringList &hints)
 {
-	Q_D(Transaction);
-	d->p->SetHints(hints);
+    Q_D(Transaction);
+    if (!d->destroyed) {
+        d->p->SetHints(hints);
+    }
 }
 
-void Transaction::setHints(const QString& hints)
+void Transaction::setHints(const QString &hints)
 {
-	setHints(QStringList() << hints);
+    setHints(QStringList() << hints);
 }
 
 Enum::Status Transaction::status() const
 {
-	Q_D(const Transaction);
-	return (Enum::Status) Util::enumFromString<Enum>(d->p->status (), "Status", "Status");
+    Q_D(const Transaction);
+    if (d->destroyed) {
+        return Enum::UnknownStatus;
+    }
+    return (Enum::Status) Util::enumFromString<Enum>(d->p->status (), "Status", "Status");
 }
 
 QDateTime Transaction::timespec() const
 {
-	Q_D(const Transaction);
-	return d->timespec;
+    Q_D(const Transaction);
+    return d->timespec;
 }
 
 bool Transaction::succeeded() const
 {
-	Q_D(const Transaction);
-	return d->succeeded;
+    Q_D(const Transaction);
+    return d->succeeded;
 }
 
 uint Transaction::duration() const
 {
-	Q_D(const Transaction);
-	return d->duration;
+    Q_D(const Transaction);
+    return d->duration;
 }
 
 QString Transaction::data() const
 {
-	Q_D(const Transaction);
-	return d->data;
+    Q_D(const Transaction);
+    return d->data;
 }
 
 uint Transaction::uid() const
 {
-	Q_D(const Transaction);
-	if(d->p) {
-		return d->p->uid();
-	}
-	return d->uid;
+    Q_D(const Transaction);
+    if(d->destroyed) {
+        return d->uid;
+    }
+    return d->p->uid();
 }
 
 QString Transaction::cmdline() const
 {
-	Q_D(const Transaction);
-	return d->cmdline;
+    Q_D(const Transaction);
+    return d->cmdline;
+}
+
+////// Transaction functions
+
+void Transaction::acceptEula(const Client::EulaInfo &info)
+{
+    RUN_TRANSACTION(AcceptEula(info.id))
+}
+
+void Transaction::downloadPackages(const QList<QSharedPointer<Package> > &packages)
+{
+    RUN_TRANSACTION(DownloadPackages(Util::packageListToPids(packages)))
+}
+
+void Transaction::downloadPackages(const QSharedPointer<Package> &package)
+{
+    downloadPackages(QList<QSharedPointer<Package> >() << package);
+}
+
+void Transaction::getDepends(const QList<QSharedPointer<Package> > &packages, Enum::Filters filters, bool recursive)
+{
+    RUN_TRANSACTION(GetDepends(Util::filtersToString(filters), Util::packageListToPids(packages), recursive))
+}
+
+void Transaction::getDepends(const QSharedPointer<Package> &package, Enum::Filters filters, bool recursive)
+{
+    getDepends(QList<QSharedPointer<Package> >() << package, filters, recursive);
+}
+
+void Transaction::getDetails(const QList<QSharedPointer<Package> > &packages)
+{
+    Q_D(Transaction);
+    foreach (const QSharedPointer<Package> &package, packages) {
+        d->packageMap.insert(package->id(), package);
+    }
+
+    QDBusPendingReply<> r = d->p->GetDetails(Util::packageListToPids(packages));
+    r.waitForFinished ();
+
+    CHECK_TRANSACTION
+}
+
+void Transaction::getDetails(const QSharedPointer<Package> &package)
+{
+    getDetails(QList<QSharedPointer<Package> >() << package);
+}
+
+void Transaction::getFiles(const QList<QSharedPointer<Package> > &packages)
+{
+    RUN_TRANSACTION(GetFiles(Util::packageListToPids(packages)))
+}
+
+void Transaction::getFiles(const QSharedPointer<Package> &package)
+{
+    getFiles(QList<QSharedPointer<Package> >() << package);
+}
+
+void Transaction::getOldTransactions(uint number)
+{
+    RUN_TRANSACTION(GetOldTransactions(number))
+}
+
+void Transaction::getPackages(Enum::Filters filters)
+{
+    RUN_TRANSACTION(GetPackages(Util::filtersToString(filters)))
+}
+
+void Transaction::getRepoList(Enum::Filters filters)
+{
+    RUN_TRANSACTION(GetRepoList(Util::filtersToString(filters)))
+}
+
+void Transaction::getRequires(const QList<QSharedPointer<Package> > &packages, Enum::Filters filters, bool recursive)
+{
+    RUN_TRANSACTION(GetRequires(Util::filtersToString(filters), Util::packageListToPids(packages), recursive))
+}
+
+void Transaction::getRequires(const QSharedPointer<Package> &package, Enum::Filters filters, bool recursive)
+{
+    getRequires(QList<QSharedPointer<Package> >() << package, filters, recursive);
+}
+
+void Transaction::getUpdateDetail(const QList<QSharedPointer<Package> > &packages)
+{
+    RUN_TRANSACTION(GetUpdateDetail(Util::packageListToPids(packages)))
+}
+
+void Transaction::getUpdateDetail(const QSharedPointer<Package> &package)
+{
+    getUpdateDetail(QList<QSharedPointer<Package> >() << package);
+}
+
+void Transaction::getUpdates(Enum::Filters filters)
+{
+    RUN_TRANSACTION(GetUpdates(Util::filtersToString(filters)))
+}
+
+void Transaction::getDistroUpgrades()
+{
+    RUN_TRANSACTION(GetDistroUpgrades())
+}
+
+void Transaction::installFiles(const QStringList &files, bool only_trusted)
+{
+    RUN_TRANSACTION(InstallFiles(only_trusted, files))
+}
+
+void Transaction::installFiles(const QString &file, bool only_trusted)
+{
+    installFiles(QStringList() << file, only_trusted);
+}
+
+void Transaction::installPackages(bool only_trusted, const QList<QSharedPointer<Package> > &packages)
+{
+    RUN_TRANSACTION(InstallPackages(only_trusted, Util::packageListToPids(packages)))
+}
+
+void Transaction::installPackages(bool only_trusted, const QSharedPointer<Package> &package)
+{
+    installPackages(only_trusted, QList<QSharedPointer<Package> >() << package);
+}
+
+void Transaction::installSignature(Enum::SigType type, const QString &key_id, const QSharedPointer<Package> &package)
+{
+    RUN_TRANSACTION(InstallSignature(Util::enumToString<Enum>(type, "SigType", "Signature"), key_id, package->id()))
+}
+
+void Transaction::refreshCache(bool force)
+{
+    RUN_TRANSACTION(RefreshCache(force))
+}
+
+void Transaction::removePackages(const QList<QSharedPointer<Package> > &packages, bool allow_deps, bool autoremove)
+{
+    RUN_TRANSACTION(RemovePackages(Util::packageListToPids(packages), allow_deps, autoremove))
+}
+
+void Transaction::removePackages(const QSharedPointer<Package> &package, bool allow_deps, bool autoremove)
+{
+    removePackages(QList<QSharedPointer<Package> >() << package, allow_deps, autoremove);
+}
+
+void Transaction::repoEnable(const QString &repo_id, bool enable)
+{
+    RUN_TRANSACTION(RepoEnable(repo_id, enable))
+}
+
+void Transaction::repoSetData(const QString &repo_id, const QString &parameter, const QString &value)
+{
+    RUN_TRANSACTION(RepoSetData(repo_id, parameter, value))
+}
+
+void Transaction::resolve(const QStringList &packageNames, Enum::Filters filters)
+{
+    RUN_TRANSACTION(Resolve(Util::filtersToString(filters), packageNames))
+}
+
+void Transaction::resolve(const QString &packageName, Enum::Filters filters)
+{
+    resolve(QStringList() << packageName, filters);
+}
+
+void Transaction::searchFiles(const QStringList &search, Enum::Filters filters)
+{
+    RUN_TRANSACTION(SearchFiles(Util::filtersToString(filters), search))
+}
+
+void Transaction::searchFiles(const QString &search, Enum::Filters filters)
+{
+    searchFiles(QStringList() << search, filters);
+}
+
+void Transaction::searchDetails(const QStringList &search, Enum::Filters filters)
+{
+    RUN_TRANSACTION(SearchDetails(Util::filtersToString(filters), search))
+}
+
+void Transaction::searchDetails(const QString &search, Enum::Filters filters)
+{
+    searchDetails(QStringList() << search, filters);
+}
+
+void Transaction::searchGroups(Enum::Groups groups, Enum::Filters filters)
+{
+    QStringList groupsSL;
+    foreach (const Enum::Group group, groups) {
+        groupsSL << Util::enumToString<Enum>(group, "Group", "Group");
+    }
+
+    RUN_TRANSACTION(SearchGroups(Util::filtersToString(filters), groupsSL))
+}
+
+void Transaction::searchGroups(Enum::Group group, Enum::Filters filters)
+{
+    searchGroups(Enum::Groups() << group, filters);
+}
+
+void Transaction::searchNames(const QStringList &search, Enum::Filters filters)
+{
+    RUN_TRANSACTION(SearchNames(Util::filtersToString(filters), search))
+}
+
+void Transaction::searchNames(const QString &search, Enum::Filters filters)
+{
+    searchNames(QStringList() << search, filters);
+}
+
+void Transaction::simulateInstallFiles(const QStringList &files)
+{
+    RUN_TRANSACTION(SimulateInstallFiles(files))
+}
+
+void Transaction::simulateInstallFiles(const QString &file)
+{
+    simulateInstallFiles(QStringList() << file);
+}
+
+void Transaction::simulateInstallPackages(const QList<QSharedPointer<Package> > &packages)
+{
+    RUN_TRANSACTION(SimulateInstallPackages(Util::packageListToPids(packages)))
+}
+
+void Transaction::simulateInstallPackages(const QSharedPointer<Package> &package)
+{
+    simulateInstallPackages(QList<QSharedPointer<Package> >() << package);
+}
+
+void Transaction::simulateRemovePackages(const QList<QSharedPointer<Package> > &packages, bool autoremove)
+{
+    RUN_TRANSACTION(SimulateRemovePackages(Util::packageListToPids(packages), autoremove))
+}
+
+void Transaction::simulateRemovePackages(const QSharedPointer<Package> &package, bool autoremove)
+{
+    simulateRemovePackages(QList<QSharedPointer<Package> >() << package, autoremove);
+}
+
+void Transaction::simulateUpdatePackages(const QList<QSharedPointer<Package> > &packages)
+{
+    RUN_TRANSACTION(SimulateUpdatePackages(Util::packageListToPids(packages)))
+}
+
+void Transaction::simulateUpdatePackages(const QSharedPointer<Package> &package)
+{
+    simulateUpdatePackages(QList<QSharedPointer<Package> >() << package);
+}
+
+void Transaction::updatePackages(bool only_trusted, const QList<QSharedPointer<Package> > &packages)
+{
+    RUN_TRANSACTION(UpdatePackages(only_trusted, Util::packageListToPids(packages)))
+}
+
+void Transaction::updatePackages(bool only_trusted, const QSharedPointer<Package> &package)
+{
+    updatePackages(only_trusted, QList<QSharedPointer<Package> >() << package);
+}
+
+void Transaction::updateSystem(bool only_trusted)
+{
+    RUN_TRANSACTION(UpdateSystem(only_trusted))
+}
+
+void Transaction::whatProvides(Enum::Provides type, const QStringList &search, Enum::Filters filters)
+{
+    RUN_TRANSACTION(WhatProvides(Util::filtersToString(filters), Util::enumToString<Enum>(type, "Provides", "Provides"), search))
+}
+
+void Transaction::whatProvides(Enum::Provides type, const QString &search, Enum::Filters filters)
+{
+    whatProvides(type, QStringList() << search, filters);
 }
 
 #include "transaction.moc"
diff --git a/lib/packagekit-qt/src/transaction.h b/lib/packagekit-qt/src/transaction.h
index 8af1b9a..9e0ce73 100644
--- a/lib/packagekit-qt/src/transaction.h
+++ b/lib/packagekit-qt/src/transaction.h
@@ -1,6 +1,7 @@
 /*
  * This file is part of the QPackageKit project
  * Copyright (C) 2008 Adrien Bustany <madcat at mymadcat.com>
+ * Copyright (C) 2010 Daniel Nicoletti <dantti85-pk at yahoo.com.br>
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Library General Public
@@ -32,7 +33,8 @@ class Package;
 
 /**
  * \class Transaction transaction.h Transaction
- * \author Adrien Bustany <madcat at mymadcat.com>
+ * \author Adrien Bustany \e <madcat at mymadcat.com>
+ * \author Daniel Nicoletti \e <dantti85-pk at yahoo.com.br>
  *
  * \brief A transaction represents an occurring action in PackageKit
  *
@@ -48,9 +50,21 @@ class Package;
 class TransactionPrivate;
 class Transaction : public QObject
 {
-	Q_OBJECT
-
+    Q_OBJECT
 public:
+    /**
+     * Create a transaction object with transaction id \p tid
+     * \note The if \p tid is a NULL string then it will automatically
+     * asks PackageKit for a tid
+     *
+     * The transaction object \b cannot be reused
+     * (i.e. simulateInstallPackages then installPackages)
+     *
+     * \warning after creating the transaction object be sure
+     * to verify if it doesn't have any \sa error()
+     */
+    Transaction(const QString &tid, QObject *parent = 0);
+
 	/**
 	 * Destructor
 	 */
@@ -69,13 +83,16 @@ public:
 	 * \brief Returns the error status of the Transaction
 	 *
 	 * \return A value from TransactionError describing the state of the transaction
+     * or 0 in case of not having an error
 	 */
 	Client::DaemonError error() const;
 
 	/**
 	 * Indicates weither you can cancel the transaction or not
+     * i.e. the backend forbids cancelling the transaction while
+     * it's installing packages
 	 *
-	 * \return true if you can cancel the transaction, false else
+	 * \return true if you are able cancel the transaction, false else
 	 */
 	bool allowCancel() const;
 
@@ -132,6 +149,7 @@ public:
 
 	/**
 	 * Returns information describing the transaction
+     * like InstallPackages, SearchName or GetUpdates
 	 * \return the current role of the transaction
 	 */
 	Enum::Role role() const;
@@ -154,8 +172,8 @@ public:
 	 *
 	 * \sa Client::setHints
 	 */
-	void setHints(const QString& hints);
-	void setHints(const QStringList& hints);
+	void setHints(const QString &hints);
+	void setHints(const QStringList &hints);
 
 	/**
 	 * Returns the current state of the transaction
@@ -205,6 +223,301 @@ public:
 	 */
 	QString cmdline() const;
 
+    /**
+     * \brief Accepts an EULA
+     *
+     * The EULA is identified by the EulaInfo structure \p info
+     *
+     * \note You need to restart the transaction which triggered the EULA manually
+     *
+     * \sa eulaRequired
+     */
+    void acceptEula(const Client::EulaInfo &info);
+
+    /**
+     * Download the given \p packages to a temp dir
+     */
+    void downloadPackages(const QList<QSharedPointer<Package> > &packages);
+
+    /**
+     * This is a convenience function
+     */
+    void downloadPackages(const QSharedPointer<Package> &package);
+
+    /**
+     * Returns the collection categories
+     *
+     * \sa category
+     */
+    void getCategories();
+
+    /**
+     * \brief Gets the list of dependencies for the given \p packages
+     *
+     * You can use the \p filters to limit the results to certain packages. The
+     * \p recursive flag indicates if the package manager should also fetch the
+     * dependencies's dependencies.
+     *
+     * \note This method emits \sa package()
+     */
+    void getDepends(const QList<QSharedPointer<Package> > &packages, Enum::Filters filters, bool recursive);
+    void getDepends(const QSharedPointer<Package> &package, Enum::Filters filters , bool recursive);
+
+    /**
+     * Gets more details about the given \p packages
+     *
+     * \sa Transaction::details
+     * \note This method emits \sa details()
+     */
+    void getDetails(const QList<QSharedPointer<Package> > &packages);
+    void getDetails(const QSharedPointer<Package> &package);
+
+    /**
+     * Gets the files contained in the given \p packages
+     *
+     * \note This method emits \sa files()
+     */
+    void getFiles(const QList<QSharedPointer<Package> > &packages);
+    void getFiles(const QSharedPointer<Package> &packages);
+
+    /**
+     * \brief Gets the last \p number finished transactions
+     *
+     * \note You must delete these transactions yourself
+     * \note This method emits \sa transaction()
+     */
+    void getOldTransactions(uint number);
+
+    /**
+     * Gets all the packages matching the given \p filters
+     *
+     * \note This method emits \sa package()
+     */
+    void getPackages(Enum::Filters filters = Enum::NoFilter);
+
+    /**
+     * Gets the list of software repositories matching the given \p filters
+     *
+     * \note This method emits \sa repository()
+     */
+    void getRepoList(Enum::Filters filter = Enum::NoFilter);
+
+    /**
+     * \brief Searches for the packages requiring the given \p packages
+     *
+     * The search can be limited using the \p filters parameter. The recursive flag is used to tell
+     * if the package manager should also search for the package requiring the resulting packages.
+     *
+     * \note This method emits \sa package()
+     */
+    void getRequires(const QList<QSharedPointer<Package> > &packages, Enum::Filters filters, bool recursive);
+    void getRequires(const QSharedPointer<Package> &package, Enum::Filters filters, bool recursive);
+
+    /**
+     * Retrieves more details about the update for the given \p packages
+     *
+     * \note This method emits \sa updateDetail()
+     */
+    void getUpdateDetail(const QList<QSharedPointer<Package> > &packages);
+    void getUpdateDetail(const QSharedPointer<Package> &package);
+
+    /**
+     * \p Gets the available updates
+     *
+     * The \p filters parameters can be used to restrict the updates returned
+     *
+     * \note This method emits \sa package()
+     */
+    void getUpdates(Enum::Filters filters = Enum::NoFilter);
+
+    /**
+     * Retrieves the available distribution upgrades
+     *
+     * \note This method emits \sa distroUpgrade()
+     */
+    void getDistroUpgrades();
+
+    /**
+     * \brief Installs the local packages \p files
+     *
+     * \p only_trusted indicate if the packages are signed by a trusted authority
+     *
+     * \note This method emits \sa package()
+     * and \sa changed()
+     */
+    void installFiles(const QStringList &files, bool only_trusted);
+    void installFiles(const QString &file, bool only_trusted);
+
+    /**
+     * Install the given \p packages
+     *
+     * \p only_trusted indicates if we should allow installation of untrusted packages (requires a different authorization)
+     *
+     * \note This method emits \sa package()
+     * and \sa changed()
+     */
+    void installPackages(bool only_trusted, const QList<QSharedPointer<Package> > &packages);
+    void installPackages(bool only_trusted, const QSharedPointer<Package> &package);
+
+    /**
+     * \brief Installs a signature
+     *
+     * \p type, \p keyId and \p package generally come from the Transaction::repoSignatureRequired
+     */
+    void installSignature(Enum::SigType type, const QString &keyId, const QSharedPointer<Package> &package);
+
+    /**
+     * Refreshes the package manager's cache
+     *
+     * \note This method emits \sa changed()
+     */
+    void refreshCache(bool force);
+
+    /**
+     * \brief Removes the given \p packages
+     *
+     * \p allow_deps if the package manager has the right to remove other packages which depend on the
+     * packages to be removed. \p autoremove tells the package manager to remove all the package which
+     * won't be needed anymore after the packages are uninstalled.
+     *
+     * \note This method emits \sa package()
+     * and \sa changed()
+     */
+    void removePackages(const QList<QSharedPointer<Package> >  &packages, bool allow_deps, bool autoremove);
+    void removePackages(const QSharedPointer<Package> &package, bool allow_deps, bool autoremove);
+
+    /**
+     * Activates or disables a repository
+     */
+    void repoEnable(const QString &repo_id, bool enable);
+
+    /**
+     * Sets a repository's parameter
+     */
+    void repoSetData(const QString &repo_id, const QString& parameter, const QString &value);
+
+    /**
+     * \brief Tries to create a Package object from the package's name
+     *
+     * The \p filters can be used to restrict the search
+     *
+     * \note This method emits \sa package()
+     */
+    void resolve(const QStringList &packageNames, Enum::Filters filters = Enum::NoFilter);
+    void resolve(const QString &packageName, Enum::Filters filters = Enum::NoFilter);
+
+    /**
+     * \brief Search in the packages files
+     *
+     * \p filters can be used to restrict the returned packages
+     *
+     * \note This method emits \sa package()
+     */
+    void searchFiles(const QStringList &search, Enum::Filters filters = Enum::NoFilter);
+    void searchFiles(const QString &search, Enum::Filters filters = Enum::NoFilter);
+
+    /**
+     * \brief Search in the packages details
+     *
+     * \p filters can be used to restrict the returned packages
+     *
+     * \note This method emits \sa package()
+     */
+    void searchDetails(const QStringList &search, Enum::Filters filters = Enum::NoFilter);
+    void searchDetails(const QString &search, Enum::Filters filters = Enum::NoFilter);
+
+    /**
+     * \brief Lists all the packages in the given \p group
+     *
+     * \p filters can be used to restrict the returned packages
+     *
+     * \note This method emits \sa package()
+     */
+    void searchGroups(Enum::Groups group, Enum::Filters filters = Enum::NoFilter);
+    void searchGroups(Enum::Group group, Enum::Filters filters = Enum::NoFilter);
+
+    /**
+     * \brief Search in the packages names
+     *
+     * \p filters can be used to restrict the returned packages
+     *
+     * \note This method emits \sa package()
+     */
+    void searchNames(const QStringList &search, Enum::Filters filters = Enum::NoFilter);
+    void searchNames(const QString &search, Enum::Filters filters = Enum::NoFilter);
+
+    /**
+     * \brief Simulates an installation of \p files.
+     *
+     * You should call this method before installing \p files
+     * \note: This method might emit \sa package()
+     *   with INSTALLING, REMOVING, UPDATING,
+     *        REINSTALLING or OBSOLETING status.
+     */
+    void simulateInstallFiles(const QStringList &files);
+    void simulateInstallFiles(const QString &file);
+
+    /**
+     * \brief Simulates an installation of \p packages.
+     *
+     * You should call this method before installing \p packages
+     * \note: This method might emit \sa package()
+     *   with INSTALLING, REMOVING, UPDATING,
+     *        REINSTALLING or OBSOLETING status.
+     */
+    void simulateInstallPackages(const QList<QSharedPointer<Package> > &packages);
+    void simulateInstallPackages(const QSharedPointer<Package> &package);
+
+    /**
+     * \brief Simulates a removal of \p packages.
+     *
+     * You should call this method before removing \p packages
+     * \note: This method might emit \sa package()
+     *   with INSTALLING, REMOVING, UPDATING,
+     *        REINSTALLING or OBSOLETING status.
+     */
+    void simulateRemovePackages(const QList<QSharedPointer<Package> > &packages, bool autoremove);
+    void simulateRemovePackages(const QSharedPointer<Package> &package, bool autoremove);
+
+    /**
+     * \brief Simulates an update of \p packages.
+     *
+     * You should call this method before updating \p packages
+     * \note: This method might emit \sa package()
+     *   with INSTALLING, REMOVING, UPDATING,
+     *        REINSTALLING or OBSOLETING status.
+     */
+    void simulateUpdatePackages(const QList<QSharedPointer<Package> > &packages);
+    void simulateUpdatePackages(const QSharedPointer<Package> &package);
+
+    /**
+     * Update the given \p packages
+     *
+     * \note This method emits \sa package()
+     * and \sa changed()
+     */
+    void updatePackages(bool only_trusted, const QList<QSharedPointer<Package> > &packages);
+    void updatePackages(bool only_trusted, const QSharedPointer<Package> &package);
+
+    /**
+     * Updates the whole system
+     *
+     * \p only_trusted indicates if this transaction is only allowed to install trusted packages
+     *
+     * \note This method emits \sa package()
+     * and \sa changed()
+     */
+    void updateSystem(bool only_trusted);
+
+    /**
+     * Searchs for a package providing a file/a mimetype
+     *
+     * \note This method emits \sa package()
+     */
+    void whatProvides(Enum::Provides type, const QStringList &search, Enum::Filters filters = Enum::NoFilter);
+    void whatProvides(Enum::Provides type, const QString &search, Enum::Filters filters = Enum::NoFilter);
+
+
 public Q_SLOTS:
 	/**
 	 * Cancels the transaction
@@ -230,9 +543,9 @@ Q_SIGNALS:
 
 	/**
 	 * Sends additional details about the \p package
-	 * \sa Client::getDetails
+	 * \sa getDetails()
 	 */
-	void details(QSharedPointer<PackageKit::Package> package);
+	void details(const QSharedPointer<PackageKit::Package> &package);
 
 	/**
 	 * Sent when the transaction has been destroyed and is
@@ -243,7 +556,7 @@ Q_SIGNALS:
 
 	/**
 	 * Emitted when a distribution upgrade is available
-	 * \sa Client::getDistroUpgrades
+	 * \sa getDistroUpgrades()
 	 */
 	void distroUpgrade(PackageKit::Enum::DistroUpgrade type, const QString& name, const QString& description);
 
@@ -255,9 +568,9 @@ Q_SIGNALS:
 	/**
 	 * Emitted when an EULA agreement prevents the transaction from running
 	 * \note You will need to relaunch the transaction after accepting the EULA
-	 * \sa Client::acceptEula
+	 * \sa acceptEula()
 	 */
-	void eulaRequired(PackageKit::Client::EulaInfo info);
+	void eulaRequired(const PackageKit::Client::EulaInfo &info);
 
 	/**
 	 * Emitted when a different media is required in order to fetch packages
@@ -268,10 +581,10 @@ Q_SIGNALS:
 	void mediaChangeRequired(PackageKit::Enum::MediaType type, const QString& id, const QString& text);
 
 	/**
-	 * Sends the \p filenames contained in package \p p
+	 * Sends the \p filenames contained in package \p package
 	 * \sa Client::getFiles
 	 */
-	void files(QSharedPointer<PackageKit::Package> p, const QStringList& filenames);
+	void files(const QSharedPointer<PackageKit::Package> &package, const QStringList &filenames);
 
 	/**
 	 * Emitted when the transaction finishes
@@ -285,51 +598,57 @@ Q_SIGNALS:
 	 *
 	 * \p type is the type of the \p message
 	 */
-	void message(PackageKit::Enum::Message type, const QString& message);
+	void message(PackageKit::Enum::Message type, const QString &message);
 
 	/**
 	 * Emitted when the transaction sends a new package
 	 */
-	void package(QSharedPointer<PackageKit::Package> p);
+	void package(const QSharedPointer<PackageKit::Package> &package);
 
 	/**
 	 * Sends some additional details about a software repository
-	 * \sa Client::getRepoList
+	 * \sa getRepoList()
 	 */
 	void repoDetail(const QString& repoId, const QString& description, bool enabled);
 
 	/**
 	 * Emitted when the user has to validate a repository's signature
 	 */
-	void repoSignatureRequired(PackageKit::Client::SignatureInfo info);
+	void repoSignatureRequired(const PackageKit::Client::SignatureInfo &info);
 
 	/**
 	 * Indicates that a restart is required
 	 * \p package is the package who triggered the restart signal
 	 */
-	void requireRestart(PackageKit::Enum::Restart type, QSharedPointer<PackageKit::Package> p);
+	void requireRestart(PackageKit::Enum::Restart type, const QSharedPointer<PackageKit::Package> &package);
 
 	/**
 	 * Sends an old transaction
 	 * \sa Client::getOldTransactions
 	 */
-	void transaction(PackageKit::Transaction* t);
+	void transaction(PackageKit::Transaction *transaction);
 
 	/**
 	 * Sends additionnal details about an update
 	 * \sa Client::getUpdateDetail
 	 */
-	void updateDetail(PackageKit::Client::UpdateInfo info);
+	void updateDetail(const PackageKit::Client::UpdateInfo &info);
 
 protected:
 	TransactionPrivate * const d_ptr;
 
 private:
 	Q_DECLARE_PRIVATE(Transaction);
-	friend class Client;
 	friend class ClientPrivate;
-	Transaction(const QString& tid, Client* parent);
-	Transaction(const QString& tid, const QString& timespec, bool succeeded, const QString& role, uint duration, const QString& data, uint uid, const QString& cmdline, Client* parent);
+	Transaction(const QString &tid,
+                const QString &timespec,
+                bool succeeded,
+                const QString &role,
+                uint duration,
+                const QString &data,
+                uint uid,
+                const QString &cmdline,
+                QObject *parent);
 };
 
 } // End namespace PackageKit
diff --git a/lib/packagekit-qt/src/transactionprivate.cpp b/lib/packagekit-qt/src/transactionprivate.cpp
index f3e4c06..9432cb2 100644
--- a/lib/packagekit-qt/src/transactionprivate.cpp
+++ b/lib/packagekit-qt/src/transactionprivate.cpp
@@ -25,7 +25,11 @@
 
 using namespace PackageKit;
 
-TransactionPrivate::TransactionPrivate(Transaction* parent) : QObject(parent), t(parent), p(0)
+TransactionPrivate::TransactionPrivate(Transaction* parent)
+ : QObject(parent),
+   t(parent),
+   p(0),
+   destroyed(false)
 {
 }
 
@@ -88,7 +92,7 @@ void TransactionPrivate::finished(const QString& exitCode, uint runtime)
 void TransactionPrivate::destroy()
 {
 	emit t->destroy();
-	client->destroyTransaction(tid);
+	Client::instance()->destroyTransaction(tid);
 }
 
 void TransactionPrivate::message(const QString& type, const QString& message)
@@ -98,7 +102,7 @@ void TransactionPrivate::message(const QString& type, const QString& message)
 
 void TransactionPrivate::package(const QString& info, const QString& pid, const QString& summary)
 {
-	t->package(QSharedPointer<Package> (new Package(pid, info, summary)));
+	t->package(QSharedPointer<Package> (new Package(pid, (Enum::Info)Util::enumFromString<Enum>(info, "Info", "Info"), summary)));
 }
 
 void TransactionPrivate::repoSignatureRequired(const QString& pid, const QString& repoName, const QString& keyUrl, const QString& keyUserid, const QString& keyId, const QString& keyFingerprint, const QString& keyTimestamp, const QString& type)
@@ -123,7 +127,7 @@ void TransactionPrivate::requireRestart(const QString& type, const QString& pid)
 
 void TransactionPrivate::transaction(const QString& oldTid, const QString& timespec, bool succeeded, const QString& role, uint duration, const QString& data, uint uid, const QString& cmdline)
 {
-	t->transaction(new Transaction(oldTid, timespec, succeeded, role, duration, data, uid, cmdline, client));
+	t->transaction(new Transaction(oldTid, timespec, succeeded, role, duration, data, uid, cmdline, t->parent()));
 }
 
 void TransactionPrivate::updateDetail(const QString& pid, const QString& updates, const QString& obsoletes, const QString& vendorUrl, const QString& bugzillaUrl, const QString& cveUrl, const QString& restart, const QString& updateText, const QString& changelog, const QString& state, const QString& issued, const QString& updated)
diff --git a/lib/packagekit-qt/src/transactionprivate.h b/lib/packagekit-qt/src/transactionprivate.h
index 4227709..50e275d 100644
--- a/lib/packagekit-qt/src/transactionprivate.h
+++ b/lib/packagekit-qt/src/transactionprivate.h
@@ -30,8 +30,6 @@ class TransactionProxy;
 namespace PackageKit {
 
 class Transaction;
-class Client;
-
 class TransactionPrivate : public QObject
 {
 	Q_OBJECT
@@ -39,7 +37,6 @@ class TransactionPrivate : public QObject
 public:
 	~TransactionPrivate();
 	QString tid;
-	Client* client;
 	::TransactionProxy* p;
 	Transaction* t;
 
@@ -52,6 +49,8 @@ public:
 	QString data;
 	uint uid;
 	QString cmdline;
+    // used for both old and destroyed transactions
+    bool destroyed;
 
 	// Used for getDetails
 	QHash<QString, QSharedPointer<Package> > packageMap;
commit f89b106a39fbbf8b80b9f8e586fe6cfb3a2ef3e9
Author: Fabio Erculiani <lxnay at sabayon.org>
Date:   Thu Sep 2 11:38:38 2010 +0200

    trivial: add entropy to packagekit matrix page

diff --git a/docs/html/pk-matrix.html b/docs/html/pk-matrix.html
index 8efe49f..33f2efb 100644
--- a/docs/html/pk-matrix.html
+++ b/docs/html/pk-matrix.html
@@ -26,6 +26,7 @@
 <td><center>alpm</center></td>
 <td><center>box</center></td>
 <td><center>conary</center></td>
+<td><center>entropy</center></td>
 <td><center>opkg</center></td>
 <td><center>pacman</center></td>
 <td><center>pisi</center></td>
@@ -45,6 +46,7 @@
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- alpm -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- box -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- conary -->
+<td><img src="img/status-good.png" alt="[yes]"/></td><!-- entropy -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- opkg -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- pacman -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- pisi -->
@@ -64,6 +66,7 @@
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- alpm -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- box -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- conary -->
+<td><img src="img/status-good.png" alt="[yes]"/></td><!-- entropy -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- opkg -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- pacman -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- pisi -->
@@ -83,6 +86,7 @@
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- alpm -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- box -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- conary -->
+<td><img src="img/status-good.png" alt="[yes]"/></td><!-- entropy -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- opkg -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- pacman -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- pisi -->
@@ -102,6 +106,7 @@
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- alpm -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- box -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- conary -->
+<td><img src="img/status-good.png" alt="[yes]"/></td><!-- entropy -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- opkg -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- pacman -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- pisi -->
@@ -121,6 +126,7 @@
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- alpm -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- box -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- conary -->
+<td><img src="img/status-good.png" alt="[yes]"/></td><!-- entropy -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- opkg -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- pacman -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- pisi -->
@@ -140,6 +146,7 @@
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- alpm -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- box -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- conary -->
+<td><img src="img/status-good.png" alt="[yes]"/></td><!-- entropy -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- opkg -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- pacman -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- pisi -->
@@ -159,6 +166,7 @@
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- alpm -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- box -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- conary -->
+<td><img src="img/status-good.png" alt="[yes]"/></td><!-- entropy -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- opkg -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- pacman -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- pisi -->
@@ -178,6 +186,7 @@
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- alpm -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- box -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- conary -->
+<td><img src="img/status-good.png" alt="[yes]"/></td><!-- entropy -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- opkg -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- pacman -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- pisi -->
@@ -197,6 +206,7 @@
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- alpm -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- box -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- conary -->
+<td><img src="img/status-good.png" alt="[yes]"/></td><!-- entropy -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- opkg -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- pacman -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- pisi -->
@@ -216,6 +226,7 @@
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- alpm -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- box -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- conary -->
+<td><img src="img/status-good.png" alt="[yes]"/></td><!-- entropy -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- opkg -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- pacman -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- pisi -->
@@ -235,6 +246,7 @@
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- alpm -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- box -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- conary -->
+<td><img src="img/status-good.png" alt="[yes]"/></td><!-- entropy -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- opkg -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- pacman -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- pisi -->
@@ -254,6 +266,7 @@
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- alpm -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- box -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- conary -->
+<td><img src="img/status-good.png" alt="[yes]"/></td><!-- entropy -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- opkg -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- pacman -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- pisi -->
@@ -273,6 +286,7 @@
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- alpm -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- box -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- conary -->
+<td><img src="img/status-good.png" alt="[yes]"/></td><!-- entropy -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- opkg -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- pacman -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- pisi -->
@@ -292,6 +306,7 @@
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- alpm -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- box -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- conary -->
+<td><img src="img/status-bad.png" alt="[no]"/></td><!-- entropy -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- opkg -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- pacman -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- pisi -->
@@ -311,6 +326,7 @@
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- alpm -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- box -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- conary -->
+<td><img src="img/status-good.png" alt="[yes]"/></td><!-- entropy -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- opkg -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- pacman -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- pisi -->
@@ -330,6 +346,7 @@
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- alpm -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- box -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- conary -->
+<td><img src="img/status-good.png" alt="[yes]"/></td><!-- entropy -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- opkg -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- pacman -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- pisi -->
@@ -349,6 +366,7 @@
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- alpm -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- box -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- conary -->
+<td><img src="img/status-good.png" alt="[yes]"/></td><!-- entropy -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- opkg -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- pacman -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- pisi -->
@@ -368,6 +386,7 @@
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- alpm -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- box -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- conary -->
+<td><img src="img/status-bad.png" alt="[no]"/></td><!-- entropy -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- opkg -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- pacman -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- pisi -->
@@ -387,6 +406,7 @@
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- alpm -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- box -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- conary -->
+<td><img src="img/status-good.png" alt="[yes]"/></td><!-- entropy -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- opkg -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- pacman -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- pisi -->
@@ -406,6 +426,7 @@
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- alpm -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- box -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- conary -->
+<td><img src="img/status-good.png" alt="[no]"/></td><!-- entropy -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- opkg -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- pacman -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- pisi -->
@@ -425,6 +446,7 @@
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- alpm -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- box -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- conary -->
+<td><img src="img/status-good.png" alt="[yes]"/></td><!-- entropy -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- opkg -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- pacman -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- pisi -->
@@ -444,6 +466,7 @@
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- alpm -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- box -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- conary -->
+<td><img src="img/status-good.png" alt="[yes]"/></td><!-- entropy -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- opkg -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- pacman -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- pisi -->
@@ -463,6 +486,7 @@
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- alpm -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- box -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- conary -->
+<td><img src="img/status-good.png" alt="[yes]"/></td><!-- entropy -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- opkg -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- pacman -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- pisi -->
@@ -482,6 +506,7 @@
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- alpm -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- box -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- conary -->
+<td><img src="img/status-good.png" alt="[yes]"/></td><!-- entropy -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- opkg -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- pacman -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- pisi -->
@@ -501,6 +526,7 @@
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- alpm -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- box -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- conary -->
+<td><img src="img/status-good.png" alt="[yes]"/></td><!-- entropy -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- opkg -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- pacman -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- pisi -->
@@ -520,6 +546,7 @@
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- alpm -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- box -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- conary -->
+<td><img src="img/status-good.png" alt="[yes]"/></td><!-- entropy -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- opkg -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- pacman -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- pisi -->
@@ -539,6 +566,7 @@
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- alpm -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- box -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- conary -->
+<td><img src="img/status-good.png" alt="[yes]"/></td><!-- entropy -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- opkg -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- pacman -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- pisi -->
@@ -558,6 +586,7 @@
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- alpm -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- box -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- conary -->
+<td><img src="img/status-good.png" alt="[yes]"/></td><!-- entropy -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- opkg -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- pacman -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- pisi -->
@@ -577,6 +606,7 @@
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- alpm -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- box -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- conary -->
+<td><img src="img/status-good.png" alt="[yes]"/></td><!-- entropy -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- opkg -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- pacman -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- pisi -->
@@ -596,6 +626,7 @@
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- alpm -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- box -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- conary -->
+<td><img src="img/status-good.png" alt="[yes]"/></td><!-- entropy -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- opkg -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- pacman -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- pisi -->
@@ -615,6 +646,7 @@
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- alpm -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- box -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- conary -->
+<td><img src="img/status-good.png" alt="[yes]"/></td><!-- entropy -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- opkg -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- pacman -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- pisi -->
@@ -638,6 +670,7 @@
 <td><center>alpm</center></td>
 <td><center>box</center></td>
 <td><center>conary</center></td>
+<td><center>entropy</center></td>
 <td><center>opkg</center></td>
 <td><center>pacman</center></td>
 <td><center>pisi</center></td>
@@ -657,6 +690,7 @@
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- alpm -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- box -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- conary -->
+<td><img src="img/status-good.png" alt="[yes]"/></td><!-- entropy -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- opkg -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- pacman -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- pisi -->
@@ -676,6 +710,7 @@
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- alpm -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- box -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- conary -->
+<td><img src="img/status-good.png" alt="[yes]"/></td><!-- entropy -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- opkg -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- pacman -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- pisi -->
@@ -695,6 +730,7 @@
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- alpm -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- box -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- conary -->
+<td><img src="img/status-good.png" alt="[yes]"/></td><!-- entropy -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- opkg -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- pacman -->
 <td><img src="img/status-good.png" alt="[yes]"/></td><!-- pisi -->
@@ -714,6 +750,7 @@
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- alpm -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- box -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- conary -->
+<td><img src="img/status-good.png" alt="[yes]"/></td><!-- entropy -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- opkg -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- pacman -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- pisi -->
@@ -733,6 +770,7 @@
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- alpm -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- box -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- conary -->
+<td><img src="img/status-bad.png" alt="[no]"/></td><!-- entropy -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- opkg -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- pacman -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- pisi -->
@@ -752,6 +790,7 @@
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- alpm -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- box -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- conary -->
+<td><img src="img/status-bad.png" alt="[no]"/></td><!-- entropy -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- opkg -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- pacman -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- pisi -->
@@ -771,6 +810,7 @@
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- alpm -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- box -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- conary -->
+<td><img src="img/status-bad.png" alt="[no]"/></td><!-- entropy -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- opkg -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- pacman -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- pisi -->
@@ -790,6 +830,7 @@
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- alpm -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- box -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- conary -->
+<td><img src="img/status-bad.png" alt="[no]"/></td><!-- entropy -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- opkg -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- pacman -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- pisi -->
@@ -809,6 +850,7 @@
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- alpm -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- box -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- conary -->
+<td><img src="img/status-bad.png" alt="[no]"/></td><!-- entropy -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- opkg -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- pacman -->
 <td><img src="img/status-bad.png" alt="[no]"/></td><!-- pisi -->


More information about the PackageKit-commit mailing list