[gnome-control-center] info: Check PackageKit version at runtime
- From: Matthias Clasen <matthiasc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-control-center] info: Check PackageKit version at runtime
- Date: Sun, 22 Jul 2012 17:00:10 +0000 (UTC)
commit 5366d1188e212d472905ac325df9a4c03eb711a9
Author: Matthias Clasen <mclasen redhat com>
Date: Sun Jul 22 13:00:18 2012 -0400
info: Check PackageKit version at runtime
The previous patch made use use PackageKit 0.8 API. This patch
adds a version check that keeps the info panel from crashing
when it finds an older PackageKit at runtime.
panels/info/cc-info-panel.c | 32 +++++++++++++++++++++++++++-----
1 files changed, 27 insertions(+), 5 deletions(-)
---
diff --git a/panels/info/cc-info-panel.c b/panels/info/cc-info-panel.c
index f678f1c..96a39de 100644
--- a/panels/info/cc-info-panel.c
+++ b/panels/info/cc-info-panel.c
@@ -1940,11 +1940,33 @@ cc_info_panel_init (CcInfoPanel *self)
}
else
{
- g_signal_connect (self->priv->pk_proxy,
- "g-signal",
- G_CALLBACK (on_pk_signal),
- self);
- refresh_updates (self);
+ GVariant *v;
+ guint32 major, minor, micro;
+
+ v = g_dbus_proxy_get_cached_property (self->priv->pk_proxy, "VersionMajor");
+ g_variant_get (v, "u", &major);
+ g_variant_unref (v);
+ v = g_dbus_proxy_get_cached_property (self->priv->pk_proxy, "VersionMinor");
+ g_variant_get (v, "u", &minor);
+ g_variant_unref (v);
+ v = g_dbus_proxy_get_cached_property (self->priv->pk_proxy, "VersionMicro");
+ g_variant_get (v, "u", µ);
+ g_variant_unref (v);
+
+ if (major != 0 || minor != 8)
+ {
+ g_warning ("PackageKit version %u.%u.%u not supported", major, minor, micro);
+ g_clear_object (&self->priv->pk_proxy);
+ self->priv->updates_state = PK_NOT_AVAILABLE;
+ }
+ else
+ {
+ g_signal_connect (self->priv->pk_proxy,
+ "g-signal",
+ G_CALLBACK (on_pk_signal),
+ self);
+ refresh_updates (self);
+ }
}
gtk_builder_add_from_file (self->priv->builder,
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]