From ec02950635f9731c0ecd2fb29f847d8a74258bcb Mon Sep 17 00:00:00 2001 From: deuce <> Date: Fri, 10 Mar 2006 06:59:43 +0000 Subject: [PATCH] Properly fill the four combo boxes. --- src/sbbs3/gtkuseredit/events.c | 3 + src/sbbs3/gtkuseredit/gtkuseredit.c | 80 +++++++++++++++++++++---- src/sbbs3/gtkuseredit/gtkuseredit.glade | 18 +++--- 3 files changed, 80 insertions(+), 21 deletions(-) diff --git a/src/sbbs3/gtkuseredit/events.c b/src/sbbs3/gtkuseredit/events.c index 8f254e1c57..65132ef16d 100644 --- a/src/sbbs3/gtkuseredit/events.c +++ b/src/sbbs3/gtkuseredit/events.c @@ -240,6 +240,9 @@ void load_user(GtkWidget *wiggy, gpointer data) sprintf(str,"%u",user.min); gtk_entry_set_text(GTK_ENTRY(w),str); } + + /* Statistics */ + } int update_current_user(int new_user) diff --git a/src/sbbs3/gtkuseredit/gtkuseredit.c b/src/sbbs3/gtkuseredit/gtkuseredit.c index ece6bcf8b9..4c29ace328 100644 --- a/src/sbbs3/gtkuseredit/gtkuseredit.c +++ b/src/sbbs3/gtkuseredit/gtkuseredit.c @@ -16,17 +16,69 @@ int current_user=0; /* Refreshes global variables... ie: Number of users */ int refresh_globals(void) { - gchar newlabel[14]; - GtkWidget *lTotalUsers; + char str[1024]; + GtkWidget *cCommandShell; + GtkWidget *cExternalEditor; + GtkWidget *cDefaultDownloadProtocol; + GtkWidget *cTempQWKFileType; + GtkWidget *w; + int i; + + /* Clear out old combo boxes */ + cCommandShell=glade_xml_get_widget(xml, "cCommandShell"); + if(w==NULL) { + fprintf(stderr,"Cannot get the command shell widget\n"); + return(-1); + } + for(i=0; i<cfg.total_shells; i++) + gtk_combo_box_remove_text(GTK_COMBO_BOX(cCommandShell), 0); + cExternalEditor=glade_xml_get_widget(xml, "cExternalEditor"); + if(w==NULL) { + fprintf(stderr,"Cannot get the external editor widget\n"); + return(-1); + } + for(i=0; i<cfg.total_xedits; i++) + gtk_combo_box_remove_text(GTK_COMBO_BOX(cExternalEditor), 0); + cDefaultDownloadProtocol=glade_xml_get_widget(xml, "cDefaultDownloadProtocol"); + if(w==NULL) { + fprintf(stderr,"Cannot get the default download protocol widget\n"); + return(-1); + } + for(i=0; i<cfg.total_prots; i++) + gtk_combo_box_remove_text(GTK_COMBO_BOX(cDefaultDownloadProtocol), 0); + cTempQWKFileType=glade_xml_get_widget(xml, "cTempQWKFileType"); + if(w==NULL) { + fprintf(stderr,"Cannot get the temp/QWK file type widget\n"); + return(-1); + } + for(i=0; i<cfg.total_fcomps; i++) + gtk_combo_box_remove_text(GTK_COMBO_BOX(cTempQWKFileType), 0); + + /* Read .cfg files here */ + if(!load_cfg(&cfg, NULL, TRUE, str)) { + fprintf(stderr,"Cannot load configuration data\n"); + return(-1); + } + + /* Re-add combobox values */ + for(i=0; i<cfg.total_shells; i++) + gtk_combo_box_append_text(GTK_COMBO_BOX(cCommandShell), cfg.shell[i]->name); + for(i=0; i<cfg.total_xedits; i++) + gtk_combo_box_append_text(GTK_COMBO_BOX(cExternalEditor), cfg.xedit[i]->name); + for(i=0; i<cfg.total_prots; i++) + gtk_combo_box_append_text(GTK_COMBO_BOX(cDefaultDownloadProtocol), cfg.prot[i]->name); + for(i=0; i<cfg.total_fcomps; i++) + gtk_combo_box_append_text(GTK_COMBO_BOX(cTempQWKFileType), cfg.fcomp[i]->ext); totalusers=lastuser(&cfg); - sprintf(newlabel,"of %d",totalusers); - lTotalUsers=glade_xml_get_widget(xml, "lTotalUsers"); - if(lTotalUsers==NULL) { + sprintf(str,"of %d",totalusers); + w=glade_xml_get_widget(xml, "lTotalUsers"); + if(w==NULL) { fprintf(stderr,"Cannot get the total users widget\n"); return(-1); } - gtk_label_set_text(GTK_LABEL(lTotalUsers), newlabel); + gtk_label_set_text(GTK_LABEL(w), str); + return(0); } @@ -48,14 +100,20 @@ int read_config(void) fprintf(stderr,"SBBSCTRL does not point to a directory\n"); return(-1); } - /* Read .cfg files here */ memset(&cfg,0,sizeof(cfg)); cfg.size=sizeof(cfg); SAFECOPY(cfg.ctrl_dir,ctrl_dir); - if(!load_cfg(&cfg, NULL, TRUE, str)) { - fprintf(stderr,"Cannot load configuration data\n"); - return(-1); - } + + /* + * The following are to make up for Glade hacks... we want a text list + * in the combo boxes... Galde does this *if* there's predefined text. + * So, we need to remove it during the refresh. + */ + cfg.total_shells=1; + cfg.total_xedits=1; + cfg.total_prots=1; + cfg.total_fcomps=1; + if(refresh_globals()) return(-1); if(totalusers > 0) diff --git a/src/sbbs3/gtkuseredit/gtkuseredit.glade b/src/sbbs3/gtkuseredit/gtkuseredit.glade index e5dddfeae7..48458af335 100644 --- a/src/sbbs3/gtkuseredit/gtkuseredit.glade +++ b/src/sbbs3/gtkuseredit/gtkuseredit.glade @@ -3867,12 +3867,10 @@ <property name="spacing">0</property> <child> - <widget class="GtkComboBoxEntry" id="comboboxentry1"> + <widget class="GtkComboBox" id="cCommandShell"> <property name="visible">True</property> - <property name="items" translatable="yes">Item1 -Item2</property> + <property name="items" translatable="yes">Temp</property> <property name="add_tearoffs">False</property> - <property name="has_frame">True</property> <property name="focus_on_click">True</property> </widget> <packing> @@ -4470,10 +4468,10 @@ Item2</property> </child> <child> - <widget class="GtkComboBoxEntry" id="comboboxentry2"> + <widget class="GtkComboBox" id="cExternalEditor"> <property name="visible">True</property> + <property name="items" translatable="yes">Temp</property> <property name="add_tearoffs">False</property> - <property name="has_frame">True</property> <property name="focus_on_click">True</property> </widget> <packing> @@ -5004,10 +5002,10 @@ Item2</property> </child> <child> - <widget class="GtkComboBoxEntry" id="comboboxentry3"> + <widget class="GtkComboBox" id="cDefaultDownloadProtocol"> <property name="visible">True</property> + <property name="items" translatable="yes">Temp</property> <property name="add_tearoffs">False</property> - <property name="has_frame">True</property> <property name="focus_on_click">True</property> </widget> <packing> @@ -5060,10 +5058,10 @@ Item2</property> </child> <child> - <widget class="GtkComboBoxEntry" id="comboboxentry4"> + <widget class="GtkComboBox" id="cTempQWKFileType"> <property name="visible">True</property> + <property name="items" translatable="yes">Temp</property> <property name="add_tearoffs">False</property> - <property name="has_frame">True</property> <property name="focus_on_click">True</property> </widget> <packing> -- GitLab