From b778f34d78d99efa529cfd8c7c8b3082ecd64088 Mon Sep 17 00:00:00 2001 From: Ivan Yarcev Date: Thu, 26 Sep 2024 16:09:18 +0600 Subject: [PATCH] Label fixes, sensetiveness edit for keyboard layouts widgets, removal of debug messages --- source/ubinstall-gtk.c | 139 ++++++++++++++++------------------------- source/ubinstall-gtk.h | 6 +- ubinstall-gtk.glade | 12 ++-- 3 files changed, 62 insertions(+), 95 deletions(-) diff --git a/source/ubinstall-gtk.c b/source/ubinstall-gtk.c index 640df44..c65660a 100644 --- a/source/ubinstall-gtk.c +++ b/source/ubinstall-gtk.c @@ -4,6 +4,29 @@ config main_config; //functions +void on_layout_toggle_button_switch(GtkWidget *self, main_window *widgets){ + if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(self))){ + gtk_widget_set_sensitive(widgets->DefaultLayoutRadio,1); + gtk_widget_set_sensitive(widgets->ManualLayoutRadio,1); + if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->ManualLayoutRadio))){ + gtk_widget_set_sensitive(widgets->LayoutTree,1); + gtk_widget_set_sensitive(widgets->AddButton,1); + gtk_widget_set_sensitive(widgets->RemoveButton,1); + } else { + gtk_widget_set_sensitive(widgets->LayoutTree,0); + gtk_widget_set_sensitive(widgets->AddButton,0); + gtk_widget_set_sensitive(widgets->RemoveButton,0); + } + } else { + gtk_widget_set_sensitive(widgets->DefaultLayoutRadio,0); + gtk_widget_set_sensitive(widgets->ManualLayoutRadio,0); + gtk_widget_set_sensitive(widgets->LayoutTree,0); + gtk_widget_set_sensitive(widgets->AddButton,0); + gtk_widget_set_sensitive(widgets->RemoveButton,0); + + } +} + void on_toggle_button_switch_on(GtkWidget *, GtkToggleButton *toggle){ gtk_toggle_button_set_active(toggle,1); } @@ -191,17 +214,14 @@ void yon_interface_update(main_window *widgets){ 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; @@ -210,6 +230,7 @@ void yon_interface_update(main_window *widgets){ case YON_PAGE_INSTALL_COMMON:{ device_tree = widgets->CommonInstallationDevicesTree; } break; + case YON_PAGE_INSTALL_SEPARATE:{ device_tree = widgets->InstallationNearSysDevicesTree; part_tree = widgets->InstallationNearSysSectionTree; @@ -229,6 +250,7 @@ void yon_interface_update(main_window *widgets){ gtk_entry_set_text(GTK_ENTRY(widgets->NextInstallationSectionNameEntry),""); } break; + case YON_PAGE_INSTALL_SAME_PARTITION:{ device_tree = widgets->SamePlaceDeviceTree; part_tree = widgets->SamePlacePartTree; @@ -245,9 +267,11 @@ void yon_interface_update(main_window *widgets){ 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; @@ -269,21 +293,19 @@ void yon_interface_update(main_window *widgets){ } } } 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)){ @@ -305,8 +327,6 @@ void yon_interface_update(main_window *widgets){ } } } - - char *system_locale = config(locale_parameter); if (!yon_char_is_empty(system_locale)){ char *chosen_langs = ""; @@ -328,7 +348,6 @@ void yon_interface_update(main_window *widgets){ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widgets->LanguagesSensitiveCheck),0); gtk_entry_set_text(GTK_ENTRY(widgets->AvailableLanguagesEntry),""); } - // gtk_tree_model_filter_refilter(GTK_TREE_MODEL_FILTER(widgets->LanguagesFilter)); } else { gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widgets->LanguagesSensitiveCheck),0); gtk_entry_set_text(GTK_ENTRY(widgets->AvailableLanguagesEntry),""); @@ -346,14 +365,10 @@ void yon_interface_update(main_window *widgets){ if (cur) free(cur); } if (langsize) yon_char_parsed_free(lang,langsize); - // 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); else {gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widgets->RegionSensitiveCheck),0);} if (!yon_char_is_empty(region)){ gtk_combo_box_set_active_id(GTK_COMBO_BOX(widgets->RegionCombo),region); @@ -361,13 +376,11 @@ void yon_interface_update(main_window *widgets){ gtk_combo_box_set_active_id(GTK_COMBO_BOX(widgets->RegionCombo),"Europe"); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widgets->RegionSensitiveCheck),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_id(GTK_COMBO_BOX(widgets->ZoneCombo),"Moscow"); } - char *language = config(lang_parameter); if (!yon_char_is_empty(language)){ gtk_combo_box_set_active_id(GTK_COMBO_BOX(widgets->LanguageCombo),language); @@ -375,12 +388,9 @@ void yon_interface_update(main_window *widgets){ gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->LanguageCombo),0); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widgets->MainLanguageSensitiveCheck),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 { @@ -388,25 +398,23 @@ void yon_interface_update(main_window *widgets){ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widgets->KeyboardModelSensitiveCheck),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); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widgets->OptionsSensitiveCheck),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); + 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){ char *id; @@ -419,28 +427,24 @@ void yon_interface_update(main_window *widgets){ } gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widgets->LayoutSensitiveCheck),0); } - 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),""); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widgets->LoginSensitiveCheck),0); } - 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),""); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widgets->UsernameSensitiveCheck),0); } - 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); @@ -448,9 +452,7 @@ void yon_interface_update(main_window *widgets){ gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->PasswordCombo),0); gtk_entry_set_text(GTK_ENTRY(widgets->PasswordEntry),""); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widgets->PasswordSensitiveCheck),0); - } - 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); @@ -459,7 +461,6 @@ void yon_interface_update(main_window *widgets){ gtk_entry_set_text(GTK_ENTRY(widgets->AdminPasswordEntry),""); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widgets->RootPasswordSensitiveCheck),0); } - if (!yon_char_is_empty(autologin)){ if (!strcmp(autologin,"yes")) gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widgets->AutologinCheck),1); @@ -469,7 +470,6 @@ void yon_interface_update(main_window *widgets){ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widgets->AutologinCheck),main_config.autologin_default); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widgets->AutologinSensitiveCheck),0); } - if (!yon_char_is_empty(hostname)){ if (strcmp(hostname,"auto")){ gtk_entry_set_text(GTK_ENTRY(widgets->HotnameEntry),hostname); @@ -486,46 +486,26 @@ void yon_interface_update(main_window *widgets){ g_signal_handlers_unblock_by_func(G_OBJECT(widgets->AutoHostnameCheck),on_autohostname_check,widgets); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widgets->HostnameSensitiveCheck),0); } - - // if (fs_type) free(fs_type); - // if (device_label) free(device_label); - // if (format) free(format); - // if (part_size) free(part_size); - // if (user_name) free(user_name); - // if (user_gecos) free(user_gecos); - // if (user_password) free(user_password); - // if (root_password) free(root_password); - // if (autologin) free(autologin); - // if (hostname) free(hostname); - // if (kbmodel) free(kbmodel); - // if (optinos) free(optinos); - // if (layout) free(layout); - // if (language) free(language); - // if (zone) free(zone); - // if (system_locale) free(system_locale); - // if (region) free(region); - // if (device) free(device); - // if (part) free(part); } 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; + 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; + 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); + yon_interface_update(widgets); main_config.load_mode=3; } @@ -552,7 +532,6 @@ void on_config_global_save(GtkWidget *,main_window *widgets){ 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(); @@ -563,7 +542,6 @@ void on_config_custom_save(GtkWidget *, main_window *widgets){ 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){ @@ -973,9 +951,8 @@ void *on_config_save(void *data){ yon_char_parsed_free(parameters,size); yon_debug_output("%s\n","Entered installation"); if (system(yon_debug_output("%s\n",command))){ - yon_debug_output("%s\n","Entered installation failed"); - g_thread_new("error func",(GThreadFunc)on_install_error,widgets); + gdk_threads_add_idle((GSourceFunc)on_install_error,widgets); free(command); g_mutex_lock(&main_config.install_mutex); main_config.install_thread=0; @@ -983,28 +960,18 @@ void *on_config_save(void *data){ g_mutex_lock(&main_config.install_mutex); main_config.install_complete=1; g_mutex_unlock(&main_config.install_mutex); - yon_debug_output("%s\n","Exit installation"); - // // pthread_exit(NULL); return 0; }; - yon_debug_output("%s\n","Entered installation success"); free(command); g_mutex_lock(&main_config.install_mutex); main_config.install_thread=0; g_mutex_unlock(&main_config.install_mutex); g_mutex_lock(&main_config.install_mutex); main_config.install_complete=1; - yon_debug_output("Install set to: %s\n",yon_char_from_int(main_config.install_complete)); g_mutex_unlock(&main_config.install_mutex); - yon_debug_output("Save state: %s\n",yon_char_from_int(main_config.save_done)); if (!main_config.save_done){ - yon_debug_output("%s\n","Entered installation page change"); on_setup_system_configuration(widgets); - // g_thread_new("success func",(GThreadFunc)on_install_success,widgets); } - - yon_debug_output("%s\n","Exit installation"); - // pthread_exit(NULL); return 0; } @@ -1207,11 +1174,10 @@ gboolean on_install_success(main_window *widgets){ return 0; } -void *on_install_error(main_window *widgets){ +gboolean on_install_error(main_window *widgets){ gtk_label_set_text(GTK_LABEL(widgets->InstallationLabel),""); gtk_notebook_set_current_page(GTK_NOTEBOOK(widgets->Notebook),YON_PAGE_INSTALL_ERROR); - - return NULL; + return 0; } void *on_setup_system_configuration(void * data){ @@ -1238,9 +1204,9 @@ void *on_setup_system_configuration(void * data){ char *parameter_string = yon_char_parsed_to_string(all_parameters,size," "); char *command = set_user_config_command(parameter_string); if (system(yon_debug_output("%s\n",command))){}; - // yon_char_parsed_free(all_parameters,size); - // free(command); - // if (parameter_string) free(parameter_string); + yon_char_parsed_free(all_parameters,size); + free(command); + if (parameter_string) free(parameter_string); } g_idle_add((GSourceFunc)on_install_success,widgets); return NULL; @@ -2497,6 +2463,7 @@ main_window *yon_main_window_complete(){ g_signal_connect(G_OBJECT(widgets->CancelInstallButton),"clicked",G_CALLBACK(on_page_navigation_clicked),widgets); g_signal_connect(G_OBJECT(widgets->AvailableLanguagesButton),"clicked",G_CALLBACK(on_language_clicked),widgets); g_signal_connect(G_OBJECT(widgets->RegionCombo),"changed",G_CALLBACK(on_region_changed),widgets); + g_signal_connect(G_OBJECT(widgets->LayoutSensitiveCheck),"toggled",G_CALLBACK(on_layout_toggle_button_switch),widgets); g_signal_connect(G_OBJECT(widgets->AddButton),"clicked",G_CALLBACK(on_keyboard_clicked),widgets); g_signal_connect(G_OBJECT(widgets->RemoveButton),"clicked",G_CALLBACK(on_keyboard_removed),widgets); diff --git a/source/ubinstall-gtk.h b/source/ubinstall-gtk.h index 519c4cd..67706dd 100755 --- a/source/ubinstall-gtk.h +++ b/source/ubinstall-gtk.h @@ -472,8 +472,10 @@ void on_hostname_entry_changed (GtkWidget *, main_window *widgets); gboolean on_install_success(main_window *widgets); -void *on_install_error(main_window *widgets); +gboolean on_install_error(main_window *widgets); confirmation_window *yon_confirmation_window_new(); -void on_reboot_accepted(GtkWidget *,dictionary *dict); \ No newline at end of file +void on_reboot_accepted(GtkWidget *,dictionary *dict); + +void on_layout_toggle_button_switch(GtkWidget *self, main_window *widgets); \ No newline at end of file diff --git a/ubinstall-gtk.glade b/ubinstall-gtk.glade index 52126c7..d0ed9eb 100644 --- a/ubinstall-gtk.glade +++ b/ubinstall-gtk.glade @@ -2059,11 +2059,6 @@ and help you install UBLinux on your computer True False True - - - - - @@ -2112,6 +2107,9 @@ and help you install UBLinux on your computer True DefaultLayoutRadio + + + False @@ -3582,7 +3580,7 @@ installed. - Mark + Label @@ -4183,7 +4181,7 @@ installed. - Mark + Label