Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
home:hmacht:SLE_10
gnome-power-manager
gnome-power-manager-info.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File gnome-power-manager-info.patch of Package gnome-power-manager
--- data/gpm-info.glade +++ data/gpm-info.glade @@ -480,327 +480,6 @@ <property name="type">tab</property> </packing> </child> - - <child> - <widget class="GtkVBox" id="vbox2"> - <property name="border_width">6</property> - <property name="visible">True</property> - <property name="homogeneous">False</property> - <property name="spacing">0</property> - - <child> - <widget class="Custom" id="graph_percentage"> - <property name="visible">True</property> - <property name="creation_function">gpm_simple_graph_new</property> - <property name="int1">0</property> - <property name="int2">0</property> - <property name="last_modification_time">Mon, 06 Mar 2006 23:59:21 GMT</property> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">True</property> - <property name="fill">True</property> - </packing> - </child> - - <child> - <widget class="GtkHBox" id="hbox2"> - <property name="visible">True</property> - <property name="homogeneous">False</property> - <property name="spacing">0</property> - - <child> - <widget class="GtkImage" id="image2"> - <property name="visible">True</property> - <property name="stock">gtk-dialog-info</property> - <property name="icon_size">6</property> - <property name="xalign">0.5</property> - <property name="yalign">0.5</property> - <property name="xpad">0</property> - <property name="ypad">0</property> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">False</property> - <property name="fill">False</property> - </packing> - </child> - - <child> - <widget class="GtkLabel" id="label21"> - <property name="visible">True</property> - <property name="label" translatable="yes">This shows how the battery percentage charge varies over time.</property> - <property name="use_underline">False</property> - <property name="use_markup">False</property> - <property name="justify">GTK_JUSTIFY_LEFT</property> - <property name="wrap">False</property> - <property name="selectable">False</property> - <property name="xalign">0.5</property> - <property name="yalign">0.5</property> - <property name="xpad">0</property> - <property name="ypad">0</property> - <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> - <property name="width_chars">-1</property> - <property name="single_line_mode">False</property> - <property name="angle">0</property> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">False</property> - <property name="fill">True</property> - </packing> - </child> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">False</property> - <property name="fill">True</property> - <property name="pack_type">GTK_PACK_END</property> - </packing> - </child> - </widget> - <packing> - <property name="tab_expand">False</property> - <property name="tab_fill">False</property> - </packing> - </child> - - <child> - <widget class="GtkLabel" id="label2"> - <property name="visible">True</property> - <property name="label" translatable="yes">Charge History</property> - <property name="use_underline">False</property> - <property name="use_markup">False</property> - <property name="justify">GTK_JUSTIFY_LEFT</property> - <property name="wrap">False</property> - <property name="selectable">False</property> - <property name="xalign">0.5</property> - <property name="yalign">0.5</property> - <property name="xpad">0</property> - <property name="ypad">0</property> - <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> - <property name="width_chars">-1</property> - <property name="single_line_mode">False</property> - <property name="angle">0</property> - </widget> - <packing> - <property name="type">tab</property> - </packing> - </child> - - <child> - <widget class="GtkVBox" id="vbox10"> - <property name="border_width">6</property> - <property name="visible">True</property> - <property name="homogeneous">False</property> - <property name="spacing">0</property> - - <child> - <widget class="Custom" id="graph_rate"> - <property name="visible">True</property> - <property name="creation_function">gpm_simple_graph_new</property> - <property name="int1">0</property> - <property name="int2">0</property> - <property name="last_modification_time">Mon, 06 Mar 2006 23:59:21 GMT</property> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">True</property> - <property name="fill">True</property> - </packing> - </child> - - <child> - <widget class="GtkHBox" id="hbox11"> - <property name="visible">True</property> - <property name="homogeneous">False</property> - <property name="spacing">0</property> - - <child> - <widget class="GtkImage" id="image11"> - <property name="visible">True</property> - <property name="stock">gtk-dialog-info</property> - <property name="icon_size">6</property> - <property name="xalign">0.5</property> - <property name="yalign">0.5</property> - <property name="xpad">0</property> - <property name="ypad">0</property> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">False</property> - <property name="fill">False</property> - </packing> - </child> - - <child> - <widget class="GtkLabel" id="label24"> - <property name="visible">True</property> - <property name="label" translatable="yes">This shows how the battery charge and discharge rate varies over time.</property> - <property name="use_underline">False</property> - <property name="use_markup">False</property> - <property name="justify">GTK_JUSTIFY_LEFT</property> - <property name="wrap">False</property> - <property name="selectable">False</property> - <property name="xalign">0.5</property> - <property name="yalign">0.5</property> - <property name="xpad">0</property> - <property name="ypad">0</property> - <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> - <property name="width_chars">-1</property> - <property name="single_line_mode">False</property> - <property name="angle">0</property> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">False</property> - <property name="fill">True</property> - </packing> - </child> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">False</property> - <property name="fill">True</property> - <property name="pack_type">GTK_PACK_END</property> - </packing> - </child> - </widget> - <packing> - <property name="tab_expand">False</property> - <property name="tab_fill">True</property> - </packing> - </child> - - <child> - <widget class="GtkLabel" id="label23"> - <property name="visible">True</property> - <property name="label" translatable="yes">Rate History</property> - <property name="use_underline">False</property> - <property name="use_markup">False</property> - <property name="justify">GTK_JUSTIFY_LEFT</property> - <property name="wrap">False</property> - <property name="selectable">False</property> - <property name="xalign">0.5</property> - <property name="yalign">0.5</property> - <property name="xpad">0</property> - <property name="ypad">0</property> - <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> - <property name="width_chars">-1</property> - <property name="single_line_mode">False</property> - <property name="angle">0</property> - </widget> - <packing> - <property name="type">tab</property> - </packing> - </child> - - <child> - <widget class="GtkVBox" id="vbox11"> - <property name="border_width">6</property> - <property name="visible">True</property> - <property name="homogeneous">False</property> - <property name="spacing">0</property> - - <child> - <widget class="Custom" id="graph_time"> - <property name="visible">True</property> - <property name="creation_function">gpm_simple_graph_new</property> - <property name="int1">0</property> - <property name="int2">0</property> - <property name="last_modification_time">Mon, 06 Mar 2006 23:59:21 GMT</property> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">True</property> - <property name="fill">True</property> - </packing> - </child> - - <child> - <widget class="GtkHBox" id="hbox12"> - <property name="visible">True</property> - <property name="homogeneous">False</property> - <property name="spacing">0</property> - - <child> - <widget class="GtkImage" id="image12"> - <property name="visible">True</property> - <property name="stock">gtk-dialog-info</property> - <property name="icon_size">6</property> - <property name="xalign">0.5</property> - <property name="yalign">0.5</property> - <property name="xpad">0</property> - <property name="ypad">0</property> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">False</property> - <property name="fill">False</property> - </packing> - </child> - - <child> - <widget class="GtkLabel" id="label26"> - <property name="visible">True</property> - <property name="label" translatable="yes">This shows how the remaining time until charged or discharged varies over time.</property> - <property name="use_underline">False</property> - <property name="use_markup">False</property> - <property name="justify">GTK_JUSTIFY_LEFT</property> - <property name="wrap">False</property> - <property name="selectable">False</property> - <property name="xalign">0.5</property> - <property name="yalign">0.5</property> - <property name="xpad">0</property> - <property name="ypad">0</property> - <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> - <property name="width_chars">-1</property> - <property name="single_line_mode">False</property> - <property name="angle">0</property> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">False</property> - <property name="fill">True</property> - </packing> - </child> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">False</property> - <property name="fill">True</property> - <property name="pack_type">GTK_PACK_END</property> - </packing> - </child> - </widget> - <packing> - <property name="tab_expand">False</property> - <property name="tab_fill">True</property> - </packing> - </child> - - <child> - <widget class="GtkLabel" id="label25"> - <property name="visible">True</property> - <property name="label" translatable="yes">Estimated Time History</property> - <property name="use_underline">False</property> - <property name="use_markup">False</property> - <property name="justify">GTK_JUSTIFY_LEFT</property> - <property name="wrap">False</property> - <property name="selectable">False</property> - <property name="xalign">0.5</property> - <property name="yalign">0.5</property> - <property name="xpad">0</property> - <property name="ypad">0</property> - <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> - <property name="width_chars">-1</property> - <property name="single_line_mode">False</property> - <property name="angle">0</property> - </widget> - <packing> - <property name="type">tab</property> - </packing> - </child> </widget> <packing> <property name="padding">0</property> --- src/gpm-info.c +++ src/gpm-info.c @@ -92,53 +92,6 @@ return NULL; } -/** add an x-y point to a list */ -static void -gpm_info_data_point_add (GList **list, int x, int y) -{ - g_return_if_fail (list); - GpmSimpleDataPoint *data_point; - data_point = g_new (GpmSimpleDataPoint, 1); - data_point->x = x; - data_point->y = y; - *list = g_list_append (*list, (gpointer) data_point); -} - -/** normalise both axes to 0..100 */ -static void -gpm_stat_calculate_percentage (GList *source, GList **destination, int num_points) -{ - g_return_if_fail (source); - g_return_if_fail (destination); - int count = 0; /* what number of max_count we are at */ - int max_count; /* how many data values do we want */ - int this_count = 0; /* what data point we are working on */ - int average_add = 0; - int value_y, value_x; - int a; - int *point; - float percentage_step = 100.0f / (float) num_points; - max_count = g_list_length (source) / num_points; - - for (a=0; a < g_list_length (source) - 1; a++) { - point = (int*) g_list_nth_data (source, a); - average_add += *point; - if (count == max_count) { - value_y = (float) average_add / (float) (max_count + 1); - value_x = (int) (percentage_step * (float) this_count); -// gpm_debug ("(%i) value = (%i, %i)", this_count, value_x, value_y); - gpm_info_data_point_add (destination, value_x, value_y); - count = 0; - average_add = 0; - this_count++; - } else { - count++; - } - } - /* we do not calculate the average on the remainder as the sample size would - not be equal, and thus not representative of the final value */ -} - /** help callback */ static void gpm_info_help_cb (GtkWidget *widget, @@ -154,31 +107,26 @@ } /* close callback */ -static void -gpm_info_close_cb (GtkWidget *widget, - GpmInfo *info) +static gboolean +gpm_info_delete_event_cb (GtkWidget *widget, + GdkEvent *event, + GpmInfo *info) { gtk_widget_destroy (info->priv->main_window); info->priv->main_window = NULL; + return TRUE; // don't signal a destroy } -/** free a list of x-y points */ +/* close callback */ static void -gpm_info_data_point_free (GList *list) +gpm_info_close_cb (GtkWidget *widget, + GpmInfo *info) { - g_return_if_fail (list); - - int a; - GpmSimpleDataPoint *d_point; - - /* free elements */ - for (a=0; a<g_list_length (list); a++) { - d_point = (GpmSimpleDataPoint*) g_list_nth_data (list, a); - g_free (d_point); - } - g_list_free (list); + gtk_widget_destroy (info->priv->main_window); + info->priv->main_window = NULL; } + #if 0 /** print a list of x-y points */ static void @@ -196,81 +144,6 @@ } #endif -/** find the largest and smallest integer values in a list */ -static void -gpm_info_log_find_range (GList *list, int *smallest, int *biggest) -{ - g_return_if_fail (list); - int *data; - int a; - *smallest = 100000; - *biggest = 0; - for (a=0; a < g_list_length (list) - 1; a++) { - data = (int*) g_list_nth_data (list, a); - if (*data > *biggest) { - *biggest = *data; - } - if (*data < *smallest) { - *smallest = *data; - } - } -} - -/** free a scalar log */ -static void -gpm_info_log_free (GList *list) -{ - g_return_if_fail (list); - int *data; - int a; - for (a=0; a<g_list_length (list); a++) { - data = (int*) g_list_nth_data (list, a); - g_free (data); - } - g_list_free (list); -} - -/** update this graph */ -static void -gpm_info_graph_update (GpmInfoGraphData *graph_data) -{ - int max_time; - int smallest = 0; - int biggest = 0; - - /* free existing data if exists */ - if (graph_data->graph_data) { - gpm_info_data_point_free (graph_data->graph_data); - graph_data->graph_data = NULL; - } - - if (graph_data->log_data) { - gpm_stat_calculate_percentage (graph_data->log_data, - &(graph_data->graph_data), - GPM_INFO_DATA_RES_X + 1); - gpm_simple_graph_set_data (GPM_SIMPLE_GRAPH (graph_data->widget), graph_data->graph_data); - - /* set the x-axis to the time that we have been sampling for */ - max_time = (GPM_INFO_HARDWARE_POLL * g_list_length (graph_data->log_data)) / 60; - if (max_time < 10) { - max_time = 10; - } - gpm_simple_graph_set_stop_x (GPM_SIMPLE_GRAPH (graph_data->widget), max_time); - - /* get the biggest and smallest value of the data */ - gpm_info_log_find_range (graph_data->log_data, &smallest, &biggest); - if (biggest < 10) { - biggest = 10; - } - gpm_simple_graph_set_stop_y (GPM_SIMPLE_GRAPH (graph_data->widget), biggest); - } else { - gpm_debug ("no log data"); - } - - /* FIXME: There's got to be a better way than this */ - gtk_widget_hide (graph_data->widget); - gtk_widget_show (graph_data->widget); -} /** update the tree widget with new data */ static void @@ -396,7 +269,7 @@ GPM_DATA "gnome-power-manager.png", NULL); g_signal_connect (info->priv->main_window, "delete_event", - G_CALLBACK (gpm_info_close_cb), info); + G_CALLBACK (gpm_info_delete_event_cb), info); widget = glade_xml_get_widget (glade_xml, "button_close"); g_signal_connect (widget, "clicked", @@ -406,7 +279,7 @@ g_signal_connect (widget, "clicked", G_CALLBACK (gpm_info_help_cb), info); - widget = glade_xml_get_widget (glade_xml, "graph_percentage"); +/* widget = glade_xml_get_widget (glade_xml, "graph_percentage"); gtk_widget_set_size_request (widget, 600, 300); info->priv->percentage->widget = widget; gpm_simple_graph_set_axis_y (GPM_SIMPLE_GRAPH (widget), GPM_GRAPH_TYPE_PERCENTAGE); @@ -420,7 +293,7 @@ gtk_widget_set_size_request (widget, 600, 300); info->priv->time->widget = widget; gpm_simple_graph_set_axis_y (GPM_SIMPLE_GRAPH (widget), GPM_GRAPH_TYPE_TIME); - +*/ widget = glade_xml_get_widget (info->priv->glade_xml, "treeview_primary0"); create_tree_widget (widget); widget = glade_xml_get_widget (info->priv->glade_xml, "treeview_primary1"); @@ -432,41 +305,9 @@ populate_device_information (info); - gpm_info_graph_update (info->priv->rate); - gpm_info_graph_update (info->priv->percentage); - gpm_info_graph_update (info->priv->time); - gtk_widget_show (info->priv->main_window); } -/** add a scalar point to the graph log */ -static void -gpm_info_graph_add (GpmInfoGraphData *graph_data, int value) -{ - int *point; - point = g_new (int, 1); - *point = value; -#ifdef DO_TESTING - static int auto_inc_val = 0; - auto_inc_val++; - if (auto_inc_val == 100) { - auto_inc_val = 0; - } - *point += auto_inc_val; -#endif - graph_data->log_data = g_list_append (graph_data->log_data, - (gpointer) point); -} - -/** init log and graph data elements */ -static void -gpm_info_graph_init (GpmInfoGraphData *graph_data) -{ - graph_data->log_data = NULL; - graph_data->graph_data = NULL; - graph_data->widget = NULL; -} - /** callback to get the log data every minute */ static gboolean log_do_poll (gpointer data) @@ -477,16 +318,7 @@ gpm_power_get_battery_status (info->priv->power, GPM_POWER_BATTERY_KIND_PRIMARY, &battery_status); - - gpm_info_graph_add (info->priv->rate, battery_status.percentage_charge); - gpm_info_graph_add (info->priv->percentage, battery_status.charge_rate / 1000); - gpm_info_graph_add (info->priv->time, battery_status.remaining_time); - if (info->priv->main_window) { - gpm_info_graph_update (info->priv->rate); - gpm_info_graph_update (info->priv->percentage); - gpm_info_graph_update (info->priv->time); - //gpm_info_data_point_print (info->priv->rate.graph_data); /* also update the first tab */ populate_device_information (info); } @@ -523,22 +355,10 @@ info->priv->percentage = g_new (GpmInfoGraphData, 1); info->priv->time = g_new (GpmInfoGraphData, 1); - gpm_info_graph_init (info->priv->rate); - gpm_info_graph_init (info->priv->percentage); - gpm_info_graph_init (info->priv->time); - /* set up the timer callback so we can log data every minute */ g_timeout_add (GPM_INFO_HARDWARE_POLL * 1000, log_do_poll, info); } -/* free the scalar and x-y elements of a graph */ -static void -gpm_info_graph_free (GpmInfoGraphData *graph_data) -{ - gpm_info_log_free (graph_data->log_data); - gpm_info_data_point_free (graph_data->graph_data); - g_free (graph_data); -} /** finalise the object */ static void @@ -551,9 +371,6 @@ info = GPM_INFO (object); info->priv = GPM_INFO_GET_PRIVATE (info); - gpm_info_graph_free (info->priv->rate); - gpm_info_graph_free (info->priv->percentage); - gpm_info_graph_free (info->priv->time); G_OBJECT_CLASS (parent_class)->finalize (object); } --- src/gpm-power.c +++ src/gpm-power.c @@ -645,23 +645,23 @@ suffix = get_power_unit_suffix (device->unit); if (status->current_charge > 0) { di.title = g_strdup (_("Current charge:")); - di.value = g_strdup_printf ("%i%s", status->current_charge, suffix); + di.value = g_strdup_printf ("%i %s", status->current_charge, suffix); g_array_append_vals (array, &di, 1); } if (status->last_full_charge > 0 && status->design_charge != status->last_full_charge) { di.title = g_strdup (_("Last full charge:")); - di.value = g_strdup_printf ("%i%s", status->last_full_charge, suffix); + di.value = g_strdup_printf ("%i %s", status->last_full_charge, suffix); g_array_append_vals (array, &di, 1); } if (status->design_charge > 0) { di.title = g_strdup (_("Design charge:")); - di.value = g_strdup_printf ("%i%s", status->design_charge, suffix); + di.value = g_strdup_printf ("%i %s", status->design_charge, suffix); g_array_append_vals (array, &di, 1); } if (status->charge_rate > 0) { di.title = g_strdup (_("Charge rate:")); - di.value = g_strdup_printf ("%imWh", status->charge_rate); + di.value = g_strdup_printf ("%i mW", status->charge_rate); g_array_append_vals (array, &di, 1); } }
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor