|
|
|
|
@ -155,6 +155,9 @@ void config_init(){
|
|
|
|
|
main_config.lock_save_local=0;
|
|
|
|
|
main_config.debug_mode=0;
|
|
|
|
|
main_config.slider_thread=0;
|
|
|
|
|
main_config.config_save_thread=NULL;
|
|
|
|
|
main_config.install_thread=NULL;
|
|
|
|
|
main_config.progress_thread=NULL;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
int yon_image_resize_from_container(GtkImage *target, GdkPixbuf *pixbuf_unscaled);
|
|
|
|
|
@ -240,6 +243,42 @@ gboolean on_image_slide(void *data){
|
|
|
|
|
return 1;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void *on_config_save(char *command);
|
|
|
|
|
void *on_config_save(char *command){
|
|
|
|
|
if (system(command)){};
|
|
|
|
|
main_config.config_save_thread=NULL;
|
|
|
|
|
return NULL;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void *yon_installation_start();
|
|
|
|
|
void *yon_installation_start(){
|
|
|
|
|
if (system(start_fast_install_command)){};
|
|
|
|
|
main_config.install_thread=NULL;
|
|
|
|
|
g_thread_exit(NULL);
|
|
|
|
|
return NULL;
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void *yon_installation_progress_update(void *data);
|
|
|
|
|
void *yon_installation_progress_update(void *data){
|
|
|
|
|
main_window *widgets = (main_window*)data;
|
|
|
|
|
FILE *file = fopen(progress_path,"r");
|
|
|
|
|
char *current = g_malloc0(4096);
|
|
|
|
|
if (file){
|
|
|
|
|
while (main_config.install_thread){
|
|
|
|
|
current = fgets(current,4096,file);
|
|
|
|
|
if (current[0]!='#'){
|
|
|
|
|
int size;
|
|
|
|
|
config_str parsed = yon_char_parse(current,&size,"|");
|
|
|
|
|
gtk_label_set_text(GTK_LABEL(widgets->InstallationLabel),parsed[1]);
|
|
|
|
|
gtk_progress_bar_set_fraction(GTK_PROGRESS_BAR(widgets->InstallationProgress),atof(parsed[0]));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return NULL;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void on_page_changed(GtkWidget *,GtkWidget *,int page, main_window *widgets);
|
|
|
|
|
void on_page_changed(GtkWidget *,GtkWidget *,int page, main_window *widgets){
|
|
|
|
|
yon_switch_page_render(widgets,page>3?page-2:page);
|
|
|
|
|
@ -247,6 +286,7 @@ void on_page_changed(GtkWidget *,GtkWidget *,int page, main_window *widgets){
|
|
|
|
|
case YON_PAGE_WELCOME: {
|
|
|
|
|
gtk_widget_hide(widgets->CancelInstallButton);
|
|
|
|
|
gtk_widget_set_sensitive(widgets->BackButton,0);
|
|
|
|
|
gtk_widget_set_sensitive(widgets->NextButton,1);
|
|
|
|
|
} break;
|
|
|
|
|
case YON_PAGE_LICENCE:{
|
|
|
|
|
gtk_widget_show(widgets->CancelInstallButton);
|
|
|
|
|
@ -260,10 +300,28 @@ void on_page_changed(GtkWidget *,GtkWidget *,int page, main_window *widgets){
|
|
|
|
|
|
|
|
|
|
yon_image_resize_from_container(GTK_IMAGE(widgets->KeyboardImage), widgets->keyboard_original);
|
|
|
|
|
} break;
|
|
|
|
|
case YON_PAGE_INSTALLATION:{
|
|
|
|
|
gtk_widget_set_sensitive(widgets->BackButton,0);
|
|
|
|
|
g_thread_join(main_config.config_save_thread);
|
|
|
|
|
if (!main_config.install_thread)
|
|
|
|
|
main_config.install_thread = g_thread_new("InstallThread",(GThreadFunc)on_config_save,NULL);
|
|
|
|
|
if (!main_config.install_thread)
|
|
|
|
|
main_config.progress_thread = g_thread_new("ProgressThread",(GThreadFunc)yon_installation_progress_update,widgets);
|
|
|
|
|
|
|
|
|
|
if (!main_config.slider_thread)
|
|
|
|
|
main_config.slider_thread = g_timeout_add(5000,(GSourceFunc)on_image_slide,widgets);
|
|
|
|
|
gtk_widget_show(gtk_widget_get_parent(widgets->InstallationProgress));
|
|
|
|
|
} break;
|
|
|
|
|
case YON_PAGE_OS_COMPONENTS:
|
|
|
|
|
case YON_PAGE_SOFTWARE:
|
|
|
|
|
yon_switch_page_render(widgets,3);
|
|
|
|
|
break;
|
|
|
|
|
case YON_PAGE_USERS:
|
|
|
|
|
gtk_widget_set_sensitive(widgets->NextButton,1);
|
|
|
|
|
break;
|
|
|
|
|
case YON_PAGE_COMPLETION:
|
|
|
|
|
gtk_widget_set_sensitive(widgets->NextButton,0);
|
|
|
|
|
break;
|
|
|
|
|
case YON_PAGE_INSTALL_COMMON:
|
|
|
|
|
case YON_PAGE_INSTALL_SEPARATE:
|
|
|
|
|
case YON_PAGE_INSTALL_SAME_PARTITION: {
|
|
|
|
|
@ -340,12 +398,6 @@ void on_page_navigation_clicked(GtkWidget *self, main_window *widgets){
|
|
|
|
|
gtk_widget_set_sensitive(widgets->BackButton,1);
|
|
|
|
|
gtk_notebook_set_current_page(GTK_NOTEBOOK(widgets->Notebook),page+1);
|
|
|
|
|
}break;
|
|
|
|
|
case YON_PAGE_SOFTWARE:
|
|
|
|
|
gtk_widget_set_sensitive(widgets->BackButton,0);
|
|
|
|
|
gtk_notebook_set_current_page(GTK_NOTEBOOK(widgets->Notebook),page+1);
|
|
|
|
|
yon_config_save_simple(YON_CONFIG_BOTH,"");
|
|
|
|
|
yon_launch_app_with_arguments(start_fast_install_command,"");
|
|
|
|
|
break;
|
|
|
|
|
case YON_PAGE_INSTALL_COMMON: {
|
|
|
|
|
GtkTreeModel *model;
|
|
|
|
|
GtkTreeIter iter;
|
|
|
|
|
@ -359,9 +411,10 @@ void on_page_navigation_clicked(GtkWidget *self, main_window *widgets){
|
|
|
|
|
yon_config_register(AUTOINSTALL_TYPE_INSTALL,AUTOINSTALL_TYPE_INSTALL_command,"fast");
|
|
|
|
|
yon_config_register(AUTOINSTALL_TYPE_INSTALL,AUTOINSTALL_DEVICE_command,device);
|
|
|
|
|
|
|
|
|
|
gtk_notebook_set_current_page(GTK_NOTEBOOK(widgets->Notebook),3);
|
|
|
|
|
if (!main_config.slider_thread)
|
|
|
|
|
main_config.slider_thread = g_timeout_add(5000,(GSourceFunc)on_image_slide,widgets);
|
|
|
|
|
int size=0;
|
|
|
|
|
config_str parameters = yon_config_get_all(&size);
|
|
|
|
|
main_config.config_save_thread = g_thread_new("savethread",(GThreadFunc)on_config_save,save_config_command(yon_char_parsed_to_string(parameters,size," ")));
|
|
|
|
|
gtk_notebook_set_current_page(GTK_NOTEBOOK(widgets->Notebook),YON_PAGE_INSTALLATION);
|
|
|
|
|
}break;
|
|
|
|
|
case YON_PAGE_INSTALL_SEPARATE:
|
|
|
|
|
{
|
|
|
|
|
@ -385,9 +438,10 @@ void on_page_navigation_clicked(GtkWidget *self, main_window *widgets){
|
|
|
|
|
yon_config_register(AUTOINSTALL_TYPE_INSTALL,AUTOINSTALL_DEVICE_command,device);
|
|
|
|
|
yon_config_register(AUTOINSTALL_TYPE_INSTALL,AUTOSTART_PARTS_command,part);
|
|
|
|
|
|
|
|
|
|
gtk_notebook_set_current_page(GTK_NOTEBOOK(widgets->Notebook),3);
|
|
|
|
|
if (!main_config.slider_thread)
|
|
|
|
|
main_config.slider_thread = g_timeout_add(5000,(GSourceFunc)on_image_slide,widgets);
|
|
|
|
|
int size=0;
|
|
|
|
|
config_str parameters = yon_config_get_all(&size);
|
|
|
|
|
main_config.config_save_thread = g_thread_new("savethread",(GThreadFunc)on_config_save,save_config_command(yon_char_parsed_to_string(parameters,size," ")));
|
|
|
|
|
gtk_notebook_set_current_page(GTK_NOTEBOOK(widgets->Notebook),YON_PAGE_INSTALLATION);
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
case YON_PAGE_INSTALL_SAME_PARTITION:
|
|
|
|
|
@ -412,9 +466,10 @@ void on_page_navigation_clicked(GtkWidget *self, main_window *widgets){
|
|
|
|
|
yon_config_register(AUTOINSTALL_TYPE_INSTALL,AUTOINSTALL_DEVICE_command,device);
|
|
|
|
|
yon_config_register(AUTOINSTALL_TYPE_INSTALL,AUTOSTART_PARTS_command,part);
|
|
|
|
|
|
|
|
|
|
gtk_notebook_set_current_page(GTK_NOTEBOOK(widgets->Notebook),3);
|
|
|
|
|
if (!main_config.slider_thread)
|
|
|
|
|
main_config.slider_thread = g_timeout_add(5000,(GSourceFunc)on_image_slide,widgets);
|
|
|
|
|
int size=0;
|
|
|
|
|
config_str parameters = yon_config_get_all(&size);
|
|
|
|
|
main_config.config_save_thread = g_thread_new("savethread",(GThreadFunc)on_config_save,save_config_command(yon_char_parsed_to_string(parameters,size," ")));
|
|
|
|
|
gtk_notebook_set_current_page(GTK_NOTEBOOK(widgets->Notebook),YON_PAGE_INSTALLATION);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
} break;
|
|
|
|
|
|