gnome-power-manager r3155 - in trunk: . src
- From: rhughes svn gnome org
- To: svn-commits-list gnome org
- Subject: gnome-power-manager r3155 - in trunk: . src
- Date: Wed, 14 Jan 2009 17:23:58 +0000 (UTC)
Author: rhughes
Date: Wed Jan 14 17:23:58 2009
New Revision: 3155
URL: http://svn.gnome.org/viewvc/gnome-power-manager?rev=3155&view=rev
Log:
2009-01-14 Richard Hughes <richard hughsie com>
* src/gpm-engine.c: (gpm_engine_coldplug_idle_cb),
(gpm_engine_device_added_cb), (phone_device_added_cb),
(phone_device_removed_cb), (phone_device_refresh_cb),
(gpm_engine_init), (gpm_engine_finalize):
Use gnome-phone-manager and show cell phone batteries.
* src/gpm-phone.c: (gpm_phone_battery_state_changed),
(gpm_phone_num_batteries_changed):
Whitespace cleanup.
* src/gpm-tray-icon.c: (gpm_tray_icon_show_info_cb):
Don't exit silently when we want more details on a device that has no
more details.
* src/gpm-warnings.c: (gpm_warnings_get_state_time),
(gpm_warnings_get_state_percentage):
Be less verbose when a device has 0% percentage.
Modified:
trunk/ChangeLog
trunk/src/gpm-engine.c
trunk/src/gpm-phone.c
trunk/src/gpm-tray-icon.c
trunk/src/gpm-warnings.c
Modified: trunk/src/gpm-engine.c
==============================================================================
--- trunk/src/gpm-engine.c (original)
+++ trunk/src/gpm-engine.c Wed Jan 14 17:23:58 2009
@@ -36,6 +36,7 @@
#include "gpm-engine.h"
#include "gpm-stock-icons.h"
#include "gpm-prefs-server.h"
+#include "gpm-phone.h"
static void gpm_engine_class_init (GpmEngineClass *klass);
static void gpm_engine_init (GpmEngine *engine);
@@ -54,6 +55,7 @@
GConfClient *conf;
DkpClient *client;
GPtrArray *array;
+ GpmPhone *phone;
GpmIconPolicy icon_policy;
gchar *previous_icon;
gchar *previous_summary;
@@ -571,6 +573,9 @@
gpm_prefs_server_set_capability (prefs_server, GPM_PREFS_SERVER_UPS);
g_object_unref (prefs_server);
+ /* connected mobile phones */
+ gpm_phone_coldplug (engine->priv->phone);
+
gpm_engine_recalculate_state (engine);
/* add to database */
@@ -590,8 +595,7 @@
gpm_engine_device_added_cb (DkpClient *client, DkpDevice *device, GpmEngine *engine)
{
/* add to list */
- g_object_ref (device);
- g_ptr_array_add (engine->priv->array, device);
+ g_ptr_array_add (engine->priv->array, g_object_ref (device));
gpm_engine_recalculate_state (engine);
}
@@ -688,6 +692,82 @@
}
/**
+ * phone_device_added_cb:
+ **/
+static void
+phone_device_added_cb (GpmPhone *phone, guint index, GpmEngine *engine)
+{
+ DkpObject *obj;
+ DkpDevice *device;
+ device = dkp_device_new ();
+
+ egg_debug ("phone added %i", index);
+
+ obj = (DkpObject *) dkp_device_get_object (device);
+ obj->native_path = g_strdup_printf ("phone_%i", index);
+ obj->is_rechargeable = TRUE;
+ obj->type = DKP_DEVICE_TYPE_PHONE;
+
+ /* state changed */
+ gpm_engine_device_add (engine, device);
+ g_ptr_array_add (engine->priv->array, g_object_ref (device));
+ gpm_engine_recalculate_state (engine);
+}
+
+/**
+ * phone_device_removed_cb:
+ **/
+static void
+phone_device_removed_cb (GpmPhone *phone, guint index, GpmEngine *engine)
+{
+ guint i;
+ DkpDevice *device;
+ const DkpObject *obj;
+
+ egg_debug ("phone removed %i", index);
+
+ for (i=0; i<engine->priv->array->len; i++) {
+ device = g_ptr_array_index (engine->priv->array, i);
+ obj = dkp_device_get_object (device);
+ if (obj->type == DKP_DEVICE_TYPE_PHONE) {
+ g_ptr_array_remove_index (engine->priv->array, i);
+ g_object_unref (device);
+ break;
+ }
+ }
+
+ /* state changed */
+ gpm_engine_recalculate_state (engine);
+}
+
+/**
+ * phone_device_refresh_cb:
+ **/
+static void
+phone_device_refresh_cb (GpmPhone *phone, guint index, GpmEngine *engine)
+{
+ guint i;
+ DkpDevice *device;
+ DkpObject *obj;
+
+ egg_debug ("phone refresh %i", index);
+
+ for (i=0; i<engine->priv->array->len; i++) {
+ device = g_ptr_array_index (engine->priv->array, i);
+ obj = (DkpObject *) dkp_device_get_object (device);
+ if (obj->type == DKP_DEVICE_TYPE_PHONE) {
+ obj->is_present = gpm_phone_get_present (phone, index);
+ obj->state = gpm_phone_get_on_ac (phone, index) ? DKP_DEVICE_STATE_CHARGING : DKP_DEVICE_STATE_DISCHARGING;
+ obj->percentage = gpm_phone_get_percentage (phone, index);
+ break;
+ }
+ }
+
+ /* state changed */
+ gpm_engine_recalculate_state (engine);
+}
+
+/**
* gpm_engine_init:
* @engine: This class instance
**/
@@ -712,6 +792,14 @@
(GConfClientNotifyFunc) gpm_engine_conf_key_changed_cb,
engine, NULL, NULL);
+ engine->priv->phone = gpm_phone_new ();
+ g_signal_connect (engine->priv->phone, "device-added",
+ G_CALLBACK (phone_device_added_cb), engine);
+ g_signal_connect (engine->priv->phone, "device-removed",
+ G_CALLBACK (phone_device_removed_cb), engine);
+ g_signal_connect (engine->priv->phone, "device-refresh",
+ G_CALLBACK (phone_device_refresh_cb), engine);
+
engine->priv->previous_icon = NULL;
engine->priv->previous_summary = NULL;
@@ -836,6 +924,7 @@
g_ptr_array_free (engine->priv->array, TRUE);
g_object_unref (engine->priv->client);
+ g_object_unref (engine->priv->phone);
g_free (engine->priv->previous_icon);
g_free (engine->priv->previous_summary);
Modified: trunk/src/gpm-phone.c
==============================================================================
--- trunk/src/gpm-phone.c (original)
+++ trunk/src/gpm-phone.c Wed Jan 14 17:23:58 2009
@@ -143,11 +143,7 @@
/** Invoked when we get the BatteryStateChanged
*/
static void
-gpm_phone_battery_state_changed (DBusGProxy *proxy,
- guint index,
- guint percentage,
- gboolean on_ac,
- GpmPhone *phone)
+gpm_phone_battery_state_changed (DBusGProxy *proxy, guint index, guint percentage, gboolean on_ac, GpmPhone *phone)
{
g_return_if_fail (phone != NULL);
g_return_if_fail (GPM_IS_PHONE (phone));
@@ -163,9 +159,7 @@
/** Invoked when we get NumberBatteriesChanged
*/
static void
-gpm_phone_num_batteries_changed (DBusGProxy *proxy,
- guint number,
- GpmPhone *phone)
+gpm_phone_num_batteries_changed (DBusGProxy *proxy, guint number, GpmPhone *phone)
{
g_return_if_fail (phone != NULL);
g_return_if_fail (GPM_IS_PHONE (phone));
Modified: trunk/src/gpm-tray-icon.c
==============================================================================
--- trunk/src/gpm-tray-icon.c (original)
+++ trunk/src/gpm-tray-icon.c Wed Jan 14 17:23:58 2009
@@ -236,8 +236,16 @@
#else
object_path = g_object_get_data (G_OBJECT (item), "object-path");
egg_debug ("object_path=%s", object_path);
- if (object_path == NULL)
+ if (object_path == NULL) {
+ dialog = gtk_message_dialog_new (NULL, GTK_DIALOG_DESTROY_WITH_PARENT,
+ GTK_MESSAGE_INFO, GTK_BUTTONS_OK, "%s",
+ _("Device information"));
+ gtk_message_dialog_format_secondary_markup (GTK_MESSAGE_DIALOG (dialog),
+ "%s", _("There is no detailed information for this device"));
+ gtk_dialog_run (GTK_DIALOG (dialog));
+ gtk_widget_destroy (GTK_WIDGET (dialog));
goto out;
+ }
device = dkp_device_new ();
ret = dkp_device_set_object_path (device, object_path);
Modified: trunk/src/gpm-warnings.c
==============================================================================
--- trunk/src/gpm-warnings.c (original)
+++ trunk/src/gpm-warnings.c Wed Jan 14 17:23:58 2009
@@ -96,7 +96,7 @@
{
if (unit->time_discharge == 0) {
/* this is probably an error condition */
- egg_warning ("time zero, something's gone wrong");
+ egg_debug ("time zero, something's gone wrong");
return GPM_WARNINGS_NONE;
}
if (unit->time_discharge <= warnings->priv->action_time) {
@@ -114,7 +114,7 @@
{
if (unit->percentage == 0) {
/* this is probably an error condition */
- egg_warning ("percentage zero, something's gone wrong");
+ egg_debug ("percentage zero, something's gone wrong");
return GPM_WARNINGS_NONE;
}
if (unit->percentage <= warnings->priv->action_percentage) {
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]