? rgpe-conf-0.1.22-20041124.patch Index: ChangeLog =================================================================== RCS file: /cvs/gpe/base/gpe-conf/ChangeLog,v retrieving revision 1.268 retrieving revision 1.270 diff -u -r1.268 -r1.270 --- ChangeLog 23 Nov 2004 21:34:38 -0000 1.268 +++ ChangeLog 24 Nov 2004 15:44:10 -0000 1.270 @@ -1,5 +1,15 @@ 2004-11-23 Florian Boor + * cfgfile.*, network.c: Hide all network interfaces that are not available. + +2004-11-19 Florian Boor + + * users/interface.*, users/callbacks.c: Prevent user from deleting last + user account. + * timeanddate.c: Make some entries activate OK button. + +2004-11-23 Florian Boor + * Released Version 0.1.22 2004-11-17 Florian Boor Index: cfgfile.c =================================================================== RCS file: /cvs/gpe/base/gpe-conf/cfgfile.c,v retrieving revision 1.14 retrieving revision 1.15 diff -u -r1.14 -r1.15 --- cfgfile.c 16 Oct 2004 16:03:42 -0000 1.14 +++ cfgfile.c 24 Nov 2004 15:43:10 -0000 1.15 @@ -19,9 +19,12 @@ #include #include #include +#include +#include #include "cfgfile.h" #include "network.h" +#include "tools/interface.h" #define _(x) gettext(x) @@ -280,6 +283,22 @@ } } +static gboolean +is_present_interface(gchar *ifname) +{ + struct interface *int_list, *ife; + + int_list = if_getlist (); + g_strstrip(ifname); + + for (ife = int_list; ife; ife = ife->next) + { + if (g_str_has_prefix(ifname, ife->name)) + return TRUE; + } + return FALSE; +} + gint get_scheme_list() { gchar ifname[255] = {0}; @@ -339,6 +358,7 @@ memset(&iflist[l-1],'\0',sizeof(NWInterface_t)); strcpy(iflist[l-1].name,ifname); + iflist[l-1].ispresent = is_present_interface(ifname); iflist[l-1].isstatic = FALSE; iflist[l-1].isinet = FALSE; Index: cfgfile.h =================================================================== RCS file: /cvs/gpe/base/gpe-conf/cfgfile.h,v retrieving revision 1.9 retrieving revision 1.10 diff -u -r1.9 -r1.10 --- cfgfile.h 25 Aug 2004 10:17:31 -0000 1.9 +++ cfgfile.h 24 Nov 2004 15:43:10 -0000 1.10 @@ -66,6 +66,7 @@ gint firstline; gint lastline; gint status; + gboolean ispresent; } NWInterface_t; gint set_file_open(gint openon); Index: network.c =================================================================== RCS file: /cvs/gpe/base/gpe-conf/network.c,v retrieving revision 1.42 retrieving revision 1.43 diff -u -r1.42 -r1.43 --- network.c 17 Nov 2004 18:25:59 -0000 1.42 +++ network.c 24 Nov 2004 15:43:10 -0000 1.43 @@ -1648,12 +1648,15 @@ for (row = 0; row < num_int; row++) { ctable = NULL; - if (iflist[row].isstatic) - ctable = create_nwstatic_widgets (iflist[row]); - if (iflist[row].isdhcp) - ctable = create_nwdhcp_widgets (iflist[row]); - if (iflist[row].isppp) - ctable = create_nwppp_widgets (iflist[row]); + if (iflist[row].ispresent) + { + if (iflist[row].isstatic) + ctable = create_nwstatic_widgets (iflist[row]); + if (iflist[row].isdhcp) + ctable = create_nwdhcp_widgets (iflist[row]); + if (iflist[row].isppp) + ctable = create_nwppp_widgets (iflist[row]); + } if (ctable) { if (!have_access) Index: timeanddate.c =================================================================== RCS file: /cvs/gpe/base/gpe-conf/timeanddate.c,v retrieving revision 1.39 retrieving revision 1.40 diff -u -r1.39 -r1.40 --- timeanddate.c 6 Nov 2004 08:22:52 -0000 1.39 +++ timeanddate.c 24 Nov 2004 15:43:10 -0000 1.40 @@ -528,6 +528,7 @@ gtk_misc_set_alignment (GTK_MISC (self.catlabel1), 0.0, 0.9); self.cal = gtk_date_combo_new (); + gtk_entry_set_activates_default(GTK_ENTRY(GTK_DATE_COMBO(self.cal)->entry), TRUE); gtk_calendar_select_month (GTK_CALENDAR (GTK_DATE_COMBO(self.cal)->cal), ts.tm_mon, ts.tm_year); gtk_calendar_select_day (GTK_CALENDAR (GTK_DATE_COMBO(self.cal)->cal), ts.tm_mday); gtk_table_attach (GTK_TABLE (table), self.cal, 0, 3, 1, 2, @@ -549,6 +550,8 @@ gpe_time_sel_set_time(GPE_TIME_SEL(self.tsel),(guint)ts.tm_hour, (guint)ts.tm_min); gtk_table_attach (GTK_TABLE (table), self.tsel, 0, 3, 3, 4, GTK_FILL,0,3,0); + gtk_entry_set_activates_default(GTK_ENTRY(GPE_TIME_SEL(self.tsel)->hour_spin), TRUE); + gtk_entry_set_activates_default(GTK_ENTRY(GPE_TIME_SEL(self.tsel)->minute_spin), TRUE); /* -------------------------------------------------------------------------- */ self.catlabel3 = gtk_label_new (NULL); @@ -569,7 +572,7 @@ gtk_combo_set_popdown_strings (GTK_COMBO (self.ntpserver), ntpsrv); gtk_table_attach (GTK_TABLE (table), self.ntpserver, 0, 3, 5, 6, GTK_FILL,0,3,0); - + gtk_tooltips_set_tip (tooltips, self.ntpserver, _("Select the timeserver to use to set the clock."), NULL); self.internet = gtk_button_new_with_label(_("Get time from network")); Index: users/callbacks.c =================================================================== RCS file: /cvs/gpe/base/gpe-conf/users/callbacks.c,v retrieving revision 1.17 retrieving revision 1.18 diff -u -r1.17 -r1.18 --- users/callbacks.c 17 Nov 2004 18:26:00 -0000 1.17 +++ users/callbacks.c 24 Nov 2004 15:43:10 -0000 1.18 @@ -93,6 +93,22 @@ pwlist *cur = pwroot; pwlist **prec = &pwroot; uint i=GPOINTER_TO_UINT(tmp->data); + uint usercount = 0; + + while (cur) + { + if ((cur->pw.pw_uid >= MINUSERUID) && (cur->pw.pw_uid < MAXUSERID)) + usercount++; + cur = cur->next; + } + + if (usercount < 2) + { + gpe_error_box(_("You need at least one user account!")); + return; + } + cur = pwroot; + while(IsHidden(cur)) { prec = &cur->next; @@ -109,6 +125,13 @@ } i--; } + + if (!strcmp(cur->pw.pw_name, "lx")) + { + gpe_error_box(_("You can't remove this user!")); + return; + } + if(cur->pw.pw_uid < MINUSERUID) gpe_error_box(_("You can't remove\n system users!")); else @@ -122,7 +145,6 @@ } } ReloadList(); - } Index: users/interface.h =================================================================== RCS file: /cvs/gpe/base/gpe-conf/users/interface.h,v retrieving revision 1.8 retrieving revision 1.9 diff -u -r1.8 -r1.9 --- users/interface.h 14 Jun 2004 10:15:16 -0000 1.8 +++ users/interface.h 24 Nov 2004 15:43:10 -0000 1.9 @@ -6,6 +6,8 @@ #else #define MINUSERUID 100 #endif +#define MAXUSERID 65500 + typedef struct pwlist_s { struct passwd pw;