|
|
|
|
@ -125,6 +125,41 @@ void on_config_custom_load(GtkWidget *,main_window *widgets){
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void on_terminal_done(GtkWidget *, int state, GtkWidget *status_box){
|
|
|
|
|
if (state) yon_ubl_status_box_spawn_infinite(GTK_CONTAINER(status_box),"terminal_done",BUILD_SUCCESS_STATUS_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE);
|
|
|
|
|
else yon_ubl_status_box_spawn_infinite(GTK_CONTAINER(status_box),"terminal_done",BUILD_FAILED_STATUS_LABEL,BACKGROUND_IMAGE_FAIL_TYPE);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void yon_terminal_window_start(GtkWindow *parent_window, char *command){
|
|
|
|
|
GtkWidget *window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
|
|
|
|
|
GtkWidget *header = gtk_header_bar_new();
|
|
|
|
|
GtkWidget *terminal = vte_terminal_new();
|
|
|
|
|
GtkWidget *status_box = gtk_box_new(GTK_ORIENTATION_VERTICAL,5);
|
|
|
|
|
GtkWidget *box = gtk_box_new(GTK_ORIENTATION_VERTICAL,5);
|
|
|
|
|
GtkWidget *terminal_box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL,5);
|
|
|
|
|
GtkWidget *scroll = gtk_scrollbar_new(GTK_ORIENTATION_VERTICAL,gtk_scrollable_get_vadjustment(GTK_SCROLLABLE(terminal)));
|
|
|
|
|
|
|
|
|
|
gtk_window_set_titlebar(GTK_WINDOW(window),header);
|
|
|
|
|
gtk_container_add(GTK_CONTAINER(window),box);
|
|
|
|
|
gtk_box_pack_start(GTK_BOX(box),status_box,0,0,0);
|
|
|
|
|
gtk_box_pack_start(GTK_BOX(box),terminal_box,1,1,0);
|
|
|
|
|
gtk_box_pack_start(GTK_BOX(terminal_box),terminal,1,1,0);
|
|
|
|
|
gtk_box_pack_start(GTK_BOX(terminal_box),scroll,0,0,0);
|
|
|
|
|
gtk_widget_set_margin_bottom(terminal_box,5);
|
|
|
|
|
gtk_widget_set_margin_start(terminal_box,5);
|
|
|
|
|
gtk_widget_set_margin_end(terminal_box,5);
|
|
|
|
|
gtk_widget_show_all(window);
|
|
|
|
|
|
|
|
|
|
vte_terminal_set_scrollback_lines(VTE_TERMINAL(terminal),-1);
|
|
|
|
|
|
|
|
|
|
gtk_window_set_modal(GTK_WINDOW(window),1);
|
|
|
|
|
gtk_header_bar_set_show_close_button(GTK_HEADER_BAR(header),1);
|
|
|
|
|
gtk_window_set_title(GTK_WINDOW(window),gtk_window_get_title(parent_window));
|
|
|
|
|
gtk_window_set_icon_name(GTK_WINDOW(window),gtk_window_get_icon_name(parent_window));
|
|
|
|
|
g_signal_connect(G_OBJECT(terminal), "child-exited", G_CALLBACK(on_terminal_done), status_box);
|
|
|
|
|
yon_terminal_integrated_start(terminal,command);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
gboolean yon_tab_create_tags(kernels_tab *tab){
|
|
|
|
|
GList *list = gtk_container_get_children(GTK_CONTAINER(tab->install_tags_box));
|
|
|
|
|
for (guint i=0;i<g_list_length(list);i++){
|
|
|
|
|
@ -473,6 +508,7 @@ void *yon_command_execute_async(char *command,main_window *widgets){
|
|
|
|
|
gdk_threads_add_timeout(500,(GSourceFunc)yon_terminal_get_progress,widgets);
|
|
|
|
|
gtk_widget_set_sensitive(widgets->UpdateButton,0);
|
|
|
|
|
dictionary *dict = NULL;
|
|
|
|
|
if (main_config.kernel_tabs){
|
|
|
|
|
for_dictionaries(dict,main_config.kernel_tabs){
|
|
|
|
|
gtk_widget_set_sensitive(((kernels_tab*)dict->data)->update_module_button,0);
|
|
|
|
|
gtk_widget_set_sensitive(((kernels_tab*)dict->data)->update_package_button,0);
|
|
|
|
|
@ -481,6 +517,8 @@ void *yon_command_execute_async(char *command,main_window *widgets){
|
|
|
|
|
gtk_widget_set_sensitive(((kernels_tab*)dict->data)->remove_module_button,0);
|
|
|
|
|
gtk_widget_set_sensitive(((kernels_tab*)dict->data)->remove_package_button,0);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if (main_config.addition_tabs){
|
|
|
|
|
for_dictionaries(dict,main_config.addition_tabs){
|
|
|
|
|
gtk_widget_set_sensitive(((kernels_tab*)dict->data)->update_module_button,0);
|
|
|
|
|
gtk_widget_set_sensitive(((kernels_tab*)dict->data)->update_package_button,0);
|
|
|
|
|
@ -489,6 +527,7 @@ void *yon_command_execute_async(char *command,main_window *widgets){
|
|
|
|
|
gtk_widget_set_sensitive(((kernels_tab*)dict->data)->remove_module_button,0);
|
|
|
|
|
gtk_widget_set_sensitive(((kernels_tab*)dict->data)->remove_package_button,0);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return NULL;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@ -1148,7 +1187,7 @@ void on_build_execute(GtkWidget *, dictionary *dict){
|
|
|
|
|
char *target = (char*)gtk_combo_box_get_active_id(GTK_COMBO_BOX(window->KernelVersionCombo));
|
|
|
|
|
char *filename = (char*)gtk_entry_get_text(GTK_ENTRY(window->FilenameEntry));
|
|
|
|
|
char *command = build_command(target,filename,debug,drivers);
|
|
|
|
|
yon_terminal_window_launch(GTK_WINDOW(widgets->Window),yon_debug_output("%s\n",command));
|
|
|
|
|
yon_terminal_window_start(GTK_WINDOW(widgets->Window),yon_debug_output("%s\n",command));
|
|
|
|
|
gtk_widget_destroy(window->window);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@ -1296,7 +1335,7 @@ void yon_main_window_complete(main_window *widgets){
|
|
|
|
|
on_update_clicked(NULL,widgets);
|
|
|
|
|
yon_save_window_set_postsave_function(on_save_done,widgets);
|
|
|
|
|
|
|
|
|
|
yon_command_execute_async(pacman_update_command,widgets);
|
|
|
|
|
yon_terminal_integrated_start(widgets->InstallTerminal,pacman_update_command);
|
|
|
|
|
}
|
|
|
|
|
yon_load_proceed(YON_CONFIG_LOCAL);
|
|
|
|
|
}
|
|
|
|
|
|