@ -348,6 +348,7 @@ main_window *yon_main_window_complete(){
widgets - > CommonInstallationDevicesTree = yon_gtk_builder_get_widget ( builder , " CommonInstallationDevicesTree " ) ;
widgets - > CommonInstallationFilesystemTypeCombo = yon_gtk_builder_get_widget ( builder , " CommonInstallationFilesystemTypeCombo " ) ;
widgets - > CommonInstallationSectionNameEntry = yon_gtk_builder_get_widget ( builder , " CommonInstallationSectionNameEntry " ) ;
widgets - > CommonFormatSwitch = yon_gtk_builder_get_widget ( builder , " CommonFormatSwitch " ) ;
widgets - > GpartedCommonButton = yon_gtk_builder_get_widget ( builder , " GpartedCommonButton " ) ;
widgets - > SamePlaceDeviceTree = yon_gtk_builder_get_widget ( builder , " SamePlaceDeviceTree " ) ;
@ -368,6 +369,8 @@ main_window *yon_main_window_complete(){
widgets - > NextInstallationSysSectionTree = yon_gtk_builder_get_widget ( builder , " NextInstallationSysSectionTree " ) ;
widgets - > GpartedNextInstallationButton = yon_gtk_builder_get_widget ( builder , " GpartedNextInstallationButton " ) ;
widgets - > AdvancedDevicesCell = GTK_CELL_RENDERER ( gtk_builder_get_object ( builder , " AdvancedDevicesCell " ) ) ;
widgets - > AdvancedPartitionsCell = GTK_CELL_RENDERER ( gtk_builder_get_object ( builder , " AdvancedPartitionsCell " ) ) ;
widgets - > AdvancedDeviceTree = yon_gtk_builder_get_widget ( builder , " AdvancedDeviceTree " ) ;
widgets - > AdvancedVirtualDeviceCombo = yon_gtk_builder_get_widget ( builder , " AdvancedVirtualDeviceCombo " ) ;
widgets - > AdvancedPartitionTree = yon_gtk_builder_get_widget ( builder , " AdvancedPartitionTree " ) ;
@ -393,10 +396,26 @@ main_window *yon_main_window_complete(){
widgets - > OSDevicesTree = yon_gtk_builder_get_widget ( builder , " OSDevicesTree " ) ;
widgets - > OSSysSectionTree = yon_gtk_builder_get_widget ( builder , " OSSysSectionTree " ) ;
widgets - > GpartedOSButton = yon_gtk_builder_get_widget ( builder , " GpartedOSButton " ) ;
widgets - > OSFormatSwitch = yon_gtk_builder_get_widget ( builder , " OSFormatSwitch " ) ;
widgets - > OSFormatSizeSpin = yon_gtk_builder_get_widget ( builder , " OSFormatSizeSpin " ) ;
widgets - > OSFormatSizeCombo = yon_gtk_builder_get_widget ( builder , " OSFormatSizeCombo " ) ;
widgets - > OSFormatPartitionEntry = yon_gtk_builder_get_widget ( builder , " OSFormatPartitionEntry " ) ;
widgets - > OSFilesystemTypeCombo = yon_gtk_builder_get_widget ( builder , " OSFilesystemTypeCombo " ) ;
widgets - > OSFormatFSMarkEntry = yon_gtk_builder_get_widget ( builder , " OSFormatFSMarkEntry " ) ;
widgets - > OSFormatEncryptionCombo = yon_gtk_builder_get_widget ( builder , " OSFormatEncryptionCombo " ) ;
widgets - > OSFormatEncryptionEntry = yon_gtk_builder_get_widget ( builder , " OSFormatEncryptionEntry " ) ;
widgets - > UserdataDevicesTree = yon_gtk_builder_get_widget ( builder , " UserdataDevicesTree " ) ;
widgets - > UserdataSysSectionTree = yon_gtk_builder_get_widget ( builder , " UserdataSysSectionTree " ) ;
widgets - > GpartedUserdataButton = yon_gtk_builder_get_widget ( builder , " UserdataGpartedButton " ) ;
widgets - > UserdataFormatSwitch = yon_gtk_builder_get_widget ( builder , " UserdataFormatSwitch " ) ;
widgets - > UserdataFormatSizeSpin = yon_gtk_builder_get_widget ( builder , " UserdataFormatSizeSpin " ) ;
widgets - > UserdataFormatSizeCombo = yon_gtk_builder_get_widget ( builder , " UserdataFormatSizeCombo " ) ;
widgets - > UserdataFormatPartitionEntry = yon_gtk_builder_get_widget ( builder , " UserdataFormatPartitionEntry " ) ;
widgets - > UserdataFilesystemTypeCombo = yon_gtk_builder_get_widget ( builder , " UserdataFilesystemTypeCombo " ) ;
widgets - > UserdataFormatFSMarkEntry = yon_gtk_builder_get_widget ( builder , " UserdataFormatFSMarkEntry " ) ;
widgets - > UserdataFormatEncryptionCombo = yon_gtk_builder_get_widget ( builder , " UserdataFormatEncryptionCombo " ) ;
widgets - > UserdataFormatEncryptionEntry = yon_gtk_builder_get_widget ( builder , " UserdataFormatEncryptionEntry " ) ;
widgets - > LanguagesFilter = GTK_TREE_MODEL ( gtk_builder_get_object ( builder , " LanguagesFilter " ) ) ;
widgets - > LayoutsFilter = GTK_TREE_MODEL ( gtk_builder_get_object ( builder , " LayoutsFilter " ) ) ;
@ -539,7 +558,6 @@ main_window *yon_main_window_complete(){
g_signal_connect ( G_OBJECT ( widgets - > GpartedSameButton ) , " clicked " , G_CALLBACK ( on_gparted_open ) , NULL ) ;
g_signal_connect ( G_OBJECT ( widgets - > GpartedNextInstallationButton ) , " clicked " , G_CALLBACK ( on_gparted_open ) , NULL ) ;
// g_signal_connect(G_OBJECT(widgets->Notebook),"switch-page",G_CALLBACK(on_page_changed),widgets);
// g_signal_connect(G_OBJECT(widgets->MainWindow),"check-resize",G_CALLBACK(on_region_resized),widgets);
g_signal_connect ( G_OBJECT ( widgets - > NextButton ) , " clicked " , G_CALLBACK ( on_page_next_clicked ) , widgets ) ;
g_signal_connect ( G_OBJECT ( widgets - > BackButton ) , " clicked " , G_CALLBACK ( on_page_prev_clicked ) , widgets ) ;
@ -612,15 +630,12 @@ main_window *yon_main_window_complete(){
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 ) ;
{
yon_user_struct * user = yon_user_struct_new ( ) ;
gtk_box_pack_start ( GTK_BOX ( widgets - > UserAddBox ) , user - > MainBox , 0 , 0 , 0 ) ;
gtk_entry_set_text ( GTK_ENTRY ( user - > UsernameEntry ) , ADMINISTRATOR_LABEL ) ;
gtk_entry_set_text ( GTK_ENTRY ( user - > LoginEntry ) , " superadmin " ) ;
}
g_signal_connect ( G_OBJECT ( widgets - > AdvancedAddButton ) , " clicked " , G_CALLBACK ( on_install_advanced_add_new ) , widgets ) ;
g_signal_connect ( G_OBJECT ( widgets - > AdvancedDevicesCell ) , " toggled " , G_CALLBACK ( on_install_advanced_device_chosen ) , widgets ) ;
g_signal_connect ( G_OBJECT ( widgets - > AdvancedPartitionsCell ) , " toggled " , G_CALLBACK ( on_install_advanced_partition_chosen ) , widgets ) ;
{
yon_gtk_entry_set_password_visibility_icon ( GTK_ENTRY ( widgets - > UserRootPasswordEntry ) ) ;
if ( main_config . lock_load_global = = 1 ) {
gtk_widget_set_sensitive ( widgets - > LoadGlobalConfigurationMenuItem , 0 ) ;
@ -637,12 +652,11 @@ main_window *yon_main_window_complete(){
gtk_check_menu_item_set_active ( GTK_CHECK_MENU_ITEM ( widgets - > ConfigurationModeMenuItem ) , 1 ) ;
}
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 ) ) ;
gtk_window_set_title ( GTK_WINDOW ( widgets - > MainWindow ) , TITLE_LABEL ) ;
gtk_window_set_icon_name ( GTK_WINDOW ( widgets - > MainWindow ) , icon_path ) ;
}
{
int size ;
config_str parsed = NULL ;
parsed = yon_file_open ( licence_path , & size ) ;
@ -652,7 +666,9 @@ main_window *yon_main_window_complete(){
free ( licence ) ;
yon_char_parsed_free ( parsed , size ) ;
}
}
{
int size ;
config_str slides = yon_char_parsed_new ( & size , slide_repeat_path ) ;
widgets - > regions_original = gdk_pixbuf_new_from_resource ( regions_path , NULL ) ;
widgets - > keyboard_original = gdk_pixbuf_new_from_resource ( keyboard_path , NULL ) ;
@ -675,142 +691,10 @@ main_window *yon_main_window_complete(){
pix = gdk_pixbuf_scale_simple ( ( GdkPixbuf * ) g_list_nth_data ( widgets - > slides_original , 0 ) , 600 , 400 , GDK_INTERP_BILINEAR ) ;
gtk_image_set_from_pixbuf ( GTK_IMAGE ( widgets - > SlidesImage ) , pix ) ;
g_object_unref ( pix ) ;
int langsize ;
config_str lang = default_langs ( & langsize ) ;
GtkTreeIter iter ;
gtk_list_store_clear ( widgets - > LanguagesList ) ;
parsed = yon_file_open ( languages_path , & size ) ;
for ( int i = 0 ; i < size ; i + + ) {
int cur_size ;
yon_char_remove_last_symbol ( parsed [ i ] , ' \n ' )
config_str cur = yon_char_parse ( parsed [ i ] , & cur_size , " ; " ) ;
if ( cur_size ) {
gtk_list_store_append ( widgets - > LanguagesList , & iter ) ;
gtk_list_store_set ( widgets - > LanguagesList , & iter , 0 , 0 , 1 , _ ( cur [ 1 ] ) , 2 , cur [ 0 ] , - 1 ) ;
}
yon_char_parsed_free ( cur , cur_size ) ;
}
yon_char_parsed_free ( parsed , size ) ;
if ( lang )
yon_char_parsed_free ( lang , langsize ) ;
parsed = yon_dir_get_contents ( zone_path , & size ) ;
for ( int i = 0 ; i < size ; i + + ) {
if ( ! strstr ( parsed [ i ] , " . " ) & & strcmp ( parsed [ i ] , " posix " ) & & strcmp ( parsed [ i ] , " right " ) ) {
char * path = yon_char_append ( zone_path , parsed [ i ] ) ;
if ( yon_file_is_directory ( path ) ) {
gtk_combo_box_text_append ( GTK_COMBO_BOX_TEXT ( widgets - > RegionCombo ) , parsed [ i ] , _ ( parsed [ i ] ) ) ;
}
free ( path ) ;
}
}
gtk_combo_box_set_active ( GTK_COMBO_BOX ( widgets - > RegionCombo ) , 0 ) ;
yon_char_parsed_free ( parsed , size ) ;
parsed = yon_config_load ( yon_debug_output ( " %s \n " , get_layouts_command ) , & size ) ;
GtkTreeIter itar ;
for ( int i = 0 ; i < size ; i + + ) {
yon_char_remove_last_symbol ( parsed [ i ] , ' \n ' ) ;
int layout_size ;
config_str layout = yon_char_parse ( parsed [ i ] , & layout_size , " | " ) ;
if ( layout_size ) {
char * layout_id = yon_char_new ( layout [ 0 ] ) ;
gtk_tree_store_append ( widgets - > LayoutList , & iter , NULL ) ;
gtk_tree_store_set ( widgets - > LayoutList , & iter , 0 , layout [ 0 ] , 1 , _ ( layout [ 1 ] ) , 2 , 1 , - 1 ) ;
yon_char_parsed_free ( layout , layout_size ) ;
char * command = get_layouts_local_command ( layout_id ) ;
config_str layout_local = yon_config_load ( yon_debug_output ( " %s \n " , command ) , & layout_size ) ;
free ( command ) ;
free ( layout_id ) ;
for ( int j = 0 ; j < layout_size ; j + + ) {
yon_char_remove_last_symbol ( layout_local [ j ] , ' \n ' ) ;
int parsed_size ;
config_str layouts_parsed = yon_char_parse ( layout_local [ j ] , & parsed_size , " | " ) ;
if ( parsed_size ) {
gtk_tree_store_append ( widgets - > LayoutList , & itar , & iter ) ;
gtk_tree_store_set ( widgets - > LayoutList , & itar , 0 , layouts_parsed [ 0 ] , 1 , _ ( layouts_parsed [ 1 ] ) , 2 , 1 , 3 , 0 , - 1 ) ;
yon_char_parsed_free ( layouts_parsed , parsed_size ) ;
}
}
if ( layout_size = = - 1 ) {
gtk_tree_store_set ( widgets - > LayoutList , & iter , 2 , 1 , - 1 ) ;
}
yon_char_parsed_free ( layout_local , layout_size ) ;
}
}
yon_char_parsed_free ( parsed , size ) ;
{
parsed = yon_config_load ( yon_debug_output ( " %s \n " , get_devices_command ) , & size ) ;
char * string = yon_char_parsed_to_string ( parsed , size , " " ) ;
struct json_object * root ;
struct json_object * blockdevices ;
root = json_tokener_parse ( string ) ;
free ( string ) ;
json_object_object_get_ex ( root , " blockdevices " , & blockdevices ) ;
for ( long unsigned int i = 0 ; i < json_object_array_length ( blockdevices ) ; i + + ) {
struct json_object * device = json_object_array_get_idx ( blockdevices , i ) ;
struct json_object * path , * size , * model , * vendor , * serial ;
json_object_object_get_ex ( device , " path " , & path ) ;
json_object_object_get_ex ( device , " size " , & size ) ;
json_object_object_get_ex ( device , " model " , & model ) ;
json_object_object_get_ex ( device , " vendor " , & vendor ) ;
json_object_object_get_ex ( device , " serial " , & serial ) ;
gtk_list_store_append ( widgets - > DevicesList , & iter ) ;
gtk_list_store_set ( widgets - > DevicesList , & iter , 0 , json_object_get_string ( path ) , 1 , json_object_get_string ( model ) , 2 , json_object_get_string ( serial ) , 3 , json_object_get_string ( size ) , 4 , json_object_get_string ( vendor ) , - 1 ) ;
}
yon_char_parsed_free ( parsed , size ) ;
}
{
int base_size ;
config_str base = yon_file_ls ( system_base_modules_path , & base_size ) ;
for ( int i = 0 ; i < base_size ; i + + ) {
char * version = yon_packages_get_version ( YON_PACKAGES_SYNC , base [ i ] ) ;
char * description = yon_packages_get_description ( YON_PACKAGES_SYNC , base [ i ] ) ;
yon_char_remove_last_symbol ( base [ i ] , ' \n ' ) ;
gtk_list_store_append ( widgets - > OSSoftwareList , & iter ) ;
gtk_list_store_set ( widgets - > OSSoftwareList , & iter , 0 , 0 , 1 , base [ i ] , 2 , version , 3 , description , - 1 ) ;
}
int modules_size ;
config_str modules = yon_file_ls ( system_modules_path , & modules_size ) ;
for ( int i = 0 ; i < modules_size ; i + + ) {
yon_char_remove_last_symbol ( modules [ i ] , ' \n ' ) ;
gtk_list_store_append ( widgets - > OSSoftwareList , & iter ) ;
char * version = yon_packages_get_version ( YON_PACKAGES_SYNC , base [ i ] ) ;
char * description = yon_packages_get_description ( YON_PACKAGES_SYNC , base [ i ] ) ;
gtk_list_store_set ( widgets - > OSSoftwareList , & iter , 0 , 0 , 1 , modules [ i ] , 2 , version , 3 , description , - 1 ) ;
}
}
parsed = yon_resource_open_file ( additional_software_path , & size ) ;
for ( int i = 1 ; i < size ; i + + ) {
int module_size ;
config_str module_parsed = yon_char_parse ( parsed [ i ] , & module_size , " | " ) ;
if ( module_size ) {
gtk_list_store_append ( widgets - > AdditionalSoftwareList , & iter ) ;
gtk_list_store_set ( widgets - > AdditionalSoftwareList , & iter , 0 , 1 , 1 , module_parsed [ 0 ] , 2 , module_parsed [ 1 ] , 3 , module_parsed [ 2 ] , - 1 ) ; //2,module_parsed[2]
yon_char_parsed_free ( module_parsed , module_size ) ;
}
}
if ( size ) yon_char_parsed_free ( parsed , size ) ;
config_str models = yon_config_load ( yon_debug_output ( " %s \n " , get_models_command ) , & size ) ;
for ( int i = 0 ; i < size ; i + = 2 ) {
models [ i ] = yon_char_divide_search ( models [ i ] , " \n " , - 1 ) ;
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 ] ) ) ;
}
if ( size ) yon_char_parsed_free ( models , size ) ;
gtk_builder_connect_signals ( builder , NULL ) ;
// yon_load_proceed(YON_CONFIG_DEFAULT);
// yon_interface_update(widgets);
yon_kernel_setup ( widgets ) ;
yon_kernel_addon_setup ( widgets ) ;
yon_startup_services_setup ( widgets ) ;
}
return widgets ;
}