@ -196,6 +196,17 @@ void on_source_accept(GtkWidget *,source_window *window){
free ( parameter_string ) ;
free ( parameter_string ) ;
on_subwindow_close ( window - > Window ) ;
on_subwindow_close ( window - > Window ) ;
if ( ! main_config . configure_mode ) {
int size ;
config_str parameters = yon_config_get_save_parameters_by_key ( & size , locale_parameter , lang_parameter , zone_parameter , NULL ) ;
if ( parameters ) {
char * command_parameters = yon_char_parsed_to_string ( parameters , size , " -- " ) ;
char * command = yon_char_unite ( ubconfig_dull_command , " --target system " , command_parameters , NULL ) ;
if ( ! system ( command ) ) { }
free ( command ) ;
yon_char_parsed_free ( parameters , size ) ;
}
}
}
}
source_window * yon_source_window_new ( ) {
source_window * yon_source_window_new ( ) {
@ -299,9 +310,63 @@ void config_init(){
// void *on_setup_system_configuration(void *data);
// void *on_setup_system_configuration(void *data);
// void on_locale_changed(GtkWidget *,main_window *){
void on_locale_changed ( GtkWidget * , main_window * widgets ) {
//
GtkTreeIter iter ;
// }
GtkTreeModel * model ;
if ( ! gtk_tree_selection_get_selected ( gtk_tree_view_get_selection ( GTK_TREE_VIEW ( widgets - > LanguagesTree ) ) , & model , & iter ) ) return ;
gtk_tree_model_filter_refilter ( GTK_TREE_MODEL_FILTER ( widgets - > InstallerCountryFilter ) ) ;
char * config_code = config ( installer_lang_parameter ) ;
if ( yon_char_is_empty ( config_code ) ) {
config_code = yon_char_new ( setlocale ( LC_ALL , NULL ) ) ;
if ( strstr ( config_code , " . " ) ) {
yon_char_divide_search_self ( config_code , " . " , - 1 ) ;
}
}
GtkTreeIter itar ;
for_iter ( widgets - > InstallerCountryFilter , & iter ) {
gtk_tree_model_filter_convert_iter_to_child_iter ( GTK_TREE_MODEL_FILTER ( widgets - > InstallerCountryFilter ) , & itar , & iter ) ;
char * target ;
gtk_tree_model_get ( GTK_TREE_MODEL ( widgets - > InstallerCountryList ) , & itar , 2 , & target , - 1 ) ;
if ( ! strcmp ( config_code , target ) ) {
gtk_tree_model_filter_convert_child_iter_to_iter ( GTK_TREE_MODEL_FILTER ( widgets - > InstallerCountryFilter ) , & iter , & itar ) ;
gtk_tree_selection_select_iter ( gtk_tree_view_get_selection ( GTK_TREE_VIEW ( widgets - > CountryLanguagesTree ) ) , & iter ) ;
break ;
}
}
}
void on_installer_language_changed ( GtkWidget * self , main_window * widgets ) {
char * window_language ;
GtkTreeIter iter ;
GtkTreeModel * model ;
if ( ! gtk_tree_selection_get_selected ( gtk_tree_view_get_selection ( GTK_TREE_VIEW ( widgets - > CountryLanguagesTree ) ) , & model , & iter ) ) return ;
gtk_tree_model_get ( model , & iter , 2 , & window_language , - 1 ) ;
if ( ! yon_char_is_empty ( window_language ) ) {
yon_config_register ( installer_lang_parameter , installer_lang_parameter_command , ( char * ) window_language ) ;
}
char * active_lang_id = gtk_tree_model_get_string_from_iter ( model , & iter ) ;
int size ;
config_str parameters = yon_config_get_save_parameters_by_key ( & size , installer_lang_parameter , NULL ) ;
char * command_parameters = yon_char_parsed_to_string ( parameters , size , " " ) ;
char * command = yon_char_unite ( ubconfig_dull_command , " --target system " , command_parameters , NULL ) ;
g_signal_handlers_block_by_func ( G_OBJECT ( widgets - > MainWindow ) , G_CALLBACK ( on_yon_exit ) , widgets ) ;
if ( ! system ( command ) ) { } ;
gtk_widget_destroy ( widgets - > MainWindow ) ;
setlocale ( LC_ALL , window_language ) ;
textdomain ( LocaleName ) ;
g_setenv ( " LANGUAGE " , window_language , 1 ) ;
yon_main_window_create ( widgets ) ;
char * path = yon_char_unite ( yon_ubl_user_get_home_directory ( ) , " /.config/ " , LocaleName , " / " , LocaleName , " .conf " , NULL ) ;
yon_window_config_setup ( GTK_WINDOW ( widgets - > MainWindow ) ) ;
yon_window_config_load ( path ) ;
g_signal_handlers_block_by_func ( G_OBJECT ( self ) , G_CALLBACK ( on_locale_changed ) , widgets ) ;
model = GTK_TREE_MODEL ( widgets - > InstallerLanguageList ) ;
gtk_tree_model_get_iter_from_string ( model , & iter , active_lang_id ) ;
g_signal_handlers_unblock_by_func ( G_OBJECT ( self ) , G_CALLBACK ( on_locale_changed ) , widgets ) ;
}
void on_additional_software_toggled ( GtkWidget * , char * path , main_window * widgets ) {
void on_additional_software_toggled ( GtkWidget * , char * path , main_window * widgets ) {
GtkTreeIter iter ;
GtkTreeIter iter ;
@ -351,22 +416,138 @@ gboolean on_yon_exit(GtkWidget *,GdkEvent*, main_window *widgets){
gtk_main_quit ( ) ;
gtk_main_quit ( ) ;
return 1 ;
return 1 ;
}
}
}
return 1 ;
}
typedef struct {
char * locale_name ;
char * code ;
char * localised_name ;
char * code_full ;
} locale_struct ;
void set_locales_list ( main_window * widgets ) {
gtk_list_store_clear ( widgets - > InstallerLanguageList ) ;
gtk_list_store_clear ( widgets - > InstallerCountryList ) ;
GHashTable * localisations = g_hash_table_new ( g_str_hash , g_str_equal ) ;
int locales_size ;
config_str locales = yon_dir_get_contents ( locales_list_command , & locales_size ) ;
dictionary * locale_dict = NULL ;
for ( int i = 0 ; i < locales_size ; i + + ) {
if ( ! strcmp ( locales [ i ] , " . " ) ) continue ;
if ( ! strcmp ( locales [ i ] , " .. " ) ) continue ;
char * path = yon_char_unite ( locales_list_command , locales [ i ] , NULL ) ;
int info_size ;
config_str code_info = yon_file_open ( path , & info_size ) ;
char * code = yon_char_parsed_check_exist_begins_with ( code_info , info_size , " lang_ab " ) ;
if ( yon_char_is_empty ( code ) ) continue ;
yon_char_remove_last_symbol ( code , ' \n ' ) ;
yon_char_remove_last_symbol ( code , ' " ' ) ;
free ( yon_char_divide_search ( code , " \" " , - 1 ) ) ;
{
char * region = yon_char_parsed_check_exist_begins_with ( code_info , info_size , " territory " ) ;
if ( ! yon_char_is_empty ( region ) ) {
yon_char_remove_last_symbol ( region , ' \n ' ) ;
yon_char_remove_last_symbol ( region , ' " ' ) ;
free ( yon_char_divide_search ( region , " \" " , - 1 ) ) ;
}
char * lang_name = yon_char_parsed_check_exist_begins_with ( code_info , info_size , " language " ) ;
if ( ! yon_char_is_empty ( lang_name ) ) {
yon_char_remove_last_symbol ( lang_name , ' \n ' ) ;
yon_char_remove_last_symbol ( lang_name , ' " ' ) ;
free ( yon_char_divide_search ( lang_name , " \" " , - 1 ) ) ;
}
}
char * tooltip = yon_char_parsed_check_exist_begins_with ( code_info , info_size , " title " ) ;
if ( ! yon_char_is_empty ( tooltip ) ) {
yon_char_remove_last_symbol ( tooltip , ' \n ' ) ;
yon_char_remove_last_symbol ( tooltip , ' " ' ) ;
free ( yon_char_divide_search ( tooltip , " \" " , - 1 ) ) ;
}
GtkTreeIter iter ;
char * country = yon_char_unite ( lang_name , " ( " , region , " ) " , NULL ) ;
gtk_list_store_append ( widgets - > InstallerCountryList , & iter ) ;
gtk_list_store_set ( widgets - > InstallerCountryList , & iter , 0 , code , 1 , _ ( country ) , 2 , locales [ i ] , 3 , _ ( tooltip ) , - 1 ) ;
}
if ( ! g_hash_table_contains ( localisations , code ) ) {
locale_struct * locale = malloc ( sizeof ( locale_struct ) ) ;
memset ( locale , 0 , sizeof ( locale_struct ) ) ;
locale - > locale_name = yon_char_parsed_check_exist_begins_with ( code_info , info_size , " language " ) ;
locale - > code = code ;
locale - > localised_name = yon_char_parsed_check_exist_begins_with ( code_info , info_size , " lang_name " ) ;
locale - > code_full = yon_char_new ( locales [ i ] ) ;
if ( ! yon_char_is_empty ( locale - > locale_name ) ) {
yon_char_remove_last_symbol ( locale - > locale_name , ' \n ' ) ;
yon_char_remove_last_symbol ( locale - > locale_name , ' " ' ) ;
}
if ( ! yon_char_is_empty ( locale - > localised_name ) ) {
yon_char_remove_last_symbol ( locale - > localised_name , ' \n ' ) ;
yon_char_remove_last_symbol ( locale - > localised_name , ' " ' ) ;
}
yon_dictionary_add_or_create_if_exists_with_data ( locale_dict , locales [ i ] , locale ) ;
free ( yon_char_divide_search ( locale - > locale_name , " \" " , - 1 ) ) ;
free ( yon_char_divide_search ( locale - > localised_name , " \" " , - 1 ) ) ;
g_hash_table_add ( localisations , code ) ;
}
yon_char_parsed_free ( code_info , info_size ) ;
}
yon_char_parsed_free ( locales , locales_size ) ;
GtkTreeIter iter ;
dictionary * dict ;
char * config_val = yon_char_new ( config ( installer_lang_parameter ) ) ;
char * config_code = NULL ;
if ( yon_char_is_empty ( config_val ) ) config_val = yon_char_new ( setlocale ( LC_ALL , NULL ) ) ;
if ( strstr ( config_val , " _ " ) ) {
config_code = yon_char_divide_search ( config_val , " _ " , - 1 ) ;
free ( config_val ) ;
}
for_dictionaries ( dict , locale_dict ) {
locale_struct * locale = yon_dictionary_get_data ( dict , locale_struct * ) ;
gtk_list_store_append ( widgets - > InstallerLanguageList , & iter ) ;
gtk_list_store_set ( widgets - > InstallerLanguageList , & iter , 0 , locale - > code , 1 , locale - > locale_name , 2 , _ ( locale - > localised_name ) , 3 , locale - > code_full , - 1 ) ;
if ( ! yon_char_is_empty ( config_code ) ) {
if ( ! strcmp ( config_code , locale - > code ) ) {
g_signal_handlers_block_by_func ( G_OBJECT ( widgets - > CountryLanguagesTree ) , G_CALLBACK ( on_installer_language_changed ) , widgets ) ;
gtk_tree_selection_select_iter ( gtk_tree_view_get_selection ( GTK_TREE_VIEW ( widgets - > LanguagesTree ) ) , & iter ) ;
on_locale_changed ( NULL , widgets ) ;
g_signal_handlers_unblock_by_func ( G_OBJECT ( widgets - > CountryLanguagesTree ) , G_CALLBACK ( on_installer_language_changed ) , widgets ) ;
}
}
}
}
gboolean on_country_filter ( GtkTreeModel * self , GtkTreeIter * iter , main_window * widgets ) {
GtkTreeIter itar ;
GtkTreeModel * model ;
if ( ! gtk_tree_selection_get_selected ( gtk_tree_view_get_selection ( GTK_TREE_VIEW ( widgets - > LanguagesTree ) ) , & model , & itar ) ) return 0 ;
char * cur_code , * country ;
gtk_tree_model_get ( self , iter , 0 , & cur_code , 1 , & country , - 1 ) ;
char * code ;
gtk_tree_model_get ( model , & itar , 0 , & code , - 1 ) ;
if ( ! strcmp ( code , cur_code ) ) {
char * config_lang = config ( installer_lang_parameter ) ;
if ( ! yon_char_is_empty ( config_lang ) & & ! strcmp ( cur_code , config_lang ) ) {
if ( gtk_tree_model_filter_convert_child_iter_to_iter ( GTK_TREE_MODEL_FILTER ( widgets - > InstallerCountryFilter ) , iter , & itar ) ) {
gtk_tree_selection_select_iter ( gtk_tree_view_get_selection ( GTK_TREE_VIEW ( widgets - > CountryLanguagesTree ) ) , & itar ) ;
}
}
return 1 ;
return 1 ;
}
}
return 0 ;
/**yon_main_window_complete(main_window *widgets)
}
* [ EN ]
*
void yon_main_window_create ( main_window * widgets ) {
* [ RU ]
* Ф у н к ц и я н а с т р о й к и о с н о в н о г о о к н а п р и л о ж е н и я . [ widgets ] - с т р у к т у р а с о с т а н д а р т н ы м и н т е р ф е й с о м .
*/
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 ) ;
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_widget_set_sensitive_from_toggle_button " , G_CALLBACK ( yon_gtk_widget_set_sensitive_from_toggle_button ) ) ;
gtk_builder_add_callback_symbol ( builder , " on_toggle_button_switch_on " , G_CALLBACK ( on_toggle_button_switch_on ) ) ;
gtk_builder_add_callback_symbol ( builder , " on_toggle_button_switch_on " , G_CALLBACK ( on_toggle_button_switch_on ) ) ;
@ -392,8 +573,6 @@ main_window *yon_main_window_complete(){
widgets - > DocumentationMenuItem = yon_ubl_menu_item_documentation_new ( DOCUMENTATION_LABEL ) ;
widgets - > DocumentationMenuItem = yon_ubl_menu_item_documentation_new ( DOCUMENTATION_LABEL ) ;
widgets - > AboutMenuItem = yon_ubl_menu_item_about_new ( ABOUT_LABEL ) ;
widgets - > AboutMenuItem = yon_ubl_menu_item_about_new ( ABOUT_LABEL ) ;
widgets - > SaveButton = yon_gtk_builder_get_widget ( builder , " SaveButton " ) ;
widgets - > LoadGlobalConfigurationMenuItem = yon_gtk_builder_get_widget ( builder , " LoadGlobalConfigurationMenuItem " ) ;
widgets - > LoadGlobalConfigurationMenuItem = yon_gtk_builder_get_widget ( builder , " LoadGlobalConfigurationMenuItem " ) ;
widgets - > LoadLocalConfigurationMenuItem = yon_gtk_builder_get_widget ( builder , " LoadLocalConfigurationMenuItem " ) ;
widgets - > LoadLocalConfigurationMenuItem = yon_gtk_builder_get_widget ( builder , " LoadLocalConfigurationMenuItem " ) ;
widgets - > LoadExternalConfigurationMenuItem = yon_gtk_builder_get_widget ( builder , " LoadExternalConfigurationMenuItem " ) ;
widgets - > LoadExternalConfigurationMenuItem = yon_gtk_builder_get_widget ( builder , " LoadExternalConfigurationMenuItem " ) ;
@ -479,7 +658,10 @@ main_window *yon_main_window_complete(){
widgets - > AdvancedSwapAutoSwitch = yon_gtk_builder_get_widget ( builder , " AdvancedSwapAutoSwitch " ) ;
widgets - > AdvancedSwapAutoSwitch = yon_gtk_builder_get_widget ( builder , " AdvancedSwapAutoSwitch " ) ;
widgets - > AdvancedSwapRamSwitch = yon_gtk_builder_get_widget ( builder , " AdvancedSwapRamSwitch " ) ;
widgets - > AdvancedSwapRamSwitch = yon_gtk_builder_get_widget ( builder , " AdvancedSwapRamSwitch " ) ;
widgets - > AdvancedSwapFixedSwitch = yon_gtk_builder_get_widget ( builder , " AdvancedSwapFixedSwitch " ) ;
widgets - > AdvancedSwapFixedSwitch = yon_gtk_builder_get_widget ( builder , " AdvancedSwapFixedSwitch " ) ;
widgets - > AdvancedSwapFixedSizeSwitch = yon_gtk_builder_get_widget ( builder , " AdvancedSwapFixedSizeSwitch " ) ;
widgets - > AdvancedSwapFixedSpin = yon_gtk_builder_get_widget ( builder , " AdvancedSwapFixedSpin " ) ;
widgets - > AdvancedSwapFixedSpin = yon_gtk_builder_get_widget ( builder , " AdvancedSwapFixedSpin " ) ;
widgets - > AdvancedSwapRevealer = yon_gtk_builder_get_widget ( builder , " AdvancedSwapRevealer " ) ;
widgets - > AdvancedLoadTypeRevealer = yon_gtk_builder_get_widget ( builder , " AdvancedLoadTypeRevealer " ) ;
widgets - > advanced_partition_order = g_sequence_new ( NULL ) ;
widgets - > advanced_partition_order = g_sequence_new ( NULL ) ;
widgets - > GrubInstallDevicesTree = yon_gtk_builder_get_widget ( builder , " GrubInstallDevicesTree " ) ;
widgets - > GrubInstallDevicesTree = yon_gtk_builder_get_widget ( builder , " GrubInstallDevicesTree " ) ;
@ -517,7 +699,12 @@ main_window *yon_main_window_complete(){
widgets - > LanguagesFilter = GTK_TREE_MODEL ( gtk_builder_get_object ( builder , " LanguagesFilter " ) ) ;
widgets - > LanguagesFilter = GTK_TREE_MODEL ( gtk_builder_get_object ( builder , " LanguagesFilter " ) ) ;
widgets - > LayoutsFilter = GTK_TREE_MODEL ( gtk_builder_get_object ( builder , " LayoutsFilter " ) ) ;
widgets - > LayoutsFilter = GTK_TREE_MODEL ( gtk_builder_get_object ( builder , " LayoutsFilter " ) ) ;
widgets - > LayoutList = GTK_TREE_STORE ( gtk_builder_get_object ( builder , " LayoutList " ) ) ;
widgets - > LayoutList = GTK_TREE_STORE ( gtk_builder_get_object ( builder , " LayoutList " ) ) ;
widgets - > LanguageCombo = yon_gtk_builder_get_widget ( builder , " LanguageCombo " ) ;
widgets - > LanguagesTree = yon_gtk_builder_get_widget ( builder , " LanguagesTree " ) ;
widgets - > CountryLanguagesTree = yon_gtk_builder_get_widget ( builder , " CountryLanguagesTree " ) ;
widgets - > InstallerCountryList = GTK_LIST_STORE ( gtk_builder_get_object ( builder , " InstallerCountryList " ) ) ;
widgets - > InstallerCountryFilter = GTK_TREE_MODEL ( gtk_builder_get_object ( builder , " InstallerCountryFilter " ) ) ;
widgets - > InstallerLanguageList = GTK_LIST_STORE ( gtk_builder_get_object ( builder , " InstallerLanguageList " ) ) ;
// widgets->LanguageCombo=yon_gtk_builder_get_widget(builder,"LanguageCombo");
widgets - > RegionCombo = yon_gtk_builder_get_widget ( builder , " RegionCombo " ) ;
widgets - > RegionCombo = yon_gtk_builder_get_widget ( builder , " RegionCombo " ) ;
widgets - > ZoneCombo = yon_gtk_builder_get_widget ( builder , " ZoneCombo " ) ;
widgets - > ZoneCombo = yon_gtk_builder_get_widget ( builder , " ZoneCombo " ) ;
widgets - > AvailableLanguagesEntry = yon_gtk_builder_get_widget ( builder , " AvailableLanguagesEntry " ) ;
widgets - > AvailableLanguagesEntry = yon_gtk_builder_get_widget ( builder , " AvailableLanguagesEntry " ) ;
@ -645,11 +832,6 @@ main_window *yon_main_window_complete(){
g_signal_connect ( G_OBJECT ( widgets - > EnableVNCMenuItem ) , " activate " , G_CALLBACK ( on_vnc_toggled ) , widgets ) ;
g_signal_connect ( G_OBJECT ( widgets - > EnableVNCMenuItem ) , " activate " , G_CALLBACK ( on_vnc_toggled ) , 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 - > ReadFullLogButton ) , " clicked " , G_CALLBACK ( on_process_log_view ) , widgets ) ;
g_signal_connect ( G_OBJECT ( widgets - > ReadShortLogButton ) , " clicked " , G_CALLBACK ( on_summary_log_view ) , widgets ) ;
g_signal_connect ( G_OBJECT ( widgets - > ReadShortLogButton ) , " clicked " , G_CALLBACK ( on_summary_log_view ) , widgets ) ;
@ -676,8 +858,6 @@ main_window *yon_main_window_complete(){
g_signal_connect ( G_OBJECT ( widgets - > OSDevicesTree ) , " cursor-changed " , G_CALLBACK ( on_device_selection_changed ) , widgets ) ;
g_signal_connect ( G_OBJECT ( widgets - > OSDevicesTree ) , " cursor-changed " , G_CALLBACK ( on_device_selection_changed ) , widgets ) ;
g_signal_connect ( G_OBJECT ( widgets - > ConfigurationModeMenuItem ) , " toggled " , G_CALLBACK ( on_configuration_mode_switch ) , widgets ) ;
g_signal_connect ( G_OBJECT ( widgets - > ConfigurationModeMenuItem ) , " toggled " , G_CALLBACK ( on_configuration_mode_switch ) , widgets ) ;
// g_signal_connect(G_OBJECT(widgets->DocumentationMenuItem),"activate",G_CALLBACK(on_open_documentation_confirmation),widgets);
// g_signal_connect(G_OBJECT(widgets->AboutMenuItem),"activate",G_CALLBACK(on_about),widgets);
g_signal_connect ( G_OBJECT ( widgets - > SamePlacePartTree ) , " cursor-changed " , G_CALLBACK ( on_partition_changed ) , widgets ) ;
g_signal_connect ( G_OBJECT ( widgets - > SamePlacePartTree ) , " cursor-changed " , G_CALLBACK ( on_partition_changed ) , widgets ) ;
g_signal_connect ( G_OBJECT ( widgets - > NextInstallationSysSectionTree ) , " cursor-changed " , G_CALLBACK ( on_partition_changed ) , widgets ) ;
g_signal_connect ( G_OBJECT ( widgets - > NextInstallationSysSectionTree ) , " cursor-changed " , G_CALLBACK ( on_partition_changed ) , widgets ) ;
@ -690,6 +870,8 @@ main_window *yon_main_window_complete(){
g_signal_connect ( G_OBJECT ( widgets - > BootloadDefaulOSButton ) , " clicked " , G_CALLBACK ( yon_menu_window_open ) , widgets ) ;
g_signal_connect ( G_OBJECT ( widgets - > BootloadDefaulOSButton ) , " clicked " , G_CALLBACK ( yon_menu_window_open ) , widgets ) ;
gtk_tree_model_filter_set_visible_column ( GTK_TREE_MODEL_FILTER ( widgets - > LayoutsFilter ) , 3 ) ;
gtk_tree_model_filter_set_visible_column ( GTK_TREE_MODEL_FILTER ( widgets - > LayoutsFilter ) , 3 ) ;
g_signal_connect ( G_OBJECT ( widgets - > LanguagesTree ) , " cursor-changed " , G_CALLBACK ( on_locale_changed ) , widgets ) ;
g_signal_connect ( G_OBJECT ( widgets - > CountryLanguagesTree ) , " cursor-changed " , G_CALLBACK ( on_installer_language_changed ) , widgets ) ;
// g_signal_connect(G_OBJECT(widgets->LanguageCombo),"changed",G_CALLBACK(on_locale_changed),widgets);
// g_signal_connect(G_OBJECT(widgets->LanguageCombo),"changed",G_CALLBACK(on_locale_changed),widgets);
g_signal_connect ( G_OBJECT ( widgets - > AdditionalSoftwareCell ) , " toggled " , G_CALLBACK ( on_additional_software_toggled ) , widgets ) ;
g_signal_connect ( G_OBJECT ( widgets - > AdditionalSoftwareCell ) , " toggled " , G_CALLBACK ( on_additional_software_toggled ) , widgets ) ;
g_signal_connect ( G_OBJECT ( widgets - > StartupChosenCell ) , " toggled " , G_CALLBACK ( on_srartup_services_toggled ) , widgets ) ;
g_signal_connect ( G_OBJECT ( widgets - > StartupChosenCell ) , " toggled " , G_CALLBACK ( on_srartup_services_toggled ) , widgets ) ;
@ -727,6 +909,11 @@ main_window *yon_main_window_complete(){
g_signal_connect ( G_OBJECT ( widgets - > HotnameEntry ) , " changed " , G_CALLBACK ( on_hostname_entry_changed ) , 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 ) ;
g_signal_connect ( G_OBJECT ( widgets - > NetworkConnectionsAddButton ) , " clicked " , G_CALLBACK ( on_connection_add ) , widgets ) ;
g_signal_connect ( G_OBJECT ( widgets - > NetworkNTPCombo ) , " changed " , G_CALLBACK ( on_ntp_sync ) , widgets ) ;
g_signal_connect ( G_OBJECT ( widgets - > NetworkNTPCombo ) , " changed " , G_CALLBACK ( on_ntp_sync ) , widgets ) ;
yon_gtk_revealer_set_from_switch ( GTK_REVEALER ( widgets - > AdvancedLoadTypeRevealer ) , GTK_SWITCH ( widgets - > AdvancedLoadTypeSwitch ) ) ;
yon_gtk_revealer_set_from_switch ( GTK_REVEALER ( widgets - > AdvancedSwapRevealer ) , GTK_SWITCH ( widgets - > AdvancedSwapSwitch ) ) ;
g_signal_connect ( G_OBJECT ( widgets - > AdvancedSwapFixedSwitch ) , " state-set " , G_CALLBACK ( yon_gtk_widget_set_sensitive_from_switch ) , widgets - > AdvancedSwapFixedSpin ) ;
g_signal_connect ( G_OBJECT ( widgets - > AdvancedSwapFixedSwitch ) , " state-set " , G_CALLBACK ( yon_gtk_widget_set_sensitive_from_switch ) , widgets - > AdvancedSwapFixedSizeSwitch ) ;
g_signal_connect ( G_OBJECT ( widgets - > AdvancedAddButton ) , " clicked " , G_CALLBACK ( on_install_advanced_add_new ) , widgets ) ;
g_signal_connect ( G_OBJECT ( widgets - > AdvancedAddButton ) , " clicked " , G_CALLBACK ( on_install_advanced_add_new ) , widgets ) ;
g_signal_connect ( G_OBJECT ( widgets - > AdvancedDeviceChosenCell ) , " toggled " , G_CALLBACK ( on_install_advanced_device_chosen ) , widgets ) ;
g_signal_connect ( G_OBJECT ( widgets - > AdvancedDeviceChosenCell ) , " toggled " , G_CALLBACK ( on_install_advanced_device_chosen ) , widgets ) ;
@ -738,6 +925,7 @@ main_window *yon_main_window_complete(){
g_signal_connect ( G_OBJECT ( widgets - > SourceButton ) , " clicked " , G_CALLBACK ( on_source_clicked ) , widgets ) ;
g_signal_connect ( G_OBJECT ( widgets - > SourceButton ) , " clicked " , G_CALLBACK ( on_source_clicked ) , widgets ) ;
g_signal_connect ( G_OBJECT ( widgets - > SkipInstallationButton ) , " clicked " , G_CALLBACK ( on_system_setup_pass ) , widgets ) ;
g_signal_connect ( G_OBJECT ( widgets - > SkipInstallationButton ) , " clicked " , G_CALLBACK ( on_system_setup_pass ) , widgets ) ;
gtk_tree_model_filter_set_visible_func ( GTK_TREE_MODEL_FILTER ( widgets - > InstallerCountryFilter ) , ( GtkTreeModelFilterVisibleFunc ) on_country_filter , widgets , NULL ) ;
{
{
if ( main_config . lock_load_global = = 1 ) {
if ( main_config . lock_load_global = = 1 ) {
@ -789,13 +977,44 @@ main_window *yon_main_window_complete(){
}
}
gtk_builder_connect_signals ( builder , NULL ) ;
gtk_builder_connect_signals ( builder , NULL ) ;
// yon_load_proceed(YON_CONFIG_LOCAL);
// yon_load_proceed(YON_CONFIG_LOCAL);
on_config_global_load ( NULL , widgets ) ;
// yon_interface_update(widgets);
// yon_interface_update(widgets);
if ( ! yon_char_is_empty ( config ( AUTOINSTALL_TYPE_INSTALL ) ) ) {
if ( ! yon_char_is_empty ( config ( AUTOINSTALL_TYPE_INSTALL ) ) ) {
gtk_widget_show ( widgets - > StartScenarioButton ) ;
gtk_widget_show ( widgets - > StartScenarioButton ) ;
} else {
} else {
gtk_widget_hide ( widgets - > StartScenarioButton ) ;
gtk_widget_hide ( widgets - > StartScenarioButton ) ;
}
}
// char *locale = config(installer_lang_parameter);
// if (!yon_char_is_empty(locale)){
// locale = setlocale(LC_ALL,NULL);
// }
// yon_ubl_window_init(TITLE_LABEL,DESCRIPTION_LABEL,locale,CssPath,LocaleName,version_application,WIKI_LINK);
set_locales_list ( widgets ) ;
// {
// char *parameter = config(installer_lang_parameter);
// if (yon_char_is_empty(parameter)){
// parameter=setlocale(LC_ALL,NULL);
// }
// GList *list = gtk_container_get_children(GTK_CONTAINER(widgets->LanguagesBox));
// GList *iter;
// for (iter = list;iter;iter=iter->next){
// char *lang = g_object_get_data(G_OBJECT(iter->data),"language");
// if (!strcmp(lang,parameter)){
// gtk_flow_box_select_child(GTK_FLOW_BOX(widgets->LanguagesBox),GTK_FLOW_BOX_CHILD(iter->data));
// }
// }
// }
}
/**yon_main_window_complete(main_window *widgets)
* [ EN ]
*
* [ RU ]
* Ф у н к ц и я н а с т р о й к и о с н о в н о г о о к н а п р и л о ж е н и я . [ widgets ] - с т р у к т у р а с о с т а н д а р т н ы м и н т е р ф е й с о м .
*/
main_window * yon_main_window_complete ( ) {
main_window * widgets = NULL ;
widgets = yon_remalloc ( widgets , sizeof ( main_window ) ) ;
yon_main_window_create ( widgets ) ;
return widgets ;
return widgets ;
}
}
@ -810,6 +1029,7 @@ int main(int argc, char *argv[]){
gtk_init ( & argc , & argv ) ;
gtk_init ( & argc , & argv ) ;
main_window * widgets = NULL ;
main_window * widgets = NULL ;
widgets = yon_main_window_complete ( ) ;
widgets = yon_main_window_complete ( ) ;
on_config_global_load ( NULL , widgets ) ;
if ( widgets ) { } ;
if ( widgets ) { } ;
char * path = yon_char_unite ( yon_ubl_user_get_home_directory ( ) , " /.config/ " , LocaleName , " / " , LocaleName , " .conf " , NULL ) ;
char * path = yon_char_unite ( yon_ubl_user_get_home_directory ( ) , " /.config/ " , LocaleName , " / " , LocaleName , " .conf " , NULL ) ;
yon_window_config_setup ( GTK_WINDOW ( widgets - > MainWindow ) ) ;
yon_window_config_setup ( GTK_WINDOW ( widgets - > MainWindow ) ) ;
@ -822,9 +1042,7 @@ int main(int argc, char *argv[]){
GTK_STYLE_PROVIDER ( css ) ,
GTK_STYLE_PROVIDER ( css ) ,
- 1 ) ;
- 1 ) ;
if ( getuid ( ) ! = 0 ) {
if ( getuid ( ) ! = 0 ) {
textdomain ( template_ui_LocaleName ) ;
yon_ubl_status_box_render ( yon_char_get_localised_from_lib ( ROOT_WARNING_LABEL ) , BACKGROUND_IMAGE_FAIL_TYPE ) ;
yon_ubl_status_box_render ( ROOT_WARNING_LABEL , BACKGROUND_IMAGE_FAIL_TYPE ) ;
textdomain ( LocaleName ) ;
}
}
gtk_main ( ) ;
gtk_main ( ) ;
return 0 ;
return 0 ;