diff --git a/src/sbbs3/gtkuseredit/events.c b/src/sbbs3/gtkuseredit/events.c index a0ff5617d8ded957b792acb239f724a67f1a4d66..a43aa63f28e9b882195ecc8bd603705daf1a38cb 100644 --- a/src/sbbs3/gtkuseredit/events.c +++ b/src/sbbs3/gtkuseredit/events.c @@ -15,6 +15,8 @@ void load_user(GtkWidget *wiggy, gpointer data) GtkWidget *w; char str[1024]; gboolean b; + int i; + FILE *f; user.number=current_user; if(user.number < 1 || user.number > totalusers) { @@ -586,6 +588,164 @@ void load_user(GtkWidget *wiggy, gpointer data) fprintf(stderr,"Cannot get the chat split personal widget\n"); else gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w),user.chat&CHAT_SPLITP); + + /* Msg/File Settings */ + + w=glade_xml_get_widget(xml, "cUserNETMAIL"); + if(w==NULL) + fprintf(stderr,"Cannot get the netmail widget\n"); + else + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w),user.misc&NETMAIL); + + w=glade_xml_get_widget(xml, "cUserCLRSCRN"); + if(w==NULL) + fprintf(stderr,"Cannot get the clear screen widget\n"); + else + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w),user.misc&CLRSCRN); + + w=glade_xml_get_widget(xml, "cUserANFSCAN"); + if(w==NULL) + fprintf(stderr,"Cannot get the ask new file scan widget\n"); + else + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w),user.misc&ANFSCAN); + + w=glade_xml_get_widget(xml, "cUserEXTDESC"); + if(w==NULL) + fprintf(stderr,"Cannot get the extended descriptions widget\n"); + else + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w),user.misc&EXTDESC); + + w=glade_xml_get_widget(xml, "cUserBATCHFLAG"); + if(w==NULL) + fprintf(stderr,"Cannot get the batch flagging widget\n"); + else + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w),user.misc&BATCHFLAG); + + w=glade_xml_get_widget(xml, "cUserAUTOHANG"); + if(w==NULL) + fprintf(stderr,"Cannot get the auto hangup after transfer widget\n"); + else + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w),user.misc&AUTOHANG); + + w=glade_xml_get_widget(xml, "cUserCLRSCRN"); + if(w==NULL) + fprintf(stderr,"Cannot get the clear screen widget\n"); + else + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w),user.misc&CLRSCRN); + + w=glade_xml_get_widget(xml, "cExternalEditor"); + if(w==NULL) + fprintf(stderr,"Cannot get the external editor widget\n"); + else + gtk_combo_box_set_active(GTK_COMBO_BOX(w),user.xedit); + + w=glade_xml_get_widget(xml, "cDefaultDownloadProtocol"); + if(w==NULL) + fprintf(stderr,"Cannot get the default download protocol widget\n"); + else { + gtk_combo_box_set_active(GTK_COMBO_BOX(w),-1); + for(i=0;i<cfg.total_prots;i++) { + if(cfg.prot[i]->mnemonic==user.prot) { + gtk_combo_box_set_active(GTK_COMBO_BOX(w),i); + break; + } + } + } + + w=glade_xml_get_widget(xml, "cTempQWKFileType"); + if(w==NULL) + fprintf(stderr,"Cannot get the temp QWK file type widget\n"); + else { + gtk_combo_box_set_active(GTK_COMBO_BOX(w),-1); + for(i=0;i<cfg.total_fcomps;i++) { + if(!stricmp(cfg.fcomp[i]->ext,user.tmpext)) { + gtk_combo_box_set_active(GTK_COMBO_BOX(w),i); + break; + } + } + } + + w=glade_xml_get_widget(xml, "cUserQWK_FILES"); + if(w==NULL) + fprintf(stderr,"Cannot get the include new files list widget\n"); + else + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w),user.qwk&QWK_FILES); + + w=glade_xml_get_widget(xml, "cUserQWK_EMAIL"); + if(w==NULL) + fprintf(stderr,"Cannot get the include unread email widget\n"); + else + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w),user.qwk&QWK_EMAIL); + + w=glade_xml_get_widget(xml, "cUserQWK_ALLMAIL"); + if(w==NULL) + fprintf(stderr,"Cannot get the include all email widget\n"); + else + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w),user.qwk&QWK_ALLMAIL); + + w=glade_xml_get_widget(xml, "cUserQWK_DELMAIL"); + if(w==NULL) + fprintf(stderr,"Cannot get the delete email widget\n"); + else + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w),user.qwk&QWK_DELMAIL); + + w=glade_xml_get_widget(xml, "cUserQWK_BYSELF"); + if(w==NULL) + fprintf(stderr,"Cannot get the include messages by self widget\n"); + else + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w),user.qwk&QWK_BYSELF); + + w=glade_xml_get_widget(xml, "cUserQWK_EXPCTLA"); + if(w==NULL) + fprintf(stderr,"Cannot get the expand ctrl-a widget\n"); + else + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w),user.qwk&QWK_EXPCTLA); + + w=glade_xml_get_widget(xml, "cUserQWK_RETCTLA"); + if(w==NULL) + fprintf(stderr,"Cannot get the retail ctrl-a widget\n"); + else + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w),user.qwk&QWK_RETCTLA); + + w=glade_xml_get_widget(xml, "cUserQWK_ATTACH"); + if(w==NULL) + fprintf(stderr,"Cannot get the include attachments widget\n"); + else + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w),user.qwk&QWK_ATTACH); + + w=glade_xml_get_widget(xml, "cUserQWK_NOINDEX"); + if(w==NULL) + fprintf(stderr,"Cannot get the don't include index files widget\n"); + else + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w),user.qwk&QWK_NOINDEX); + + w=glade_xml_get_widget(xml, "cUserQWK_TZ"); + if(w==NULL) + fprintf(stderr,"Cannot get the include TZ widget\n"); + else + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w),user.qwk&QWK_TZ); + + w=glade_xml_get_widget(xml, "cUserQWK_VIA"); + if(w==NULL) + fprintf(stderr,"Cannot get the include VIA widget\n"); + else + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w),user.qwk&QWK_VIA); + + w=glade_xml_get_widget(xml, "cUserQWK_NOCTRL"); + if(w==NULL) + fprintf(stderr,"Cannot get the include extraneous control files widget\n"); + else + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w),user.qwk&QWK_NOCTRL); + + /* Extended Comment */ + sprintf(str,"%suser/%4.4u.msg", cfg.data_dir,user.number); + f=fopen(str,"r"); + if(f) { + w=glade_xml_get_widget(xml, "tExtendedComment"); + while((i=fread(str,1,sizeof(str),f))) + gtk_text_buffer_insert_at_cursor(gtk_text_view_get_buffer(GTK_TEXT_VIEW(w)), str,i); + fclose(f); + } } int update_current_user(int new_user) @@ -686,3 +846,36 @@ void user_toggle_inactive(GtkWidget *t, gpointer data) else gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(w),inactive); } + +void find_user(GtkWidget *t, gpointer data) +{ + GtkWidget *w; + unsigned int nu; + + w=glade_xml_get_widget(xml, "eMatchUser"); + if(w==NULL) + fprintf(stderr,"Cannot get the find user entry widget\n"); + else { + nu=matchuser(&cfg, gtk_entry_get_text(GTK_ENTRY(w)), TRUE); + if(nu==0) { + w=glade_xml_get_widget(xml, "NotFoundWindow"); + if(w==NULL) + fprintf(stderr,"Could not locate NotFoundWindow widget\n"); + else + gtk_widget_show(GTK_WIDGET(w)); + } + else + update_current_user(nu); + } +} + +void close_notfoundwindow(GtkWidget *t, gpointer data) +{ + GtkWidget *w; + + w=glade_xml_get_widget(xml, "NotFoundWindow"); + if(w==NULL) + fprintf(stderr,"Could not locate NotFoundWindow widget\n"); + else + gtk_widget_hide(GTK_WIDGET(w)); +} diff --git a/src/sbbs3/gtkuseredit/gtkuseredit.c b/src/sbbs3/gtkuseredit/gtkuseredit.c index b8c7257ca4da4c88133898be94006c669aefbfb7..8608f2d4d534f2607ee34ab84599f45552a7317e 100644 --- a/src/sbbs3/gtkuseredit/gtkuseredit.c +++ b/src/sbbs3/gtkuseredit/gtkuseredit.c @@ -63,6 +63,7 @@ int refresh_globals(void) /* 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); + gtk_combo_box_append_text(GTK_COMBO_BOX(cExternalEditor), "Internal Editor"); 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++) diff --git a/src/sbbs3/gtkuseredit/gtkuseredit.glade b/src/sbbs3/gtkuseredit/gtkuseredit.glade index 51998b72ef2e594a805590b01de8d9a04b7fcd1f..339e7665ebc4d607e1edc1cfb434a36ff6ec9d4c 100644 --- a/src/sbbs3/gtkuseredit/gtkuseredit.glade +++ b/src/sbbs3/gtkuseredit/gtkuseredit.glade @@ -249,7 +249,7 @@ <property name="is_important">False</property> <child> - <widget class="GtkEntry" id="entry2"> + <widget class="GtkEntry" id="eMatchUser"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="editable">True</property> @@ -5360,4 +5360,80 @@ <property name="translator_credits" translatable="yes" comments="TRANSLATORS: Replace this string with your names, one name per line.">translator-credits</property> </widget> +<widget class="GtkDialog" id="NotFoundWindow"> + <property name="title" translatable="yes">User Not Found</property> + <property name="type">GTK_WINDOW_TOPLEVEL</property> + <property name="window_position">GTK_WIN_POS_NONE</property> + <property name="modal">True</property> + <property name="resizable">True</property> + <property name="destroy_with_parent">False</property> + <property name="decorated">True</property> + <property name="skip_taskbar_hint">False</property> + <property name="skip_pager_hint">False</property> + <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property> + <property name="gravity">GDK_GRAVITY_NORTH_WEST</property> + <property name="focus_on_map">True</property> + <property name="urgency_hint">False</property> + <property name="has_separator">True</property> + + <child internal-child="vbox"> + <widget class="GtkVBox" id="dialog-vbox1"> + <property name="visible">True</property> + <property name="homogeneous">False</property> + <property name="spacing">0</property> + + <child internal-child="action_area"> + <widget class="GtkHButtonBox" id="dialog-action_area1"> + <property name="visible">True</property> + <property name="layout_style">GTK_BUTTONBOX_END</property> + + <child> + <widget class="GtkButton" id="okbutton1"> + <property name="visible">True</property> + <property name="can_default">True</property> + <property name="can_focus">True</property> + <property name="label">gtk-ok</property> + <property name="use_stock">True</property> + <property name="relief">GTK_RELIEF_NORMAL</property> + <property name="focus_on_click">True</property> + <property name="response_id">-5</property> + </widget> + </child> + </widget> + <packing> + <property name="padding">0</property> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="pack_type">GTK_PACK_END</property> + </packing> + </child> + + <child> + <widget class="GtkLabel" id="label73"> + <property name="visible">True</property> + <property name="label" translatable="yes">Could not find the user specified.</property> + <property name="use_underline">False</property> + <property name="use_markup">False</property> + <property name="justify">GTK_JUSTIFY_LEFT</property> + <property name="wrap">False</property> + <property name="selectable">False</property> + <property name="xalign">0.5</property> + <property name="yalign">0.5</property> + <property name="xpad">0</property> + <property name="ypad">0</property> + <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> + <property name="width_chars">-1</property> + <property name="single_line_mode">False</property> + <property name="angle">0</property> + </widget> + <packing> + <property name="padding">0</property> + <property name="expand">True</property> + <property name="fill">True</property> + </packing> + </child> + </widget> + </child> +</widget> + </glade-interface>