|
|
|
|
@ -72,17 +72,16 @@ gboolean on_terminal_check_progress(main_window *widgets){
|
|
|
|
|
if (last_match) {
|
|
|
|
|
yon_char_remove_last_symbol(last_match,'%');
|
|
|
|
|
percentage = g_ascii_strtod(last_match,NULL);
|
|
|
|
|
yon_debug_output("%s\n", text);
|
|
|
|
|
yon_debug_output("%s\n", last_match);
|
|
|
|
|
gtk_progress_bar_set_fraction(GTK_PROGRESS_BAR(widgets->TerminalInfoLabel), percentage / 100);
|
|
|
|
|
g_free(last_match);
|
|
|
|
|
} else {
|
|
|
|
|
gtk_progress_bar_pulse(GTK_PROGRESS_BAR(widgets->TerminalInfoLabel));
|
|
|
|
|
}
|
|
|
|
|
if (text) g_free(text);
|
|
|
|
|
if (match) g_match_info_unref(match);
|
|
|
|
|
|
|
|
|
|
g_mutex_lock(&main_config.progress_mutex);
|
|
|
|
|
if (percentage>99||!main_config.progress_active){
|
|
|
|
|
gtk_progress_bar_set_fraction(GTK_PROGRESS_BAR(widgets->TerminalInfoLabel),0);
|
|
|
|
|
g_mutex_unlock(&main_config.progress_mutex);
|
|
|
|
|
return G_SOURCE_REMOVE;
|
|
|
|
|
}
|
|
|
|
|
@ -129,7 +128,7 @@ void yon_terminal_start(main_window *widgets, char *usr_command){
|
|
|
|
|
g_signal_connect(G_OBJECT(widgets->terminal), "destroy", G_CALLBACK(on_terminal_destroy), widgets);
|
|
|
|
|
gtk_revealer_set_reveal_child(GTK_REVEALER(widgets->TerminalRevealer),1);
|
|
|
|
|
vte_terminal_reset(VTE_TERMINAL(widgets->terminal),0,1);
|
|
|
|
|
yon_terminal_integrated_start(widgets->terminal,usr_command);
|
|
|
|
|
yon_terminal_integrated_start_shell(widgets->terminal,usr_command,NULL,NULL);
|
|
|
|
|
vte_terminal_set_scrollback_lines(VTE_TERMINAL(widgets->terminal), 100);
|
|
|
|
|
vte_terminal_set_scroll_on_output(VTE_TERMINAL(widgets->terminal), TRUE);
|
|
|
|
|
vte_terminal_set_scroll_on_keystroke(VTE_TERMINAL(widgets->terminal), TRUE);
|
|
|
|
|
@ -139,6 +138,7 @@ void yon_terminal_start(main_window *widgets, char *usr_command){
|
|
|
|
|
g_mutex_lock(&main_config.progress_mutex);
|
|
|
|
|
main_config.progress_active=1;
|
|
|
|
|
g_mutex_unlock(&main_config.progress_mutex);
|
|
|
|
|
gtk_progress_bar_set_pulse_step(GTK_PROGRESS_BAR(widgets->TerminalInfoLabel),0.00001);
|
|
|
|
|
g_idle_add((GSourceFunc)on_terminal_check_progress,widgets);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@ -1066,12 +1066,11 @@ gboolean yon_proprietary_connect(main_window *widgets){
|
|
|
|
|
void *yon_proprietary_local_get(main_window *widgets){
|
|
|
|
|
g_idle_add((GSourceFunc)yon_proprietary_clear,widgets);
|
|
|
|
|
int kernels_size;
|
|
|
|
|
config_str kernels_installed=yon_config_load(yon_debug_output("%s\n",yon_get_kernels_installed),&kernels_size);
|
|
|
|
|
config_str kernels_installed=yon_config_load(yon_get_kernels_installed,&kernels_size);
|
|
|
|
|
if (!kernels_size){
|
|
|
|
|
yon_ubl_status_box_render_thread(KERNELS_SUPPORTED_UNFOUND_LABEL,BACKGROUND_IMAGE_FAIL_TYPE);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
yon_debug_output("%s\n","Kernel add");
|
|
|
|
|
for (int i=0;i<kernels_size;i++){
|
|
|
|
|
yon_char_remove_last_symbol(kernels_installed[i],'\n');
|
|
|
|
|
struct proprietary_kernel_append_struct *cur = malloc(sizeof(struct proprietary_kernel_append_struct));
|
|
|
|
|
@ -1094,11 +1093,21 @@ void *yon_proprietary_local_get(main_window *widgets){
|
|
|
|
|
for (int i=0;i<packages_size;i++){
|
|
|
|
|
yon_char_remove_last_symbol(packages[i],'\n');
|
|
|
|
|
g_hash_table_add(table,packages[i]);
|
|
|
|
|
printf("%s\n",packages[i]);
|
|
|
|
|
}
|
|
|
|
|
free(packages);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
int installed_size;
|
|
|
|
|
config_str installed_packages = yon_config_load(yon_get_add_installed_packages,&installed_size);
|
|
|
|
|
GHashTable *installed = g_hash_table_new_full(g_str_hash,g_str_equal,free,NULL);
|
|
|
|
|
if (installed_packages){
|
|
|
|
|
for (int i=0;i<installed_size;i++){
|
|
|
|
|
yon_char_remove_last_symbol(installed_packages[i],'\n');
|
|
|
|
|
g_hash_table_add(installed,installed_packages[i]);
|
|
|
|
|
}
|
|
|
|
|
free(installed_packages);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
g_idle_add((GSourceFunc)yon_proprietary_disconnect,widgets);
|
|
|
|
|
for (int dr_desc=1;dr_desc<size;dr_desc++){
|
|
|
|
|
int current_size;
|
|
|
|
|
@ -1109,8 +1118,8 @@ void *yon_proprietary_local_get(main_window *widgets){
|
|
|
|
|
g_hash_table_contains(table,current[1]))||
|
|
|
|
|
(!yon_char_is_empty(current[2])&&
|
|
|
|
|
g_hash_table_contains(table,current[2]))){
|
|
|
|
|
int module_status = !yon_char_is_empty(current[1])?yon_char_parsed_check_exist(kernels_installed,kernels_size,current[1])>-1:0;
|
|
|
|
|
int package_status = !yon_char_is_empty(current[2])?yon_char_parsed_check_exist(kernels_installed,kernels_size,current[2])>-1:0;
|
|
|
|
|
int module_status = !yon_char_is_empty(current[1])?g_hash_table_contains(installed,current[1]):0;
|
|
|
|
|
int package_status = !yon_char_is_empty(current[2])?g_hash_table_contains(installed,current[2]):0;
|
|
|
|
|
struct proprietary_struct *cur = malloc(sizeof(struct proprietary_struct));
|
|
|
|
|
cur->drivers=current;
|
|
|
|
|
cur->drivers_size=current_size;
|
|
|
|
|
@ -1126,6 +1135,7 @@ void *yon_proprietary_local_get(main_window *widgets){
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
g_hash_table_unref(table);
|
|
|
|
|
g_hash_table_unref(installed);
|
|
|
|
|
if (!size){
|
|
|
|
|
g_idle_add((GSourceFunc)yon_proprietary_connect,widgets);
|
|
|
|
|
}
|
|
|
|
|
|