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);
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);