Merge pull request 'Test fix for error log window freeze' (#59) from YanTheKaller/ubinstall-gtk:master into master

Reviewed-on: #59
master v1.15
Dmitry Razumov 1 year ago
commit 72a700c069

@ -444,7 +444,7 @@ void yon_interface_update(main_window *widgets){
} }
if (!yon_char_is_empty(user_gecos)){ if (!yon_char_is_empty(user_gecos)){
gtk_entry_set_text(GTK_ENTRY(widgets->UserNameEntry),user_gecos); gtk_entry_set_text(GTK_ENTRY(widgets->UserNameEntry),_(user_gecos));
} else { } else {
gtk_entry_set_text(GTK_ENTRY(widgets->UserNameEntry),""); gtk_entry_set_text(GTK_ENTRY(widgets->UserNameEntry),"");
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widgets->UsernameSensitiveCheck),0); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widgets->UsernameSensitiveCheck),0);
@ -747,10 +747,26 @@ void on_language_window_accept(GtkWidget *,dictionary *dict){
if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(window->DefaultCheck))){ if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(window->DefaultCheck))){
gtk_entry_set_text(GTK_ENTRY(widgets->AvailableLanguagesEntry),""); gtk_entry_set_text(GTK_ENTRY(widgets->AvailableLanguagesEntry),"");
GtkTreeIter iter; GtkTreeIter iter;
int size;
config_str lang_parsed = yon_char_parsed_new(&size,"en_US.UTF-8","ru_RU.UTF-8",NULL);
char *final = "";
for_iter(widgets->LanguagesList,&iter){ for_iter(widgets->LanguagesList,&iter){
gtk_list_store_set(widgets->LanguagesList,&iter,0,0,-1); char *code, *labl;
gtk_tree_model_get(GTK_TREE_MODEL(widgets->LanguagesList),&iter,1,&labl,2,&code,-1);
if (yon_char_parsed_check_exist(lang_parsed,size,code)!=-1){
gtk_list_store_set(widgets->LanguagesList,&iter,0,1,-1);
char *tmp = yon_char_unite(final,!yon_char_is_empty(final)?";":"",labl,NULL);
if (!yon_char_is_empty(final)) free(final);
final = tmp;
} else
gtk_list_store_set(widgets->LanguagesList,&iter,0,0,-1);
}
if (!yon_char_is_empty(final)){
gtk_entry_set_text(GTK_ENTRY(widgets->AvailableLanguagesEntry),final);
} }
gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->LanguagesCombo),-1); gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->LanguagesCombo),-1);
gtk_tree_model_filter_refilter(GTK_TREE_MODEL_FILTER(widgets->LanguagesFilter));
} else { } else {
yon_gtk_list_store_copy_full(widgets->LanguagesList,window->liststore1); yon_gtk_list_store_copy_full(widgets->LanguagesList,window->liststore1);
gtk_tree_model_filter_refilter(GTK_TREE_MODEL_FILTER(widgets->LanguagesFilter)); gtk_tree_model_filter_refilter(GTK_TREE_MODEL_FILTER(widgets->LanguagesFilter));
@ -951,6 +967,12 @@ void *on_config_save(void *data){
yon_char_parsed_free(parameters,size); yon_char_parsed_free(parameters,size);
if (system(yon_debug_output("%s\n",command))){ if (system(yon_debug_output("%s\n",command))){
gtk_notebook_set_current_page(GTK_NOTEBOOK(widgets->Notebook),YON_PAGE_INSTALL_ERROR); gtk_notebook_set_current_page(GTK_NOTEBOOK(widgets->Notebook),YON_PAGE_INSTALL_ERROR);
free(command);
main_config.config_save_thread=NULL;
main_config.install_thread=0;
main_config.install_complete=1;
pthread_exit(NULL);
return 0;
}; };
free(command); free(command);
main_config.install_thread=0; main_config.install_thread=0;
@ -980,7 +1002,6 @@ gboolean yon_installation_progress_update(void *data) {
if (!yon_char_is_empty(text[size-1]) && text[size-1][0] == '(') { if (!yon_char_is_empty(text[size-1]) && text[size-1][0] == '(') {
char *current_copy = yon_char_new(text[size-1]); char *current_copy = yon_char_new(text[size-1]);
char *percentage = yon_char_divide_search(current_copy, ")", -1); char *percentage = yon_char_divide_search(current_copy, ")", -1);
yon_char_parsed_free(text, size);
if (!strstr(percentage, "#pb")) { if (!strstr(percentage, "#pb")) {
double fraction = atof(percentage+1); double fraction = atof(percentage+1);
@ -1000,6 +1021,7 @@ gboolean yon_installation_progress_update(void *data) {
yon_char_parsed_free(parsed, size); yon_char_parsed_free(parsed, size);
} }
yon_char_parsed_free(text, size);
free(current_copy); free(current_copy);
free(percentage); free(percentage);
} }
@ -1247,24 +1269,30 @@ log_window *yon_log_window_new(){
gboolean yon_read_log(void *data); gboolean yon_read_log(void *data);
gboolean yon_read_log(void *data){ gboolean yon_read_log(void *data){
log_window *window = (log_window*)data; log_window *window = (log_window*)data;
if (window->Window){ if (window->Window){
int size; int size;
while (!main_config.install_complete&&main_config.log_progress_buzy){}; while (!main_config.install_complete&&main_config.log_progress_buzy){};
main_config.log_progress_buzy=1; main_config.log_progress_buzy=1;
config_str parsed = yon_file_open(window->command,&size); config_str parsed = yon_file_open(window->command,&size);
main_config.log_progress_buzy=0; main_config.log_progress_buzy=0;
if (size){ if (size){
char *final = yon_char_parsed_to_string(parsed,size,""); char *final = yon_char_parsed_to_string(parsed,size,"");
gtk_label_set_text(GTK_LABEL(window->LogLabel),final); gtk_label_set_text(GTK_LABEL(window->LogLabel),final);
if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(window->ScrollToEndCheck))){ if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(window->ScrollToEndCheck))){
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)))); 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))));
}
free(final);
yon_char_parsed_free(parsed,size);
}
yon_debug_output("%s\n","Log read");
if (!main_config.install_complete){
return 1;
} else {
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(window->ScrollToEndCheck),0);
gtk_widget_set_sensitive(window->ScrollToEndCheck,0);
}
} }
free(final);
yon_char_parsed_free(parsed,size);
}
return 1;
}
return 0; return 0;
} }

Loading…
Cancel
Save