diff --git a/src/sbbs3/gtkuserlist/events.c b/src/sbbs3/gtkuserlist/events.c index b72af08dd535f61e2c208b3e4dce1d75564ffd74..45f355c779599a07d85b3a3271a4ba3f52e568a4 100644 --- a/src/sbbs3/gtkuserlist/events.c +++ b/src/sbbs3/gtkuserlist/events.c @@ -86,6 +86,12 @@ void update_userlist_item(GtkListStore *lstore, GtkTreeIter *curr, int usernum) user.number=usernum; getuserdat(&cfg, &user); + if(arbuf) { + if(!chk_ar(&cfg, arbuf, &user)) { + gtk_list_store_remove(lstore, curr); + return; + } + } sex[0]=user.sex; sex[1]=0; unixtodstr(&cfg, user.firston, first); @@ -118,6 +124,13 @@ void update_userlist_callback(GtkWidget *wiggy, gpointer data) int totalusers; int i; GtkTreeIter curr; + char str[1024]; + + free_cfg(&cfg); + if(!load_cfg(&cfg, NULL, TRUE, str)) { + display_message("Load Error","Cannot load configuration data","gtk-dialog-error"); + return; + } w=glade_xml_get_widget(lxml, "lUserList"); lstore=GTK_LIST_STORE(gtk_tree_view_get_model(GTK_TREE_VIEW(w))); @@ -209,3 +222,21 @@ void userlist_edituser(GtkWidget *wiggy, gpointer data) run_external(cfg.exec_dir,str); } +void apply_ars_filter(GtkWidget *wiggy, gpointer data) +{ + GtkWidget *w; + + w=glade_xml_get_widget(lxml, "eArsFilter"); + arbuf=arstr(NULL, (char *)gtk_entry_get_text(GTK_ENTRY(w)), &cfg); + update_userlist_callback(wiggy, data); +} + +void clear_ars_filter(GtkWidget *wiggy, gpointer data) +{ + GtkWidget *w; + + w=glade_xml_get_widget(lxml, "eArsFilter"); + gtk_entry_set_text(GTK_ENTRY(w),""); + arbuf=NULL; + update_userlist_callback(wiggy, data); +} diff --git a/src/sbbs3/gtkuserlist/gtkuserlist.c b/src/sbbs3/gtkuserlist/gtkuserlist.c index 2eb84d4ab80b278442f2b30ae371e16cb97e98c7..7d36defb3309e0da057db4bb77c9c044a27a1800 100644 --- a/src/sbbs3/gtkuserlist/gtkuserlist.c +++ b/src/sbbs3/gtkuserlist/gtkuserlist.c @@ -4,8 +4,9 @@ #include "events.h" #include "gtkuserlist.h" -GladeXML *lxml; +GladeXML *lxml; scfg_t cfg; +uchar *arbuf=NULL; int main(int argc, char **argv) { diff --git a/src/sbbs3/gtkuserlist/gtkuserlist.glade b/src/sbbs3/gtkuserlist/gtkuserlist.glade index 18e42b59349566260d6cfc495871d8cd61e8e9c9..604e721062521ca1722e78b96f87b03079f45bef 100644 --- a/src/sbbs3/gtkuserlist/gtkuserlist.glade +++ b/src/sbbs3/gtkuserlist/gtkuserlist.glade @@ -19,6 +19,7 @@ <property name="gravity">GDK_GRAVITY_NORTH_WEST</property> <property name="focus_on_map">True</property> <property name="urgency_hint">False</property> + <signal name="destroy" handler="gtk_main_quit" last_modification_time="Sun, 14 May 2006 06:40:44 GMT"/> <child> <widget class="GtkVBox" id="vbox4"> @@ -26,6 +27,221 @@ <property name="homogeneous">False</property> <property name="spacing">0</property> + <child> + <widget class="GtkHBox" id="hbox21"> + <property name="visible">True</property> + <property name="homogeneous">False</property> + <property name="spacing">0</property> + + <child> + <widget class="GtkLabel" id="label24"> + <property name="visible">True</property> + <property name="label" translatable="yes">ARS Filter</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">10</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">False</property> + <property name="fill">False</property> + </packing> + </child> + + <child> + <widget class="GtkEntry" id="eArsFilter"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="editable">True</property> + <property name="visibility">True</property> + <property name="max_length">0</property> + <property name="text" translatable="yes"></property> + <property name="has_frame">True</property> + <property name="invisible_char">*</property> + <property name="activates_default">False</property> + </widget> + <packing> + <property name="padding">0</property> + <property name="expand">True</property> + <property name="fill">True</property> + </packing> + </child> + + <child> + <widget class="GtkButton" id="bApplyFilter"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="relief">GTK_RELIEF_NORMAL</property> + <property name="focus_on_click">True</property> + <signal name="clicked" handler="apply_ars_filter" last_modification_time="Sun, 14 May 2006 06:47:52 GMT"/> + + <child> + <widget class="GtkAlignment" id="alignment8"> + <property name="visible">True</property> + <property name="xalign">0.5</property> + <property name="yalign">0.5</property> + <property name="xscale">0</property> + <property name="yscale">0</property> + <property name="top_padding">0</property> + <property name="bottom_padding">0</property> + <property name="left_padding">0</property> + <property name="right_padding">0</property> + + <child> + <widget class="GtkHBox" id="hbox22"> + <property name="visible">True</property> + <property name="homogeneous">False</property> + <property name="spacing">2</property> + + <child> + <widget class="GtkImage" id="image1362"> + <property name="visible">True</property> + <property name="stock">gtk-apply</property> + <property name="icon_size">4</property> + <property name="xalign">0.5</property> + <property name="yalign">0.5</property> + <property name="xpad">0</property> + <property name="ypad">0</property> + </widget> + <packing> + <property name="padding">0</property> + <property name="expand">False</property> + <property name="fill">False</property> + </packing> + </child> + + <child> + <widget class="GtkLabel" id="label25"> + <property name="visible">True</property> + <property name="label" translatable="yes">Apply</property> + <property name="use_underline">True</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">False</property> + <property name="fill">False</property> + </packing> + </child> + </widget> + </child> + </widget> + </child> + </widget> + <packing> + <property name="padding">0</property> + <property name="expand">False</property> + <property name="fill">False</property> + </packing> + </child> + + <child> + <widget class="GtkButton" id="button9"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="relief">GTK_RELIEF_NORMAL</property> + <property name="focus_on_click">True</property> + <signal name="clicked" handler="clear_ars_filter" last_modification_time="Sun, 14 May 2006 06:48:02 GMT"/> + + <child> + <widget class="GtkAlignment" id="alignment9"> + <property name="visible">True</property> + <property name="xalign">0.5</property> + <property name="yalign">0.5</property> + <property name="xscale">0</property> + <property name="yscale">0</property> + <property name="top_padding">0</property> + <property name="bottom_padding">0</property> + <property name="left_padding">0</property> + <property name="right_padding">0</property> + + <child> + <widget class="GtkHBox" id="hbox23"> + <property name="visible">True</property> + <property name="homogeneous">False</property> + <property name="spacing">2</property> + + <child> + <widget class="GtkImage" id="image1363"> + <property name="visible">True</property> + <property name="stock">gtk-clear</property> + <property name="icon_size">4</property> + <property name="xalign">0.5</property> + <property name="yalign">0.5</property> + <property name="xpad">0</property> + <property name="ypad">0</property> + </widget> + <packing> + <property name="padding">0</property> + <property name="expand">False</property> + <property name="fill">False</property> + </packing> + </child> + + <child> + <widget class="GtkLabel" id="label26"> + <property name="visible">True</property> + <property name="label" translatable="yes">Clear</property> + <property name="use_underline">True</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">False</property> + <property name="fill">False</property> + </packing> + </child> + </widget> + </child> + </widget> + </child> + </widget> + <packing> + <property name="padding">0</property> + <property name="expand">False</property> + <property name="fill">False</property> + </packing> + </child> + </widget> + <packing> + <property name="padding">0</property> + <property name="expand">False</property> + <property name="fill">False</property> + </packing> + </child> + <child> <widget class="GtkScrolledWindow" id="scrolledwindow3"> <property name="visible">True</property> diff --git a/src/sbbs3/gtkuserlist/gtkuserlist.h b/src/sbbs3/gtkuserlist/gtkuserlist.h index 425fddb0a47068f2948d43002c61c8238de065fb..7b5133c6ccad1c909063ec875409a0c5cffedaf4 100644 --- a/src/sbbs3/gtkuserlist/gtkuserlist.h +++ b/src/sbbs3/gtkuserlist/gtkuserlist.h @@ -8,5 +8,6 @@ extern GladeXML *lxml; extern scfg_t cfg; +extern uchar *arbuf; #endif