From: Michael Orlitzky Date: Thu, 12 Feb 2009 04:40:40 +0000 (-0500) Subject: Prevented duplicate entries in the device name combo box. X-Git-Tag: v0.0.5~2 X-Git-Url: http://gitweb.michael.orlitzky.com/?p=xfce4-hdaps.git;a=commitdiff_plain;h=5493854dff828914aeb6d60b8fe10ac170820737 Prevented duplicate entries in the device name combo box. --- diff --git a/panel-plugin/xfce4-hdaps-dialogs.c b/panel-plugin/xfce4-hdaps-dialogs.c index 5f2e877..046beac 100644 --- a/panel-plugin/xfce4-hdaps-dialogs.c +++ b/panel-plugin/xfce4-hdaps-dialogs.c @@ -153,6 +153,7 @@ void hdaps_configure(XfcePanelPlugin *plugin, gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); hdaps->cb_device_name = gtk_combo_box_new_text(); + /* Add the current device name, it should always be available. Oh, and it should be the default, too. */ gtk_combo_box_append_text((GtkComboBox*)hdaps->cb_device_name, hdaps->device_name); @@ -162,14 +163,19 @@ void hdaps_configure(XfcePanelPlugin *plugin, gtk_combo_box_set_active((GtkComboBox*)hdaps->cb_device_name, 0); /* Now loop through the list of available devices, adding each - to the list as we go. I believe GTK takes care of the duplicates - for us. */ + to the list as we go. */ char hdaps_devices[MAX_HDAPS_DEVICES][FILENAME_MAX]; int found_devices = get_hdaps_device_list(hdaps_devices); int list_idx = 0; for (list_idx = 0; list_idx < found_devices; list_idx++) { - gtk_combo_box_append_text((GtkComboBox*)hdaps->cb_device_name, hdaps_devices[list_idx]); + /* We don't want to add duplicate entries to the combo box. + However, at this point, the current device name should be + the only entry. Therefore, to avoid duplicates, we only + have to avoid adding the current device name a second time. */ + if (strcmp(hdaps_devices[list_idx], hdaps->device_name) != 0) { + gtk_combo_box_append_text((GtkComboBox*)hdaps->cb_device_name, hdaps_devices[list_idx]); + } } gtk_box_pack_start(GTK_BOX(hbox), hdaps->cb_device_name, FALSE, FALSE, 0);