From d215243b1a44b1fb7cc2ec1846d30f62888acda3 Mon Sep 17 00:00:00 2001 From: Jean-Philippe Orsini Date: Mon, 8 Sep 2014 08:40:11 +0200 Subject: [PATCH] Added 'Hide' menu item in the contextual menu of the list of sensors. --- NEWS | 2 ++ NEWS.html | 13 ++++++++++++- src/lib/bool.h | 2 ++ src/ui_sensorlist.c | 50 ++++++++++++++++++++++++++++++++++++++++++++++++-- 4 files changed, 64 insertions(+), 3 deletions(-) diff --git a/NEWS b/NEWS index fecd19b..b829ddd 100644 --- a/NEWS +++ b/NEWS @@ -14,6 +14,8 @@ v1.1.2 * Added NVidia GPU graphics, memory, PCIe and video usage. * Fixed message when the configuration file is missing. * Added NVidia fan support. +* Added 'Hide' menu item in the contextual menu of the list of + sensors. v1.1.1 ------ diff --git a/NEWS.html b/NEWS.html index 08d8bdd..b5b40e5 100644 --- a/NEWS.html +++ b/NEWS.html @@ -421,6 +421,17 @@ Added NVidia GPU graphics, memory, PCIe and video usage. Fixed message when the configuration file is missing.

+
  • +

    +Added NVidia fan support. +

    +
  • +
  • +

    +Added Hide menu item in the contextual menu of the list of + sensors. +

    +
  • @@ -2773,7 +2784,7 @@ Fixed BR1: crash when no temperature sensor is available

    diff --git a/src/lib/bool.h b/src/lib/bool.h index 3aba0b6..c31360d 100644 --- a/src/lib/bool.h +++ b/src/lib/bool.h @@ -25,6 +25,8 @@ #include #else #define bool char +#define true 1 +#define false 0 #endif #endif diff --git a/src/ui_sensorlist.c b/src/ui_sensorlist.c index b446259..beaef1a 100644 --- a/src/ui_sensorlist.c +++ b/src/ui_sensorlist.c @@ -195,9 +195,46 @@ static int get_col_index_at_pos(GtkTreeView *view, int x) static void preferences_activated_cbk(GtkWidget *menu_item, gpointer data) { - struct cb_data *cb_data = data; + struct cb_data *cb_data; + cb_data = data; ui_sensorpref_dialog_run(cb_data->sensor, cb_data->ui); + free(cb_data); +} + +static void hide_activated_cbk(GtkWidget *menu_item, gpointer data) +{ + struct psensor *s, *s2; + GtkTreeModel *model, *fmodel; + GtkTreeIter iter; + struct cb_data *cb_data; + gboolean valid; + + log_fct_enter(); + + cb_data = data; + s = cb_data->sensor; + config_set_sensor_enabled(s->id, false); + config_sync(); + + fmodel = gtk_tree_view_get_model(cb_data->ui->sensors_tree); + model = gtk_tree_model_filter_get_model(GTK_TREE_MODEL_FILTER(fmodel)); + valid = gtk_tree_model_get_iter_first(model, &iter); + while (valid) { + gtk_tree_model_get(model, &iter, COL_SENSOR, &s2, -1); + + if (s == s2) + gtk_list_store_set(cb_data->ui->sensors_store, + &iter, + COL_DISPLAY_ENABLED, + false, + -1); + valid = gtk_tree_model_iter_next(model, &iter); + } + + free(cb_data); + + log_fct_exit(); } static GtkWidget * @@ -214,13 +251,22 @@ create_sensor_popup(struct ui_psensor *ui, struct psensor *sensor) separator = gtk_separator_menu_item_new(); gtk_menu_shell_append(GTK_MENU_SHELL(menu), separator); - item = gtk_menu_item_new_with_label(_("Preferences")); + item = gtk_menu_item_new_with_label(_("Hide")); gtk_menu_shell_append(GTK_MENU_SHELL(menu), item); data = malloc(sizeof(struct cb_data)); data->ui = ui; data->sensor = sensor; + g_signal_connect(item, + "activate", + G_CALLBACK(hide_activated_cbk), data); + + item = gtk_menu_item_new_with_label(_("Preferences")); + gtk_menu_shell_append(GTK_MENU_SHELL(menu), item); + data = malloc(sizeof(struct cb_data)); + data->ui = ui; + data->sensor = sensor; g_signal_connect(item, "activate", G_CALLBACK(preferences_activated_cbk), data); -- 2.7.4