pull/181/head
parent 7cb570c138
commit 1ad1a1a3e5

@ -1280,29 +1280,33 @@ void on_user_choose(GtkWidget *self, GtkEntry *target){
void on_GID_update(GtkWidget *self, ubl_settings_usergroups_group_creation_window *window){ void on_GID_update(GtkWidget *self, ubl_settings_usergroups_group_creation_window *window){
if (!gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(window->userUIDAutoCheck))){ if (!gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(window->userUIDAutoCheck))){
int config_size=0; if (window->last_gid){
int final_size=0; gtk_entry_set_text(GTK_ENTRY(window->userUIDEntry),window->last_gid);
config_str config_groups = yon_config_get_all_by_key(GROUPADD_parameter,&config_size); } else {
yon_char_parsed_prepend_strings(config_groups,config_size,":"); int config_size=0;
config_str final = yon_char_parsed_merge(main_config.groups,main_config.groups_size,config_groups,config_size,&final_size); int final_size=0;
long prev_busy=gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(window->SystemGroupCheck))?0:main_config.MINGID; config_str config_groups = yon_config_get_all_by_key(GROUPADD_parameter,&config_size);
for (int i=0;i<final_size;i++){ yon_char_parsed_prepend_strings(config_groups,config_size,":");
int parsed_size; config_str final = yon_char_parsed_merge(main_config.groups,main_config.groups_size,config_groups,config_size,&final_size);
config_str parsed = yon_char_parse(final[i],&parsed_size,":"); long prev_busy=gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(window->SystemGroupCheck))?0:main_config.MINGID;
for (int i=0;i<final_size;i++){
if (atol(parsed[2])>=main_config.MINGID||gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(window->SystemGroupCheck))){ int parsed_size;
if (atol(parsed[2])>main_config.MAXGID||gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(window->SystemGroupCheck))) config_str parsed = yon_char_parse(final[i],&parsed_size,":");
break;
if (atol(parsed[2])==prev_busy+1) if (atol(parsed[2])>=main_config.MINGID||gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(window->SystemGroupCheck))){
prev_busy=atol(parsed[2]); if (atol(parsed[2])>main_config.MAXGID||gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(window->SystemGroupCheck)))
else { break;
if (atol(parsed[2])==prev_busy+1)
prev_busy=atol(parsed[2]);
else {
yon_char_parsed_free(parsed, parsed_size);
break;
}
}
yon_char_parsed_free(parsed, parsed_size); yon_char_parsed_free(parsed, parsed_size);
break;
} }
gtk_entry_set_text(GTK_ENTRY(window->userUIDEntry),yon_char_from_long(prev_busy+1));
} }
yon_char_parsed_free(parsed, parsed_size);
}
gtk_entry_set_text(GTK_ENTRY(window->userUIDEntry),yon_char_from_long(prev_busy+1));
} else { } else {
gtk_entry_set_text(GTK_ENTRY(window->userUIDEntry),""); gtk_entry_set_text(GTK_ENTRY(window->userUIDEntry),"");
} }
@ -1458,6 +1462,7 @@ ubl_settings_usergroups_group_creation_window *yon_ubl_settings_usergroups_group
window->AdminGroupsButton=yon_gtk_builder_get_widget(builder,"AdminGroupsButton"); window->AdminGroupsButton=yon_gtk_builder_get_widget(builder,"AdminGroupsButton");
window->GroupaddShutdownCheck=yon_gtk_builder_get_widget(builder,"GroupaddShutdownCheck"); window->GroupaddShutdownCheck=yon_gtk_builder_get_widget(builder,"GroupaddShutdownCheck");
window->groupExtraOptionsEntry=yon_gtk_builder_get_widget(builder,"groupExtraOptionsEntry"); window->groupExtraOptionsEntry=yon_gtk_builder_get_widget(builder,"groupExtraOptionsEntry");
window->last_gid=NULL;
gtk_window_set_title(GTK_WINDOW(window->CreateGroupWindow),GROUPS_TITLE_LABEL); gtk_window_set_title(GTK_WINDOW(window->CreateGroupWindow),GROUPS_TITLE_LABEL);
@ -1841,29 +1846,33 @@ void on_user_shell_changed(GtkWidget *self, ubl_settings_usergroups_user_window
void on_UID_update(GtkWidget *self, ubl_settings_usergroups_user_window *window){ void on_UID_update(GtkWidget *self, ubl_settings_usergroups_user_window *window){
if (!gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(window->userUIDAutoCheck))){ if (!gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(window->userUIDAutoCheck))){
int config_size=0; if (window->last_uid){
int final_size=0; gtk_entry_set_text(GTK_ENTRY(window->userUIDEntry),window->last_uid);
config_str config_users = yon_config_get_all_by_key(USERADD_SEARCH_macro,&config_size); } else {
yon_char_parsed_prepend_strings(config_users,config_size,":"); int config_size=0;
config_str final = yon_char_parsed_merge(main_config.users,main_config.users_size,config_users,config_size,&final_size); int final_size=0;
long prev_busy=gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(window->userCreateSystemCheck))?0:main_config.MINGID; config_str config_users = yon_config_get_all_by_key(USERADD_SEARCH_macro,&config_size);
for (int i=0;i<final_size;i++){ yon_char_parsed_prepend_strings(config_users,config_size,":");
int parsed_size; config_str final = yon_char_parsed_merge(main_config.users,main_config.users_size,config_users,config_size,&final_size);
config_str parsed = yon_char_parse(final[i],&parsed_size,":"); long prev_busy=gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(window->userCreateSystemCheck))?0:main_config.MINGID;
for (int i=0;i<final_size;i++){
if (atol(parsed[2])>=main_config.MINUID||gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(window->userCreateSystemCheck))){ int parsed_size;
if (atol(parsed[2])>main_config.MAXUID||gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(window->userCreateSystemCheck))) config_str parsed = yon_char_parse(final[i],&parsed_size,":");
break;
if (atol(parsed[2])==prev_busy+1) if (atol(parsed[2])>=main_config.MINUID||gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(window->userCreateSystemCheck))){
prev_busy=atol(parsed[2]); if (atol(parsed[2])>main_config.MAXUID||gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(window->userCreateSystemCheck)))
else { break;
if (atol(parsed[2])==prev_busy+1)
prev_busy=atol(parsed[2]);
else {
yon_char_parsed_free(parsed, parsed_size);
break;
}
}
yon_char_parsed_free(parsed, parsed_size); yon_char_parsed_free(parsed, parsed_size);
break;
} }
gtk_entry_set_text(GTK_ENTRY(window->userUIDEntry),yon_char_from_long(prev_busy+1));
} }
yon_char_parsed_free(parsed, parsed_size);
}
gtk_entry_set_text(GTK_ENTRY(window->userUIDEntry),yon_char_from_long(prev_busy+1));
} else { } else {
gtk_entry_set_text(GTK_ENTRY(window->userUIDEntry),""); gtk_entry_set_text(GTK_ENTRY(window->userUIDEntry),"");
} }
@ -2378,6 +2387,7 @@ ubl_settings_usergroups_user_window *yon_ubl_settings_usergroups_user_new(){
window->UsershadowShutdownCheck=yon_gtk_builder_get_widget(builder,"UsershadowShutdownCheck"); window->UsershadowShutdownCheck=yon_gtk_builder_get_widget(builder,"UsershadowShutdownCheck");
window->userTitleNameLabel=yon_gtk_builder_get_widget(builder,"userTitleNameLabel"); window->userTitleNameLabel=yon_gtk_builder_get_widget(builder,"userTitleNameLabel");
window->expiration_unix=NULL; window->expiration_unix=NULL;
window->last_uid=NULL;
time_t t = time(NULL); time_t t = time(NULL);
struct tm tm = *localtime(&t); struct tm tm = *localtime(&t);
@ -2523,8 +2533,11 @@ void on_main_edit(GtkWidget *self, main_window *widgets){
if (parsed_size>2){ if (parsed_size>2){
if (!strcmp(parameters[2],"x")) if (!strcmp(parameters[2],"x"))
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(window->userGroupsCheck),1); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(window->userGroupsCheck),1);
else else {
gtk_entry_set_text(GTK_ENTRY(window->userGroupsEntry), parsed_size>2?parameters[2]:""); gtk_entry_set_text(GTK_ENTRY(window->userGroupsEntry), parsed_size>2?parameters[2]:"");
if (!yon_char_is_empty(parameters[2]))
window->last_uid=yon_char_new(parameters[2]);
}
} }
if (parsed_size>3){ if (parsed_size>3){
if (strcmp(parameters[3],"x")){ if (strcmp(parameters[3],"x")){
@ -2652,6 +2665,7 @@ void on_main_edit(GtkWidget *self, main_window *widgets){
if (strcmp(parsed[1],"")&&strcmp(parsed[1],"x")){ if (strcmp(parsed[1],"")&&strcmp(parsed[1],"x")){
gtk_entry_set_text(GTK_ENTRY(window->userUIDEntry),parsed[1]); gtk_entry_set_text(GTK_ENTRY(window->userUIDEntry),parsed[1]);
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(window->userUIDAutoCheck),0); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(window->userUIDAutoCheck),0);
window->last_gid=yon_char_new(parsed[1]);
} }
} }
if (size>2&&!yon_char_is_empty(parsed[2])){ if (size>2&&!yon_char_is_empty(parsed[2])){

@ -235,6 +235,8 @@ typedef struct{
GtkWidget *AdminGroupsButton; GtkWidget *AdminGroupsButton;
GtkWidget *GroupaddShutdownCheck; GtkWidget *GroupaddShutdownCheck;
GtkWidget *groupExtraOptionsEntry; GtkWidget *groupExtraOptionsEntry;
char *last_gid;
} ubl_settings_usergroups_group_creation_window; } ubl_settings_usergroups_group_creation_window;
typedef struct{ typedef struct{
@ -320,6 +322,7 @@ typedef struct{
char *old_password; char *old_password;
char *old_username; char *old_username;
char *last_uid;
} ubl_settings_usergroups_user_window; } ubl_settings_usergroups_user_window;
typedef struct { typedef struct {

Loading…
Cancel
Save