You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
171 lines
8.7 KiB
171 lines
8.7 KiB
#include "ubinstall-gtk.h"
|
|
|
|
// void on_autohostname_check(GtkWidget *, main_window *widgets){
|
|
// gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widgets->HostnameSensitiveCheck),1);
|
|
// if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->AutoHostnameCheck))){
|
|
// gtk_widget_set_sensitive(widgets->HotnameEntry,0);
|
|
// gtk_entry_set_placeholder_text(GTK_ENTRY(widgets->HotnameEntry),"auto");
|
|
// }else{
|
|
// gtk_widget_set_sensitive(widgets->HotnameEntry,1);
|
|
// gtk_entry_set_placeholder_text(GTK_ENTRY(widgets->HotnameEntry),"ublinux-install");
|
|
// }
|
|
// }
|
|
|
|
// void on_autohostname_sensitiveness_check(GtkWidget *, main_window *widgets){
|
|
// if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->HostnameSensitiveCheck))){
|
|
// gtk_widget_set_sensitive(widgets->AutoHostnameCheck,1);
|
|
// if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->AutoHostnameCheck))){
|
|
// gtk_widget_set_sensitive(widgets->HotnameEntry,0);
|
|
// } else
|
|
// gtk_widget_set_sensitive(widgets->HotnameEntry,1);
|
|
// } else {
|
|
// gtk_widget_set_sensitive(widgets->HotnameEntry,0);
|
|
// gtk_widget_set_sensitive(widgets->AutoHostnameCheck,0);
|
|
// }
|
|
// }
|
|
|
|
// void on_hostname_entry_changed (GtkWidget *, main_window *widgets){
|
|
// gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widgets->HostnameSensitiveCheck),1);
|
|
// gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widgets->AutoHostnameCheck),0);
|
|
// }
|
|
|
|
network_info *yon_network_info_new(){
|
|
network_info *info = new(network_info);
|
|
GtkBuilder *builder = gtk_builder_new_from_resource(glade_path_network_info);
|
|
info->MainBox = yon_gtk_builder_get_widget(builder,"MainBox");
|
|
info->TypeCombo = yon_gtk_builder_get_widget(builder,"TypeCombo");
|
|
info->ConnectionCombo = yon_gtk_builder_get_widget(builder,"ConnectionCombo");
|
|
info->ConnectionEntry = yon_gtk_builder_get_widget(builder,"ConnectionEntry");
|
|
info->EnabledSwitch = yon_gtk_builder_get_widget(builder,"EnabledSwitch");
|
|
info->RemoveButton = yon_gtk_builder_get_widget(builder,"RemoveButton");
|
|
info->AutoGetIPSwitch = yon_gtk_builder_get_widget(builder,"AutoGetIPSwitch");
|
|
info->IpAdressEntry = yon_gtk_builder_get_widget(builder,"IpAdressEntry");
|
|
info->GatewayEntry = yon_gtk_builder_get_widget(builder,"GatewayEntry");
|
|
info->MaskEntry = yon_gtk_builder_get_widget(builder,"MaskEntry");
|
|
info->DNSEntry = yon_gtk_builder_get_widget(builder,"DNSEntry");
|
|
|
|
g_object_set_data(G_OBJECT(info->RemoveButton),"network_info",info);
|
|
g_object_set_data(G_OBJECT(info->MainBox),"network_info",info);
|
|
|
|
gtk_widget_show(info->MainBox);
|
|
return info;
|
|
}
|
|
|
|
void on_ntp_sync(GtkWidget *, main_window *widgets){
|
|
int mode = gtk_combo_box_get_active(GTK_COMBO_BOX(widgets->NetworkNTPCombo));
|
|
gtk_widget_set_sensitive(widgets->NetworkNTPEntry,0);
|
|
switch(mode){
|
|
case 0:
|
|
gtk_entry_set_text(GTK_ENTRY(widgets->NetworkNTPEntry),"");
|
|
gtk_entry_set_placeholder_text(GTK_ENTRY(widgets->NetworkNTPEntry),"");
|
|
break;
|
|
case 2:{
|
|
int size;
|
|
config_str parsed = yon_config_load(get_ntp_default_command,&size);
|
|
if (size&&!yon_char_is_empty(parsed[0])&&strcmp(parsed[0],"(null)\n")){
|
|
free(yon_char_divide_search(parsed[0],"=",-1));
|
|
yon_char_remove_last_symbol(parsed[0],'\n');
|
|
yon_char_remove_brackets(parsed[0]);
|
|
gtk_entry_set_placeholder_text(GTK_ENTRY(widgets->NetworkNTPEntry),parsed[0]);
|
|
yon_char_parsed_free(parsed,size);
|
|
gtk_entry_set_text(GTK_ENTRY(widgets->NetworkNTPEntry),"");
|
|
}
|
|
}
|
|
break;
|
|
case 3:{
|
|
int size;
|
|
config_str parsed = yon_config_load(get_ntp_ru_command,&size);
|
|
if (size&&!yon_char_is_empty(parsed[0])&&strcmp(parsed[0],"(null)\n")){
|
|
free(yon_char_divide_search(parsed[0],"=",-1));
|
|
yon_char_remove_last_symbol(parsed[0],'\n');
|
|
yon_char_remove_brackets(parsed[0]);
|
|
gtk_entry_set_placeholder_text(GTK_ENTRY(widgets->NetworkNTPEntry),parsed[0]);
|
|
yon_char_parsed_free(parsed,size);
|
|
gtk_entry_set_text(GTK_ENTRY(widgets->NetworkNTPEntry),"");
|
|
}
|
|
}
|
|
break;
|
|
case 1:
|
|
gtk_entry_set_placeholder_text(GTK_ENTRY(widgets->NetworkNTPEntry),"DHCP");
|
|
gtk_entry_set_text(GTK_ENTRY(widgets->NetworkNTPEntry),"");
|
|
break;
|
|
case 5:
|
|
gtk_entry_set_placeholder_text(GTK_ENTRY(widgets->NetworkNTPEntry),"");
|
|
gtk_entry_set_text(GTK_ENTRY(widgets->NetworkNTPEntry),"");
|
|
break;
|
|
case 4:
|
|
gtk_widget_set_sensitive(widgets->NetworkNTPEntry,1);
|
|
gtk_entry_set_placeholder_text(GTK_ENTRY(widgets->NetworkNTPEntry),"");
|
|
gtk_entry_set_text(GTK_ENTRY(widgets->NetworkNTPEntry),"");
|
|
break;
|
|
}
|
|
}
|
|
|
|
void on_connection_add(main_window *widgets){
|
|
network_info *info = yon_network_info_new();
|
|
gtk_box_pack_start(GTK_BOX(widgets->NetworkConnectionsBox),info->MainBox,0,0,0);
|
|
}
|
|
|
|
int yon_network_save(main_window *widgets){
|
|
if (gtk_switch_get_active(GTK_SWITCH(widgets->NetworkDomainSwitch))){
|
|
const char *domain_name = gtk_entry_get_text(GTK_ENTRY(widgets->NetworkDomainNameEntry));
|
|
if (!yon_char_is_empty(domain_name)){
|
|
yon_ubl_status_box_render(EMPTY_IMPORTANT_LABEL,BACKGROUND_IMAGE_FAIL_TYPE);
|
|
yon_ubl_status_highlight_incorrect(widgets->NetworkDomainNameEntry);
|
|
return 0;
|
|
}
|
|
const char *domain_admin = gtk_entry_get_text(GTK_ENTRY(widgets->NetworkDomainAdminEntry));
|
|
const char *domain_password = gtk_entry_get_text(GTK_ENTRY(widgets->NetworkDomainPasswordEntry));
|
|
if (!yon_char_is_empty(domain_name)) yon_config_register(DOMAIN_parameter,DOMAIN_parameter_command,(char*)domain_name);
|
|
else yon_config_remove_by_key(DOMAIN_parameter);
|
|
if ((!yon_char_is_empty(domain_admin)&&yon_char_is_empty(domain_password))||(yon_char_is_empty(domain_admin)&&!yon_char_is_empty(domain_password))){
|
|
yon_ubl_status_box_render(EMPTY_IMPORTANT_LABEL,BACKGROUND_IMAGE_FAIL_TYPE);
|
|
yon_ubl_status_highlight_incorrect(widgets->NetworkDomainAdminEntry);
|
|
yon_ubl_status_highlight_incorrect(widgets->NetworkDomainPasswordEntry);
|
|
return 0;
|
|
}
|
|
if (!yon_char_is_empty(domain_admin)&&!yon_char_is_empty(domain_password)){
|
|
int size;
|
|
config_str encrypted_password = yon_config_load(encrypt_domain_password_command(domain_password),&size);
|
|
if (!size){
|
|
yon_ubl_status_box_render(ENCRYPT_ERROR_LABEL,BACKGROUND_IMAGE_FAIL_TYPE);
|
|
yon_ubl_status_highlight_incorrect(widgets->NetworkDomainPasswordEntry);
|
|
return 0;
|
|
}
|
|
char *admin_string_full = yon_char_unite(domain_admin,":",encrypted_password[0],NULL);
|
|
yon_config_register(DOMAIN_admanger_parameter,DOMAIN_parameter_command,admin_string_full);
|
|
} else {
|
|
yon_config_remove_by_key(DOMAIN_admanger_parameter);
|
|
}
|
|
}
|
|
if (gtk_switch_get_active(GTK_SWITCH(widgets->NetworkNTPServerSwitch))){
|
|
|
|
int mode = gtk_combo_box_get_active(GTK_COMBO_BOX(widgets->NetworkNTPCombo));
|
|
switch(mode){
|
|
case 0:yon_config_remove_by_key(NTPSERVERS_parameter);
|
|
break;
|
|
case 1:yon_config_register(NTPSERVERS_parameter,NTPSERVERS_parameter_command,"dhcp");
|
|
break;
|
|
case 2:yon_config_register(NTPSERVERS_parameter,NTPSERVERS_parameter_command,"default");
|
|
break;
|
|
case 3:yon_config_register(NTPSERVERS_parameter,NTPSERVERS_parameter_command,"ntp-ru");
|
|
break;
|
|
case 5:yon_config_register(NTPSERVERS_parameter,NTPSERVERS_parameter_command,"disable");
|
|
break;
|
|
case 6:yon_config_register(NTPSERVERS_parameter,NTPSERVERS_parameter_command,"stop");
|
|
break;
|
|
case 4:
|
|
char *value = (char*)gtk_entry_get_text(GTK_ENTRY(widgets->NetworkNTPEntry));
|
|
if (yon_char_is_empty(value)) {
|
|
yon_ubl_status_box_render(EMPTY_IMPORTANT_LABEL,BACKGROUND_IMAGE_FAIL_TYPE);
|
|
yon_ubl_status_highlight_incorrect(widgets->NetworkNTPEntry);
|
|
return 0;
|
|
}
|
|
yon_config_register(NTPSERVERS_parameter,NTPSERVERS_parameter_command,value);
|
|
break;
|
|
}
|
|
} else {
|
|
yon_config_remove_by_key(NTPSERVERS_parameter);
|
|
}
|
|
return 1;
|
|
} |