@ -3,12 +3,436 @@
config main_config ;
//functions
void _yon_saving_threaded ( char * final_command ) ;
void _yon_saving_threaded ( char * final_command ) {
FILE * file = popen ( final_command , " r " ) ;
int file_save ;
config_str file_return = yon_config_load_file ( file , & file_save ) ;
pclose ( file ) ;
file_return = yon_char_parsed_append ( file_return , & file_save , final_command ) ;
char * result = yon_char_parsed_to_string ( file_return , file_save , " " ) ;
yon_debug_output ( " %s \n " , result ) ;
free ( result ) ;
}
char * yon_save_command_prepare ( char * command , char * target ) {
int size ;
config_str parsed = yon_char_parse ( command , & size , " " ) ;
free ( parsed [ 2 ] ) ;
parsed [ 2 ] = yon_char_new ( target ) ;
free ( parsed [ 3 ] ) ;
parsed [ 3 ] = yon_char_new ( " set " ) ;
for ( int i = 5 ; i < size ; i + + ) {
char * cur = yon_config_get_by_key ( parsed [ i ] ) ;
char * full_value = yon_char_unite ( parsed [ i ] , " =' " , cur , " ' " , NULL ) ;
free ( parsed [ i ] ) ;
free ( cur ) ;
parsed [ i ] = full_value ;
}
char * final = yon_char_parsed_to_string ( parsed , size , " " ) ;
yon_char_parsed_free ( parsed , size ) ;
return final ;
}
void yon_save_proceed ( char * path , YON_CONFIG_TYPE type ) ;
void yon_save_proceed ( char * path , YON_CONFIG_TYPE type ) {
yon_debug_output ( " %s \n " , yon_config_save_simple ( type , path ) ) ;
}
// void yon_load_proceed(YON_CONFIG_TYPE type){
// if (yon_config_load_register(type,,,NULL)){
// }
// }
void yon_load_proceed ( YON_CONFIG_TYPE type ) ;
void yon_load_proceed ( YON_CONFIG_TYPE type ) {
yon_config_clean ( ) ;
if ( ! yon_char_is_empty ( config_get_default_command ) )
yon_config_load_config ( YON_CONFIG_DEFAULT , config_get_default_command , NULL ) ;
if ( type = = YON_CONFIG_GLOBAL ) {
yon_config_load_config ( type , config_get_global_command , NULL ) ;
} else if ( type = = YON_CONFIG_LOCAL ) {
yon_config_load_config ( type , config_get_local_command , NULL ) ;
} else if ( type = = YON_CONFIG_CUSTOM ) {
char * path = " " ;
GtkWidget * dialog = gtk_file_chooser_dialog_new ( TITLE_LABEL , NULL , GTK_FILE_CHOOSER_ACTION_SAVE , CANCEL_LABEL , GTK_RESPONSE_CANCEL , OPEN_LABEL , GTK_RESPONSE_ACCEPT , NULL ) ;
yon_gtk_window_setup ( GTK_WINDOW ( dialog ) , NULL , TITLE_LABEL , icon_path , " FileChooserWindow " ) ;
textdomain ( LocaleName ) ;
gtk_window_set_icon_name ( GTK_WINDOW ( dialog ) , " com.ublinux.ubl-settings-video " ) ;
gtk_window_set_title ( GTK_WINDOW ( dialog ) , TITLE_LABEL ) ;
GtkFileFilter * filter = gtk_file_filter_new ( ) ;
gtk_file_filter_add_pattern ( filter , " *.ini " ) ;
gtk_file_filter_set_name ( filter , " *.ini " ) ;
gtk_file_chooser_add_filter ( GTK_FILE_CHOOSER ( dialog ) , filter ) ;
gtk_widget_show ( dialog ) ;
int response = gtk_dialog_run ( GTK_DIALOG ( dialog ) ) ;
if ( response = = GTK_RESPONSE_ACCEPT ) {
char * file = gtk_file_chooser_get_filename ( GTK_FILE_CHOOSER ( dialog ) ) ;
if ( ! yon_char_is_empty ( file ) ) {
path = yon_char_unite ( " ' " , file , " ' " , NULL ) ;
free ( file ) ;
}
gtk_widget_destroy ( dialog ) ;
} else {
gtk_widget_destroy ( dialog ) ;
}
yon_config_load_config ( type , yon_config_get_custom_command ( path ) , NULL ) ;
}
}
void yon_interface_update ( main_window * widgets ) {
if ( widgets ) { } ;
enum YON_PAGES page = YON_PAGE_COMPLETED ;
char * type = config ( AUTOINSTALL_TYPE_INSTALL ) ;
if ( ! yon_char_is_empty ( type ) ) {
if ( ! strcmp ( type , " fast " ) ) {
gtk_toggle_button_set_active ( GTK_TOGGLE_BUTTON ( widgets - > InstallationRadio ) , 1 ) ;
page = YON_PAGE_INSTALL_COMMON ;
} else if ( ! strcmp ( type , " next " ) ) {
gtk_toggle_button_set_active ( GTK_TOGGLE_BUTTON ( widgets - > InstallationNearRadio ) , 1 ) ;
page = YON_PAGE_INSTALL_SEPARATE ;
} else if ( ! strcmp ( type , " part " ) ) {
gtk_toggle_button_set_active ( GTK_TOGGLE_BUTTON ( widgets - > InstallationLinuxRadio ) , 1 ) ;
page = YON_PAGE_INSTALL_SAME_PARTITION ;
} else if ( ! strcmp ( type , " grub_install " ) ) {
gtk_toggle_button_set_active ( GTK_TOGGLE_BUTTON ( widgets - > InstallationWindowsRadio ) , 1 ) ;
gtk_toggle_button_set_active ( GTK_TOGGLE_BUTTON ( widgets - > GrubInstallRadio ) , 1 ) ;
page = YON_PAGE_OPTIONS_GRUB_INSTALL ;
} else if ( ! strcmp ( type , " grub_update " ) ) {
gtk_toggle_button_set_active ( GTK_TOGGLE_BUTTON ( widgets - > InstallationWindowsRadio ) , 1 ) ;
gtk_toggle_button_set_active ( GTK_TOGGLE_BUTTON ( widgets - > GrubUpdateRadio ) , 1 ) ;
page = YON_PAGE_OPTIONS_GRUB_UPDATE ;
} else if ( ! strcmp ( type , " system_only " ) ) {
gtk_toggle_button_set_active ( GTK_TOGGLE_BUTTON ( widgets - > InstallationWindowsRadio ) , 1 ) ;
gtk_toggle_button_set_active ( GTK_TOGGLE_BUTTON ( widgets - > OSRadio ) , 1 ) ;
page = YON_PAGE_OPTIONS_OS_ONLY ;
} else if ( ! strcmp ( type , " data_only " ) ) {
gtk_toggle_button_set_active ( GTK_TOGGLE_BUTTON ( widgets - > InstallationWindowsRadio ) , 1 ) ;
gtk_toggle_button_set_active ( GTK_TOGGLE_BUTTON ( widgets - > UserDataOnlyRadio ) , 1 ) ;
page = YON_PAGE_OPTIONS_USRDATA_ONLY ;
} else if ( ! strcmp ( type , " custom " ) ) {
gtk_toggle_button_set_active ( GTK_TOGGLE_BUTTON ( widgets - > InstallationWindowsRadio ) , 1 ) ;
gtk_toggle_button_set_active ( GTK_TOGGLE_BUTTON ( widgets - > SeparateRadio ) , 1 ) ;
page = YON_PAGE_OPTIONS_SEPARATE ;
}
}
char * device = config ( AUTOINSTALL_DEVICE ) ;
char * part = NULL ;
if ( page ! = YON_PAGE_INSTALL_COMMON )
part = config ( part_parameter ) ;
char * fs_type = config ( part_type_parameter ) ;
char * device_label = config ( device_label_parameter ) ;
char * format = config ( device_format_parameter ) ;
char * part_size = config ( part_size_parameter ) ;
GtkListStore * device_list = widgets - > DevicesList ;
GtkListStore * part_list = widgets - > PartitionsList ;
GtkWidget * device_tree = NULL ;
GtkWidget * part_tree = NULL ;
switch ( page ) {
case YON_PAGE_INSTALL_COMMON : {
device_tree = widgets - > CommonInstallationDevicesTree ;
} break ;
case YON_PAGE_INSTALL_SEPARATE : {
device_tree = widgets - > InstallationNearSysDevicesTree ;
part_tree = widgets - > InstallationNearSysSectionTree ;
if ( ! yon_char_is_empty ( part_size ) ) {
gtk_spin_button_set_value ( GTK_SPIN_BUTTON ( widgets - > InstallationNearSizeSpin ) , atof ( part_size ) ) ;
if ( part_size [ strlen ( part_size ) - 1 ] = = ' M ' ) gtk_combo_box_set_active ( GTK_COMBO_BOX ( widgets - > InstallationNearSizeTypeSpin ) , 0 ) ;
if ( part_size [ strlen ( part_size ) - 1 ] = = ' G ' ) gtk_combo_box_set_active ( GTK_COMBO_BOX ( widgets - > InstallationNearSizeTypeSpin ) , 1 ) ;
if ( part_size [ strlen ( part_size ) - 1 ] = = ' T ' ) gtk_combo_box_set_active ( GTK_COMBO_BOX ( widgets - > InstallationNearSizeTypeSpin ) , 2 ) ;
}
if ( format & & ! strcmp ( format , " yes " ) ) gtk_toggle_button_set_active ( GTK_TOGGLE_BUTTON ( widgets - > NextInstallationFormatCheck ) , 1 ) ;
else gtk_toggle_button_set_active ( GTK_TOGGLE_BUTTON ( widgets - > NextInstallationFormatCheck ) , main_config . format_default ) ;
gtk_combo_box_set_active_id ( GTK_COMBO_BOX ( widgets - > NextInstallationFilesystemTypeCombo ) , fs_type ) ;
gtk_entry_set_text ( GTK_ENTRY ( widgets - > NextInstallationSectionNameEntry ) , device_label ) ;
} break ;
case YON_PAGE_INSTALL_SAME_PARTITION : {
device_tree = widgets - > SamePlaceDeviceTree ;
part_tree = widgets - > SamePlacePartTree ;
gtk_combo_box_set_active_id ( GTK_COMBO_BOX ( widgets - > SameInstallationFilesystemTypeCombo ) , fs_type ) ;
if ( format & & ! strcmp ( format , " yes " ) ) gtk_toggle_button_set_active ( GTK_TOGGLE_BUTTON ( widgets - > SameInstallationFormatCheck ) , 1 ) ;
else gtk_toggle_button_set_active ( GTK_TOGGLE_BUTTON ( widgets - > SameInstallationFormatCheck ) , main_config . format_default ) ;
if ( device_label )
gtk_entry_set_text ( GTK_ENTRY ( widgets - > SameInstallationSectionNameEntry ) , device_label ) ;
else
gtk_entry_set_text ( GTK_ENTRY ( widgets - > SameInstallationSectionNameEntry ) , " " ) ;
} break ;
case YON_PAGE_OPTIONS_GRUB_INSTALL : {
device_tree = widgets - > GrubInstallDevicesTree ;
} break ;
case YON_PAGE_OPTIONS_GRUB_UPDATE : {
device_tree = widgets - > GrubUpdateDevicesTree ;
} break ;
case YON_PAGE_OPTIONS_SEPARATE : {
GtkTreeIter iter ;
device_tree = widgets - > SeparateDevicesTree ;
part_tree = widgets - > SeparateSysSectionTree ;
for_iter ( GTK_TREE_MODEL ( device_list ) , & iter ) {
char * cur_device ;
gtk_tree_model_get ( GTK_TREE_MODEL ( device_list ) , & iter , 0 , & cur_device , - 1 ) ;
if ( ! strcmp ( cur_device , device ) ) {
gtk_tree_selection_select_iter ( gtk_tree_view_get_selection ( GTK_TREE_VIEW ( device_tree ) ) , & iter ) ;
break ;
}
}
on_near_installation_device_changed ( device_tree , widgets ) ;
for_iter ( GTK_TREE_MODEL ( part_list ) , & iter ) {
char * cur_part ;
gtk_tree_model_get ( GTK_TREE_MODEL ( device_list ) , & iter , 0 , & cur_part , - 1 ) ;
if ( ! strcmp ( cur_part , part ) ) {
gtk_tree_selection_select_iter ( gtk_tree_view_get_selection ( GTK_TREE_VIEW ( part_tree ) ) , & iter ) ;
}
}
} break ;
case YON_PAGE_OPTIONS_OS_ONLY : {
device_tree = widgets - > OSDevicesTree ;
part_tree = widgets - > OSSysSectionTree ;
} break ;
case YON_PAGE_OPTIONS_USRDATA_ONLY : {
device_tree = widgets - > UserdataDevicesTree ;
part_tree = widgets - > UserdataSysSectionTree ;
} break ;
default : { } break ;
}
GtkTreeIter iter ;
char * cur_device = " " ;
if ( page ! = YON_PAGE_OPTIONS_SEPARATE & & ! yon_char_is_empty ( device ) ) {
for_iter ( widgets - > DevicesList , & iter ) {
gtk_tree_model_get ( GTK_TREE_MODEL ( widgets - > DevicesList ) , & iter , 0 , & cur_device , - 1 ) ;
if ( ! strcmp ( device , cur_device ) ) {
gtk_tree_selection_select_iter ( gtk_tree_view_get_selection ( GTK_TREE_VIEW ( device_tree ) ) , & iter ) ;
break ;
}
}
on_near_installation_device_changed ( device_tree , widgets ) ;
if ( ! yon_char_is_empty ( part ) ) {
for_iter ( widgets - > PartitionsList , & iter ) {
gtk_tree_model_get ( GTK_TREE_MODEL ( widgets - > PartitionsList ) , & iter , 0 , & part , - 1 ) ;
if ( ! strcmp ( device , cur_device ) ) {
gtk_tree_selection_select_iter ( gtk_tree_view_get_selection ( GTK_TREE_VIEW ( part_tree ) ) , & iter ) ;
break ;
}
}
}
}
char * system_locale = config ( locale_parameter ) ;
if ( ! yon_char_is_empty ( system_locale ) ) {
char * chosen_langs = " " ;
for_iter ( widgets - > LanguagesList , & iter ) {
char * cur = NULL , * render = NULL ;
gtk_tree_model_get ( GTK_TREE_MODEL ( widgets - > LanguagesList ) , & iter , 1 , & render , 2 , & cur , - 1 ) ;
if ( strstr ( system_locale , cur ) ) {
gtk_list_store_set ( ( widgets - > LanguagesList ) , & iter , 0 , 1 , - 1 ) ;
chosen_langs = yon_char_unite ( chosen_langs , ! yon_char_is_empty ( chosen_langs ) ? " ; " : " " , render , NULL ) ;
} else {
gtk_list_store_set ( ( widgets - > LanguagesList ) , & iter , 0 , 0 , - 1 ) ;
}
}
if ( ! yon_char_is_empty ( chosen_langs ) ) {
gtk_entry_set_text ( GTK_ENTRY ( widgets - > AvailableLanguagesEntry ) , chosen_langs ) ;
free ( chosen_langs ) ;
}
// gtk_tree_model_filter_refilter(GTK_TREE_MODEL_FILTER(widgets->LanguagesFilter));
} else {
for_iter ( widgets - > LanguagesList , & iter ) {
gtk_list_store_set ( ( widgets - > LanguagesList ) , & iter , 0 , 0 , - 1 ) ;
}
// gtk_tree_model_filter_refilter(GTK_TREE_MODEL_FILTER(widgets->LanguagesFilter));
}
char * zone = config ( zone_parameter ) ;
char * region = NULL ;
if ( ! yon_char_is_empty ( zone ) ) region = yon_char_divide_search ( zone , " / " , - 1 ) ;
if ( ! yon_char_is_empty ( region ) ) {
gtk_combo_box_set_active_id ( GTK_COMBO_BOX ( widgets - > RegionCombo ) , region ) ;
} else {
gtk_combo_box_set_active ( GTK_COMBO_BOX ( widgets - > RegionCombo ) , 0 ) ;
}
if ( ! yon_char_is_empty ( zone ) ) {
gtk_combo_box_set_active_id ( GTK_COMBO_BOX ( widgets - > ZoneCombo ) , zone ) ;
} else {
gtk_combo_box_set_active ( GTK_COMBO_BOX ( widgets - > ZoneCombo ) , 0 ) ;
}
char * language = config ( lang_parameter ) ;
if ( ! yon_char_is_empty ( language ) ) {
int feasf = gtk_combo_box_set_active_id ( GTK_COMBO_BOX ( widgets - > LanguageCombo ) , language ) ;
if ( feasf ) {
printf ( " fsa \n " ) ;
} ;
} else {
gtk_combo_box_set_active ( GTK_COMBO_BOX ( widgets - > LanguageCombo ) , 0 ) ;
}
char * kbmodel = config ( xkbmodel_parameter ) ;
char * optinos = config ( xkboptions_parameter ) ;
char * layout = config ( xkblayout_parameter ) ;
if ( ! yon_char_is_empty ( kbmodel ) ) {
gtk_combo_box_set_active_id ( GTK_COMBO_BOX ( widgets - > KeyboardModelCombo ) , kbmodel ) ;
} else gtk_combo_box_set_active ( GTK_COMBO_BOX ( widgets - > KeyboardModelCombo ) , 0 ) ;
if ( ! yon_char_is_empty ( optinos ) ) {
gtk_combo_box_set_active_id ( GTK_COMBO_BOX ( widgets - > LayoutBindingCombo ) , optinos ) ;
} else gtk_combo_box_set_active ( GTK_COMBO_BOX ( widgets - > LayoutBindingCombo ) , 0 ) ;
if ( ! yon_char_is_empty ( layout ) ) {
gtk_toggle_button_set_active ( GTK_TOGGLE_BUTTON ( widgets - > ManualLayoutRadio ) , 1 ) ;
for_iter ( widgets - > LayoutList , & iter ) {
char * cur = NULL ;
gtk_tree_model_get ( GTK_TREE_MODEL ( widgets - > LayoutList ) , & iter , 0 , & cur , - 1 ) ;
if ( strstr ( layout , cur ) ) {
gtk_tree_store_set ( widgets - > LayoutList , & iter , 3 , 1 , - 1 ) ;
} else {
gtk_tree_store_set ( widgets - > LayoutList , & iter , 3 , 0 , - 1 ) ;
}
}
} else {
for_iter ( widgets - > LayoutList , & iter ) {
gtk_tree_store_set ( ( widgets - > LayoutList ) , & iter , 3 , 0 , - 1 ) ;
}
}
char * user_name = config ( user_name_parameter ) ;
char * user_gecos = config ( user_gecos_parameter ) ;
char * user_password = config ( user_password_parameter ) ;
char * root_password = config ( root_password_parameter ) ;
char * autologin = config ( autologin_parameter ) ;
char * hostname = config ( hostname_parameter ) ;
if ( ! yon_char_is_empty ( user_name ) ) {
gtk_entry_set_text ( GTK_ENTRY ( widgets - > LoginEntry ) , user_name ) ;
} else gtk_entry_set_text ( GTK_ENTRY ( widgets - > LoginEntry ) , " " ) ;
if ( ! yon_char_is_empty ( user_gecos ) ) {
gtk_entry_set_text ( GTK_ENTRY ( widgets - > UserNameEntry ) , user_gecos ) ;
} else gtk_entry_set_text ( GTK_ENTRY ( widgets - > UserNameEntry ) , " " ) ;
if ( ! yon_char_is_empty ( user_password ) ) {
gtk_entry_set_text ( GTK_ENTRY ( widgets - > PasswordEntry ) , user_password ) ;
gtk_combo_box_set_active ( GTK_COMBO_BOX ( widgets - > PasswordCombo ) , 1 ) ;
} else {
gtk_combo_box_set_active ( GTK_COMBO_BOX ( widgets - > PasswordCombo ) , 0 ) ;
gtk_entry_set_text ( GTK_ENTRY ( widgets - > PasswordEntry ) , " " ) ;
}
if ( ! yon_char_is_empty ( root_password ) ) {
gtk_entry_set_text ( GTK_ENTRY ( widgets - > AdminPasswordEntry ) , root_password ) ;
gtk_combo_box_set_active ( GTK_COMBO_BOX ( widgets - > AdminPasswordCombo ) , 1 ) ;
} else {
gtk_combo_box_set_active ( GTK_COMBO_BOX ( widgets - > AdminPasswordCombo ) , 0 ) ;
gtk_entry_set_text ( GTK_ENTRY ( widgets - > AdminPasswordEntry ) , " " ) ;
}
if ( ! yon_char_is_empty ( autologin ) ) {
if ( ! strcmp ( autologin , " yes " ) )
gtk_toggle_button_set_active ( GTK_TOGGLE_BUTTON ( widgets - > AutologinCheck ) , 1 ) ;
else
gtk_toggle_button_set_active ( GTK_TOGGLE_BUTTON ( widgets - > AutologinCheck ) , 0 ) ;
} else
gtk_toggle_button_set_active ( GTK_TOGGLE_BUTTON ( widgets - > AutologinCheck ) , main_config . autologin_default ) ;
if ( ! yon_char_is_empty ( hostname ) ) {
if ( strcmp ( hostname , " auto " ) ) {
gtk_entry_set_text ( GTK_ENTRY ( widgets - > HotnameEntry ) , hostname ) ;
gtk_toggle_button_set_active ( GTK_TOGGLE_BUTTON ( widgets - > AutoHostnameCheck ) , 0 ) ;
} else {
gtk_entry_set_text ( GTK_ENTRY ( widgets - > HotnameEntry ) , " " ) ;
gtk_toggle_button_set_active ( GTK_TOGGLE_BUTTON ( widgets - > AutoHostnameCheck ) , 1 ) ;
}
} else {
gtk_entry_set_text ( GTK_ENTRY ( widgets - > HotnameEntry ) , " " ) ;
gtk_toggle_button_set_active ( GTK_TOGGLE_BUTTON ( widgets - > AutoHostnameCheck ) , 1 ) ;
}
}
void on_config_local_load ( GtkWidget * , main_window * widgets ) ;
void on_config_local_load ( GtkWidget * , main_window * widgets ) {
yon_load_proceed ( YON_CONFIG_LOCAL ) ;
yon_interface_update ( widgets ) ;
main_config . load_mode = 1 ;
}
void on_config_global_load ( GtkWidget * , main_window * ) ;
void on_config_global_load ( GtkWidget * , main_window * widgets ) {
yon_load_proceed ( YON_CONFIG_GLOBAL ) ;
yon_interface_update ( widgets ) ;
main_config . load_mode = 0 ;
}
void on_config_custom_load ( GtkWidget * , main_window * ) ;
void on_config_custom_load ( GtkWidget * , main_window * widgets ) {
yon_load_proceed ( YON_CONFIG_CUSTOM ) ;
yon_interface_update ( widgets ) ;
main_config . load_mode = 3 ;
}
void on_config_global_local_save ( GtkWidget * , main_window * widgets ) ;
void on_config_global_local_save ( GtkWidget * , main_window * widgets ) {
yon_save_proceed ( NULL , YON_CONFIG_BOTH ) ;
gtk_notebook_set_current_page ( GTK_NOTEBOOK ( widgets - > Notebook ) , YON_PAGE_COMPLETED ) ;
}
void on_config_local_save ( GtkWidget * , main_window * widgets ) ;
void on_config_local_save ( GtkWidget * , main_window * widgets ) {
yon_save_proceed ( " system " , YON_CONFIG_LOCAL ) ;
gtk_notebook_set_current_page ( GTK_NOTEBOOK ( widgets - > Notebook ) , YON_PAGE_COMPLETED ) ;
}
void on_config_global_save ( GtkWidget * , main_window * widgets ) ;
void on_config_global_save ( GtkWidget * , main_window * widgets ) {
yon_save_proceed ( " global " , YON_CONFIG_GLOBAL ) ;
gtk_notebook_set_current_page ( GTK_NOTEBOOK ( widgets - > Notebook ) , YON_PAGE_COMPLETED ) ;
}
void on_config_custom_save ( GtkWidget * , main_window * widgets ) ;
void on_config_custom_save ( GtkWidget * , main_window * widgets ) {
char * path = NULL ;
// YON_CONFIG_TYPE type = YON_CONFIG_CUSTOM;
GtkWidget * dialog = gtk_file_chooser_dialog_new ( TITLE_LABEL , NULL , GTK_FILE_CHOOSER_ACTION_SAVE , CANCEL_LABEL , GTK_RESPONSE_CANCEL , SAVE_LABEL , GTK_RESPONSE_ACCEPT , NULL ) ;
textdomain ( TITLE_LABEL ) ;
GtkFileFilter * filter = gtk_file_filter_new ( ) ;
gtk_window_set_icon_name ( GTK_WINDOW ( dialog ) , yon_char_append ( " com.ublinux. " , LocaleName ) ) ;
gtk_file_filter_add_pattern ( filter , " *.ini " ) ;
gtk_file_filter_set_name ( filter , " *.ini " ) ;
gtk_file_chooser_add_filter ( GTK_FILE_CHOOSER ( dialog ) , filter ) ;
int response = gtk_dialog_run ( GTK_DIALOG ( dialog ) ) ;
if ( response = = GTK_RESPONSE_ACCEPT ) {
char * file = gtk_file_chooser_get_filename ( GTK_FILE_CHOOSER ( dialog ) ) ;
// char *directory = gtk_file_chooser_get_current_folder(GTK_FILE_CHOOSER(dialog));
if ( ! yon_char_is_empty ( file ) ) {
if ( ! strstr ( file , " .ini " ) ) file = yon_char_append ( file , " .ini " ) ;
if ( access ( file , 0 ) ! = F_OK ) {
char * command_creation = ubconfig_file_create ( file ) ;
int a = system ( command_creation ) ;
if ( access ( file , 0 ) ! = F_OK | | a ) {
yon_ubl_status_box_render ( CUSTOM_CONFIG_CREATION_ERROR_LABEL , BACKGROUND_IMAGE_FAIL_TYPE ) ;
return ;
}
}
}
path = yon_char_unite ( " ' " , file , " ' " , NULL ) ;
free ( file ) ;
gtk_widget_destroy ( dialog ) ;
} else {
gtk_widget_destroy ( dialog ) ;
return ;
}
yon_save_proceed ( path , YON_CONFIG_CUSTOM ) ;
gtk_notebook_set_current_page ( GTK_NOTEBOOK ( widgets - > Notebook ) , YON_PAGE_COMPLETED ) ;
}
void yon_open_browser ( GtkWidget * , char * link ) ;
void yon_open_browser ( GtkWidget * , char * link ) {
@ -228,6 +652,8 @@ void config_init(){
main_config . install_complete = 0 ;
main_config . save_done = 0 ;
main_config . configure_mode = 0 ;
main_config . load_mode = - 1 ;
main_config . log_progress_buzy = 0 ;
}
void on_configuration_mode_switch ( GtkWidget * self ) ;
@ -308,7 +734,6 @@ gboolean on_image_slide(void *data){
return 1 ;
}
char * yon_debug_output ( char * pattern , char * text ) ;
char * yon_debug_output ( char * pattern , char * text ) {
if ( main_config . debug_mode ) {
printf ( pattern , text ) ;
@ -346,52 +771,39 @@ void *on_config_save(void *data){
gboolean yon_installation_progress_update ( void * data ) ;
gboolean yon_installation_progress_update ( void * data ) {
main_window * widgets = ( main_window * ) data ;
FILE * file = NULL ;
char * current = g_malloc0 ( 4096 ) ;
clock_t last_time = 0 ;
clock_t current_time ;
while ( 1 ) {
while ( gtk_events_pending ( ) ) gtk_main_iteration ( ) ;
current_time = clock ( ) ;
if ( ( double ) ( current_time - last_time ) / CLOCKS_PER_SEC > = 0.5 ) {
if ( ! file )
file = fopen ( progress_path , " r " ) ;
if ( file ) {
if ( fgets ( current , 4096 , file ) ) {
} else {
if ( ! yon_char_is_empty ( current ) & & current [ 0 ] = = ' ( ' ) {
char * current_copy = yon_char_new ( current ) ;
char * percentage = yon_char_divide_search ( current_copy , " ) " , - 1 ) ;
free ( yon_char_divide ( current_copy , 0 ) ) ;
free ( yon_char_divide ( percentage , 0 ) ) ;
if ( strcmp ( percentage , " #pb " ) ) {
double fraction = atof ( percentage ) ;
gtk_label_set_text ( GTK_LABEL ( widgets - > InstallationLabel ) , current_copy ) ;
gtk_progress_bar_set_fraction ( GTK_PROGRESS_BAR ( widgets - > InstallationProgress ) , fraction / 100 ) ;
gtk_progress_bar_set_fraction ( GTK_PROGRESS_BAR ( widgets - > PackageInstallationProgress ) , 0 ) ;
gtk_label_set_text ( GTK_LABEL ( widgets - > PackageInstallationLabel ) , " " ) ;
} else {
gtk_widget_show ( gtk_widget_get_parent ( widgets - > PackageInstallationProgress ) ) ;
int size ;
config_str parsed = yon_char_parse ( current_copy , & size , " " ) ;
double fraction = atof ( parsed [ 2 ] ) / 100 ;
gtk_progress_bar_set_fraction ( GTK_PROGRESS_BAR ( widgets - > PackageInstallationProgress ) , fraction ) ;
gtk_label_set_text ( GTK_LABEL ( widgets - > PackageInstallationLabel ) , yon_char_parsed_to_string ( parsed , size , " " ) ) ;
yon_char_parsed_free ( parsed , size ) ;
}
last_time = current_time ;
free ( current_copy ) ;
free ( percentage ) ;
}
break ;
}
}
while ( gtk_events_pending ( ) ) gtk_main_iteration ( ) ;
int size ;
while ( main_config . log_progress_buzy ) {
while ( gtk_events_pending ( ) ) gtk_main_iteration ( ) ; } ;
main_config . log_progress_buzy = 1 ;
config_str text = yon_file_open ( progress_path , & size ) ;
main_config . log_progress_buzy = 0 ;
if ( size ) {
if ( ! yon_char_is_empty ( text [ size - 1 ] ) & & text [ size - 1 ] [ 0 ] = = ' ( ' ) {
char * current_copy = yon_char_new ( text [ size - 1 ] ) ;
char * percentage = yon_char_divide_search ( current_copy , " ) " , - 1 ) ;
free ( yon_char_divide ( current_copy , 0 ) ) ;
free ( yon_char_divide ( percentage , 0 ) ) ;
if ( strcmp ( percentage , " #pb " ) ) {
double fraction = atof ( percentage ) ;
gtk_label_set_text ( GTK_LABEL ( widgets - > InstallationLabel ) , current_copy ) ;
gtk_progress_bar_set_fraction ( GTK_PROGRESS_BAR ( widgets - > InstallationProgress ) , fraction / 100 ) ;
gtk_progress_bar_set_fraction ( GTK_PROGRESS_BAR ( widgets - > PackageInstallationProgress ) , 0 ) ;
gtk_label_set_text ( GTK_LABEL ( widgets - > PackageInstallationLabel ) , " " ) ;
} else {
gtk_widget_show ( gtk_widget_get_parent ( widgets - > PackageInstallationProgress ) ) ;
int size ;
config_str parsed = yon_char_parse ( current_copy , & size , " " ) ;
double fraction = atof ( parsed [ 2 ] ) / 100 ;
gtk_progress_bar_set_fraction ( GTK_PROGRESS_BAR ( widgets - > PackageInstallationProgress ) , fraction ) ;
gtk_label_set_text ( GTK_LABEL ( widgets - > PackageInstallationLabel ) , yon_char_parsed_to_string ( parsed , size , " " ) ) ;
yon_char_parsed_free ( parsed , size ) ;
}
free ( current_copy ) ;
free ( percentage ) ;
}
fclose ( file ) ;
file = NULL ;
}
if ( main_config . install_thread ) {
return 1 ;
@ -405,6 +817,7 @@ void on_page_changed(GtkWidget *,GtkWidget *,int page, main_window *widgets);
void on_page_changed ( GtkWidget * , GtkWidget * , int page , main_window * widgets ) {
switch ( page ) {
case YON_PAGE_WELCOME : {
gtk_widget_hide ( widgets - > SaveButton ) ;
gtk_widget_set_sensitive ( widgets - > CancelInstallButton , 0 ) ;
gtk_widget_set_sensitive ( widgets - > BackButton , 0 ) ;
gtk_widget_set_sensitive ( widgets - > NextButton , 1 ) ;
@ -412,7 +825,7 @@ void on_page_changed(GtkWidget *,GtkWidget *,int page, main_window *widgets){
gtk_button_set_label ( GTK_BUTTON ( widgets - > CancelInstallButton ) , CANCEL_LABEL ) ;
gtk_image_set_from_icon_name ( GTK_IMAGE ( gtk_button_get_image ( GTK_BUTTON ( widgets - > NextButton ) ) ) , " com.ublinux.ubinstall-gtk.arrow-right-symbolic " , GTK_ICON_SIZE_BUTTON ) ;
gtk_image_set_from_icon_name ( GTK_IMAGE ( gtk_button_get_image ( GTK_BUTTON ( widgets - > CancelInstallButton ) ) ) , " com.ublinux.ubinstall-gtk.circle-exit-symbolic " , GTK_ICON_SIZE_BUTTON ) ;
// gtk_widget_set_sensitive(widgets->ConfigurationModeMenuItem,1);
gtk_widget_set_sensitive ( widgets - > ConfigurationModeMenuItem , 1 ) ;
yon_switch_page_render ( widgets , 0 ) ;
} break ;
@ -455,8 +868,12 @@ void on_page_changed(GtkWidget *,GtkWidget *,int page, main_window *widgets){
case YON_PAGE_USERS :
yon_switch_page_render ( widgets , 6 ) ;
gtk_widget_set_sensitive ( widgets - > NextButton , 1 ) ;
gtk_widget_hide ( widgets - > SaveButton ) ;
break ;
case YON_PAGE_INSTALL_ERROR :
on_summary_log_view ( ( GtkWidget * ) NULL ) ;
[ [ fallthrough ] ] ;
case YON_PAGE_COMPLETION : {
yon_switch_page_render ( widgets , 7 ) ;
gtk_widget_set_sensitive ( widgets - > BackButton , 0 ) ;
@ -469,10 +886,27 @@ void on_page_changed(GtkWidget *,GtkWidget *,int page, main_window *widgets){
main_config . save_done = 0 ;
gtk_button_set_label ( GTK_BUTTON ( widgets - > NextButton ) , RESTART_LABEL ) ;
gtk_button_set_label ( GTK_BUTTON ( widgets - > CancelInstallButton ) , EXIT_LABEL ) ;
gtk_image_set_from_icon_name ( GTK_IMAGE ( gtk_button_get_image ( GTK_BUTTON ( widgets - > NextButton ) ) ) , " com.ublinux.libublsettingsui-gtk3.sync-symbolic " , GTK_ICON_SIZE_BUTTON ) ;
gtk_image_set_from_icon_name ( GTK_IMAGE ( gtk_button_get_image ( GTK_BUTTON ( widgets - > NextButton ) ) ) ,
" com.ublinux.ubinstall-gtk.sync-symbolic " , GTK_ICON_SIZE_BUTTON ) ;
}
break ;
case YON_PAGE_COMPLETED : {
yon_switch_page_render ( widgets , 7 ) ;
gtk_widget_set_sensitive ( widgets - > BackButton , 1 ) ;
gtk_widget_hide ( gtk_widget_get_parent ( widgets - > PackageInstallationProgress ) ) ;
gtk_widget_hide ( widgets - > InstallationLabel ) ;
gtk_widget_hide ( widgets - > PackageInstallationLabel ) ;
gtk_widget_set_sensitive ( widgets - > NextButton , 0 ) ;
gtk_widget_set_sensitive ( widgets - > CancelInstallButton , 1 ) ;
main_config . install_complete = 0 ;
main_config . save_done = 0 ;
gtk_button_set_label ( GTK_BUTTON ( widgets - > CancelInstallButton ) , EXIT_LABEL ) ;
gtk_image_set_from_icon_name ( GTK_IMAGE ( gtk_button_get_image ( GTK_BUTTON ( widgets - > NextButton ) ) ) ,
" com.ublinux.ubinstall-gtk.sync-symbolic " , GTK_ICON_SIZE_BUTTON ) ;
} break ;
case YON_PAGE_SECTIONS :
case YON_PAGE_INSTALL_COMMON :
case YON_PAGE_INSTALL_SEPARATE :
@ -485,6 +919,12 @@ void on_page_changed(GtkWidget *,GtkWidget *,int page, main_window *widgets){
case YON_PAGE_OPTIONS_OS_ONLY :
case YON_PAGE_OPTIONS_USRDATA_ONLY : {
yon_switch_page_render ( widgets , 2 ) ;
} break ;
case YON_PAGE_CONFIGURE_END : {
gtk_widget_set_sensitive ( widgets - > BackButton , 1 ) ;
gtk_widget_set_sensitive ( widgets - > NextButton , 0 ) ;
gtk_widget_set_sensitive ( widgets - > CancelInstallButton , 1 ) ;
gtk_widget_show ( widgets - > SaveButton ) ;
}
}
}
@ -530,6 +970,7 @@ log_window *yon_log_window_new(){
log_window * window = malloc ( sizeof ( log_window ) ) ;
GtkBuilder * builder = gtk_builder_new_from_resource ( glade_path_log_view ) ;
window - > Window = yon_gtk_builder_get_widget ( builder , " MainWindow " ) ;
window - > ScrollWindow = yon_gtk_builder_get_widget ( builder , " ScrollWindow " ) ;
window - > HeadLabel = yon_gtk_builder_get_widget ( builder , " headerTopic " ) ;
window - > LogLabel = yon_gtk_builder_get_widget ( builder , " LogLabel " ) ;
window - > StatusBox = yon_gtk_builder_get_widget ( builder , " StatusBox " ) ;
@ -543,12 +984,16 @@ gboolean yon_read_log(void *data){
log_window * window = ( log_window * ) data ;
if ( window - > Window ) {
int size ;
while ( ! main_config . install_complete & & main_config . log_progress_buzy ) { } ;
main_config . log_progress_buzy = 1 ;
config_str parsed = yon_file_open ( window - > command , & size ) ;
main_config . log_progress_buzy = 0 ;
if ( size ) {
char * final = yon_char_parsed_to_string ( parsed , size , " " ) ;
gtk_label_set_text ( GTK_LABEL ( window - > LogLabel ) , final ) ;
free ( final ) ;
yon_char_parsed_free ( parsed , size ) ;
gtk_adjustment_set_value ( gtk_scrolled_window_get_vadjustment ( GTK_SCROLLED_WINDOW ( window - > ScrollWindow ) ) , gtk_adjustment_get_upper ( gtk_scrolled_window_get_vadjustment ( GTK_SCROLLED_WINDOW ( window - > ScrollWindow ) ) ) ) ;
}
return 1 ;
}
@ -563,7 +1008,6 @@ void on_process_log_view(GtkWidget *){
gdk_threads_add_timeout ( 500 , ( GSourceFunc ) yon_read_log , window ) ;
}
void on_summary_log_view ( GtkWidget * ) ;
void on_summary_log_view ( GtkWidget * ) {
log_window * window = yon_log_window_new ( ) ;
yon_gtk_window_setup ( GTK_WINDOW ( window - > Window ) , NULL , LOG_VIEW_LABEL , icon_path , " log_viewer " ) ;
@ -607,7 +1051,7 @@ void on_page_navigation_clicked(GtkWidget *self, main_window *widgets){
switch ( page ) {
case YON_PAGE_WELCOME : {
gtk_notebook_set_current_page ( GTK_NOTEBOOK ( widgets - > Notebook ) , YON_PAGE_LICENCE ) ;
// gtk_widget_set_sensitive(widgets->ConfigurationModeMenuItem,0);
gtk_widget_set_sensitive ( widgets - > ConfigurationModeMenuItem , 0 ) ;
} break ;
case YON_PAGE_SECTIONS : { //sections
@ -653,10 +1097,10 @@ void on_page_navigation_clicked(GtkWidget *self, main_window *widgets){
GtkTreeModel * model = GTK_TREE_MODEL ( widgets - > LanguagesFilter ) ;
char * lang_code = NULL ;
for_iter ( model , & iter ) {
gtk_tree_model_get ( model , & iter , 1 , & lang_code , - 1 ) ;
languages = yon_char_unite ( languages , " , " , lang_code , NULL ) ;
gtk_tree_model_get ( model , & iter , 2 , & lang_code , - 1 ) ;
languages = yon_char_unite ( languages , ! yon_char_is_empty ( languages ) ? " , " : " " , lang_code , NULL ) ;
}
if ( yon_char_is_empty ( gtk_entry_get_text ( GTK_ENTRY ( widgets- > Avai lableLa nguagesEntry) ) ) ) {
if ( yon_char_is_empty ( languages) ) {
yon_config_remove_by_key ( locale_parameter ) ;
} else {
yon_config_register ( locale_parameter , locale_parameter_command , languages ) ;
@ -698,16 +1142,18 @@ void on_page_navigation_clicked(GtkWidget *self, main_window *widgets){
} else {
yon_config_remove_by_key ( xkblayout_parameter ) ;
}
char * model = gtk_combo_box_get_active ( GTK_COMBO_BOX ( widgets - > KeyboardModelCombo ) ) ? ( char * ) gtk_combo_box_get_active_id ( GTK_COMBO_BOX ( widgets - > KeyboardModelCombo ) ) : " " ;
// char *layout_switch;
if ( ! yon_char_is_empty ( model ) )
yon_config_register ( xkbmodel_parameter , xkbmodel_parameter_command , model ) ;
else
if ( ! gtk_combo_box_get_active ( GTK_COMBO_BOX ( widgets - > KeyboardModelCombo ) ) ) {
char * model = ( char * ) gtk_combo_box_get_active_id ( GTK_COMBO_BOX ( widgets - > KeyboardModelCombo ) ) ;
// char *layout_switch;
if ( ! yon_char_is_empty ( model ) )
yon_config_register ( xkbmodel_parameter , xkbmodel_parameter_command , model ) ;
} else {
yon_config_remove_by_key ( xkbmodel_parameter ) ;
}
if ( ! yon_char_is_empty ( layouts_list ) )
yon_config_register ( locale_parameter, locale _parameter_command, layouts_list ) ;
yon_config_register ( xkblayout_parameter, xkblayout _parameter_command, layouts_list ) ;
else
yon_config_remove_by_key ( locale _parameter) ;
yon_config_remove_by_key ( xkblayout _parameter) ;
gtk_notebook_set_current_page ( GTK_NOTEBOOK ( widgets - > Notebook ) , page + 1 ) ;
} break ;
@ -841,7 +1287,7 @@ void on_page_navigation_clicked(GtkWidget *self, main_window *widgets){
if ( yon_char_is_empty ( gtk_entry_get_text ( GTK_ENTRY ( widgets - > LoginEntry ) ) ) ) {
yon_config_remove_by_key ( user_name_parameter ) ;
} else {
char * login = ( char * ) gtk_entry_get_text ( GTK_ENTRY ( widgets - > UserName Entry) ) ;
char * login = ( char * ) gtk_entry_get_text ( GTK_ENTRY ( widgets - > Login Entry) ) ;
yon_config_register ( user_name_parameter , user_name_parameter_command , login ) ;
}
@ -853,11 +1299,12 @@ void on_page_navigation_clicked(GtkWidget *self, main_window *widgets){
return ;
} else {
char * password = ( char * ) gtk_entry_get_text ( GTK_ENTRY ( widgets - > PasswordEntry ) ) ;
yon_config_register ( user_password_parameter , user_password_parameter_command , password ) ;
}
} else {
yon_config_re gister( user_password_parameter , user_password_parameter_command , PASSWORD_DEFAULT ) ;
yon_config_re move_by_key( user_password_parameter ) ;
}
if ( gtk_combo_box_get_active ( GTK_COMBO_BOX ( widgets - > AdminPasswordCombo ) ) = = 1 ) {
@ -881,7 +1328,7 @@ void on_page_navigation_clicked(GtkWidget *self, main_window *widgets){
yon_config_remove_by_key ( hostname_parameter ) ;
} else {
char * hostname = ( char * ) gtk_entry_get_text ( GTK_ENTRY ( widgets - > UserN ameEntry) ) ;
char * hostname = ( char * ) gtk_entry_get_text ( GTK_ENTRY ( widgets - > Hotn ameEntry) ) ;
yon_config_register ( hostname_parameter , hostname_parameter_command , hostname ) ;
}
@ -899,7 +1346,6 @@ void on_page_navigation_clicked(GtkWidget *self, main_window *widgets){
gtk_tree_model_get ( GTK_TREE_MODEL ( widgets - > LayoutsFilter ) , & iter , 0 , & id , 3 , & status , - 1 ) ;
if ( status ) {
char * temp = yon_char_unite ( locales , ! yon_char_is_empty ( locales ) ? " , " : " " , id , NULL ) ;
free ( locales ) ;
locales = temp ;
}
}
@ -916,12 +1362,13 @@ void on_page_navigation_clicked(GtkWidget *self, main_window *widgets){
yon_config_remove_by_key ( xkbmodel_parameter ) ;
}
char * options = ( char * ) gtk_combo_box_get_active_id ( GTK_COMBO_BOX ( widgets - > LayoutBindingCombo ) ) ;
if ( ! yon_char_is_empty ( options ) ) {
if ( gtk_combo_box_get_active ( GTK_COMBO_BOX ( widgets - > LayoutBindingCombo ) ) ){
char * options = ( char * ) gtk_combo_box_get_active_id ( GTK_COMBO_BOX ( widgets - > LayoutBindingCombo ) ) ;
yon_config_register ( xkboptions_parameter , xkboptions_parameter_command , options ) ;
} else {
yon_config_remove_by_key ( xkboptions_parameter ) ;
}
if ( ! main_config . configure_mode ) {
if ( ! main_config . install_complete ) {
gtk_notebook_set_current_page ( GTK_NOTEBOOK ( widgets - > Notebook ) , YON_PAGE_INSTALLATION ) ;
@ -1102,6 +1549,14 @@ void on_page_navigation_clicked(GtkWidget *self, main_window *widgets){
gtk_notebook_set_current_page ( GTK_NOTEBOOK ( widgets - > Notebook ) , YON_PAGE_SECTIONS ) ;
break ;
case YON_PAGE_CONFIGURE_END : {
gtk_notebook_set_current_page ( GTK_NOTEBOOK ( widgets - > Notebook ) , YON_PAGE_USERS ) ;
} break ;
case YON_PAGE_COMPLETED : {
gtk_notebook_set_current_page ( GTK_NOTEBOOK ( widgets - > Notebook ) , YON_PAGE_USERS ) ;
} break ;
default : {
gtk_notebook_set_current_page ( GTK_NOTEBOOK ( widgets - > Notebook ) , page - 1 ) ;
}
@ -1241,7 +1696,6 @@ void on_separate_installation_changed(GtkWidget *self, main_window *widgets){
}
}
void on_near_installation_device_changed ( GtkWidget * self , main_window * widgets ) ;
void on_near_installation_device_changed ( GtkWidget * self , main_window * widgets ) {
gtk_list_store_clear ( widgets - > PartitionsList ) ;
GtkTreeIter iter ;
@ -1343,6 +1797,10 @@ main_window *yon_main_window_complete(){
main_window * widgets = NULL ;
widgets = yon_remalloc ( widgets , sizeof ( main_window ) ) ;
GtkBuilder * builder = gtk_builder_new_from_resource ( glade_path ) ;
gtk_builder_add_callback_symbol ( builder , " yon_gtk_widget_set_sensitive_from_toggle_button " , G_CALLBACK ( yon_gtk_widget_set_sensitive_from_toggle_button ) ) ;
gtk_builder_add_callback_symbol ( builder , " yon_gtk_toggle_button_set_inactive_from_toggle " , G_CALLBACK ( yon_gtk_toggle_button_set_inactive_from_toggle ) ) ;
gtk_builder_add_callback_symbol ( builder , " yon_gtk_toggle_button_set_inactive_from_entry " , G_CALLBACK ( yon_gtk_toggle_button_set_inactive_from_entry ) ) ;
gtk_builder_add_callback_symbol ( builder , " yon_gtk_toggle_button_set_inactive_from_combo_box " , G_CALLBACK ( yon_gtk_toggle_button_set_inactive_from_combo_box ) ) ;
// Custom widgets configuration
widgets - > builder = builder ;
@ -1466,6 +1924,17 @@ main_window *yon_main_window_complete(){
widgets - > UserdataDevicesTree = yon_gtk_builder_get_widget ( builder , " UserdataDevicesTree " ) ;
widgets - > UserdataSysSectionTree = yon_gtk_builder_get_widget ( builder , " UserdataSysSectionTree " ) ;
widgets - > SaveButton = yon_gtk_builder_get_widget ( builder , " SaveButton " ) ;
widgets - > LoadGlobalConfigurationMenuItem = yon_gtk_builder_get_widget ( builder , " LoadGlobalConfigurationMenuItem " ) ;
widgets - > LoadLocalConfigurationMenuItem = yon_gtk_builder_get_widget ( builder , " LoadLocalConfigurationMenuItem " ) ;
widgets - > LoadExternalConfigurationMenuItem = yon_gtk_builder_get_widget ( builder , " LoadExternalConfigurationMenuItem " ) ;
widgets - > SaveGlobalLocalConfigurationMenuItem = yon_gtk_builder_get_widget ( builder , " SaveGlobalLocalConfigurationMenuItem " ) ;
widgets - > SaveGlobalConfigurationMenuItem = yon_gtk_builder_get_widget ( builder , " SaveGlobalConfigurationMenuItem " ) ;
widgets - > SaveLocalConfigurationMenuItem = yon_gtk_builder_get_widget ( builder , " SaveLocalConfigurationMenuItem " ) ;
widgets - > SaveExternalConfigurationMenuItem = yon_gtk_builder_get_widget ( builder , " SaveExternalConfigurationMenuItem " ) ;
widgets - > LanguagesList = GTK_LIST_STORE ( gtk_builder_get_object ( builder , " LanguagesList " ) ) ;
widgets - > LanguagesFilter = GTK_TREE_MODEL ( gtk_builder_get_object ( builder , " LanguagesFilter " ) ) ;
widgets - > LayoutsFilter = GTK_TREE_MODEL ( gtk_builder_get_object ( builder , " LayoutsFilter " ) ) ;
@ -1473,6 +1942,15 @@ main_window *yon_main_window_complete(){
widgets - > AdditionalSoftwareList = GTK_LIST_STORE ( gtk_builder_get_object ( builder , " AdditionalSoftwareList " ) ) ;
widgets - > PartitionsList = GTK_LIST_STORE ( gtk_builder_get_object ( builder , " PartitionsList " ) ) ;
g_signal_connect ( G_OBJECT ( widgets - > LoadGlobalConfigurationMenuItem ) , " activate " , G_CALLBACK ( on_config_global_load ) , widgets ) ;
g_signal_connect ( G_OBJECT ( widgets - > LoadLocalConfigurationMenuItem ) , " activate " , G_CALLBACK ( on_config_local_load ) , widgets ) ;
g_signal_connect ( G_OBJECT ( widgets - > LoadExternalConfigurationMenuItem ) , " activate " , G_CALLBACK ( on_config_custom_load ) , widgets ) ;
g_signal_connect ( G_OBJECT ( widgets - > SaveGlobalLocalConfigurationMenuItem ) , " activate " , G_CALLBACK ( on_config_global_local_save ) , widgets ) ;
g_signal_connect ( G_OBJECT ( widgets - > SaveGlobalConfigurationMenuItem ) , " activate " , G_CALLBACK ( on_config_global_save ) , widgets ) ;
g_signal_connect ( G_OBJECT ( widgets - > SaveLocalConfigurationMenuItem ) , " activate " , G_CALLBACK ( on_config_local_save ) , widgets ) ;
g_signal_connect ( G_OBJECT ( widgets - > SaveExternalConfigurationMenuItem ) , " activate " , G_CALLBACK ( on_config_custom_save ) , widgets ) ;
g_signal_connect ( G_OBJECT ( widgets - > ReadFullLogButton ) , " clicked " , G_CALLBACK ( on_process_log_view ) , widgets ) ;
g_signal_connect ( G_OBJECT ( widgets - > ReadShortLogButton ) , " clicked " , G_CALLBACK ( on_summary_log_view ) , widgets ) ;
@ -1522,6 +2000,7 @@ main_window *yon_main_window_complete(){
g_signal_connect ( G_OBJECT ( widgets - > SameInstallationFormatCheck ) , " toggled " , G_CALLBACK ( yon_gtk_widget_set_sensitive_from_toggle_button ) , widgets - > SameInstallationFilesystemTypeCombo ) ;
// g_signal_connect(G_OBJECT(widgets->InstallationToggle),"toggled",G_CALLBACK(on_toggle_block),widgets);
gtk_tree_model_filter_set_visible_column ( GTK_TREE_MODEL_FILTER ( widgets - > LanguagesFilter ) , 0 ) ;
gtk_tree_model_filter_refilter ( GTK_TREE_MODEL_FILTER ( widgets - > LanguagesFilter ) ) ;
@ -1583,6 +2062,7 @@ main_window *yon_main_window_complete(){
if ( layout_size ) {
char * layout_id = yon_char_new ( layout [ 0 ] ) ;
gtk_tree_store_append ( widgets - > LayoutList , & iter , NULL ) ;
yon_debug_output ( " %s \n " , parsed [ i ] ) ;
gtk_tree_store_set ( widgets - > LayoutList , & iter , 0 , layout [ 0 ] , 1 , _ ( layout [ 1 ] ) , 2 , 1 , - 1 ) ;
yon_char_parsed_free ( layout , layout_size ) ;
layout = yon_config_load ( get_layouts_local_command ( layout_id ) , & layout_size ) ;
@ -1642,7 +2122,9 @@ main_window *yon_main_window_complete(){
models [ i + 1 ] = yon_char_divide_search ( models [ i + 1 ] , " \n " , - 1 ) ;
gtk_combo_box_text_append ( GTK_COMBO_BOX_TEXT ( widgets - > KeyboardModelCombo ) , models [ i ] , _ ( models [ i + 1 ] ) ) ;
}
gtk_builder_connect_signals ( builder , NULL ) ;
yon_load_proceed ( YON_CONFIG_DEFAULT ) ;
yon_interface_update ( widgets ) ;
return widgets ;
}