|
|
|
|
@ -118,24 +118,6 @@ void on_config_custom_load(GtkWidget *,main_window *widgets){
|
|
|
|
|
yon_interface_update(widgets);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
gboolean yon_clear_interface(main_window *widgets){
|
|
|
|
|
if (!main_config.kernel_tabs){
|
|
|
|
|
GList *list = gtk_container_get_children(GTK_CONTAINER(widgets->KernelsPackageBox));
|
|
|
|
|
for (guint i=0;i<g_list_length(list);i++){
|
|
|
|
|
gtk_widget_destroy(g_list_nth_data(list,i));
|
|
|
|
|
}
|
|
|
|
|
g_list_free(list);
|
|
|
|
|
}
|
|
|
|
|
if (!main_config.addition_tabs){
|
|
|
|
|
GList *list = gtk_container_get_children(GTK_CONTAINER(widgets->AdditionsPackageBox));
|
|
|
|
|
for (guint i=0;i<g_list_length(list);i++){
|
|
|
|
|
gtk_widget_destroy(g_list_nth_data(list,i));
|
|
|
|
|
}
|
|
|
|
|
g_list_free(list);
|
|
|
|
|
}
|
|
|
|
|
return G_SOURCE_REMOVE;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
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++){
|
|
|
|
|
@ -172,25 +154,36 @@ gboolean yon_tab_create_tags(kernels_tab *tab){
|
|
|
|
|
return G_SOURCE_REMOVE;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
char *yon_package_string_set(char *target){
|
|
|
|
|
char *final = NULL;
|
|
|
|
|
if (strstr(target,",")){
|
|
|
|
|
final = yon_char_replace(target,","," ");
|
|
|
|
|
} else final = target;
|
|
|
|
|
return final;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void *yon_tab_set_installed(kernels_tab *tab){
|
|
|
|
|
char *check_install_command = get_package_is_installed_command(tab->module);
|
|
|
|
|
if (!system(check_install_command)){
|
|
|
|
|
char *target_module = yon_package_string_set(tab->module);
|
|
|
|
|
char *target_package = yon_package_string_set(tab->package);
|
|
|
|
|
|
|
|
|
|
char *check_install_command = get_package_is_installed_command(target_module);
|
|
|
|
|
if (!system(yon_debug_output("%s\n",check_install_command))){
|
|
|
|
|
tab->module_installed=1;
|
|
|
|
|
} else tab->module_installed=0;
|
|
|
|
|
free(check_install_command);
|
|
|
|
|
check_install_command = get_package_is_installed_command(tab->package);
|
|
|
|
|
if (!system(check_install_command)){
|
|
|
|
|
check_install_command = get_package_is_installed_command(target_package);
|
|
|
|
|
if (!system(yon_debug_output("%s\n",check_install_command))){
|
|
|
|
|
tab->package_installed=1;
|
|
|
|
|
} else tab->package_installed=0;
|
|
|
|
|
free(check_install_command);
|
|
|
|
|
|
|
|
|
|
check_install_command = get_package_is_updated_command(tab->module);
|
|
|
|
|
if (!system(check_install_command)){
|
|
|
|
|
check_install_command = get_package_is_updated_command(target_module);
|
|
|
|
|
if (!system(yon_debug_output("%s\n",check_install_command))){
|
|
|
|
|
tab->module_updated = 0;
|
|
|
|
|
} else tab->module_updated = 1;
|
|
|
|
|
free(check_install_command);
|
|
|
|
|
check_install_command = get_package_is_updated_command(tab->package);
|
|
|
|
|
if (!system(check_install_command)){
|
|
|
|
|
check_install_command = get_package_is_updated_command(target_package);
|
|
|
|
|
if (!system(yon_debug_output("%s\n",check_install_command))){
|
|
|
|
|
tab->package_updated = 0;
|
|
|
|
|
} else tab->package_updated = 1;
|
|
|
|
|
free(check_install_command);
|
|
|
|
|
@ -200,7 +193,20 @@ void *yon_tab_set_installed(kernels_tab *tab){
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void *yon_interface_update(main_window *widgets){
|
|
|
|
|
yon_clear_interface(widgets);
|
|
|
|
|
if (!main_config.kernel_tabs){
|
|
|
|
|
GList *list = gtk_container_get_children(GTK_CONTAINER(widgets->KernelsPackageBox));
|
|
|
|
|
for (guint i=0;i<g_list_length(list);i++){
|
|
|
|
|
gtk_widget_destroy(g_list_nth_data(list,i));
|
|
|
|
|
}
|
|
|
|
|
g_list_free(list);
|
|
|
|
|
}
|
|
|
|
|
if (!main_config.addition_tabs){
|
|
|
|
|
GList *list = gtk_container_get_children(GTK_CONTAINER(widgets->AdditionsPackageBox));
|
|
|
|
|
for (guint i=0;i<g_list_length(list);i++){
|
|
|
|
|
gtk_widget_destroy(g_list_nth_data(list,i));
|
|
|
|
|
}
|
|
|
|
|
g_list_free(list);
|
|
|
|
|
}
|
|
|
|
|
int kernels_size;
|
|
|
|
|
config_str kernels = yon_resource_open_file(kernels_path, &kernels_size);
|
|
|
|
|
|
|
|
|
|
@ -285,6 +291,11 @@ int yon_tag_add(GtkBox *target,char *tag_label, char *tag_style, char *icon_name
|
|
|
|
|
if (GTK_IS_BOX(target)&&!yon_char_is_empty(tag_label)&&!yon_char_is_empty(tag_style)){
|
|
|
|
|
GtkWidget *box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL,2);
|
|
|
|
|
GtkWidget *label = gtk_label_new(tag_label);
|
|
|
|
|
PangoAttrList *attr = pango_attr_list_new();
|
|
|
|
|
PangoAttribute *scale_attr = pango_attr_size_new_absolute(12 * PANGO_SCALE);
|
|
|
|
|
pango_attr_list_insert(attr,scale_attr);
|
|
|
|
|
|
|
|
|
|
gtk_label_set_attributes(GTK_LABEL(label),attr);
|
|
|
|
|
gtk_style_context_add_class(gtk_widget_get_style_context(label),tag_style);
|
|
|
|
|
GtkWidget *icon = NULL;
|
|
|
|
|
if (icon_name){
|
|
|
|
|
@ -304,7 +315,6 @@ gboolean on_command_execute_success(GtkWidget *,gint status,main_window *widgets
|
|
|
|
|
main_config.progress_active=0;
|
|
|
|
|
g_mutex_unlock(&main_config.progress_mutex);
|
|
|
|
|
if (!status){
|
|
|
|
|
gtk_revealer_set_transition_type(GTK_REVEALER(widgets->MainRevealer),GTK_REVEALER_TRANSITION_TYPE_SLIDE_DOWN);
|
|
|
|
|
yon_ubl_status_box_render(OPERATION_SUCCESS_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE);
|
|
|
|
|
yon_interface_update(widgets);
|
|
|
|
|
} else {
|
|
|
|
|
@ -347,7 +357,6 @@ gboolean yon_terminal_get_progress(main_window *widgets){
|
|
|
|
|
void *yon_command_execute_async(char *command,main_window *widgets){
|
|
|
|
|
gtk_progress_bar_set_fraction(GTK_PROGRESS_BAR(widgets->InstallationProgress),0);
|
|
|
|
|
vte_terminal_reset(VTE_TERMINAL(widgets->InstallTerminal),0,1);
|
|
|
|
|
gtk_revealer_set_transition_type(GTK_REVEALER(widgets->MainRevealer),GTK_REVEALER_TRANSITION_TYPE_SLIDE_UP);
|
|
|
|
|
gtk_revealer_set_reveal_child(GTK_REVEALER(widgets->TerminalRevealer),0);
|
|
|
|
|
yon_terminal_integrated_start(widgets->InstallTerminal,yon_debug_output("%s\n",command));
|
|
|
|
|
glong columns = vte_terminal_get_column_count(VTE_TERMINAL(widgets->InstallTerminal));
|
|
|
|
|
@ -365,7 +374,8 @@ void on_module_install_accept(GtkWidget *, dictionary *dict){
|
|
|
|
|
main_window *widgets = yon_dictionary_get_data(dict->first,main_window*);
|
|
|
|
|
kernels_tab *tab = yon_dictionary_get_data(dict->first->next,kernels_tab*);
|
|
|
|
|
dialog_window *window = yon_dictionary_get_data(dict->first->next->next,dialog_window*);
|
|
|
|
|
char *modules_to_install = tab->module;
|
|
|
|
|
char *module_formated = yon_package_string_set(tab->module);
|
|
|
|
|
char *modules_to_install = module_formated;
|
|
|
|
|
|
|
|
|
|
GtkTreeIter iter;
|
|
|
|
|
for_iter (GTK_TREE_MODEL(window->liststore1),&iter){
|
|
|
|
|
@ -374,7 +384,7 @@ void on_module_install_accept(GtkWidget *, dictionary *dict){
|
|
|
|
|
gtk_tree_model_get(GTK_TREE_MODEL(window->liststore1),&iter,0,&status,1,&package,-1);
|
|
|
|
|
if (status){
|
|
|
|
|
char *temp = yon_char_unite(modules_to_install," ", package, NULL);
|
|
|
|
|
if (strcmp(modules_to_install,tab->module)) free(modules_to_install);
|
|
|
|
|
if (strcmp(modules_to_install,module_formated)) free(modules_to_install);
|
|
|
|
|
modules_to_install = temp;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
@ -390,7 +400,8 @@ void on_package_install_accept(GtkWidget *, dictionary *dict){
|
|
|
|
|
main_window *widgets = yon_dictionary_get_data(dict->first,main_window*);
|
|
|
|
|
kernels_tab *tab = yon_dictionary_get_data(dict->first->next,kernels_tab*);
|
|
|
|
|
dialog_window *window = yon_dictionary_get_data(dict->first->next->next,dialog_window*);
|
|
|
|
|
char *modules_to_install = tab->package;
|
|
|
|
|
char *package_formated = yon_package_string_set(tab->package);
|
|
|
|
|
char *modules_to_install = package_formated;
|
|
|
|
|
|
|
|
|
|
GtkTreeIter iter;
|
|
|
|
|
for_iter (GTK_TREE_MODEL(window->liststore1),&iter){
|
|
|
|
|
@ -399,7 +410,7 @@ void on_package_install_accept(GtkWidget *, dictionary *dict){
|
|
|
|
|
gtk_tree_model_get(GTK_TREE_MODEL(window->liststore1),&iter,0,&status,1,&package,-1);
|
|
|
|
|
if (status){
|
|
|
|
|
char *temp = yon_char_unite(modules_to_install," ", package, NULL);
|
|
|
|
|
if (strcmp(modules_to_install,tab->module)) free(modules_to_install);
|
|
|
|
|
if (strcmp(modules_to_install,package_formated)) free(modules_to_install);
|
|
|
|
|
modules_to_install = temp;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
@ -460,7 +471,8 @@ void on_module_install_clicked(GtkWidget *self,dictionary *dict){
|
|
|
|
|
data->function = NULL;
|
|
|
|
|
data->data = NULL;
|
|
|
|
|
if (yon_confirmation_dialog_call(self,data) == GTK_RESPONSE_ACCEPT){
|
|
|
|
|
char *command = install_command(tab->module);
|
|
|
|
|
char *target = yon_package_string_set(tab->module);
|
|
|
|
|
char *command = install_command(target);
|
|
|
|
|
yon_command_execute_async(command,widgets);
|
|
|
|
|
tab->module_installed=1;
|
|
|
|
|
}
|
|
|
|
|
@ -501,7 +513,8 @@ void on_package_install_clicked(GtkWidget *self,dictionary *dict){
|
|
|
|
|
data->function = NULL;
|
|
|
|
|
data->data = NULL;
|
|
|
|
|
if (yon_confirmation_dialog_call(self,data) == GTK_RESPONSE_ACCEPT){
|
|
|
|
|
char *command = install_command(tab->package);
|
|
|
|
|
char *target = yon_package_string_set(tab->package);
|
|
|
|
|
char *command = install_command(target);
|
|
|
|
|
yon_command_execute_async(command,widgets);
|
|
|
|
|
tab->package_installed=1;
|
|
|
|
|
}
|
|
|
|
|
@ -524,7 +537,8 @@ void on_module_remove_clicked(GtkWidget *self,dictionary *dict){
|
|
|
|
|
data->function = NULL;
|
|
|
|
|
data->data = NULL;
|
|
|
|
|
if (yon_confirmation_dialog_call(self,data) == GTK_RESPONSE_ACCEPT){
|
|
|
|
|
char *command = remove_command(tab->module);
|
|
|
|
|
char *target = yon_package_string_set(tab->module);
|
|
|
|
|
char *command = remove_command(target);
|
|
|
|
|
g_signal_connect(G_OBJECT(widgets->InstallTerminal),"child-exited",G_CALLBACK(on_module_remove_done),tab);
|
|
|
|
|
yon_command_execute_async(command,widgets);
|
|
|
|
|
tab->module_installed=0;
|
|
|
|
|
@ -541,7 +555,8 @@ void on_package_remove_clicked(GtkWidget *self,dictionary *dict){
|
|
|
|
|
data->data = NULL;
|
|
|
|
|
int resp = yon_confirmation_dialog_call(self,data);
|
|
|
|
|
if (resp == GTK_RESPONSE_ACCEPT){
|
|
|
|
|
char *command = remove_command(tab->package);
|
|
|
|
|
char *target = yon_package_string_set(tab->package);
|
|
|
|
|
char *command = remove_command(target);
|
|
|
|
|
yon_command_execute_async(command,widgets);
|
|
|
|
|
tab->package_installed=0;
|
|
|
|
|
}
|
|
|
|
|
@ -660,21 +675,21 @@ kernels_tab *yon_tab_row_new(GtkListBox *target, char *target_string, main_windo
|
|
|
|
|
char *passw = types_parsed[k][0]==' '?yon_char_divide(types_parsed[k],0):NULL;
|
|
|
|
|
if (passw) free(passw);
|
|
|
|
|
char *tag_type = NULL;
|
|
|
|
|
if (!strcmp(types_parsed[k],LTS_TAG)){
|
|
|
|
|
if (!strcmp(_(types_parsed[k]),LTS_TAG)){
|
|
|
|
|
tag_type = "tag_blue";
|
|
|
|
|
} else if (!strcmp(types_parsed[k],STABLE_TAG)){
|
|
|
|
|
} else if (!strcmp(_(types_parsed[k]),STABLE_TAG)){
|
|
|
|
|
tag_type = "tag_green";
|
|
|
|
|
} else if (!strcmp(types_parsed[k],REALTIME_TAG)){
|
|
|
|
|
} else if (!strcmp(_(types_parsed[k]),REALTIME_TAG)){
|
|
|
|
|
tag_type = "tag_orange";
|
|
|
|
|
} else if (!strcmp(types_parsed[k],HARDENED_TAG)){
|
|
|
|
|
} else if (!strcmp(_(types_parsed[k]),HARDENED_TAG)){
|
|
|
|
|
tag_type = "tag_yellow";
|
|
|
|
|
} else if (!strcmp(types_parsed[k],RECOMENDED_TAG)){
|
|
|
|
|
} else if (!strcmp(_(types_parsed[k]),RECOMENDED_TAG)){
|
|
|
|
|
tag_type = "tag_blue";
|
|
|
|
|
} else if (!strcmp(types_parsed[k],REACTIVE_TAG)){
|
|
|
|
|
} else if (!strcmp(_(types_parsed[k]),REACTIVE_TAG)){
|
|
|
|
|
tag_type = "tag_purple";
|
|
|
|
|
} else continue;
|
|
|
|
|
|
|
|
|
|
yon_tag_add(GTK_BOX(tab->tags_box),types_parsed[k],tag_type,NULL);
|
|
|
|
|
yon_tag_add(GTK_BOX(tab->tags_box),_(types_parsed[k]),tag_type,NULL);
|
|
|
|
|
}
|
|
|
|
|
tab->module_requirements = yon_char_parse(parsed[3],&tab->module_requirements_size,",");
|
|
|
|
|
tab->package_requirements = yon_char_parse(parsed[4],&tab->package_requirements_size,",");
|
|
|
|
|
@ -855,6 +870,9 @@ void on_info_clicked(GtkWidget *, main_window *widgets){
|
|
|
|
|
char *package=NULL;
|
|
|
|
|
if ((package = strstr(target_str,": "))){
|
|
|
|
|
package+=2;
|
|
|
|
|
if (strstr(package,",")){
|
|
|
|
|
package = yon_char_replace(package,","," ");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
config_str info = yon_config_load(get_package_info_command(package),&size);
|
|
|
|
|
if (size!=-1){
|
|
|
|
|
@ -1004,7 +1022,7 @@ void yon_main_window_complete(main_window *widgets){
|
|
|
|
|
|
|
|
|
|
glong columns = vte_terminal_get_column_count(VTE_TERMINAL(widgets->InstallTerminal));
|
|
|
|
|
vte_terminal_set_size(VTE_TERMINAL(widgets->InstallTerminal),columns,20);
|
|
|
|
|
gtk_overlay_add_overlay(GTK_OVERLAY(widgets->TerminalOverlay),widgets->MainRevealer);
|
|
|
|
|
gtk_overlay_add_overlay(GTK_OVERLAY(widgets->TerminalOverlay),widgets->TerminalRevealer);
|
|
|
|
|
|
|
|
|
|
yon_interface_update(widgets);
|
|
|
|
|
yon_save_window_set_postsave_function(on_save_done,widgets);
|
|
|
|
|
|