From ae97363e5b2e111f36b5036e0681d5f00b867f9e Mon Sep 17 00:00:00 2001 From: Ivan Yarcev Date: Mon, 28 Jul 2025 18:18:30 +0600 Subject: [PATCH] Network loading; Bootloader loading; Kernel enabled improved logic --- gresource.xml | 1 + network-list.csv | 45 +++++ source/CMakeLists.txt | 1 + source/ubinstall-gtk-bootloader.c | 40 ++++- source/ubinstall-gtk-kernel.c | 21 ++- source/ubinstall-gtk-network.c | 133 +++++++++++++-- source/ubinstall-gtk-page-switch.c | 32 ++++ source/ubinstall-gtk.c | 5 +- source/ubinstall-gtk.h | 18 +- ubinstall-gtk-kernel-row.glade | 4 +- ubinstall-gtk-network-box.glade | 260 ++++++++++++++++------------- ubinstall-gtk.glade | 89 +++++++--- 12 files changed, 469 insertions(+), 180 deletions(-) create mode 100644 network-list.csv diff --git a/gresource.xml b/gresource.xml index 11c7f36..5535760 100644 --- a/gresource.xml +++ b/gresource.xml @@ -47,5 +47,6 @@ kernel-list.csv kernel-list-addon.csv services-list.csv + network-list.csv \ No newline at end of file diff --git a/network-list.csv b/network-list.csv new file mode 100644 index 0000000..dc8b9cc --- /dev/null +++ b/network-list.csv @@ -0,0 +1,45 @@ +TYPE;NAME +Ethernet;enp0s0 +Ethernet;enp0s1 +Ethernet;enp0s2 +Ethernet;enp0s3 +Ethernet;enp1s0 +Ethernet;enp1s1 +Ethernet;enp1s2 +Ethernet;enp1s3 +Ethernet;enp2s0 +Ethernet;enp2s1 +Ethernet;enp2s2 +Ethernet;enp2s3 +Ethernet;enp3s0 +Ethernet;enp3s1 +Ethernet;enp3s2 +Ethernet;enp3s3 +Ethernet;ens160 +Ethernet;ens35 +WiFi;wifi +WiFi;wl0 +WiFi;wl1 +WiFi;wl2 +WiFi;wl3 +WiFi;wlan0 +WiFi;wlan1 +WiFi;wlan2 +WiFi;wlan3 +VPN;tap0 +VPN;tap1 +VPN;tap2 +VPN;tap3 +VPN;tun0 +VPN;tun0 +VPN;tun1 +VPN;tun2 +VPN;tun3 +VPN;pppoe0 +VPN;pppoe1 +VPN;pppoe2 +VPN;pppoe3 +Bridge;br0 +Bridge;br1 +Bridge;br2 +Bridge;br3 \ No newline at end of file diff --git a/source/CMakeLists.txt b/source/CMakeLists.txt index f7b276d..188d38a 100644 --- a/source/CMakeLists.txt +++ b/source/CMakeLists.txt @@ -78,6 +78,7 @@ set(DEPENDFILES ../kernel-list.csv ../kernel-list-addon.csv ../services-list.csv + ../network-list.csv ) file(COPY ${DEPENDFILES} DESTINATION ${CMAKE_CURRENT_BINARY_DIR}) diff --git a/source/ubinstall-gtk-bootloader.c b/source/ubinstall-gtk-bootloader.c index dc5bdc4..0782600 100644 --- a/source/ubinstall-gtk-bootloader.c +++ b/source/ubinstall-gtk-bootloader.c @@ -400,6 +400,42 @@ void yon_bootloader_interface_update(main_window *widgets){ } -// void yon_bootloader_setup(main_window *widgets){ +void yon_bootloader_init(main_window *widgets){ + char *timeout = config(GRUB_TIMEOUT_parameter); + char *os = config(GRUB_DEFAULT_parameter); + char *autologin = config(AUTOLOGINUSER_parameter); + char *admins = config(GRUB_SUPERUSERS_parameter); + int size; + config_str users = yon_config_get_all_by_key(GRUB_PASSWORD_parameter_search,&size); + if (!yon_char_is_empty(timeout)){ + long timeout_long = atol(timeout); + gtk_switch_set_active(GTK_SWITCH(widgets->BootloadTimerSwitch),1); + gtk_spin_button_set_value(GTK_SPIN_BUTTON(widgets->BootloadTimerSpin),timeout_long); + } else{ + gtk_switch_set_active(GTK_SWITCH(widgets->BootloadTimerSwitch),0); + gtk_spin_button_set_value(GTK_SPIN_BUTTON(widgets->BootloadTimerSpin),0); + } + if (!yon_char_is_empty(os)){ + gtk_entry_set_text(GTK_ENTRY(widgets->BootloadDefaultOSEntry),os); + } else { + gtk_entry_set_text(GTK_ENTRY(widgets->BootloadDefaultOSEntry),DEFAULT_BOOTLOAD_MENU_ITEM_LABEL); + } + if (!yon_char_is_empty(autologin)&&(!strcmp(autologin,"yes")||!strcmp(autologin,"enable"))){ + gtk_switch_set_active(GTK_SWITCH(widgets->BootloadNoPasswordSwitch),1); + int admins_size; + config_str admins_parsed = yon_char_parse(admins,&admins_size,","); + GtkTreeIter iter; + for (int i=0;iBootloadUsersList,&iter); + gtk_list_store_set(widgets->BootloadUsersList,&iter,0,yon_char_parsed_check_exist(admins_parsed,admins_size,key),1,key,2,parameter,3,"******",-1); + free(parameter); + free(parameter_name); + free(key); + } + yon_char_parsed_free(admins_parsed,admins_size); + } +} \ No newline at end of file diff --git a/source/ubinstall-gtk-kernel.c b/source/ubinstall-gtk-kernel.c index db1756c..ab6f9d2 100644 --- a/source/ubinstall-gtk-kernel.c +++ b/source/ubinstall-gtk-kernel.c @@ -1,5 +1,12 @@ #include "ubinstall-gtk.h" +void on_kernel_install_enabled(GtkWidget *, kernel_row *row){ + int active = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(row->InstallCheck)); + gtk_widget_set_sensitive(row->EnableRadio,active); + if (!gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(row->InstallCheck))){ + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(main_config.kernel_unchosen_radio),1); + } +} kernel_row *yon_kernel_row_new(){ kernel_row *row = new(kernel_row); @@ -18,6 +25,8 @@ kernel_row *yon_kernel_row_new(){ row->modules=NULL; row->package=NULL; + g_signal_connect(G_OBJECT(row->InstallCheck),"toggled",G_CALLBACK(on_kernel_install_enabled),row); + row->row = gtk_list_box_row_new(); gtk_container_add(GTK_CONTAINER(row->row),row->RowBox); gtk_widget_show(row->row); @@ -186,7 +195,6 @@ void yon_kernel_setup(main_window *widgets){ config_str kernels = yon_resource_open_file(kernel_list_path,&size); gtk_size_group_add_widget(widgets->KernelSizeGroup,widgets->KernelTagsLabel); - GtkWidget *radio_group = NULL; for (int i=1;iKernelListBox),row->row,-1); gtk_size_group_add_widget(widgets->KernelSizeGroup,row->TagsBox); - if (!radio_group) { - radio_group = row->EnableRadio; - } - gtk_radio_button_join_group(GTK_RADIO_BUTTON(row->EnableRadio),GTK_RADIO_BUTTON(radio_group)); + gtk_radio_button_join_group(GTK_RADIO_BUTTON(row->EnableRadio),GTK_RADIO_BUTTON(main_config.kernel_unchosen_radio)); yon_kernel_row_setup(row,name,modules,package,tags,description); yon_char_parsed_free(parsed,parsed_size); @@ -232,7 +237,6 @@ void yon_kernel_addon_setup(main_window *widgets){ int size; config_str kernels = yon_resource_open_file(kernel_list_addon_path,&size); - GtkWidget *radio_group = NULL; for (int i=1;iEnableRadio); gtk_widget_destroy(row->EnableSeparator); - if (!radio_group) { - radio_group = row->EnableRadio; - } - gtk_radio_button_join_group(GTK_RADIO_BUTTON(row->EnableRadio),GTK_RADIO_BUTTON(radio_group)); - yon_kernel_row_setup(row,name,modules,package,tags,description); yon_char_parsed_free(parsed,parsed_size); } diff --git a/source/ubinstall-gtk-network.c b/source/ubinstall-gtk-network.c index 3fcc610..5aa2ebb 100644 --- a/source/ubinstall-gtk-network.c +++ b/source/ubinstall-gtk-network.c @@ -11,8 +11,8 @@ void on_autohostname_check(GtkWidget *, main_window *widgets){ } } -void on_autohostname_sensitiveness_check(GtkWidget *, main_window *widgets){ - if (gtk_switch_get_active(GTK_SWITCH(widgets->HostnameSensitiveSwitch))){ +void on_autohostname_sensitiveness_check(GtkWidget *, int status, main_window *widgets){ + if (status){ 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); @@ -29,6 +29,21 @@ void on_hostname_entry_changed (GtkWidget *, main_window *widgets){ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widgets->AutoHostnameCheck),0); } +void on_type_changed(GtkComboBox *self,network_info *info){ + gtk_combo_box_text_remove_all(GTK_COMBO_BOX_TEXT(info->ConnectionCombo)); + gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(info->ConnectionCombo),DEFAULT_LABEL); + const char *id = gtk_combo_box_get_active_id(self); + GHashTable *table = g_hash_table_lookup(main_config.network_types,id); + if (table){ + GList *list = g_hash_table_get_keys(table); + GList *iter; + for (iter=list;iter;iter=iter->next){ + gtk_combo_box_text_append(GTK_COMBO_BOX_TEXT(info->ConnectionCombo),iter->data,iter->data); + } + g_list_free(list); + } +} + network_info *yon_network_info_new(){ network_info *info = new(network_info); GtkBuilder *builder = gtk_builder_new_from_resource(glade_path_network_info); @@ -39,6 +54,7 @@ network_info *yon_network_info_new(){ 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->IpRevealer = yon_gtk_builder_get_widget(builder,"IpRevealer"); 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"); @@ -61,7 +77,16 @@ network_info *yon_network_info_new(){ g_signal_connect(G_OBJECT(info->AutoGetIPSwitch),"state-set",G_CALLBACK(yon_gtk_widget_set_sensitive_from_switch_inversed),info->GatewayEntry); g_signal_connect(G_OBJECT(info->AutoGetIPSwitch),"state-set",G_CALLBACK(yon_gtk_widget_set_sensitive_from_switch_inversed),info->MaskEntry); g_signal_connect(G_OBJECT(info->AutoGetIPSwitch),"state-set",G_CALLBACK(yon_gtk_widget_set_sensitive_from_switch_inversed),info->DNSEntry); + g_signal_connect(G_OBJECT(info->TypeCombo),"changed",G_CALLBACK(on_type_changed),info); + + yon_gtk_revealer_set_from_switch_inversed(GTK_REVEALER(info->IpRevealer),GTK_SWITCH(info->AutoGetIPSwitch)); + GList *list = g_hash_table_get_keys(main_config.network_types); + GList *iter; + for (iter=list;iter;iter=iter->next){ + gtk_combo_box_text_append(GTK_COMBO_BOX_TEXT(info->TypeCombo),iter->data,iter->data); + } + g_list_free(list); gtk_widget_show(info->MainBox); return info; @@ -190,12 +215,16 @@ int yon_network_save(main_window *widgets){ network_info *info = g_object_get_data(G_OBJECT(iter->data),"network_info"); // char *type = gtk_combo_box_get_active_id(GTK_COMBO_BOX(info->TypeCombo)); char *connection = (char*)gtk_entry_get_text(GTK_ENTRY(info->ConnectionEntry)); - // int active = gtk_switch_get_active(GTK_SWITCH(info->EnabledSwitch)); + int active = gtk_switch_get_active(GTK_SWITCH(info->EnabledSwitch)); + int parameters_size=0; + config_str parameters = NULL; if (!gtk_switch_get_active(GTK_SWITCH(info->AutoGetIPSwitch))){ char *ip = (char*)gtk_entry_get_text(GTK_ENTRY(info->IpAdressEntry)); char *mask = (char*)gtk_entry_get_text(GTK_ENTRY(info->MaskEntry)); char *gateway = (char*)gtk_entry_get_text(GTK_ENTRY(info->GatewayEntry)); char *dns = (char*)gtk_entry_get_text(GTK_ENTRY(info->DNSEntry)); + + yon_char_parsed_add_or_create_if_exists(parameters,¶meters_size,"ipv4.method manual"); if (!yon_ip_check(ip)){ yon_ubl_status_box_spawn(GTK_CONTAINER(widgets->StatusBox),WRONG_IP_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE); yon_ubl_status_highlight_incorrect(info->IpAdressEntry); @@ -205,26 +234,98 @@ int yon_network_save(main_window *widgets){ yon_ubl_status_box_spawn(GTK_CONTAINER(widgets->StatusBox),WRONG_IP_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE); yon_ubl_status_highlight_incorrect(info->MaskEntry); return 0; + } else { + int bitmask = yon_ip_mask_get_bits(mask); + mask = yon_char_from_int(bitmask); + char *ip_param = yon_char_unite("ipv4.addr", ip,"/",mask,NULL); + yon_char_parsed_add_or_create_if_exists(parameters,¶meters_size,ip_param); + free(ip_param); + } - if (!yon_ip_check(gateway)){ - yon_ubl_status_box_spawn(GTK_CONTAINER(widgets->StatusBox),WRONG_IP_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE); - yon_ubl_status_highlight_incorrect(info->GatewayEntry); - return 0; + if (yon_ip_check(gateway)){ + char *ip_param = yon_char_append("ipv4.gateway", gateway); + yon_char_parsed_add_or_create_if_exists(parameters,¶meters_size,ip_param); + free(ip_param); } - if (!yon_ip_check(dns)){ - yon_ubl_status_box_spawn(GTK_CONTAINER(widgets->StatusBox),WRONG_IP_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE); - yon_ubl_status_highlight_incorrect(info->DNSEntry); - return 0; + if (yon_ip_check(dns)){ + char *ip_param = yon_char_append("ipv4.dns", dns); + yon_char_parsed_add_or_create_if_exists(parameters,¶meters_size,ip_param); + free(ip_param); + } + if (!active){ + yon_char_parsed_add_or_create_if_exists(parameters,¶meters_size,""); } - int bitmask = yon_ip_mask_get_bits(mask); - mask = yon_char_from_int(bitmask); - char *value = network_value(ip,mask,gateway,dns); - yon_config_register(NETWORK_parameter(connection),NETWORK_parameter_command(connection),value); + char *value = yon_char_parsed_to_string(parameters,parameters_size,"yes"); + yon_config_register(NETWORK_devdown_parameter(connection),NETWORK_devdown_parameter_command(connection),value); } else { yon_config_register(NETWORK_parameter(connection),NETWORK_parameter_command(connection),network_value_auto); } } return 1; -} \ No newline at end of file +} + +void yon_network_init(main_window *widgets){ + int size; + config_str network_types = yon_resource_open_file(network_path,&size); + for (int i=1;iNetworkConnectionsBox),info->MainBox,0,0,0); + gtk_widget_show(info->MainBox); + + int connection_size; + config_str connection = yon_char_parse(parameter,&connection_size," "); + for (int k=0;kAutoGetIPSwitch),0); + } else if (!strcmp(connection[k],"ipv4.addr")){ + char *mask = yon_char_new(connection[++k]); + char *ip = yon_char_divide_search(mask,"/",-1); + gtk_entry_set_text(GTK_ENTRY(info->MaskEntry),mask); + gtk_entry_set_text(GTK_ENTRY(info->IpAdressEntry),ip); + free(mask); + free(ip); + + } else if (!strcmp(connection[k],"ipv4.gateway")){ + gtk_entry_set_text(GTK_ENTRY(info->GatewayEntry),connection[++k]); + + } else if (!strcmp(connection[k],"ipv4.dns")){ + gtk_entry_set_text(GTK_ENTRY(info->DNSEntry),connection[++k]); + + } + } + + GList *list = g_hash_table_get_keys(main_config.network_types); + GList *iter; + for (iter=list;iter;iter=iter->next){ + if (g_hash_table_contains(g_hash_table_lookup(main_config.network_types,(char*)iter->data),key)){ + gtk_combo_box_set_active_id(GTK_COMBO_BOX(info->TypeCombo),(char*)iter->data); + gtk_combo_box_set_active_id(GTK_COMBO_BOX(info->ConnectionCombo),key); + break; + } + } + } + } +} diff --git a/source/ubinstall-gtk-page-switch.c b/source/ubinstall-gtk-page-switch.c index 24fb3be..edad637 100644 --- a/source/ubinstall-gtk-page-switch.c +++ b/source/ubinstall-gtk-page-switch.c @@ -290,11 +290,43 @@ enum YON_PAGES yon_recovery_get_next(main_window *widgets){ return YON_PAGE_SECTIONS; } +void yon_page_init(main_window *widgets, enum YON_PAGES page){ + switch(page){ + case YON_PAGE_OS_COMPONENTS: + case YON_PAGE_KERNEL: + case YON_PAGE_KERNEL_ADDON: + case YON_PAGE_SOFTWARE: + case YON_PAGE_PACMAN_SOFTWARE: + case YON_PAGE_REGION: + case YON_PAGE_KEYBOARD: + case YON_PAGE_USERS: + case YON_PAGE_STARTUP: + case YON_PAGE_BOOTLOADER: + yon_bootloader_init(widgets); + break; + case YON_PAGE_NETWORK: + yon_network_init(widgets); + break; + case YON_PAGE_INSTALL_COMMON: + case YON_PAGE_INSTALL_SEPARATE: + case YON_PAGE_INSTALL_SAME_PARTITION: + case YON_PAGE_INSTALL_ADVANCED: + case YON_PAGE_RECOVERY_GRUB_INSTALL: + case YON_PAGE_RECOVERY_GRUB_UPDATE: + case YON_PAGE_RECOVERY_OS_ONLY: + case YON_PAGE_RECOVERY_USRDATA_ONLY: + case YON_PAGE_INSTALLATION_BEGIN: + break; + default: break; + } +} + void on_page_next_clicked(GtkWidget *, main_window *widgets){ enum YON_PAGES page = gtk_notebook_get_current_page(GTK_NOTEBOOK(widgets->Notebook)); page = yon_page_get_next(widgets,page); if ((int)page!=-1){ gtk_notebook_set_current_page(GTK_NOTEBOOK(widgets->Notebook),page); + yon_page_init(widgets,page); } yon_page_update(widgets); } diff --git a/source/ubinstall-gtk.c b/source/ubinstall-gtk.c index f89197d..e03540b 100644 --- a/source/ubinstall-gtk.c +++ b/source/ubinstall-gtk.c @@ -152,6 +152,7 @@ void config_init(){ main_config.log_end=0; main_config.exit_accepted=0; yon_packages_init(); + main_config.network_types = g_hash_table_new(g_str_hash,g_str_equal); } // void on_root_get_root(char *argline){ @@ -285,6 +286,8 @@ main_window *yon_main_window_complete(){ widgets->PartitionsList = GTK_LIST_STORE(gtk_builder_get_object(builder,"PartitionsList")); + main_config.kernel_unchosen_radio = yon_gtk_builder_get_widget(builder,"KernelUnchosenRadio"); + widgets->MainWindow=yon_gtk_builder_get_widget(builder,"MainWindow"); widgets->StatusBox = yon_gtk_builder_get_widget(builder,"StatusBox"); widgets->Notebook = yon_gtk_builder_get_widget(builder,"Notebook"); @@ -603,7 +606,7 @@ main_window *yon_main_window_complete(){ g_signal_connect(G_OBJECT(widgets->NetworkNTPServerSwitch),"state-set",G_CALLBACK(yon_gtk_widget_set_sensitive_from_switch),widgets->NetworkNTPEntry); g_signal_connect(G_OBJECT(widgets->HostnameSensitiveSwitch),"state-set",G_CALLBACK(yon_gtk_widget_set_sensitive_from_switch),widgets->HotnameEntry); g_signal_connect(G_OBJECT(widgets->HostnameSensitiveSwitch),"state-set",G_CALLBACK(yon_gtk_widget_set_sensitive_from_switch),widgets->AutoHostnameCheck); - g_signal_connect(G_OBJECT(widgets->HostnameSensitiveSwitch),"toggled",G_CALLBACK(on_autohostname_sensitiveness_check),widgets); + g_signal_connect(G_OBJECT(widgets->HostnameSensitiveSwitch),"state-set",G_CALLBACK(on_autohostname_sensitiveness_check),widgets); g_signal_connect(G_OBJECT(widgets->AutoHostnameCheck),"toggled",G_CALLBACK(on_autohostname_check),widgets); g_signal_connect(G_OBJECT(widgets->HotnameEntry),"changed",G_CALLBACK(on_hostname_entry_changed),widgets); g_signal_connect(G_OBJECT(widgets->NetworkConnectionsAddButton),"clicked",G_CALLBACK(on_connection_add),widgets); diff --git a/source/ubinstall-gtk.h b/source/ubinstall-gtk.h index 82f4d52..cac61ba 100755 --- a/source/ubinstall-gtk.h +++ b/source/ubinstall-gtk.h @@ -59,6 +59,7 @@ #define kernel_list_path "resource:///com/ublinux/csv/kernel-list.csv" #define kernel_list_addon_path "resource:///com/ublinux/csv/kernel-list-addon.csv" #define services_list_path "resource:///com/ublinux/csv/services-list.csv" +#define network_path "resource:///com/ublinux/csv/network-list.csv" #define slide_0_path "/com/ublinux/images/slide-0.png" @@ -179,8 +180,6 @@ NULL #define GRUB_TIMEOUT_parameter_command "ubconfig get autoinstall AUTOINSTALL['ubconfig set [boot] GRUB_TIMEOUT']" #define GRUB_DEFAULT_parameter "AUTOINSTALL['ubconfig set [boot] GRUB_DEFAULT']" #define GRUB_DEFAULT_parameter_command "ubconfig get autoinstall AUTOINSTALL['ubconfig set [boot] GRUB_DEFAULT']" -#define GRUB_SUPERUSERS_parameter "AUTOINSTALL['ubconfig set [boot] GRUB_SUPERUSERS']" -#define GRUB_SUPERUSERS_parameter_command "ubconfig get autoinstall AUTOINSTALL['ubconfig set [boot] GRUB_SUPERUSERS']" #define GRUB_PASSWORD_parameter_search "AUTOINSTALL['ubconfig set [boot] GRUB_PASSWORD[" #define GRUB_PASSWORD_parameter_all "AUTOINSTALL['ubconfig set [boot] GRUB_PASSWORD[*]']" #define GRUB_PASSWORD_parameter(target) yon_char_unite("AUTOINSTALL['ubconfig set [boot] GRUB_PASSWORD[",target,"]']",NULL) @@ -188,8 +187,11 @@ NULL #define GRUB_PASSWORD_parameter_command(target) yon_char_unite("ubconfig get autoinstall AUTOINSTALL['ubconfig set [boot] GRUB_PASSWORD[",target,"]']",NULL) #define AUTOLOGINUSER_parameter "AUTOINSTALL['ubconfig set [desktop] AUTOLOGINUSER']" #define AUTOLOGINUSER_parameter_command "ubconfig get autoinstall AUTOINSTALL['ubconfig set [boot] AUTOLOGINUSER']" +#define NETWORK_parameter_search "AUTOINSTALL['ubconfig set [network] NETWORK[" #define NETWORK_parameter(target) yon_char_unite("AUTOINSTALL['ubconfig set [network] NETWORK[",target,"@connmod]']",NULL) +#define NETWORK_devdown_parameter(target) yon_char_unite("AUTOINSTALL['ubconfig set [network] NETWORK[",target,"@devdown]']",NULL) #define NETWORK_parameter_command(target) yon_char_unite("ubconfig get autoinstall AUTOINSTALL['ubconfig set [network] NETWORK[",target,"@connmod]']",NULL) +#define NETWORK_devdown_parameter_command(target) yon_char_unite("ubconfig get autoinstall AUTOINSTALL['ubconfig set [network] NETWORK[",target,"@devdown]']",NULL) #define NETWORK(target) yon_char_unite("NETWORK[",target,"@connmod]",NULL) #define save_config_command(parameters) yon_char_unite("ubconfig --target system set [autoinstall] AUTOINSTALL[log]=yes ",parameters, "; nice ubinstall2 --debug autoinstall", NULL) @@ -350,6 +352,8 @@ typedef struct { int arg_size; config_str arg_target; GtkWidget *status_box; + GHashTable *network_types; + GtkWidget *kernel_unchosen_radio; } config; extern config main_config; @@ -704,6 +708,7 @@ typedef struct { GtkWidget *EnabledSwitch; GtkWidget *RemoveButton; GtkWidget *AutoGetIPSwitch; + GtkWidget *IpRevealer; GtkWidget *IpAdressEntry; GtkWidget *GatewayEntry; GtkWidget *MaskEntry; @@ -817,7 +822,7 @@ void on_device_selection_changed(GtkWidget *self, main_window *widgets); void on_toggle_button_switch_on(GtkWidget *, GtkToggleButton *toggle); -void on_autohostname_sensitiveness_check(GtkWidget *, main_window *widgets); +void on_autohostname_sensitiveness_check(GtkWidget *, int status, main_window *widgets); void on_autohostname_check(GtkWidget *, main_window *widgets); void on_hostname_entry_changed (GtkWidget *, main_window *widgets); @@ -954,4 +959,9 @@ void yon_password_change(GtkWidget *, bootloader_user_window *window); bootloader_user_window *yon_bootloader_user_window_new(); void on_bootloader_user_add(GtkWidget *, main_window *widgets); void on_bootloader_user_accept(GtkWidget *, bootloader_user_window *window); -void yon_bootloader_interface_update(main_window *widgets); \ No newline at end of file +void yon_bootloader_interface_update(main_window *widgets); +void on_type_changed(GtkComboBox *self,network_info *info); +void yon_network_init(main_window *widgets); +void yon_page_init(main_window *widgets, enum YON_PAGES page); +void yon_bootloader_init(main_window *widgets); +void on_kernel_install_enabled(GtkWidget *, kernel_row *row); \ No newline at end of file diff --git a/ubinstall-gtk-kernel-row.glade b/ubinstall-gtk-kernel-row.glade index 8ca911b..b41c8db 100644 --- a/ubinstall-gtk-kernel-row.glade +++ b/ubinstall-gtk-kernel-row.glade @@ -1,5 +1,5 @@ - + @@ -45,11 +45,11 @@ True + False True False center 5 - True True diff --git a/ubinstall-gtk-network-box.glade b/ubinstall-gtk-network-box.glade index 318193b..82ad023 100644 --- a/ubinstall-gtk-network-box.glade +++ b/ubinstall-gtk-network-box.glade @@ -44,13 +44,6 @@ True False 0 - - Wired - Wireless - Tunnel - Bridge - Modem - False @@ -65,12 +58,12 @@ 0 True - Deafault + Default True - Deafault + Default @@ -136,6 +129,7 @@ True True + True False @@ -174,59 +168,151 @@ - + True False - 5 - - - True - False - IP adress: - 0 - - - False - True - 0 - - - - - True - True - 123.123.123.123 - - - True - True - 1 - - - + True False - Gateway: - 0 - - - False - True - 2 - - - - - True - True - 123.123.123.123 + vertical + 5 + + + True + False + + + False + True + 0 + + + + + True + False + 5 + + + True + False + IP adress: + 0 + + + False + True + 0 + + + + + True + True + 192.168.0.1 + + + True + True + 1 + + + + + True + False + Gateway: + 0 + + + False + True + 2 + + + + + True + True + 192.168.0.254 + + + True + True + 3 + + + + + False + True + 1 + + + + + True + False + 5 + + + True + False + Mask: + 0 + + + False + True + 0 + + + + + True + True + 24 + + + True + True + 1 + + + + + True + False + DNS-server: + 0 + + + False + True + 2 + + + + + True + True + 192.168.0.254 + + + True + True + 3 + + + + + False + True + 2 + + - - True - True - 3 - @@ -235,68 +321,6 @@ 3 - - - True - False - 5 - - - True - False - Mask: - 0 - - - False - True - 0 - - - - - True - True - 123.123.123.123 - - - True - True - 1 - - - - - True - False - DNS-server: - 0 - - - False - True - 2 - - - - - True - True - 123.123.123.123 - - - True - True - 3 - - - - - False - True - 4 - - True diff --git a/ubinstall-gtk.glade b/ubinstall-gtk.glade index 0d64f40..d7adb0a 100644 --- a/ubinstall-gtk.glade +++ b/ubinstall-gtk.glade @@ -46,6 +46,16 @@ + + True + False + True + False + center + 5 + True + True + @@ -4230,6 +4240,8 @@ and help you install UBLinux on your computer True False True + False + * 10 @@ -4378,43 +4390,68 @@ and help you install UBLinux on your computer - + True False - vertical - 5 + 0.019999999552965164 + in - + True False - vertical - 5 + 5 + 5 + 5 + 5 - + + True + False + vertical + 5 + + + True + False + vertical + 5 + + + + + + False + True + 0 + + + + + + + True + True + True + + + + False + True + end + 1 + + + - - False - True - 0 - - - - + + + True - True - True - + False + Net interfaces - - False - True - end - 1 -