gnome-packagekit r317 - in trunk: . data help help/C src



Author: rhughes
Date: Wed Oct  1 15:53:07 2008
New Revision: 317
URL: http://svn.gnome.org/viewvc/gnome-packagekit?rev=317&view=rev

Log:
from git -- lots more translations -- sorry

Modified:
   trunk/NEWS
   trunk/configure.ac
   trunk/data/gnome-packagekit.schemas.in
   trunk/help/C/gnome-packagekit.xml
   trunk/help/Makefile.am
   trunk/src/Makefile.am
   trunk/src/gpk-client-dialog.c
   trunk/src/gpk-client-dialog.h
   trunk/src/gpk-client-run.c
   trunk/src/gpk-client.c
   trunk/src/gpk-client.h
   trunk/src/gpk-dbus.c

Modified: trunk/NEWS
==============================================================================
--- trunk/NEWS	(original)
+++ trunk/NEWS	Wed Oct  1 15:53:07 2008
@@ -1,3 +1,32 @@
+Version 0.3.5
+~~~~~~~~~~~~~~
+Released: 2008-09-29
+
+* Translations
+ - Updated Polish translation (Tomasz Dominikowski)
+ - Updated Polish documentation (Tomasz Dominikowski)
+ - Updated Spanish translation (Daniel Mustieles)
+ - Updated French translation (Ivan Buresi and Robert-Andrà Mauchin)
+ - Updated Norwegian bokmÃl translation (Kjartan Maraas)
+
+* New
+ - Add an animated icon for the testing phase (Mike Langlie)
+ - Add a new GConf key to enable certain firmware files to be skipped (Richard Hughes)
+
+* Bugfix:
+ - Set the window title when we do update-system (Richard Hughes)
+ - Define a GConf key that contains a list of banned firmware that will never be
+   searched for (Richard Hughes)
+ - Don't use functions deprecated from GTK (Richard Hughes)
+ - Provide functionality to find the user_time when not set on the DBUS interface (Richard Hughes)
+ - Add the missing role and status icons, and fix the self checks that missed them (Richard Hughes)
+ - Fix setting modality from gpk-update-viewer (Richard Hughes)
+ - When we install multiple applications, make sure we search for all the applications (Richard Hughes)
+ - Set the dialog message to be blank in more places (Richard Hughes)
+ - Don't run interactive self tests when doing make distcheck (Richard Hughes)
+ - Call hardware check in gpk-update-icon (Scott Reeves)
+ - Try to handle multiple hal DeviceAdded events for single plug (Scott Reeves)
+
 Version 0.3.4
 ~~~~~~~~~~~~~~
 Released: 2008-09-22

Modified: trunk/configure.ac
==============================================================================
--- trunk/configure.ac	(original)
+++ trunk/configure.ac	Wed Oct  1 15:53:07 2008
@@ -1,6 +1,6 @@
 AC_PREREQ(2.52)
 
-AC_INIT(gnome-packagekit, 0.3.5)
+AC_INIT(gnome-packagekit, 0.3.6)
 AC_CONFIG_SRCDIR(src)
 AM_INIT_AUTOMAKE(AC_PACKAGE_NAME, AC_PACKAGE_VERSION)
 AM_CONFIG_HEADER(config.h)
@@ -48,7 +48,7 @@
 dnl ---------------------------------------------------------------------------
 dnl - Library dependencies
 dnl ---------------------------------------------------------------------------
-PACKAGEKIT_REQUIRED=0.3.3
+PACKAGEKIT_REQUIRED=0.3.5
 GLIB_REQUIRED=2.14.0
 GTK_REQUIRED=2.12.0
 DBUS_REQUIRED=1.1.2
@@ -174,6 +174,16 @@
 AM_CONDITIONAL([HAVE_UNIQUE], [test $have_unique = yes])
 
 dnl ---------------------------------------------------------------------------
+dnl - Build self tests
+dnl ---------------------------------------------------------------------------
+AC_ARG_ENABLE(tests, AS_HELP_STRING([--enable-tests],[enable unit test code]),
+	      enable_tests=$enableval,enable_tests=no)
+AM_CONDITIONAL(EGG_BUILD_TESTS, test x$enable_tests = xyes)
+if test x$enable_tests = xyes; then
+	AC_DEFINE(EGG_BUILD_TESTS,1,[Build test code])
+fi
+
+dnl ---------------------------------------------------------------------------
 dnl - Other tests
 dnl ---------------------------------------------------------------------------
 AC_ARG_ENABLE(gcov, AS_HELP_STRING([--enable-gcov],[compile with coverage profiling instrumentation (gcc only)]),

Modified: trunk/data/gnome-packagekit.schemas.in
==============================================================================
--- trunk/data/gnome-packagekit.schemas.in	(original)
+++ trunk/data/gnome-packagekit.schemas.in	Wed Oct  1 15:53:07 2008
@@ -2,8 +2,8 @@
   <schemalist>
 
     <schema>
-      <key>/schemas/apps/gnome-packagekit/prompt_firmware</key>
-      <applyto>/apps/gnome-packagekit/prompt_firmware</applyto>
+      <key>/schemas/apps/gnome-packagekit/enable_check_firmware</key>
+      <applyto>/apps/gnome-packagekit/enable_check_firmware</applyto>
       <owner>gnome-packagekit</owner>
       <type>bool</type>
       <default>true</default>
@@ -26,8 +26,8 @@
     </schema>
 
     <schema>
-      <key>/schemas/apps/gnome-packagekit/prompt_hardware</key>
-      <applyto>/apps/gnome-packagekit/prompt_hardware</applyto>
+      <key>/schemas/apps/gnome-packagekit/enable_check_hardware</key>
+      <applyto>/apps/gnome-packagekit/enable_check_hardware</applyto>
       <owner>gnome-packagekit</owner>
       <type>bool</type>
       <default>true</default>
@@ -314,8 +314,8 @@
     </schema>
 
     <schema>
-      <key>/schemas/apps/gnome-packagekit/interface/enable_font_helper</key>
-      <applyto>/apps/gnome-packagekit/interface/enable_font_helper</applyto>
+      <key>/schemas/apps/gnome-packagekit/enable_font_helper</key>
+      <applyto>/apps/gnome-packagekit/enable_font_helper</applyto>
       <owner>gnome-packagekit</owner>
       <type>bool</type>
       <default>true</default>
@@ -326,8 +326,8 @@
     </schema>
 
     <schema>
-      <key>/schemas/apps/gnome-packagekit/interface/enable_codec_helper</key>
-      <applyto>/apps/gnome-packagekit/interface/enable_codec_helper</applyto>
+      <key>/schemas/apps/gnome-packagekit/enable_codec_helper</key>
+      <applyto>/apps/gnome-packagekit/enable_codec_helper</applyto>
       <owner>gnome-packagekit</owner>
       <type>bool</type>
       <default>true</default>
@@ -338,8 +338,8 @@
     </schema>
 
     <schema>
-      <key>/schemas/apps/gnome-packagekit/interface/enable_mime_type_helper</key>
-      <applyto>/apps/gnome-packagekit/interface/enable_mime_type_helper</applyto>
+      <key>/schemas/apps/gnome-packagekit/enable_mime_type_helper</key>
+      <applyto>/apps/gnome-packagekit/enable_mime_type_helper</applyto>
       <owner>gnome-packagekit</owner>
       <type>bool</type>
       <default>true</default>

Modified: trunk/help/C/gnome-packagekit.xml
==============================================================================
--- trunk/help/C/gnome-packagekit.xml	(original)
+++ trunk/help/C/gnome-packagekit.xml	Wed Oct  1 15:53:07 2008
@@ -102,7 +102,7 @@
       <para>
         To report a bug or make a suggestion regarding the &app; application or
         this manual, follow the directions in the
-        <ulink url="http://live.gnome.org/PackageKit/";
+        <ulink url="http://www.packagekit.org/";
           type="http">&application; Contact Page</ulink>.
       </para>
 <!-- Translators may also add here feedback address for translations -->
@@ -371,7 +371,7 @@
 </section>
 
 <section id="mime-types">
-  <title>File handler helper</title>
+  <title>File Handler Helper</title>
   <para>
     Sometimes you will not have the software on your system to open a particular
     file. If the file type is not recognised, then applications that can open
@@ -606,18 +606,264 @@
   </para>
 </section>
 
+<section id="dialogs">
+  <title>Common Dialogs Explained</title>
+  <para>
+    This application tries to reuse dialogs as much as possible, so that there
+    is a repeatable and consistent user interface when managing packages.
+    In the following subsections, some of the dialogs will be explained further,
+    often with examples or Internet links.
+  </para>
+
+  <section id="dialog-installing-private-files">
+    <title>Copying Files To Another Location</title>
+    <figure>
+      <title>Example dialog</title>
+      <screenshot>
+        <mediaobject>
+          <imageobject>
+            <imagedata fileref="figures/gpk-client-copy-local.png" format="PNG"/>
+          </imageobject>
+        </mediaobject>
+      </screenshot>
+    </figure>
+    <para>
+      If a file has been downloaded to your home directory, it is usually
+      downloaded to a location similar to <literal>/home/hughsie/Downloads</literal>.
+      The PackageKit service is not run as the same user as the the normal
+      desktop user, and so the daemon would not normally be able to access this file.
+      If the download folder cannot be read by the root user then it is copied to a
+      temporary directory so it can be accessed.
+    </para>
+  </section>
+
+  <section id="dialog-install-files">
+    <title>Installing Local Files</title>
+    <para>
+      An application has asked to install local files on your system.
+      If you initiated the action, please click the install button.
+    </para>
+  </section>
+
+  <section id="dialog-install-catalogs">
+    <title>Installing Catalogs</title>
+    <para>
+      A package catalog is a simple file that indicates that other packages should
+      be installed.
+      There are no optional packages, as a catalog file is designed to be simple
+      and need no user interaction.
+      Using a catalog file allows you to install different packages quickly and easily.
+    </para>
+    <note><para>
+      To find more information about catalogs, please visit the
+      <ulink url="http://www.packagekit.org/pk-faq.html#catalogs"; type="http">FAQ</ulink>.
+    </para></note>
+  </section>
+
+  <section id="dialog-catalog-none-required">
+    <title>No Packages Required</title>
+    <para>
+      The catalog that you tried to install made no changes to your system as
+      you already have the required packages installed.
+      No further actions are required.
+    </para>
+    <note><para>
+      To find more information about catalogs, please visit the
+      <ulink url="http://www.packagekit.org/pk-faq.html#catalogs"; type="http">FAQ</ulink>.
+    </para></note>
+  </section>
+
+  <section id="dialog-application-confirm">
+    <title>Confirmation Required</title>
+    <figure>
+      <title>Example plugin dialog</title>
+      <screenshot>
+        <mediaobject>
+          <imageobject>
+            <imagedata fileref="figures/gpk-client-codecs.png" format="PNG"/>
+          </imageobject>
+        </mediaobject>
+      </screenshot>
+    </figure>
+    <para>
+      An application needs your permission before modifying packages on your system.
+      The program name and the icon is from the application asking for permission.
+    </para>
+  </section>
+
+  <section id="dialog-finding-requires">
+    <title>Finding Other Required Packages</title>
+    <para>
+      Other packages may depend on this package to operate correctly.
+      This application is searching for other packages that require the package
+      you are trying to remove.
+      No changes are being made, and you will be prompted later if this is required.
+    </para>
+  </section>
+
+  <section id="dialog-finding-depends">
+    <title>Finding Other Dependent Packages</title>
+    <para>
+      This package may require resources in other packages to operate correctly.
+      This application is searching for other required packages of the package
+      you are trying to install.
+    </para>
+  </section>
+
+  <section id="dialog-remove-other-packages">
+    <title>Removing Other Packages</title>
+    <figure>
+      <title>Example dialog when removing rarian</title>
+      <screenshot>
+        <mediaobject>
+          <imageobject>
+            <imagedata fileref="figures/gpk-remove-confirm.png" format="PNG"/>
+          </imageobject>
+        </mediaobject>
+      </screenshot>
+    </figure>
+    <para>
+      Other packages need to be removed if this package is to be removed.
+      If you remove these packages you may loose functionality in other
+      applications.
+    </para>
+    <caution><para>
+      If you are unsure you should not remove the package.
+    </para></caution>
+  </section>
+
+  <section id="dialog-install-other-packages">
+    <title>Installing Other Packages</title>
+    <figure>
+      <title>Example dialog when installing xfce-utils</title>
+      <screenshot>
+        <mediaobject>
+          <imageobject>
+            <imagedata fileref="figures/gpk-added-deps.png" format="PNG"/>
+          </imageobject>
+        </mediaobject>
+      </screenshot>
+    </figure>
+    <para>
+      Other packages need to be installed if this package is to be installed.
+      If you remove these packages you may loose functionality in other
+      applications.
+      Downloading and installing extra packages will increase the time it
+      takes to install this package.
+    </para>
+  </section>
+
+  <section id="dialog-finding-packages">
+    <title>Finding Packages</title>
+    <para>
+      The package database is being searched for your query.
+      This may take some time if new package lists need to be downloaded from
+      the Internet.
+    </para>
+  </section>
+
+  <section id="dialog-package-not-found">
+    <title>Package Not Found</title>
+    <para>
+      No packages could be found in any remote software source.
+      This normally means that you do not have any third party repositories
+      enabled or installed.
+      These extra repositories can often be found using search engines or forums.
+    </para>
+    <caution><para>
+      Only install packages from reputable software sources.
+    </para></caution>
+  </section>
+
+  <section id="dialog-progress">
+    <title>Progress Window</title>
+    <para>
+      If we start an action automatically, we typically do it non-interactively.
+      If this task starts doing something using the network, or that will take a
+      long time, then a new dialog will appear.
+      This gives you the opportunity to cancel the task if this is not desired.
+    </para>
+  </section>
+
+  <section id="dialog-permissions">
+    <title>No Privileges</title>
+    <figure>
+      <title>PolicyKit Permissions UI</title>
+      <screenshot>
+        <mediaobject>
+          <imageobject>
+            <imagedata fileref="figures/gpk-repo-auth.png" format="PNG"/>
+          </imageobject>
+        </mediaobject>
+      </screenshot>
+    </figure>
+    <para>
+      You don't have the necessary privileges to perform this action.
+      This can happen when you fail to authenticate correctly, for instance
+      by entering your password correctly twice in a row.
+      NOTE: you also need to enter the root password on some distributions,
+      not your own password.
+    </para>
+    <note><para>
+      If you cannot authenticate, you need to speak to your systems administrator.
+    </para></note>
+  </section>
+
+  <section id="dialog-no-service">
+    <title>No PackageKit Service Running</title>
+    <para>
+      The core PackageKit service could not be started.
+      This will only happen when you have a serious system error.
+      You can get more information about the error by running (as the root user):
+      <literal>/usr/sbin/packagekitd --verbose</literal>
+    </para>
+  </section>
+
+  <section id="dialog-update-system">
+    <title>Update System</title>
+    <para>
+      All the packages that can be updated on your system are now being updated.
+      You can cancel the update if the cancel button is not insensitive.
+    </para>
+  </section>
+
+  <section id="dialog-update-packages">
+    <title>Update Packages</title>
+    <para>
+      Some packages on your system are now being upgraded.
+      You can cancel the update if the cancel button is not insensitive.
+    </para>
+  </section>
+
+  <section id="dialog-refresh">
+    <title>Refreshing Package Lists</title>
+    <para>
+      Once a week (although this can be changed in the preferences)
+      you will automatically have the latest package lists downloaded.
+      This means that when you search for a package you do not have installed,
+      you will get any new software that was added to a software source.
+    </para>
+    <para>
+      Once the package lists are downloaded, the installed and available packages
+      will be cached so client tools can auto-complete.
+      When this is completed, any new applications are scanned and added to a
+      client database.
+    </para>
+  </section>
+</section>
+
 <section id="about">
   <title>About</title>
   <para>
     &app; is maintained Richard Hughes <email>richard hughsie com</email> and developed along with
     several others.
     To find more information about &app;, please visit the
-    <ulink url="http://live.gnome.org/PackageKit"; type="http">&application; web page</ulink>.
+    <ulink url="http://www.packagekit.org/"; type="http">&application; web page</ulink>.
   </para>
   <para>
     To report a bug or make a suggestion regarding this application or
     this manual, follow the directions at the
-    <ulink url="http://live.gnome.org/PackageKit"; type="http">
+    <ulink url="http://www.packagekit.org/"; type="http">
     &application; Bug Page</ulink>.
   </para>
   <para>This program is distributed under the terms of the GNU

Modified: trunk/help/Makefile.am
==============================================================================
--- trunk/help/Makefile.am	(original)
+++ trunk/help/Makefile.am	Wed Oct  1 15:53:07 2008
@@ -6,12 +6,16 @@
 DOC_INCLUDES = 
 DOC_FIGURES = \
 	figures/gpk-application-groups.png \
+	figures/gpk-client-copy-local.png \
 	figures/gpk-eula.png \
 	figures/gpk-prefs.png \
 	figures/gpk-repo-auth.png \
 	figures/gpk-repo.png \
 	figures/gpk-signature.png \
 	figures/gpk-updates-overview.png \
+	figures/gpk-client-codecs.png \
+	figures/gpk-added-deps.png \
+	figures/gpk-remove-confirm.png \
 	figures/gpk-updates.png \
 	figures/gpk-updates-warning.png
 

Modified: trunk/src/Makefile.am
==============================================================================
--- trunk/src/Makefile.am	(original)
+++ trunk/src/Makefile.am	Wed Oct  1 15:53:07 2008
@@ -53,6 +53,8 @@
 	egg-dbus-monitor.h				\
 	gpk-enum.c					\
 	gpk-enum.h					\
+	gpk-x11.c					\
+	gpk-x11.h					\
 	gpk-marshal.c					\
 	gpk-marshal.h					\
 	gpk-animated-icon.c				\

Modified: trunk/src/gpk-client-dialog.c
==============================================================================
--- trunk/src/gpk-client-dialog.c	(original)
+++ trunk/src/gpk-client-dialog.c	Wed Oct  1 15:53:07 2008
@@ -66,6 +66,8 @@
 	GMainLoop		*loop;
 	GtkResponseType		 response;
 	GtkListStore		*store;
+	gchar			*help_id;
+	gchar			*title;
 };
 
 enum {
@@ -191,6 +193,11 @@
 		widget = glade_xml_get_widget (dialog->priv->glade_xml, "window_client");
 		gtk_window_set_modal (GTK_WINDOW (widget), FALSE);
 		dialog->priv->has_parent = FALSE;
+
+		/* use the saved title if it exists */
+		if (dialog->priv->title != NULL)
+			gpk_client_dialog_set_title (dialog, dialog->priv->title);
+
 		return FALSE;
 	}
 
@@ -258,6 +265,10 @@
 	if (!dialog->priv->has_parent)
 		gpk_client_dialog_set_window_title (dialog, title);
 
+	/* we save this in case we are non-modal and have to use a title */
+	g_free (dialog->priv->title);
+	dialog->priv->title = g_strdup (title);
+
 	title_bold = g_strdup_printf ("<b><big>%s</big></b>", title);
 	egg_debug ("setting title: %s", title_bold);
 	widget = glade_xml_get_widget (dialog->priv->glade_xml, "label_title");
@@ -507,12 +518,24 @@
 }
 
 /**
+ * gpk_client_dialog_set_help_id:
+ **/
+gboolean
+gpk_client_dialog_set_help_id (GpkClientDialog *dialog, const gchar *help_id)
+{
+	g_return_val_if_fail (GPK_IS_CLIENT_DIALOG (dialog), FALSE);
+	g_free (dialog->priv->help_id);
+	dialog->priv->help_id = g_strdup (help_id);
+	return TRUE;
+}
+
+/**
  * gpk_client_dialog_button_help_cb:
  **/
 static void
 gpk_client_dialog_button_help_cb (GtkWidget *widget_button, GpkClientDialog *dialog)
 {
-	gpk_gnome_help (NULL);
+	gpk_gnome_help (dialog->priv->help_id);
 	g_signal_emit (dialog, signals [GPK_CLIENT_DIALOG_HELP], 0);
 }
 
@@ -691,6 +714,13 @@
 			      0, NULL, NULL,
 			      g_cclosure_marshal_VOID__VOID,
 			      G_TYPE_NONE, 0);
+	signals [GPK_CLIENT_DIALOG_HELP] =
+		g_signal_new ("help",
+			      G_TYPE_FROM_CLASS (object_class),
+			      G_SIGNAL_RUN_LAST,
+			      0, NULL, NULL,
+			      g_cclosure_marshal_VOID__VOID,
+			      G_TYPE_NONE, 0);
 }
 
 /**
@@ -713,6 +743,8 @@
 	dialog->priv->pulse_timer_id = 0;
 	dialog->priv->show_progress_files = TRUE;
 	dialog->priv->has_parent = FALSE;
+	dialog->priv->help_id = NULL;
+	dialog->priv->title = NULL;
 
 	dialog->priv->store = gtk_list_store_new (GPK_CLIENT_DIALOG_STORE_LAST,
 						  G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING);
@@ -770,6 +802,8 @@
 	g_object_unref (dialog->priv->store);
 	g_object_unref (dialog->priv->glade_xml);
 	g_main_loop_unref (dialog->priv->loop);
+	g_free (dialog->priv->help_id);
+	g_free (dialog->priv->title);
 
 	G_OBJECT_CLASS (gpk_client_dialog_parent_class)->finalize (object);
 }

Modified: trunk/src/gpk-client-dialog.h
==============================================================================
--- trunk/src/gpk-client-dialog.h	(original)
+++ trunk/src/gpk-client-dialog.h	Wed Oct  1 15:53:07 2008
@@ -115,6 +115,8 @@
 							 PkStatusEnum		 status);
 gboolean	 gpk_client_dialog_set_allow_cancel	(GpkClientDialog	*dialog,
 							 gboolean		 can_cancel);
+gboolean	 gpk_client_dialog_set_help_id		(GpkClientDialog	*dialog,
+							 const gchar		*help_id);
 GtkWindow	*gpk_client_dialog_get_window		(GpkClientDialog	*dialog);
 GtkResponseType	 gpk_client_dialog_run			(GpkClientDialog	*dialog);
 gboolean	 gpk_client_dialog_close		(GpkClientDialog	*dialog);

Modified: trunk/src/gpk-client-run.c
==============================================================================
--- trunk/src/gpk-client-run.c	(original)
+++ trunk/src/gpk-client-run.c	Wed Oct  1 15:53:07 2008
@@ -104,6 +104,30 @@
 }
 
 /**
+ * gpk_client_run_row_activated_cb:
+ **/
+void
+gpk_client_run_row_activated_cb (GtkTreeView *treeview, GtkTreePath *path,
+				 GtkTreeViewColumn *col, gpointer user_data)
+{
+	GtkTreeModel *model;
+	GtkTreeIter iter;
+	gboolean ret;
+
+	/* get selection */
+	model = gtk_tree_view_get_model (treeview);
+	ret = gtk_tree_model_get_iter (model, &iter, path);
+	if (!ret) {
+		egg_warning ("failed to get selection");
+		return;
+	}
+
+	g_free (full_path);
+	gtk_tree_model_get (model, &iter, GPK_CHOOSER_COLUMN_FULL_PATH, &full_path, -1);
+	gtk_main_quit ();
+}
+
+/**
  * gpk_update_viewer_create_custom_widget:
  **/
 static GtkWidget *
@@ -311,6 +335,8 @@
 	widget = glade_xml_get_widget (glade_xml, "treeview_simple");
 	gtk_tree_view_set_model (GTK_TREE_VIEW (widget),
 				 GTK_TREE_MODEL (list_store));
+	g_signal_connect (GTK_TREE_VIEW (widget), "row-activated",
+			  G_CALLBACK (gpk_client_run_row_activated_cb), NULL);
 
 	selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (widget));
 	g_signal_connect (selection, "changed",

Modified: trunk/src/gpk-client.c
==============================================================================
--- trunk/src/gpk-client.c	(original)
+++ trunk/src/gpk-client.c	Wed Oct  1 15:53:07 2008
@@ -64,6 +64,7 @@
 #include "gpk-client-dialog.h"
 #include "gpk-dialog.h"
 #include "gpk-enum.h"
+#include "gpk-x11.h"
 
 static void     gpk_client_class_init	(GpkClientClass *klass);
 static void     gpk_client_init		(GpkClient      *gclient);
@@ -98,7 +99,8 @@
 	GdkWindow		*parent_window;
 	GPtrArray		*upgrade_array;
 	guint			 timestamp;
-	gchar			*application;
+	gchar			*parent_title;
+	gchar			*parent_icon_name;
 	GMainLoop		*loop;
 };
 
@@ -346,6 +348,7 @@
 		list = pk_client_get_package_list (client);
 		gpk_client_dialog_set_message (gclient->priv->dialog, _("The following packages were installed:"));
 		gpk_client_dialog_set_package_list (gclient->priv->dialog, list);
+		gpk_client_dialog_set_help_id (gclient->priv->dialog, NULL);
 		gpk_client_dialog_show_page (gclient->priv->dialog, GPK_CLIENT_DIALOG_PAGE_FINISHED, GPK_CLIENT_DIALOG_PACKAGE_LIST, 0);
 		g_object_unref (list);
 		gclient->priv->finished_timer_id = g_timeout_add_seconds (GPK_CLIENT_FINISHED_AUTOCLOSE_DELAY,
@@ -380,6 +383,7 @@
 		    status == PK_STATUS_ENUM_DOWNLOAD_GROUP ||
 		    status == PK_STATUS_ENUM_DOWNLOAD_UPDATEINFO ||
 		    status == PK_STATUS_ENUM_REFRESH_CACHE) {
+			gpk_client_dialog_set_help_id (gclient->priv->dialog, "dialog-progress");
 			gpk_client_dialog_show_page (gclient->priv->dialog, GPK_CLIENT_DIALOG_PAGE_PROGRESS, 0, 0);
 		}
 	}
@@ -602,12 +606,16 @@
 	/* print a proper error if we have it */
 	if (error != NULL) {
 		if (error->code == PK_CLIENT_ERROR_FAILED_AUTH ||
-		    g_str_has_prefix (error->message, "org.freedesktop.packagekit."))
+		    g_str_has_prefix (error->message, "org.freedesktop.packagekit.")) {
 			message = _("You don't have the necessary privileges to perform this action");
-		else if (error->code == PK_CLIENT_ERROR_CANNOT_START_DAEMON)
+			gpk_client_dialog_set_help_id (gclient->priv->dialog, "dialog-permissions");
+		} else if (error->code == PK_CLIENT_ERROR_CANNOT_START_DAEMON) {
 			message = _("The packagekitd service could not be started");
-		else
+			gpk_client_dialog_set_help_id (gclient->priv->dialog, "dialog-no-service");
+		} else {
 			details = error->message;
+			gpk_client_dialog_set_help_id (gclient->priv->dialog, NULL);
+		}
 	}
 
 	/* it's a normal UI, not a backtrace so keep in the UI */
@@ -861,6 +869,7 @@
 		gpk_client_dialog_set_message (gclient->priv->dialog, message);
 		gpk_client_dialog_set_image (gclient->priv->dialog, "dialog-warning");
 		gpk_client_dialog_set_action (gclient->priv->dialog, _("Copy file"));
+		gpk_client_dialog_set_help_id (gclient->priv->dialog, "dialog-installing-private-files");
 		g_free (message);
 
 		gpk_client_dialog_show_page (gclient->priv->dialog, GPK_CLIENT_DIALOG_PAGE_CONFIRM, 0, gclient->priv->timestamp);
@@ -932,6 +941,7 @@
 		/* show UI */
 		gpk_client_dialog_set_title (gclient->priv->dialog, title);
 		gpk_client_dialog_set_message (gclient->priv->dialog, "");
+		gpk_client_dialog_set_help_id (gclient->priv->dialog, NULL);
 		gpk_client_dialog_show_page (gclient->priv->dialog, GPK_CLIENT_DIALOG_PAGE_WARNING, 0, gclient->priv->timestamp);
 		gpk_client_dialog_run (gclient->priv->dialog);
 		gpk_client_error_set (error, GPK_CLIENT_ERROR_FAILED, "files not copied");
@@ -967,6 +977,7 @@
 	gpk_client_dialog_set_title (gclient->priv->dialog, title);
 	gpk_client_dialog_set_message (gclient->priv->dialog, message);
 	gpk_client_dialog_set_action (gclient->priv->dialog, _("Install"));
+	gpk_client_dialog_set_help_id (gclient->priv->dialog, "dialog-install-files");
 	gpk_client_dialog_show_page (gclient->priv->dialog, GPK_CLIENT_DIALOG_PAGE_CONFIRM, 0, gclient->priv->timestamp);
 	button = gpk_client_dialog_run (gclient->priv->dialog);
 	g_free (message);
@@ -977,6 +988,7 @@
 				  _("The files were not installed"), array->len);
 		gpk_client_dialog_set_title (gclient->priv->dialog, title);
 		gpk_client_dialog_set_message (gclient->priv->dialog, "");
+		gpk_client_dialog_set_help_id (gclient->priv->dialog, NULL);
 		gpk_client_dialog_show_page (gclient->priv->dialog, GPK_CLIENT_DIALOG_PAGE_WARNING, 0, gclient->priv->timestamp);
 		gpk_client_dialog_run (gclient->priv->dialog);
 		gpk_client_error_set (error, GPK_CLIENT_ERROR_FAILED, "Aborted");
@@ -1028,6 +1040,7 @@
 		/* show UI */
 		gpk_client_dialog_set_title (gclient->priv->dialog, title);
 		gpk_client_dialog_set_message (gclient->priv->dialog, message);
+		gpk_client_dialog_set_help_id (gclient->priv->dialog, NULL);
 		gpk_client_dialog_show_page (gclient->priv->dialog, GPK_CLIENT_DIALOG_PAGE_WARNING, 0, gclient->priv->timestamp);
 		gpk_client_dialog_run (gclient->priv->dialog);
 
@@ -1053,33 +1066,27 @@
 {
 	GtkResponseType button;
 	gchar *title_name;
-	const gchar *icon = NULL;
-	const gchar *application_localised = NULL;
 
-	/* get localised name and icon if available */
-	if (gclient->priv->application != NULL) {
-		application_localised = pk_extra_get_summary (gclient->priv->extra, gclient->priv->application);
-		if (application_localised == NULL) {
-			egg_debug ("did not get localised description for %s", gclient->priv->application);
-			application_localised = gclient->priv->application;
-		}
-		icon = pk_extra_get_icon_name (gclient->priv->extra, gclient->priv->application);
-	}
-
-	/* fallbacks */
-	if (application_localised == NULL)
-		application_localised = _("A program");
-	if (icon == NULL)
-		icon = "emblem-system";
+	/* make title */
+	if (gclient->priv->parent_title != NULL)
+		title_name = g_strdup_printf ("%s %s", gclient->priv->parent_title, title);
+	else {
+		/* translator comment -- string is an action, e.g. "wants to install a codec" */
+		title_name = g_strdup_printf (_("A program %s"), title);
+	}
+
+	/* set icon */
+	if (gclient->priv->parent_icon_name != NULL)
+		gpk_client_dialog_set_image (gclient->priv->dialog, gclient->priv->parent_icon_name);
+	else
+		gpk_client_dialog_set_image (gclient->priv->dialog, "emblem-system");
 
-	title_name = g_strdup_printf ("%s %s", application_localised, title);
 	gpk_client_dialog_set_title (gclient->priv->dialog, title_name);
 	gpk_client_dialog_set_message (gclient->priv->dialog, message);
-	gpk_client_dialog_set_image (gclient->priv->dialog, icon);
+	gpk_client_dialog_set_help_id (gclient->priv->dialog, "dialog-application-confirm");
 	gpk_client_dialog_show_page (gclient->priv->dialog, GPK_CLIENT_DIALOG_PAGE_CONFIRM, 0, gclient->priv->timestamp);
 
 	g_free (title_name);
-
 	button = gpk_client_dialog_run (gclient->priv->dialog);
 
 	/* close, we're going to fail the method */
@@ -1139,6 +1146,7 @@
 
 	/* set title */
 	gpk_client_dialog_set_title (gclient->priv->dialog, _("Install local file"));
+	gpk_client_dialog_set_help_id (gclient->priv->dialog, NULL);
 	if (gclient->priv->show_progress)
 		gpk_client_dialog_show_page (gclient->priv->dialog, GPK_CLIENT_DIALOG_PAGE_PROGRESS, 0, 0);
 
@@ -1187,13 +1195,6 @@
 	g_return_val_if_fail (GPK_IS_CLIENT (gclient), FALSE);
 	g_return_val_if_fail (package_ids != NULL, FALSE);
 
-	/* set title */
-	gpk_client_dialog_set_title (gclient->priv->dialog, _("Remove packages"));
-
-	/* setup the UI */
-	if (gclient->priv->show_progress)
-		gpk_client_dialog_show_page (gclient->priv->dialog, GPK_CLIENT_DIALOG_PAGE_PROGRESS, 0, 0);
-
 	/* are we dumb and can't check for depends? */
 	if (!pk_bitfield_contain (gclient->priv->roles, PK_ROLE_ENUM_GET_REQUIRES)) {
 		egg_warning ("skipping depends check");
@@ -1208,6 +1209,11 @@
 
 	/* get the packages we depend on */
 	gpk_client_dialog_set_title (gclient->priv->dialog, _("Finding packages we require"));
+	gpk_client_dialog_set_help_id (gclient->priv->dialog, "dialog-finding-requires");
+
+	/* setup the UI */
+	if (gclient->priv->show_progress)
+		gpk_client_dialog_show_page (gclient->priv->dialog, GPK_CLIENT_DIALOG_PAGE_PROGRESS, 0, 0);
 
 	/* reset */
 	ret = pk_client_reset (gclient->priv->client_resolve, &error_local);
@@ -1256,6 +1262,7 @@
 	gpk_client_dialog_set_title (gclient->priv->dialog, title);
 	gpk_client_dialog_set_message (gclient->priv->dialog, message);
 	gpk_client_dialog_set_action (gclient->priv->dialog, _("Remove"));
+	gpk_client_dialog_set_help_id (gclient->priv->dialog, "dialog-remove-other-packages");
 	gpk_client_dialog_show_page (gclient->priv->dialog, GPK_CLIENT_DIALOG_PAGE_CONFIRM, GPK_CLIENT_DIALOG_PACKAGE_LIST, gclient->priv->timestamp);
 	g_free (title);
 	g_free (message);
@@ -1270,6 +1277,15 @@
 	}
 
 skip_checks:
+	/* set title */
+	gpk_client_dialog_set_title (gclient->priv->dialog, _("Remove packages"));
+	gpk_client_dialog_set_help_id (gclient->priv->dialog, NULL);
+	gpk_client_dialog_set_message (gclient->priv->dialog, "");
+
+	/* setup the UI */
+	if (gclient->priv->show_progress)
+		gpk_client_dialog_show_page (gclient->priv->dialog, GPK_CLIENT_DIALOG_PAGE_PROGRESS, GPK_CLIENT_DIALOG_PACKAGE_PADDING, 0);
+
 	/* reset */
 	ret = pk_client_reset (gclient->priv->client_action, &error_local);
 	if (!ret) {
@@ -1288,12 +1304,6 @@
 		goto out;
 	}
 
-	/* setup the UI */
-	if (gclient->priv->show_progress) {
-		gpk_client_dialog_set_message (gclient->priv->dialog, "");
-		gpk_client_dialog_show_page (gclient->priv->dialog, GPK_CLIENT_DIALOG_PAGE_PROGRESS, GPK_CLIENT_DIALOG_PACKAGE_PADDING, 0);
-	}
-
 	/* wait for an answer */
 	g_main_loop_run (gclient->priv->loop);
 
@@ -1327,14 +1337,6 @@
 	g_return_val_if_fail (GPK_IS_CLIENT (gclient), FALSE);
 	g_return_val_if_fail (package_ids != NULL, FALSE);
 
-	/* set title */
-	gpk_client_dialog_set_title (gclient->priv->dialog, _("Installing packages"));
-	gpk_client_dialog_set_message (gclient->priv->dialog, "");
-
-	/* setup the UI */
-	if (gclient->priv->show_progress)
-		gpk_client_dialog_show_page (gclient->priv->dialog, GPK_CLIENT_DIALOG_PAGE_PROGRESS, GPK_CLIENT_DIALOG_PACKAGE_PADDING, 0);
-
 	/* are we dumb and can't check for depends? */
 	if (!pk_bitfield_contain (gclient->priv->roles, PK_ROLE_ENUM_GET_DEPENDS)) {
 		egg_warning ("skipping depends check");
@@ -1354,8 +1356,14 @@
 		goto skip_checks;
 	}
 
-	/* get the packages we depend on */
+	/* set title */
 	gpk_client_dialog_set_title (gclient->priv->dialog, _("Finding packages we depend on"));
+	gpk_client_dialog_set_message (gclient->priv->dialog, "");
+	gpk_client_dialog_set_help_id (gclient->priv->dialog, "dialog-finding-depends");
+
+	/* setup the UI */
+	if (gclient->priv->show_progress)
+		gpk_client_dialog_show_page (gclient->priv->dialog, GPK_CLIENT_DIALOG_PAGE_PROGRESS, GPK_CLIENT_DIALOG_PACKAGE_PADDING, 0);
 
 	/* reset */
 	ret = pk_client_reset (gclient->priv->client_resolve, &error_local);
@@ -1397,6 +1405,7 @@
 	gpk_client_dialog_set_title (gclient->priv->dialog, title);
 	gpk_client_dialog_set_message (gclient->priv->dialog, message);
 	gpk_client_dialog_set_action (gclient->priv->dialog, _("Install"));
+	gpk_client_dialog_set_help_id (gclient->priv->dialog, "dialog-install-other-packages");
 	gpk_client_dialog_show_page (gclient->priv->dialog, GPK_CLIENT_DIALOG_PAGE_CONFIRM, GPK_CLIENT_DIALOG_PACKAGE_LIST, gclient->priv->timestamp);
 	button = gpk_client_dialog_run (gclient->priv->dialog);
 
@@ -1409,6 +1418,13 @@
 	}
 
 skip_checks:
+	/* try to install the package_id */
+	gpk_client_dialog_set_title (gclient->priv->dialog, _("Installing packages"));
+	gpk_client_dialog_set_message (gclient->priv->dialog, "");
+	gpk_client_dialog_set_help_id (gclient->priv->dialog, NULL);
+	if (gclient->priv->show_progress)
+		gpk_client_dialog_show_page (gclient->priv->dialog, GPK_CLIENT_DIALOG_PAGE_PROGRESS, GPK_CLIENT_DIALOG_PACKAGE_PADDING, 0);
+
 	/* reset */
 	ret = pk_client_reset (gclient->priv->client_action, &error_local);
 	if (!ret) {
@@ -1418,13 +1434,6 @@
 		goto out;
 	}
 
-	/* try to install the package_id */
-	gpk_client_dialog_set_title (gclient->priv->dialog, _("Installing packages"));
-	if (gclient->priv->show_progress) {
-		gpk_client_dialog_set_message (gclient->priv->dialog, "");
-		gpk_client_dialog_show_page (gclient->priv->dialog, GPK_CLIENT_DIALOG_PAGE_PROGRESS, GPK_CLIENT_DIALOG_PACKAGE_PADDING, 0);
-	}
-
 	ret = pk_client_install_packages (gclient->priv->client_action, package_ids, &error_local);
 	if (!ret) {
 		gpk_client_error_msg (gclient, _("Failed to install package"), error_local);
@@ -1505,6 +1514,7 @@
 	/* set title */
 	gpk_client_dialog_set_title (gclient->priv->dialog, _("Searching for packages"));
 	gpk_client_dialog_set_image_status (gclient->priv->dialog, PK_STATUS_ENUM_WAIT);
+	gpk_client_dialog_set_help_id (gclient->priv->dialog, "dialog-finding-packages");
 	if (gclient->priv->show_progress)
 		gpk_client_dialog_show_page (gclient->priv->dialog, GPK_CLIENT_DIALOG_PAGE_PROGRESS, 0, 0);
 
@@ -1536,6 +1546,7 @@
 			title = g_strdup_printf (_("Could not find %s"), text);
 			gpk_client_dialog_set_title (gclient->priv->dialog, _("Failed to find package"));
 			gpk_client_dialog_set_message (gclient->priv->dialog, _("The packages could not be found in any software source"));
+			gpk_client_dialog_set_help_id (gclient->priv->dialog, "dialog-package-not-found");
 			gpk_client_dialog_show_page (gclient->priv->dialog, GPK_CLIENT_DIALOG_PAGE_WARNING, 0, 0);
 			gpk_client_dialog_run (gclient->priv->dialog);
 			g_free (text);
@@ -1566,6 +1577,7 @@
 			title = g_strdup_printf (_("Failed to install %s"), text);
 			gpk_client_dialog_set_title (gclient->priv->dialog, _("Failed to install package"));
 			gpk_client_dialog_set_message (gclient->priv->dialog, _("The package is already installed"));
+			gpk_client_dialog_set_help_id (gclient->priv->dialog, NULL);
 			gpk_client_dialog_show_page (gclient->priv->dialog, GPK_CLIENT_DIALOG_PAGE_WARNING, 0, 0);
 			gpk_client_dialog_run (gclient->priv->dialog);
 			g_free (text);
@@ -1581,6 +1593,7 @@
 		if (gclient->priv->show_warning) {
 			gpk_client_dialog_set_title (gclient->priv->dialog, _("Failed to install package"));
 			gpk_client_dialog_set_message (gclient->priv->dialog, _("Incorrect response from search"));
+			gpk_client_dialog_set_help_id (gclient->priv->dialog, NULL);
 			gpk_client_dialog_show_page (gclient->priv->dialog, GPK_CLIENT_DIALOG_PAGE_WARNING, 0, 0);
 			gpk_client_dialog_run (gclient->priv->dialog);
 		}
@@ -1685,6 +1698,7 @@
 		if (gclient->priv->show_warning) {
 			gpk_client_dialog_set_title (gclient->priv->dialog, _("Failed to find package"));
 			gpk_client_dialog_set_message (gclient->priv->dialog, _("The file could not be found in any packages"));
+			gpk_client_dialog_set_help_id (gclient->priv->dialog, "dialog-package-not-found");
 			gpk_client_dialog_show_page (gclient->priv->dialog, GPK_CLIENT_DIALOG_PAGE_WARNING, 0, 0);
 			gpk_client_dialog_run (gclient->priv->dialog);
 		}
@@ -1711,6 +1725,7 @@
 			text = g_strdup_printf (_("The %s package already provides the file %s"), id->name, full_path);
 			gpk_client_dialog_set_title (gclient->priv->dialog, _("Failed to install file"));
 			gpk_client_dialog_set_message (gclient->priv->dialog, text);
+			gpk_client_dialog_set_help_id (gclient->priv->dialog, NULL);
 			gpk_client_dialog_show_page (gclient->priv->dialog, GPK_CLIENT_DIALOG_PAGE_WARNING, 0, 0);
 			gpk_client_dialog_run (gclient->priv->dialog);
 			g_free (text);
@@ -1885,6 +1900,7 @@
 	gpk_client_dialog_set_title (gclient->priv->dialog, _("Searching for plugins"));
 	gpk_client_dialog_set_image_status (gclient->priv->dialog, PK_STATUS_ENUM_WAIT);
 	gpk_client_dialog_set_message (gclient->priv->dialog, "");
+	gpk_client_dialog_set_help_id (gclient->priv->dialog, "dialog-finding-packages");
 
 	/* setup the UI */
 	if (gclient->priv->show_progress)
@@ -1905,6 +1921,7 @@
 			if (gclient->priv->show_warning) {
 				gpk_client_dialog_set_title (gclient->priv->dialog, _("Failed to search for plugin"));
 				gpk_client_dialog_set_message (gclient->priv->dialog, _("Could not find plugin in any configured software source"));
+				gpk_client_dialog_set_help_id (gclient->priv->dialog, "dialog-package-not-found");
 				gpk_client_dialog_show_page (gclient->priv->dialog, GPK_CLIENT_DIALOG_PAGE_WARNING, 0, 0);
 				gpk_client_dialog_run (gclient->priv->dialog);
 			}
@@ -1940,6 +1957,7 @@
 	gpk_client_dialog_set_message (gclient->priv->dialog, message);
 	gpk_client_dialog_set_image (gclient->priv->dialog, "dialog-information");
 	gpk_client_dialog_set_action (gclient->priv->dialog, _("Install"));
+	gpk_client_dialog_set_help_id (gclient->priv->dialog, NULL);
 	gpk_client_dialog_show_page (gclient->priv->dialog, GPK_CLIENT_DIALOG_PAGE_CONFIRM, GPK_CLIENT_DIALOG_PACKAGE_LIST, gclient->priv->timestamp);
 	button = gpk_client_dialog_run (gclient->priv->dialog);
 
@@ -2022,6 +2040,7 @@
 	/* set title */
 	gpk_client_dialog_set_title (gclient->priv->dialog, _("Searching for file handlers"));
 	gpk_client_dialog_set_image_status (gclient->priv->dialog, PK_STATUS_ENUM_WAIT);
+	gpk_client_dialog_set_help_id (gclient->priv->dialog, "dialog-finding-packages");
 
 	/* setup the UI */
 	if (gclient->priv->show_progress)
@@ -2053,6 +2072,7 @@
 		if (gclient->priv->show_warning) {
 			gpk_client_dialog_set_title (gclient->priv->dialog, _("Failed to find software"));
 			gpk_client_dialog_set_message (gclient->priv->dialog, _("No new applications can be found to handle this type of file"));
+			gpk_client_dialog_set_help_id (gclient->priv->dialog, "dialog-package-not-found");
 			gpk_client_dialog_show_page (gclient->priv->dialog, GPK_CLIENT_DIALOG_PAGE_WARNING, 0, 0);
 			gpk_client_dialog_run (gclient->priv->dialog);
 		}
@@ -2070,6 +2090,7 @@
 		if (gclient->priv->show_warning) {
 			gpk_client_dialog_set_title (gclient->priv->dialog, _("Failed to install software"));
 			gpk_client_dialog_set_message (gclient->priv->dialog, _("No applications were chosen to be installed"));
+			gpk_client_dialog_set_help_id (gclient->priv->dialog, NULL);
 			gpk_client_dialog_show_page (gclient->priv->dialog, GPK_CLIENT_DIALOG_PAGE_WARNING, 0, 0);
 			gpk_client_dialog_run (gclient->priv->dialog);
 		}
@@ -2144,6 +2165,7 @@
 	/* set title */
 	gpk_client_dialog_set_title (gclient->priv->dialog, _("Searching for fonts"));
 	gpk_client_dialog_set_image_status (gclient->priv->dialog, PK_STATUS_ENUM_WAIT);
+	gpk_client_dialog_set_help_id (gclient->priv->dialog, "dialog-finding-packages");
 
 	/* setup the UI */
 	if (gclient->priv->show_progress)
@@ -2175,6 +2197,7 @@
 		if (gclient->priv->show_warning) {
 			gpk_client_dialog_set_title (gclient->priv->dialog, _("Failed to find font"));
 			gpk_client_dialog_set_message (gclient->priv->dialog, _("No new fonts can be found for this document"));
+			gpk_client_dialog_set_help_id (gclient->priv->dialog, "dialog-package-not-found");
 			gpk_client_dialog_show_page (gclient->priv->dialog, GPK_CLIENT_DIALOG_PAGE_WARNING, 0, 0);
 			gpk_client_dialog_run (gclient->priv->dialog);
 		}
@@ -2194,6 +2217,7 @@
 	gpk_client_dialog_set_message (gclient->priv->dialog, _("Do you want to install these packages now?"));
 	gpk_client_dialog_set_image (gclient->priv->dialog, "dialog-information");
 	gpk_client_dialog_set_action (gclient->priv->dialog, _("Install"));
+	gpk_client_dialog_set_help_id (gclient->priv->dialog, NULL);
 	gpk_client_dialog_show_page (gclient->priv->dialog, GPK_CLIENT_DIALOG_PAGE_CONFIRM, GPK_CLIENT_DIALOG_PACKAGE_LIST, gclient->priv->timestamp);
 	button = gpk_client_dialog_run (gclient->priv->dialog);
 
@@ -2276,6 +2300,7 @@
 	gpk_client_dialog_set_title (gclient->priv->dialog, title);
 	gpk_client_dialog_set_message (gclient->priv->dialog, message);
 	gpk_client_dialog_set_action (gclient->priv->dialog, _("Install"));
+	gpk_client_dialog_set_help_id (gclient->priv->dialog, "dialog-install-catalogs");
 	gpk_client_dialog_show_page (gclient->priv->dialog, GPK_CLIENT_DIALOG_PAGE_CONFIRM, 0, gclient->priv->timestamp);
 	button = gpk_client_dialog_run (gclient->priv->dialog);
 	g_free (message);
@@ -2306,6 +2331,7 @@
 		if (gclient->priv->show_warning) {
 			gpk_client_dialog_set_title (gclient->priv->dialog, _("No packages need to be installed"));
 			gpk_client_dialog_set_message (gclient->priv->dialog, "");
+			gpk_client_dialog_set_help_id (gclient->priv->dialog, "dialog-catalog-none-required");
 			gpk_client_dialog_show_page (gclient->priv->dialog, GPK_CLIENT_DIALOG_PAGE_WARNING, 0, gclient->priv->timestamp);
 			gpk_client_dialog_run (gclient->priv->dialog);
 		}
@@ -2340,6 +2366,7 @@
 	gpk_client_dialog_set_message (gclient->priv->dialog, text);
 	gpk_client_dialog_set_image (gclient->priv->dialog, "dialog-question");
 	gpk_client_dialog_set_action (gclient->priv->dialog, _("Install"));
+	gpk_client_dialog_set_help_id (gclient->priv->dialog, NULL);
 	gpk_client_dialog_show_page (gclient->priv->dialog, GPK_CLIENT_DIALOG_PAGE_CONFIRM, 0, gclient->priv->timestamp);
 	button = gpk_client_dialog_run (gclient->priv->dialog);
 
@@ -2390,6 +2417,7 @@
 	/* set title */
 	gpk_client_dialog_set_title (gclient->priv->dialog, _("System update"));
 	gpk_client_dialog_set_message (gclient->priv->dialog, "");
+	gpk_client_dialog_set_help_id (gclient->priv->dialog, "dialog-update-system");
 
 	/* wrap update, but handle all the GPG and EULA stuff */
 	ret = pk_client_update_system (gclient->priv->client_action, &error_local);
@@ -2461,6 +2489,7 @@
 
 	/* set title */
 	gpk_client_dialog_set_title (gclient->priv->dialog, _("Refresh package lists"));
+	gpk_client_dialog_set_help_id (gclient->priv->dialog, "dialog-refresh");
 
 	/* wrap update, but handle all the GPG and EULA stuff */
 	ret = pk_client_refresh_cache (gclient->priv->client_action, TRUE, &error_local);
@@ -2518,11 +2547,10 @@
 		goto out;
 	}
 
-	/* setup the UI */
-
 	/* ignore this if it's uninteresting */
 	if (gclient->priv->show_progress) {
 		gpk_client_dialog_set_title (gclient->priv->dialog, _("Getting update lists"));
+		gpk_client_dialog_set_help_id (gclient->priv->dialog, NULL);
 		gpk_client_dialog_show_page (gclient->priv->dialog, GPK_CLIENT_DIALOG_PAGE_PROGRESS, 0, 0);
 	}
 
@@ -2578,6 +2606,7 @@
 
 	/* setup the UI */
 	gpk_client_dialog_set_title (gclient->priv->dialog, _("Getting distribution upgrade information"));
+	gpk_client_dialog_set_help_id (gclient->priv->dialog, "dialog-get-upgrades");
 	if (gclient->priv->show_progress)
 		gpk_client_dialog_show_page (gclient->priv->dialog, GPK_CLIENT_DIALOG_PAGE_PROGRESS, 0, 0);
 
@@ -2621,6 +2650,7 @@
 
 	/* setup the UI */
 	gpk_client_dialog_set_title (gclient->priv->dialog, _("Getting file lists"));
+	gpk_client_dialog_set_help_id (gclient->priv->dialog, NULL);
 	if (gclient->priv->show_progress)
 		gpk_client_dialog_show_page (gclient->priv->dialog, GPK_CLIENT_DIALOG_PAGE_PROGRESS, 0, 0);
 
@@ -2668,6 +2698,7 @@
 	/* setup the UI */
 	gpk_client_dialog_set_title (gclient->priv->dialog, _("Update packages"));
 	gpk_client_dialog_set_message (gclient->priv->dialog, "");
+	gpk_client_dialog_set_help_id (gclient->priv->dialog, "dialog-update-packages");
 	if (gclient->priv->show_progress)
 		gpk_client_dialog_show_page (gclient->priv->dialog, GPK_CLIENT_DIALOG_PAGE_PROGRESS, GPK_CLIENT_DIALOG_PACKAGE_PADDING, 0);
 
@@ -2776,6 +2807,7 @@
 	g_return_val_if_fail (GPK_IS_CLIENT (gclient), FALSE);
 
 	/* go back to the UI */
+	gpk_client_dialog_set_help_id (gclient->priv->dialog, NULL);
 	gpk_client_dialog_show_page (gclient->priv->dialog, GPK_CLIENT_DIALOG_PAGE_PROGRESS, GPK_CLIENT_DIALOG_PACKAGE_PADDING, 0);
 	gclient->priv->using_secondary_client = FALSE;
 
@@ -2866,6 +2898,7 @@
 	text = pk_common_get_role_text (gclient->priv->client_action);
 	gpk_client_dialog_set_title (gclient->priv->dialog, text);
 	g_free (text);
+	gpk_client_dialog_set_help_id (gclient->priv->dialog, NULL);
 
 	/* coldplug */
 	ret = pk_client_get_status (gclient->priv->client_action, &status, NULL);
@@ -2921,11 +2954,10 @@
 	    role == PK_ROLE_ENUM_SEARCH_DETAILS ||
 	    role == PK_ROLE_ENUM_SEARCH_FILE ||
 	    role == PK_ROLE_ENUM_SEARCH_NAME ||
-	    role == PK_ROLE_ENUM_GET_UPDATES) {
+	    role == PK_ROLE_ENUM_GET_UPDATES)
 		gpk_client_dialog_show_page (gclient->priv->dialog, GPK_CLIENT_DIALOG_PAGE_PROGRESS, 0, 0);
-	} else {
+	else
 		gpk_client_dialog_show_page (gclient->priv->dialog, GPK_CLIENT_DIALOG_PAGE_PROGRESS, GPK_CLIENT_DIALOG_PACKAGE_PADDING, 0);
-	}
 
 	/* wait for an answer */
 	g_main_loop_run (gclient->priv->loop);
@@ -2934,18 +2966,133 @@
 }
 
 /**
- * gpk_client_set_application:
+ * gpk_client_get_package_for_exec:
+ **/
+static gchar *
+gpk_client_get_package_for_exec (GpkClient *gclient, const gchar *exec)
+{
+	gchar *package = NULL;
+	gboolean ret;
+	GError *error = NULL;
+	guint length;
+	PkPackageList *list = NULL;
+	const PkPackageObj *obj;
+
+	/* reset client */
+	ret = pk_client_reset (gclient->priv->client_resolve, &error);
+	if (!ret) {
+		egg_warning ("failed to reset client: %s", error->message);
+		g_error_free (error);
+		goto out;
+	}
+
+	/* find the package name */
+	ret = pk_client_search_file (gclient->priv->client_resolve, pk_bitfield_value (PK_FILTER_ENUM_INSTALLED), exec, &error);
+	if (!ret) {
+		egg_warning ("failed to search file: %s", error->message);
+		g_error_free (error);
+		goto out;
+	}
+
+	/* get the list of packages */
+	list = pk_client_get_package_list (gclient->priv->client_resolve);
+	length = pk_package_list_get_size (list);
+
+	/* nothing found */
+	if (length == 0) {
+		egg_debug ("cannot find installed package that provides : %s", exec);
+		goto out;
+	}
+
+	/* check we have one */
+	if (length != 1)
+		egg_warning ("not one return, using first");
+
+	/* copy name */
+	obj = pk_package_list_get_obj (list, 0);
+	package = g_strdup (obj->id->name);
+	egg_debug ("got package %s", package);
+
+out:
+	/* use the exec name if we can't find an installed package */
+	if (list != NULL)
+		g_object_unref (list);
+	return package;
+}
+
+/**
+ * gpk_client_path_is_trusted:
+ **/
+static gboolean
+gpk_client_path_is_trusted (const gchar *exec)
+{
+	/* special case the plugin helper -- it's trusted */
+	if (egg_strequal (exec, "/usr/libexec/gst-install-plugins-helper") ||
+	    egg_strequal (exec, "/usr/libexec/pk-gstreamer-install"))
+		return TRUE;
+#if 0
+	/* debugging code, should never be run... */
+	if (egg_strequal (exec, "/usr/bin/python") ||
+	    egg_strequal (exec, "/home/hughsie/Code/PackageKit/contrib/gstreamer-plugin/pk-gstreamer-install"))
+		return TRUE;
+#endif
+	return FALSE;
+}
+
+/**
+ * gpk_client_set_parent_exec:
  *
  * This sets the package name of the application that is trying to install
  * software, e.g. "totem" and is used for the PkExtra lookup to provide
  * a translated name and icon.
  **/
 gboolean
-gpk_client_set_application (GpkClient *gclient, const gchar *application)
+gpk_client_set_parent_exec (GpkClient *gclient, const gchar *exec)
 {
+	GpkX11 *x11;
+	gchar *package;
+
 	g_return_val_if_fail (GPK_IS_CLIENT (gclient), FALSE);
-	g_free (gclient->priv->application);
-	gclient->priv->application = g_strdup (application);
+
+	/* old values invalid */
+	g_free (gclient->priv->parent_title);
+	g_free (gclient->priv->parent_icon_name);
+	gclient->priv->parent_title = NULL;
+	gclient->priv->parent_icon_name = NULL;
+
+	/* is the binary trusted, i.e. can we probe it's window properties */
+	if (gpk_client_path_is_trusted (exec)) {
+		egg_debug ("using application window properties");
+		/* get from window properties */
+		x11 = gpk_x11_new ();
+		gpk_x11_set_window (x11, gclient->priv->parent_window);
+		gclient->priv->parent_title = gpk_x11_get_title (x11);
+		g_object_unref (x11);
+		goto out;
+	}
+
+	/* get from installed database */
+	package = gpk_client_get_package_for_exec (gclient, exec);
+	egg_debug ("got package %s", package);
+
+	/* try to get from PkExtra */
+	if (package != NULL) {
+		gclient->priv->parent_title = g_strdup (pk_extra_get_summary (gclient->priv->extra, package));
+		gclient->priv->parent_icon_name = g_strdup (pk_extra_get_icon_name (gclient->priv->extra, package));
+		/* fallback to package name */
+		if (gclient->priv->parent_title == NULL) {
+			egg_debug ("did not get localised description for %s", package);
+			gclient->priv->parent_title = g_strdup (package);
+		}
+	}
+
+	/* fallback to exec - eugh... */
+	if (gclient->priv->parent_title == NULL) {
+		egg_debug ("did not get package for %s, using exec basename", package);
+		gclient->priv->parent_title = g_path_get_basename (exec);
+	}
+out:
+	egg_debug ("got name=%s, icon=%s", gclient->priv->parent_title, gclient->priv->parent_icon_name);
 	return TRUE;
 }
 
@@ -3021,7 +3168,8 @@
 
 	gclient->priv->files_array = NULL;
 	gclient->priv->parent_window = NULL;
-	gclient->priv->application = NULL;
+	gclient->priv->parent_title = NULL;
+	gclient->priv->parent_icon_name = NULL;
 	gclient->priv->using_secondary_client = FALSE;
 	gclient->priv->exit = PK_EXIT_ENUM_FAILED;
 	gclient->priv->show_confirm = TRUE;
@@ -3113,7 +3261,8 @@
 	if (gclient->priv->finished_timer_id != 0)
 		g_source_remove (gclient->priv->finished_timer_id);
 
-	g_free (gclient->priv->application);
+	g_free (gclient->priv->parent_title);
+	g_free (gclient->priv->parent_icon_name);
 	g_ptr_array_foreach (gclient->priv->upgrade_array, (GFunc) pk_distro_upgrade_obj_free, NULL);
 	g_ptr_array_free (gclient->priv->upgrade_array, TRUE);
 	g_strfreev (gclient->priv->files_array);

Modified: trunk/src/gpk-client.h
==============================================================================
--- trunk/src/gpk-client.h	(original)
+++ trunk/src/gpk-client.h	Wed Oct  1 15:53:07 2008
@@ -131,12 +131,12 @@
 							 GError		**error);
 gboolean	 gpk_client_monitor_tid			(GpkClient	*gclient,
 							 const gchar	*tid);
-gboolean	 gpk_client_set_application		(GpkClient	*gclient,
-							 const gchar	*application);
 gboolean	 gpk_client_set_parent			(GpkClient	*gclient,
 							 GtkWindow	*window);
 gboolean	 gpk_client_set_parent_xid		(GpkClient	*gclient,
 							 guint		 xid);
+gboolean	 gpk_client_set_parent_exec		(GpkClient	*gclient,
+							 const gchar	*exec);
 gboolean	 gpk_client_update_timestamp		(GpkClient	*gclient,
 							 guint		 timestamp);
 

Modified: trunk/src/gpk-dbus.c
==============================================================================
--- trunk/src/gpk-dbus.c	(original)
+++ trunk/src/gpk-dbus.c	Wed Oct  1 15:53:07 2008
@@ -41,20 +41,16 @@
 #include <polkit/polkit.h>
 #include <polkit-dbus/polkit-dbus.h>
 
-#include <gdk/gdk.h>
-#include <gdk/gdkx.h>
-#include <X11/Xatom.h>
-
 #include <pk-common.h>
 #include <pk-package-id.h>
 #include <pk-package-ids.h>
-#include <pk-client.h>
 #include <pk-enum.h>
 #include <pk-package-list.h>
 
 #include "egg-debug.h"
 
 #include "gpk-dbus.h"
+#include "gpk-x11.h"
 #include "gpk-client.h"
 
 static void     gpk_dbus_class_init	(GpkDbusClass	*klass);
@@ -65,7 +61,6 @@
 
 struct GpkDbusPrivate
 {
-	PkClient		*client;
 	GpkClient		*gclient;
 };
 
@@ -154,145 +149,23 @@
 }
 
 /**
- * gpk_dbus_get_application_for_sender:
- **/
-static gchar *
-gpk_dbus_get_application_for_sender (GpkDbus *dbus, const gchar *sender)
-{
-	gchar *exec;
-	gchar *application = NULL;
-	gboolean ret;
-	GError *error = NULL;
-	guint length;
-	PkPackageList *list = NULL;
-	const PkPackageObj *obj;
-
-	exec = gpk_dbus_get_exec_for_sender (sender);
-	if (exec == NULL) {
-		egg_warning ("could not get exec name for %s", sender);
-		goto out;
-	}
-	egg_debug ("got application path %s", exec);
-
-	/* reset client */
-	ret = pk_client_reset (dbus->priv->client, &error);
-	if (!ret) {
-		egg_warning ("failed to reset client: %s", error->message);
-		g_error_free (error);
-		goto out;
-	}
-
-	/* find the package name */
-	ret = pk_client_search_file (dbus->priv->client, pk_bitfield_value (PK_FILTER_ENUM_INSTALLED), exec, &error);
-	if (!ret) {
-		egg_warning ("failed to search file: %s", error->message);
-		g_error_free (error);
-		goto out;
-	}
-
-	/* get the list of packages */
-	list = pk_client_get_package_list (dbus->priv->client);
-	length = pk_package_list_get_size (list);
-
-	/* nothing found */
-	if (length == 0) {
-		egg_debug ("cannot find installed package that provides : %s", exec);
-		goto out;
-	}
-
-	/* check we have one */
-	if (length != 1)
-		egg_warning ("not one return, using first");
-
-	/* copy name */
-	obj = pk_package_list_get_obj (list, 0);
-	application = g_strdup (obj->id->name);
-	egg_debug ("got application package %s", application);
-
-out:
-	/* use the exec name if we can't find an installed package */
-	if (application == NULL && exec != NULL)
-		application = g_strdup (exec);
-	if (list != NULL)
-		g_object_unref (list);
-	g_free (exec);
-	return application;
-}
-
-/**
- * gpk_dbus_get_user_time_for_xid:
- **/
-static guint32
-gpk_dbus_get_user_time_for_xid (guint xid)
-{
-	guint32 timestamp = 0;
-	GdkWindow *window;
-	GdkDisplay *display;
-	Atom atom_window = None;
-	Atom atom_time = None;
-	guchar *data;
-	Atom type_return;
-	gint format_return;
-	gulong nitems_return;
-	gulong bytes_after_return;
-	Window *win = NULL;
-
-	/* check we have a foreign window */
-	if (xid == 0) {
-		egg_debug ("no XID, so cannot work with focus stealing prevention");
-		goto out;
-	}
-
-	/* use gdk where possible */
-	display = gdk_display_get_default ();
-	window = gdk_window_foreign_new_for_display (display, xid);
-
-	/* get _NET_WM_USER_TIME_WINDOW which points to a window on which you can find the _NET_WM_USER_TIME property */
-	atom_window = gdk_x11_get_xatom_by_name_for_display (display, "_NET_WM_USER_TIME_WINDOW");
-	if (XGetWindowProperty (GDK_DISPLAY_XDISPLAY (display), GDK_WINDOW_XID (window), atom_window,
-				0, G_MAXLONG, False, XA_WINDOW, &type_return,
-				&format_return, &nitems_return, &bytes_after_return,
-				&data) == Success) {
-		if ((type_return == XA_WINDOW) && (format_return == 32) && (data)) {
-			win = (Window *)data;
-			g_message ("got window %p", win);
-		}
-	}
-
-	/* nothing found */
-	if (win == NULL) {
-		g_warning ("could not find window");
-		goto out;
-	}
-
-	/* get _NET_WM_USER_TIME so we can get the user time */
-	atom_time = gdk_x11_get_xatom_by_name_for_display (display, "_NET_WM_USER_TIME");
-	if (XGetWindowProperty (GDK_DISPLAY_XDISPLAY (display), *win, atom_time,
-				0, G_MAXLONG, False, XA_CARDINAL, &type_return,
-				&format_return, &nitems_return, &bytes_after_return,
-				&data) == Success) {
-		if ((type_return == XA_CARDINAL) && (format_return == 32) && (data)) {
-			timestamp = (guint32) *data;
-			g_message ("got timestamp %i", timestamp);
-		}
-	}
-
-out:
-	return timestamp;
-}
-
-/**
  * gpk_dbus_set_parent_window:
  **/
 void
 gpk_dbus_set_parent_window (GpkDbus *dbus, guint32 xid, guint32 timestamp)
 {
+	GpkX11 *x11;
+
 	/* set the parent window */
 	gpk_client_set_parent_xid (dbus->priv->gclient, xid);
 
 	/* try to get the user time of the window if not provided */
-	if (timestamp == 0)
-		timestamp = gpk_dbus_get_user_time_for_xid (xid);
+	if (timestamp == 0 && xid != 0) {
+		x11 = gpk_x11_new ();
+		gpk_x11_set_xid (x11, xid);
+		timestamp = gpk_x11_get_user_time (x11);
+		g_object_unref (x11);
+	}
 
 	/* set the last interaction */
 	gpk_client_update_timestamp (dbus->priv->gclient, timestamp);
@@ -309,7 +182,7 @@
 	GError *error_local = NULL;
 	gchar *sender;
 	gchar **full_paths;
-	gchar *application;
+	gchar *exec;
 
 	g_return_if_fail (PK_IS_DBUS (dbus));
 
@@ -317,17 +190,16 @@
 
 	/* check sender */
 	sender = dbus_g_method_get_sender (context);
-	egg_debug ("sender=%s", sender);
 
 	/* just convert from char* to char** */
 	full_paths = g_strsplit (full_path, "|", 1);
 	gpk_dbus_set_parent_window (dbus, xid, timestamp);
 
 	/* get the program name and set */
-	application = gpk_dbus_get_application_for_sender (dbus, sender);
-	gpk_client_set_application (dbus->priv->gclient, application);
+	exec = gpk_dbus_get_exec_for_sender (sender);
+	gpk_client_set_parent_exec (dbus->priv->gclient, exec);
 	g_free (sender);
-	g_free (application);
+	g_free (exec);
 
 	/* do the action */
 	ret = gpk_client_install_local_files (dbus->priv->gclient, full_paths, &error_local);
@@ -353,23 +225,21 @@
 	GError *error;
 	GError *error_local = NULL;
 	gchar *sender;
-	gchar *application;
+	gchar *exec;
 
 	g_return_if_fail (PK_IS_DBUS (dbus));
 
 	egg_debug ("InstallProvideFile method called: %s", full_path);
 
-	/* check sender */
-	sender = dbus_g_method_get_sender (context);
-	egg_debug ("sender=%s", sender);
-
+	/* set modality */
 	gpk_dbus_set_parent_window (dbus, xid, timestamp);
 
 	/* get the program name and set */
-	application = gpk_dbus_get_application_for_sender (dbus, sender);
-	gpk_client_set_application (dbus->priv->gclient, application);
+	sender = dbus_g_method_get_sender (context);
+	exec = gpk_dbus_get_exec_for_sender (sender);
+	gpk_client_set_parent_exec (dbus->priv->gclient, exec);
 	g_free (sender);
-	g_free (application);
+	g_free (exec);
 
 	/* do the action */
 	ret = gpk_client_install_provide_file (dbus->priv->gclient, full_path, &error_local);
@@ -395,7 +265,7 @@
 	GError *error_local = NULL;
 	gchar *sender;
 	gchar **package_names;
-	gchar *application;
+	gchar *exec;
 
 	g_return_if_fail (PK_IS_DBUS (dbus));
 
@@ -403,17 +273,16 @@
 
 	/* check sender */
 	sender = dbus_g_method_get_sender (context);
-	egg_debug ("sender=%s", sender);
 
 	/* just convert from char* to char** */
 	package_names = g_strsplit (package_name, "|", 1);
 	gpk_dbus_set_parent_window (dbus, xid, timestamp);
 
 	/* get the program name and set */
-	application = gpk_dbus_get_application_for_sender (dbus, sender);
-	gpk_client_set_application (dbus->priv->gclient, application);
+	exec = gpk_dbus_get_exec_for_sender (sender);
+	gpk_client_set_parent_exec (dbus->priv->gclient, exec);
 	g_free (sender);
-	g_free (application);
+	g_free (exec);
 
 	/* do the action */
 	ret = gpk_client_install_package_names (dbus->priv->gclient, package_names, &error_local);
@@ -440,23 +309,21 @@
 	GError *error;
 	GError *error_local = NULL;
 	gchar *sender;
-	gchar *application;
+	gchar *exec;
 
 	g_return_if_fail (PK_IS_DBUS (dbus));
 
 	egg_debug ("InstallMimeType method called: %s", mime_type);
 
-	/* check sender */
-	sender = dbus_g_method_get_sender (context);
-	egg_debug ("sender=%s", sender);
-
+	/* set modality */
 	gpk_dbus_set_parent_window (dbus, xid, timestamp);
 
 	/* get the program name and set */
-	application = gpk_dbus_get_application_for_sender (dbus, sender);
-	gpk_client_set_application (dbus->priv->gclient, application);
+	sender = dbus_g_method_get_sender (context);
+	exec = gpk_dbus_get_exec_for_sender (sender);
+	gpk_client_set_parent_exec (dbus->priv->gclient, exec);
 	g_free (sender);
-	g_free (application);
+	g_free (exec);
 
 	/* do the action */
 	ret = gpk_client_install_mime_type (dbus->priv->gclient, mime_type, &error_local);
@@ -481,7 +348,7 @@
 	GError *error;
 	GError *error_local = NULL;
 	gchar *sender;
-	gchar *application;
+	gchar *exec;
 
 	g_return_if_fail (PK_IS_DBUS (dbus));
 
@@ -496,17 +363,15 @@
 
 	egg_debug ("InstallGStreamerCodecs method called");
 
-	/* check sender */
-	sender = dbus_g_method_get_sender (context);
-	egg_debug ("sender=%s", sender);
-
+	/* set modality */
 	gpk_dbus_set_parent_window (dbus, xid, timestamp);
 
 	/* get the program name and set */
-	application = gpk_dbus_get_application_for_sender (dbus, sender);
-	gpk_client_set_application (dbus->priv->gclient, application);
+	sender = dbus_g_method_get_sender (context);
+	exec = gpk_dbus_get_exec_for_sender (sender);
+	gpk_client_set_parent_exec (dbus->priv->gclient, exec);
 	g_free (sender);
-	g_free (application);
+	g_free (exec);
 
 	/* unwrap and turn into a GPtrArray */
 	array = g_ptr_array_new ();
@@ -552,23 +417,21 @@
 	GError *error;
 	GError *error_local = NULL;
 	gchar *sender;
-	gchar *application;
+	gchar *exec;
 
 	g_return_if_fail (PK_IS_DBUS (dbus));
 
 	egg_debug ("InstallFont method called: %s", font_desc);
 
-	/* check sender */
-	sender = dbus_g_method_get_sender (context);
-	egg_debug ("sender=%s", sender);
-
+	/* set modality */
 	gpk_dbus_set_parent_window (dbus, xid, timestamp);
 
 	/* get the program name and set */
-	application = gpk_dbus_get_application_for_sender (dbus, sender);
-	gpk_client_set_application (dbus->priv->gclient, application);
+	sender = dbus_g_method_get_sender (context);
+	exec = gpk_dbus_get_exec_for_sender (sender);
+	gpk_client_set_parent_exec (dbus->priv->gclient, exec);
 	g_free (sender);
-	g_free (application);
+	g_free (exec);
 
 	/* do the action */
 	ret = gpk_client_install_font (dbus->priv->gclient, font_desc, &error_local);
@@ -604,10 +467,6 @@
 {
 	dbus->priv = GPK_DBUS_GET_PRIVATE (dbus);
 	dbus->priv->gclient = gpk_client_new ();
-	dbus->priv->client = pk_client_new ();
-	pk_client_set_synchronous (dbus->priv->client, TRUE, NULL);
-	pk_client_set_use_buffer (dbus->priv->client, TRUE, NULL);
-
 }
 
 /**
@@ -622,7 +481,6 @@
 
 	dbus = GPK_DBUS (object);
 	g_return_if_fail (dbus->priv != NULL);
-	g_object_unref (dbus->priv->client);
 	g_object_unref (dbus->priv->gclient);
 
 	G_OBJECT_CLASS (gpk_dbus_parent_class)->finalize (object);



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]