X-Git-Url: http://gitweb.michael.orlitzky.com/?a=blobdiff_plain;f=panel-plugin%2Fxfce4-hdaps-dialogs.c;h=f716aa8b4d6c2c86835c48df2e4996c7fc760801;hb=f96fd73099713a39795b0b32c418f2af8818a96a;hp=80e0bcc3ba580f22f0ce5ce5e22c229e804fa9e0;hpb=63eef27ea56fc385cf1eb7af33211e697b384c3e;p=xfce4-hdaps.git diff --git a/panel-plugin/xfce4-hdaps-dialogs.c b/panel-plugin/xfce4-hdaps-dialogs.c index 80e0bcc..f716aa8 100644 --- a/panel-plugin/xfce4-hdaps-dialogs.c +++ b/panel-plugin/xfce4-hdaps-dialogs.c @@ -1,11 +1,33 @@ +/* + * xfce4-hdaps, an XFCE4 panel plugin for the HDAPS system. + * + * Copyright Michael Orlitzky + * + * http://michael.orlitzky.com/ + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * http://www.fsf.org/licensing/licenses/gpl.html + */ + #ifdef HAVE_CONFIG_H #include #endif +#include #include #include #include #include "xfce4-hdaps-dialogs.h" +#include "hdaps.h" /* Wild guess. Actually borrowed from some code I copy-and-pasted. Doesn't seem too ugly. */ @@ -133,6 +155,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); @@ -142,14 +165,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);