- GtkLabel *w_id, *w_type, *w_high_thresold_unit, *w_low_thresold_unit;
- GtkEntry *w_name;
- GtkToggleButton *w_draw, *w_alarm;
- GtkColorButton *w_color;
- GtkSpinButton *w_high_thresold, *w_low_thresold;
- GdkColor *color;
- struct sensor_pref *p = sensor_pref_get(prefs, s);
- int use_celcius;
-
- w_id = GTK_LABEL(gtk_builder_get_object(builder, "sensor_id"));
- gtk_label_set_text(w_id, s->id);
-
- w_type = GTK_LABEL(gtk_builder_get_object(builder, "sensor_type"));
- gtk_label_set_text(w_type, psensor_type_to_str(s->type));
-
- w_name = GTK_ENTRY(gtk_builder_get_object(builder, "sensor_name"));
- gtk_entry_set_text(w_name, p->name);
-
- w_draw = GTK_TOGGLE_BUTTON(gtk_builder_get_object(builder,
- "sensor_draw"));
- gtk_toggle_button_set_active(w_draw, p->enabled);
-
- color = color_to_gdkcolor(p->color);
- w_color = GTK_COLOR_BUTTON(gtk_builder_get_object(builder,
- "sensor_color"));
- gtk_color_button_set_color(w_color, color);
-
- w_alarm = GTK_TOGGLE_BUTTON(gtk_builder_get_object(builder,
- "sensor_alarm"));
- w_high_thresold = GTK_SPIN_BUTTON(gtk_builder_get_object
- (builder,
- "sensor_alarm_high_thresold"));
- w_low_thresold = GTK_SPIN_BUTTON(gtk_builder_get_object
- (builder,
- "sensor_alarm_low_thresold"));
-
- w_high_thresold_unit = GTK_LABEL(gtk_builder_get_object
- (builder,
- "sensor_alarm_high_thresold_unit"));
- w_low_thresold_unit = GTK_LABEL(gtk_builder_get_object
- (builder,
- "sensor_alarm_low_thresold_unit"));
-
- use_celcius = cfg->temperature_unit == CELCIUS ? 1 : 0;
- gtk_label_set_text(w_high_thresold_unit,
- psensor_type_to_unit_str(s->type,
- use_celcius));
- gtk_label_set_text(w_low_thresold_unit,
- psensor_type_to_unit_str(s->type,
- use_celcius));
-
- if (is_temp_type(s->type) || is_fan_type(s->type)) {
- gtk_toggle_button_set_active(w_alarm, p->alarm_enabled);
- gtk_spin_button_set_value(w_high_thresold,
- p->alarm_high_thresold);
- gtk_spin_button_set_value(w_low_thresold,
- p->alarm_low_thresold);
- gtk_widget_set_sensitive(GTK_WIDGET(w_alarm), TRUE);
- gtk_widget_set_sensitive(GTK_WIDGET(w_high_thresold), TRUE);
- gtk_widget_set_sensitive(GTK_WIDGET(w_low_thresold), TRUE);
+ int use_celsius, threshold;
+ GdkRGBA *color;
+ const char *chip;
+ char *smin, *smax;
+
+ if (!s)
+ return;
+
+ ignore_changes = true;
+
+ gtk_label_set_text(w_sensor_id, s->id);
+ gtk_label_set_text(w_sensor_type, psensor_type_to_str(s->type));
+ gtk_entry_set_text(w_sensor_name, s->name);
+
+ if (s->chip)
+ chip = s->chip;
+ else
+ chip = _("Unknown");
+ gtk_label_set_text(w_sensor_chipname, chip);
+
+ use_celsius = config_get_sensor_unit() == CELSIUS ? 1 : 0;
+
+ if (s->min == UNKNOWN_DBL_VALUE)
+ smin = strdup(_("Unknown"));
+ else
+ smin = psensor_value_to_str(s->type, s->min, use_celsius);
+
+ gtk_label_set_text(w_sensor_min, smin);
+ free(smin);
+
+ if (s->max == UNKNOWN_DBL_VALUE)
+ smax = strdup(_("Unknown"));
+ else
+ smax = psensor_value_to_str(s->type, s->max, use_celsius);
+ gtk_label_set_text(w_sensor_max, smax);
+ free(smax);
+
+ gtk_toggle_button_set_active(w_sensor_draw,
+ config_is_sensor_graph_enabled(s->id));
+
+ gtk_toggle_button_set_active(w_sensor_display,
+ config_is_sensor_enabled(s->id));
+
+ color = config_get_sensor_color(s->id);
+ gtk_color_chooser_set_rgba(GTK_COLOR_CHOOSER(w_sensor_color), color);
+ gdk_rgba_free(color);
+
+ gtk_label_set_text(w_sensor_high_threshold_unit,
+ psensor_type_to_unit_str(s->type, use_celsius));
+ gtk_label_set_text(w_sensor_low_threshold_unit,
+ psensor_type_to_unit_str(s->type, use_celsius));
+
+ if (is_appindicator_supported()) {
+ gtk_widget_set_has_tooltip
+ (GTK_WIDGET(w_appindicator_label_enabled), FALSE);
+ gtk_widget_set_has_tooltip
+ (GTK_WIDGET(w_appindicator_enabled), FALSE);