Terminal has been moved from overlay to paned; Fixed progress bar length #24

Merged
asmeron merged 11 commits from YanTheKaller/ubl-settings-kernel:master into master 1 year ago

@ -133,6 +133,11 @@ gboolean yon_tab_create_tags(kernels_tab *tab){
gtk_widget_show(tab->update_module_button); gtk_widget_show(tab->update_module_button);
gtk_widget_hide(tab->install_module_button); gtk_widget_hide(tab->install_module_button);
} else {
gtk_widget_hide(tab->remove_module_button);
gtk_widget_hide(tab->update_module_button);
gtk_widget_show(tab->install_module_button);
} }
{ {
if (tab->package_installed){ if (tab->package_installed){
@ -141,6 +146,10 @@ gboolean yon_tab_create_tags(kernels_tab *tab){
gtk_widget_hide(tab->install_package_button); gtk_widget_hide(tab->install_package_button);
gtk_widget_show(tab->remove_package_button); gtk_widget_show(tab->remove_package_button);
gtk_widget_show(tab->update_package_button); gtk_widget_show(tab->update_package_button);
} else {
gtk_widget_show(tab->install_package_button);
gtk_widget_hide(tab->remove_package_button);
gtk_widget_hide(tab->update_package_button);
} }
} }
if (tab->package_installed||tab->module_installed){ if (tab->package_installed||tab->module_installed){
@ -157,16 +166,12 @@ gboolean yon_tab_create_tags(kernels_tab *tab){
if(!getuid()){ if(!getuid()){
if (boot_run&&!strcmp(boot_run[0],tab->package)){ if (boot_run&&!strcmp(boot_run[0],tab->package)){
yon_tag_add(GTK_BOX(tab->install_tags_box),RUNNING_LABEL,"tag_green",NULL); yon_tag_add(GTK_BOX(tab->install_tags_box),RUNNING_LABEL,"tag_green",NULL);
gtk_widget_hide(tab->remove_module_button);
gtk_widget_hide(tab->remove_package_button);
gtk_widget_hide(tab->update_module_button); gtk_widget_hide(tab->update_module_button);
gtk_widget_hide(tab->update_package_button); gtk_widget_hide(tab->update_package_button);
gtk_widget_hide(tab->launch_button); gtk_widget_hide(tab->launch_button);
} else if (!yon_char_is_empty(launched)&&!strcmp(launched,tab->package)){ } else if (!yon_char_is_empty(launched)&&!strcmp(launched,tab->package)){
yon_tag_add(GTK_BOX(tab->install_tags_box),BOOT_RUN_LABEL,"tag_orange",NULL); yon_tag_add(GTK_BOX(tab->install_tags_box),BOOT_RUN_LABEL,"tag_orange",NULL);
gtk_widget_hide(tab->launch_button); gtk_widget_hide(tab->launch_button);
gtk_widget_hide(tab->remove_module_button);
gtk_widget_hide(tab->remove_package_button);
gtk_widget_hide(tab->update_module_button); gtk_widget_hide(tab->update_module_button);
gtk_widget_hide(tab->update_package_button); gtk_widget_hide(tab->update_package_button);
} }
@ -198,23 +203,25 @@ void *yon_tab_set_installed(kernels_tab *tab){
char *target_module = yon_package_string_set(tab->module); char *target_module = yon_package_string_set(tab->module);
char *target_package = yon_package_string_set(tab->package); char *target_package = yon_package_string_set(tab->package);
char *check_install_command = get_package_is_installed_command(target_module); char *check_install_command = get_package_is_installed_command(target_module); //if module installed
if (!system(yon_debug_output("%s\n",check_install_command))){ if (!system(yon_debug_output("%s\n",check_install_command))){
tab->module_installed=1; tab->module_installed=1;
} else tab->module_installed=0; } else tab->module_installed=0;
free(check_install_command); free(check_install_command);
check_install_command = get_package_is_installed_command(target_package);
check_install_command = get_package_is_installed_command(target_package); //if package installed
if (!system(yon_debug_output("%s\n",check_install_command))){ if (!system(yon_debug_output("%s\n",check_install_command))){
tab->package_installed=1; tab->package_installed=1;
} else tab->package_installed=0; } else tab->package_installed=0;
free(check_install_command); free(check_install_command);
check_install_command = get_package_is_updated_command(target_module); check_install_command = get_package_is_updated_command(target_module); //if module has updates
if (!system(yon_debug_output("%s\n",check_install_command))){ if (!system(yon_debug_output("%s\n",check_install_command))){
tab->module_updated = 0; tab->module_updated = 0;
} else tab->module_updated = 1; } else tab->module_updated = 1;
free(check_install_command); free(check_install_command);
check_install_command = get_package_is_updated_command(target_package);
check_install_command = get_package_is_updated_command(target_package); //if package has updates
if (!system(yon_debug_output("%s\n",check_install_command))){ if (!system(yon_debug_output("%s\n",check_install_command))){
tab->package_updated = 0; tab->package_updated = 0;
} else tab->package_updated = 1; } else tab->package_updated = 1;
@ -346,23 +353,31 @@ gboolean on_command_execute_success(GtkWidget *,gint status,main_window *widgets
gboolean yon_terminal_get_progress(main_window *widgets){ gboolean yon_terminal_get_progress(main_window *widgets){
char *text = vte_terminal_get_text_format(VTE_TERMINAL(widgets->InstallTerminal),VTE_FORMAT_TEXT); char *text = vte_terminal_get_text_format(VTE_TERMINAL(widgets->InstallTerminal),VTE_FORMAT_TEXT);
GRegex *regex = g_regex_new("\\d?\\d%",0,0,NULL); GRegex *regex = g_regex_new("\\d?\\d?\\d%",0,0,NULL);
GMatchInfo *match = NULL; GMatchInfo *match = NULL;
g_regex_match(regex,text,0,&match); g_regex_match(regex,text,0,&match);
g_regex_unref(regex); g_regex_unref(regex);
config_str target = g_match_info_fetch_all(match);
double percentage = 0.0; double percentage = 0.0;
char *last_match = NULL;
while (g_match_info_matches(match)) {
char *current_match = g_match_info_fetch(match, 0);
if (last_match) {
g_free(last_match);
}
last_match = current_match;
g_match_info_next(match, NULL);
}
if (last_match) {
yon_char_remove_last_symbol(last_match,'%');
percentage = atof(last_match);
yon_debug_output("%s\n", text);
yon_debug_output("%s\n", last_match);
if (target){
int i;
for (i=0;target[i+1];i++){};
target[i][strlen(target[i])-1]='\0';
percentage = atof(target[i]);
yon_debug_output("%s\n",target[i]);
gtk_progress_bar_set_fraction(GTK_PROGRESS_BAR(widgets->InstallationProgress), percentage / 100); gtk_progress_bar_set_fraction(GTK_PROGRESS_BAR(widgets->InstallationProgress), percentage / 100);
g_free(last_match);
} }
g_match_info_unref(match); g_match_info_unref(match);
g_mutex_lock(&main_config.progress_mutex); g_mutex_lock(&main_config.progress_mutex);
@ -378,8 +393,8 @@ gboolean yon_terminal_get_progress(main_window *widgets){
void *yon_command_execute_async(char *command,main_window *widgets){ void *yon_command_execute_async(char *command,main_window *widgets){
gtk_progress_bar_set_fraction(GTK_PROGRESS_BAR(widgets->InstallationProgress),0); gtk_progress_bar_set_fraction(GTK_PROGRESS_BAR(widgets->InstallationProgress),0);
vte_terminal_reset(VTE_TERMINAL(widgets->InstallTerminal),0,1); vte_terminal_reset(VTE_TERMINAL(widgets->InstallTerminal),0,1);
gtk_revealer_set_reveal_child(GTK_REVEALER(widgets->TerminalRevealer),0); yon_terminal_integrated_start_shell(widgets->InstallTerminal,yon_debug_output("%s\n",command),on_command_execute_success,widgets);
yon_terminal_integrated_start(widgets->InstallTerminal,yon_debug_output("%s\n",command)); // yon_terminal_integrated_start(widgets->InstallTerminal,yon_debug_output("%s\n",command));
glong columns = vte_terminal_get_column_count(VTE_TERMINAL(widgets->InstallTerminal)); glong columns = vte_terminal_get_column_count(VTE_TERMINAL(widgets->InstallTerminal));
vte_terminal_set_size(VTE_TERMINAL(widgets->InstallTerminal),columns,20); vte_terminal_set_size(VTE_TERMINAL(widgets->InstallTerminal),columns,20);
yon_ubl_status_box_render(OPERATION_IN_PROGRESS_LABEL,BACKGROUND_IMAGE_INFO_TYPE); yon_ubl_status_box_render(OPERATION_IN_PROGRESS_LABEL,BACKGROUND_IMAGE_INFO_TYPE);
@ -395,6 +410,8 @@ void on_module_install_accept(GtkWidget *, dictionary *dict){
main_window *widgets = yon_dictionary_get_data(dict->first,main_window*); main_window *widgets = yon_dictionary_get_data(dict->first,main_window*);
kernels_tab *tab = yon_dictionary_get_data(dict->first->next,kernels_tab*); 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*); dialog_window *window = yon_dictionary_get_data(dict->first->next->next,dialog_window*);
free(dict->first->next->next);
dict->first->next->next = NULL;
char *module_formated = yon_package_string_set(tab->module); char *module_formated = yon_package_string_set(tab->module);
char *modules_to_install = module_formated; char *modules_to_install = module_formated;
@ -412,8 +429,6 @@ void on_module_install_accept(GtkWidget *, dictionary *dict){
char *command = install_command(modules_to_install); char *command = install_command(modules_to_install);
yon_command_execute_async(command,widgets); yon_command_execute_async(command,widgets);
tab->module_installed=1; tab->module_installed=1;
free(dict->first->next->next);
dict->first->next->next=NULL;
on_subwindow_close(window->Window); on_subwindow_close(window->Window);
} }
@ -465,6 +480,7 @@ void on_module_install_clicked(GtkWidget *self,dictionary *dict){
char *action_text = MODULE_INSTALL_CONFIRMATION_LABEL(tab->name); char *action_text = MODULE_INSTALL_CONFIRMATION_LABEL(tab->name);
if (!gtk_notebook_get_current_page(GTK_NOTEBOOK(widgets->MainNotebook))){ if (!gtk_notebook_get_current_page(GTK_NOTEBOOK(widgets->MainNotebook))){
dialog_window *window = yon_dialog_window_new(); dialog_window *window = yon_dialog_window_new();
yon_dictionary_add_or_create_if_exists_with_data(dict,"window",window);
g_signal_connect(G_OBJECT(window->AcceptButton),"clicked",G_CALLBACK(on_module_install_accept),dict); g_signal_connect(G_OBJECT(window->AcceptButton),"clicked",G_CALLBACK(on_module_install_accept),dict);
gtk_label_set_text(GTK_LABEL(window->TopicLabel),action_text); gtk_label_set_text(GTK_LABEL(window->TopicLabel),action_text);
@ -560,6 +576,8 @@ void on_module_remove_clicked(GtkWidget *self,dictionary *dict){
if (yon_confirmation_dialog_call(self,data) == GTK_RESPONSE_ACCEPT){ if (yon_confirmation_dialog_call(self,data) == GTK_RESPONSE_ACCEPT){
char *target = yon_package_string_set(tab->module); char *target = yon_package_string_set(tab->module);
char *command = remove_command(target); char *command = remove_command(target);
char *command_unload = unload_command(target);
system(yon_debug_output("%s\n",command_unload));
g_signal_connect(G_OBJECT(widgets->InstallTerminal),"child-exited",G_CALLBACK(on_module_remove_done),tab); g_signal_connect(G_OBJECT(widgets->InstallTerminal),"child-exited",G_CALLBACK(on_module_remove_done),tab);
yon_command_execute_async(command,widgets); yon_command_execute_async(command,widgets);
tab->module_installed=0; tab->module_installed=0;
@ -601,42 +619,8 @@ kernels_tab *yon_tab_row_new(GtkListBox *target, char *target_string, main_windo
int size; int size;
config_str parsed = yon_char_parse(target_string,&size,";"); config_str parsed = yon_char_parse(target_string,&size,";");
if (size){ if (size){
int types_size;
dictionary *cur = yon_dictionary_get(&main_config.kernel_tabs,parsed[2]);
kernels_tab *tab = NULL; kernels_tab *tab = NULL;
if (cur){ int types_size;
tab = (kernels_tab*)cur->data;
gtk_widget_hide(tab->changelog_button);
gtk_widget_show(tab->launch_button);
gtk_image_set_from_icon_name(GTK_IMAGE(tab->module_icon),"",GTK_ICON_SIZE_BUTTON);
gtk_image_set_from_icon_name(GTK_IMAGE(tab->package_icon),"",GTK_ICON_SIZE_BUTTON);
if (tab->module_installed){
gtk_widget_show(tab->remove_module_button);
gtk_widget_hide(tab->install_module_button);
gtk_widget_show(tab->remove_module_button);
yon_tag_add(GTK_BOX(tab->install_tags_box),MODULE_INSTALLED_LABEL,"tag_green",NULL);
gtk_image_set_from_icon_name(GTK_IMAGE(tab->module_icon),module_icon_path,GTK_ICON_SIZE_BUTTON);
} else {
gtk_widget_hide(tab->remove_module_button);
gtk_widget_show(tab->install_module_button);
}
if (tab->package_installed){
gtk_widget_show(tab->remove_package_button);
gtk_widget_hide(tab->install_package_button);
gtk_widget_show(tab->changelog_button);
yon_tag_add(GTK_BOX(tab->install_tags_box),PACKAGE_INSTALLED_LABEL,"tag_green",NULL);
gtk_image_set_from_icon_name(GTK_IMAGE(tab->package_icon),package_icon_path,GTK_ICON_SIZE_BUTTON);
} else {
gtk_widget_hide(tab->remove_package_button);
gtk_widget_show(tab->install_package_button);
}
if (!tab->package_installed&&!tab->module_installed){
gtk_widget_hide(tab->launch_button);
}
} else {
tab = malloc(sizeof(kernels_tab)); tab = malloc(sizeof(kernels_tab));
@ -665,6 +649,8 @@ kernels_tab *yon_tab_row_new(GtkListBox *target, char *target_string, main_windo
dictionary *dict = NULL; dictionary *dict = NULL;
yon_dictionary_add_or_create_if_exists_with_data(dict,"widgets",widgets); yon_dictionary_add_or_create_if_exists_with_data(dict,"widgets",widgets);
yon_dictionary_add_or_create_if_exists_with_data(dict,"tab",tab); yon_dictionary_add_or_create_if_exists_with_data(dict,"tab",tab);
g_signal_connect(G_OBJECT(tab->update_module_button),"clicked",G_CALLBACK(on_module_install_clicked),dict);
g_signal_connect(G_OBJECT(tab->update_package_button),"clicked",G_CALLBACK(on_package_install_clicked),dict);
g_signal_connect(G_OBJECT(tab->install_module_button),"clicked",G_CALLBACK(on_module_install_clicked),dict); g_signal_connect(G_OBJECT(tab->install_module_button),"clicked",G_CALLBACK(on_module_install_clicked),dict);
g_signal_connect(G_OBJECT(tab->install_package_button),"clicked",G_CALLBACK(on_package_install_clicked),dict); g_signal_connect(G_OBJECT(tab->install_package_button),"clicked",G_CALLBACK(on_package_install_clicked),dict);
g_signal_connect(G_OBJECT(tab->remove_module_button),"clicked",G_CALLBACK(on_module_remove_clicked),dict); g_signal_connect(G_OBJECT(tab->remove_module_button),"clicked",G_CALLBACK(on_module_remove_clicked),dict);
@ -726,7 +712,6 @@ kernels_tab *yon_tab_row_new(GtkListBox *target, char *target_string, main_windo
gtk_size_group_add_widget(GTK_SIZE_GROUP(widgets->RunSizeGroup),tab->run_tags_box); gtk_size_group_add_widget(GTK_SIZE_GROUP(widgets->RunSizeGroup),tab->run_tags_box);
gtk_size_group_add_widget(GTK_SIZE_GROUP(widgets->DescriptionSizeGroup),tab->description_label); gtk_size_group_add_widget(GTK_SIZE_GROUP(widgets->DescriptionSizeGroup),tab->description_label);
gtk_size_group_add_widget(GTK_SIZE_GROUP(widgets->ButtonsSizeGroup),gtk_widget_get_parent(tab->launch_button)); gtk_size_group_add_widget(GTK_SIZE_GROUP(widgets->ButtonsSizeGroup),gtk_widget_get_parent(tab->launch_button));
}
@ -736,42 +721,11 @@ kernels_tab *yon_tab_row_new(GtkListBox *target, char *target_string, main_windo
} }
additions_kernels_tab *yon_additions_tab_row_new(GtkListBox *target, char *target_string, main_window *widgets){ additions_kernels_tab *yon_additions_tab_row_new(GtkListBox *target, char *target_string, main_window *widgets){
int size; int size=0;
config_str parsed = yon_char_parse(target_string,&size,";"); config_str parsed = yon_char_parse(target_string,&size,";");
if (size){ if (size){
dictionary *cur = yon_dictionary_get(&main_config.addition_tabs,parsed[2]);
additions_kernels_tab *tab = NULL; additions_kernels_tab *tab = NULL;
if (cur){
tab = (additions_kernels_tab*)cur->data;
gtk_image_set_from_icon_name(GTK_IMAGE(tab->module_icon),"",GTK_ICON_SIZE_BUTTON);
gtk_image_set_from_icon_name(GTK_IMAGE(tab->package_icon),"",GTK_ICON_SIZE_BUTTON);
if (tab->module_installed){
gtk_widget_show(tab->remove_module_button);
gtk_widget_hide(tab->install_module_button);
gtk_widget_show(tab->update_module_button);
gtk_widget_show(tab->remove_module_button);
yon_tag_add(GTK_BOX(tab->install_tags_box),MODULE_INSTALLED_LABEL,"tag_green",NULL);
gtk_image_set_from_icon_name(GTK_IMAGE(tab->module_icon),module_icon_path,GTK_ICON_SIZE_BUTTON);
} else {
gtk_widget_hide(tab->update_module_button);
gtk_widget_hide(tab->remove_module_button);
gtk_widget_show(tab->install_module_button);
}
if (tab->package_installed){
gtk_widget_show(tab->update_package_button);
gtk_widget_show(tab->remove_package_button);
gtk_widget_hide(tab->install_package_button);
yon_tag_add(GTK_BOX(tab->install_tags_box),PACKAGE_INSTALLED_LABEL,"tag_green",NULL);
gtk_image_set_from_icon_name(GTK_IMAGE(tab->package_icon),package_icon_path,GTK_ICON_SIZE_BUTTON);
} else {
gtk_widget_hide(tab->update_package_button);
gtk_widget_hide(tab->remove_package_button);
gtk_widget_show(tab->install_package_button);
}
} else {
GtkBuilder *builder = gtk_builder_new_from_resource(glade_additions_table_row_path); GtkBuilder *builder = gtk_builder_new_from_resource(glade_additions_table_row_path);
tab = malloc(sizeof(additions_kernels_tab)); tab = malloc(sizeof(additions_kernels_tab));
@ -807,9 +761,6 @@ additions_kernels_tab *yon_additions_tab_row_new(GtkListBox *target, char *targe
g_signal_connect(G_OBJECT(tab->remove_package_button),"clicked",G_CALLBACK(on_package_remove_clicked),dict); g_signal_connect(G_OBJECT(tab->remove_package_button),"clicked",G_CALLBACK(on_package_remove_clicked),dict);
gtk_list_box_insert(target,tab->main_box,-1); gtk_list_box_insert(target,tab->main_box,-1);
int size;
config_str parsed = yon_char_parse(target_string,&size,";");
if (size){
tab->name = yon_char_new(parsed[0]); tab->name = yon_char_new(parsed[0]);
tab->module = yon_char_new(parsed[1]); tab->module = yon_char_new(parsed[1]);
tab->package = yon_char_new(parsed[2]); tab->package = yon_char_new(parsed[2]);
@ -827,8 +778,6 @@ additions_kernels_tab *yon_additions_tab_row_new(GtkListBox *target, char *targe
gtk_size_group_add_widget(GTK_SIZE_GROUP(widgets->InstallSizeGroup),tab->install_tags_box); gtk_size_group_add_widget(GTK_SIZE_GROUP(widgets->InstallSizeGroup),tab->install_tags_box);
gtk_size_group_add_widget(GTK_SIZE_GROUP(widgets->DescriptionSizeGroup),tab->description_label); gtk_size_group_add_widget(GTK_SIZE_GROUP(widgets->DescriptionSizeGroup),tab->description_label);
gtk_size_group_add_widget(GTK_SIZE_GROUP(widgets->ButtonsSizeGroup),gtk_widget_get_parent(tab->remove_module_button)); gtk_size_group_add_widget(GTK_SIZE_GROUP(widgets->ButtonsSizeGroup),gtk_widget_get_parent(tab->remove_module_button));
}
}
return tab; return tab;
} }
return NULL; return NULL;
@ -935,7 +884,7 @@ void on_build_execute(GtkWidget *, dictionary *dict){
char *target = (char*)gtk_combo_box_get_active_id(GTK_COMBO_BOX(window->KernelVersionCombo)); 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 *filename = (char*)gtk_entry_get_text(GTK_ENTRY(window->FilenameEntry));
char *command = build_command(target,filename,debug,drivers); char *command = build_command(target,filename,debug,drivers);
yon_terminal_window_launch(GTK_WINDOW(widgets->Window),command); yon_terminal_window_launch(GTK_WINDOW(widgets->Window),yon_debug_output("%s\n",command));
gtk_widget_destroy(window->window); gtk_widget_destroy(window->window);
} }
@ -968,14 +917,43 @@ void on_boot_toggled(GtkWidget *, char *path, main_window *widgets){
} }
void on_terminal_revealer_open(GtkWidget *, main_window *widgets){ void on_terminal_revealer_open(GtkWidget *, main_window *widgets){
int opened = gtk_revealer_get_child_revealed(GTK_REVEALER(widgets->TerminalRevealer)); int opened = gtk_widget_get_visible(widgets->TerminalPaned);
gtk_revealer_set_reveal_child(GTK_REVEALER(widgets->TerminalRevealer),!opened);
switch (opened){ switch (opened){
case 0: { case 0: { // opens
gtk_revealer_set_transition_type(GTK_REVEALER(widgets->TerminalRevealer),GTK_REVEALER_TRANSITION_TYPE_SLIDE_UP); gtk_button_set_label(GTK_BUTTON(widgets->MoreButton),LESS_LABEL);
g_object_ref(widgets->MainNotebook);
gtk_container_remove(GTK_CONTAINER(gtk_widget_get_parent(widgets->MainNotebook)),widgets->MainNotebook);
gtk_paned_add1(GTK_PANED(widgets->TerminalPaned),widgets->MainNotebook);
int pos;
if (yon_window_config_get_parameter("settings","paned_pos",&pos,YON_TYPE_INT)) {
gtk_paned_set_position(GTK_PANED(widgets->TerminalPaned),pos);
}
gtk_widget_show(widgets->TerminalPaned);
gtk_widget_show(widgets->MainNotebook);
} break; } break;
case 1: { case 1: { //closes
gtk_revealer_set_transition_type(GTK_REVEALER(widgets->TerminalRevealer),GTK_REVEALER_TRANSITION_TYPE_SLIDE_DOWN); gtk_button_set_label(GTK_BUTTON(widgets->MoreButton),MORE_LABEL);
int pos = gtk_paned_get_position(GTK_PANED(widgets->TerminalPaned));
yon_window_config_add_instant_parameter("paned_pos","settings",&pos,YON_TYPE_INT);
GValue val = G_VALUE_INIT;
g_object_get_property(G_OBJECT(widgets->TerminalPaned),"max-position",&val);
gtk_paned_set_position(GTK_PANED(widgets->TerminalPaned),g_value_get_int(&val));
g_value_unset(&val);
g_object_ref(widgets->MainNotebook);
gtk_container_remove(GTK_CONTAINER(widgets->TerminalPaned),widgets->MainNotebook);
gtk_box_pack_start(GTK_BOX(gtk_widget_get_parent(widgets->TerminalPaned)),widgets->MainNotebook,1,1,0);
gtk_box_reorder_child(GTK_BOX(gtk_widget_get_parent(widgets->MainNotebook)),widgets->MainNotebook,0);
gtk_widget_hide(widgets->TerminalPaned);
} break; } break;
} }
} }
@ -1006,7 +984,7 @@ void yon_main_window_complete(main_window *widgets){
widgets->InstallationProgress = yon_gtk_builder_get_widget(builder, "InstallationProgress"); widgets->InstallationProgress = yon_gtk_builder_get_widget(builder, "InstallationProgress");
widgets->InstallTerminal = yon_gtk_builder_get_widget(builder, "InstallTerminal"); widgets->InstallTerminal = yon_gtk_builder_get_widget(builder, "InstallTerminal");
widgets->TerminalRevealer = yon_gtk_builder_get_widget(builder, "TerminalRevealer"); widgets->TerminalRevealer = yon_gtk_builder_get_widget(builder, "TerminalRevealer");
widgets->TerminalOverlay = yon_gtk_builder_get_widget(builder, "TerminalOverlay"); widgets->TerminalPaned = yon_gtk_builder_get_widget(builder, "TerminalPaned");
widgets->TerminalScroll = yon_gtk_builder_get_widget(builder, "TerminalScroll"); widgets->TerminalScroll = yon_gtk_builder_get_widget(builder, "TerminalScroll");
widgets->KernelsList = GTK_LIST_STORE(gtk_builder_get_object(builder,"KernelsList")); widgets->KernelsList = GTK_LIST_STORE(gtk_builder_get_object(builder,"KernelsList"));
widgets->AdditionsList = GTK_LIST_STORE(gtk_builder_get_object(builder,"AdditionsList")); widgets->AdditionsList = GTK_LIST_STORE(gtk_builder_get_object(builder,"AdditionsList"));
@ -1026,7 +1004,7 @@ void yon_main_window_complete(main_window *widgets){
g_signal_connect(G_OBJECT(widgets->MoreButton),"clicked",G_CALLBACK(on_terminal_revealer_open),widgets); g_signal_connect(G_OBJECT(widgets->MoreButton),"clicked",G_CALLBACK(on_terminal_revealer_open),widgets);
g_signal_connect(G_OBJECT(widgets->KernelsPackageBox),"row-selected",G_CALLBACK(on_selection_changed),widgets); g_signal_connect(G_OBJECT(widgets->KernelsPackageBox),"row-selected",G_CALLBACK(on_selection_changed),widgets);
g_signal_connect(G_OBJECT(widgets->AdditionsPackageBox),"row-selected",G_CALLBACK(on_selection_changed),widgets); g_signal_connect(G_OBJECT(widgets->AdditionsPackageBox),"row-selected",G_CALLBACK(on_selection_changed),widgets);
g_signal_connect(G_OBJECT(widgets->InstallTerminal),"child-exited",G_CALLBACK(on_command_execute_success),widgets); // g_signal_connect(G_OBJECT(widgets->InstallTerminal),"child-exited",G_CALLBACK(on_command_execute_success),widgets);
g_signal_connect(G_OBJECT(widgets->SaveMenuItem),"activate",G_CALLBACK(on_config_save),widgets); g_signal_connect(G_OBJECT(widgets->SaveMenuItem),"activate",G_CALLBACK(on_config_save),widgets);
g_signal_connect(G_OBJECT(widgets->SaveGlobalMenuItem),"activate",G_CALLBACK(on_config_global_save),widgets); g_signal_connect(G_OBJECT(widgets->SaveGlobalMenuItem),"activate",G_CALLBACK(on_config_global_save),widgets);
@ -1047,7 +1025,8 @@ void yon_main_window_complete(main_window *widgets){
glong columns = vte_terminal_get_column_count(VTE_TERMINAL(widgets->InstallTerminal)); glong columns = vte_terminal_get_column_count(VTE_TERMINAL(widgets->InstallTerminal));
vte_terminal_set_size(VTE_TERMINAL(widgets->InstallTerminal),columns,20); vte_terminal_set_size(VTE_TERMINAL(widgets->InstallTerminal),columns,20);
gtk_overlay_add_overlay(GTK_OVERLAY(widgets->TerminalOverlay),widgets->TerminalRevealer);
gtk_paned_add2(GTK_PANED(widgets->TerminalPaned),widgets->TerminalRevealer);
yon_interface_update(widgets); yon_interface_update(widgets);
yon_save_window_set_postsave_function(on_save_done,widgets); yon_save_window_set_postsave_function(on_save_done,widgets);

@ -47,6 +47,7 @@
#define get_package_info_command(target) yon_char_append("pacman -Si ",target) #define get_package_info_command(target) yon_char_append("pacman -Si ",target)
#define get_package_is_installed_command(target) yon_char_append("pacman -Qq ",target) #define get_package_is_installed_command(target) yon_char_append("pacman -Qq ",target)
#define get_package_is_updated_command(target) yon_char_append("pacman -Qu ",target) #define get_package_is_updated_command(target) yon_char_append("pacman -Qu ",target)
#define unload_command(target) yon_char_append("ubmunload ",target)
#define install_command(target) yon_char_append("pacman -Sy --noconfirm ",target) #define install_command(target) yon_char_append("pacman -Sy --noconfirm ",target)
#define remove_command(target) yon_char_append("pacman -R --noconfirm ",target) #define remove_command(target) yon_char_append("pacman -R --noconfirm ",target)
@ -55,7 +56,7 @@
#define get_installed_kernel_packages_command "cat /usr/lib/modules/*/pkgbase" #define get_installed_kernel_packages_command "cat /usr/lib/modules/*/pkgbase"
#define get_installed_kernel_modules_command "cat /memory/data/from/0/ublinux-data/module/*linux*" #define get_installed_kernel_modules_command "cat /memory/data/from/0/ublinux-data/module/*linux*"
#define build_command(target,filename,debug_bool,drivers_bool) yon_char_unite("ubmkuird -l -n ",filename," -k ",(debug_bool)?"--addon ":"",(drivers_bool)?"-H ":"",target,NULL) #define build_command(target,filename,debug_bool,drivers_bool) yon_char_unite("ubmkuird -l -n ",filename," -k ",target, " ",(debug_bool)?"--addon ":"",(drivers_bool)?"-H":"",NULL)
#define yon_config_get_custom_command(target) yon_char_unite("ubconfig --source ",target," get boot KERNEL_BOOT",NULL) #define yon_config_get_custom_command(target) yon_char_unite("ubconfig --source ",target," get boot KERNEL_BOOT",NULL)
#define config_get_local_command "ubconfig --source system get boot KERNEL_BOOT" #define config_get_local_command "ubconfig --source system get boot KERNEL_BOOT"
@ -114,7 +115,7 @@ typedef struct {
GtkWidget *InstallTerminal; GtkWidget *InstallTerminal;
GtkWidget *InstallationProgress; GtkWidget *InstallationProgress;
GtkWidget *MoreButton; GtkWidget *MoreButton;
GtkWidget *TerminalOverlay; GtkWidget *TerminalPaned;
GtkWidget *TerminalScroll; GtkWidget *TerminalScroll;
} main_window; } main_window;

@ -44,6 +44,7 @@
#define UPDATE_LABEL _("Update") #define UPDATE_LABEL _("Update")
#define OPE_INFO_LABEL _("Open package information") #define OPE_INFO_LABEL _("Open package information")
#define MORE_LABEL _("More") #define MORE_LABEL _("More")
#define LESS_LABEL _("Hide")
#define ACCEPT_LABEL _("Accept") #define ACCEPT_LABEL _("Accept")
#define WARNING_TITLE_LABEL _("Warning") #define WARNING_TITLE_LABEL _("Warning")

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<!-- Generated with glade 3.40.0 --> <!-- Generated with glade 3.38.2 -->
<interface domain="ubl-settings-kernel"> <interface domain="ubl-settings-kernel">
<requires lib="gtk+" version="3.24"/> <requires lib="gtk+" version="3.24"/>
<!-- interface-css-provider-path ubl-settings-kernel.css --> <!-- interface-css-provider-path ubl-settings-kernel.css -->
@ -161,6 +161,7 @@
<object class="GtkBox" id="InstallTagsBox"> <object class="GtkBox" id="InstallTagsBox">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="valign">center</property>
<property name="margin-top">5</property> <property name="margin-top">5</property>
<property name="margin-bottom">5</property> <property name="margin-bottom">5</property>
<property name="orientation">vertical</property> <property name="orientation">vertical</property>

@ -159,6 +159,7 @@
<object class="GtkBox" id="TagsBox"> <object class="GtkBox" id="TagsBox">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="valign">center</property>
<property name="margin-top">5</property> <property name="margin-top">5</property>
<property name="margin-bottom">5</property> <property name="margin-bottom">5</property>
<property name="orientation">vertical</property> <property name="orientation">vertical</property>
@ -177,6 +178,7 @@
<object class="GtkBox" id="InstallTagsBox"> <object class="GtkBox" id="InstallTagsBox">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="valign">center</property>
<property name="margin-top">5</property> <property name="margin-top">5</property>
<property name="margin-bottom">5</property> <property name="margin-bottom">5</property>
<property name="orientation">vertical</property> <property name="orientation">vertical</property>
@ -194,6 +196,7 @@
<child> <child>
<object class="GtkBox" id="RunBox"> <object class="GtkBox" id="RunBox">
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="valign">center</property>
<property name="margin-top">5</property> <property name="margin-top">5</property>
<property name="margin-bottom">5</property> <property name="margin-bottom">5</property>
<property name="orientation">vertical</property> <property name="orientation">vertical</property>

@ -52,11 +52,19 @@
<property name="step-increment">1</property> <property name="step-increment">1</property>
<property name="page-increment">10</property> <property name="page-increment">10</property>
</object> </object>
<object class="GtkRevealer" id="TerminalRevealer"> <object class="GtkFrame" id="TerminalRevealer">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="valign">end</property> <property name="label-xalign">0</property>
<property name="transition-type">slide-up</property> <property name="shadow-type">in</property>
<child>
<object class="GtkAlignment">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="top-padding">5</property>
<property name="bottom-padding">5</property>
<property name="left-padding">5</property>
<property name="right-padding">5</property>
<child> <child>
<object class="GtkBox"> <object class="GtkBox">
<property name="visible">True</property> <property name="visible">True</property>
@ -67,7 +75,6 @@
<property name="sensitive">False</property> <property name="sensitive">False</property>
<property name="can-focus">True</property> <property name="can-focus">True</property>
<property name="vadjustment">adjustment1</property> <property name="vadjustment">adjustment1</property>
<property name="vscroll-policy">natural</property>
<property name="encoding">UTF-8</property> <property name="encoding">UTF-8</property>
<property name="pointer-autohide">True</property> <property name="pointer-autohide">True</property>
<property name="scroll-on-keystroke">True</property> <property name="scroll-on-keystroke">True</property>
@ -95,6 +102,11 @@
</object> </object>
</child> </child>
</object> </object>
</child>
<child type="label_item">
<placeholder/>
</child>
</object>
<object class="GtkImage" id="image1"> <object class="GtkImage" id="image1">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
@ -187,9 +199,11 @@
</packing> </packing>
</child> </child>
<child> <child>
<object class="GtkOverlay" id="TerminalOverlay"> <object class="GtkBox">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="orientation">vertical</property>
<property name="spacing">5</property>
<child> <child>
<object class="GtkNotebook" id="MainNotebook"> <object class="GtkNotebook" id="MainNotebook">
<property name="visible">True</property> <property name="visible">True</property>
@ -214,6 +228,7 @@
<object class="GtkViewport"> <object class="GtkViewport">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="margin-right">5</property>
<property name="margin-end">5</property> <property name="margin-end">5</property>
<child> <child>
<object class="GtkListBox" id="KernelsPackageBox"> <object class="GtkListBox" id="KernelsPackageBox">
@ -250,6 +265,8 @@
<object class="GtkScrolledWindow"> <object class="GtkScrolledWindow">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">True</property> <property name="can-focus">True</property>
<property name="margin-left">5</property>
<property name="margin-right">5</property>
<property name="margin-start">5</property> <property name="margin-start">5</property>
<property name="margin-end">5</property> <property name="margin-end">5</property>
<property name="margin-top">5</property> <property name="margin-top">5</property>
@ -258,6 +275,7 @@
<object class="GtkViewport"> <object class="GtkViewport">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="margin-right">5</property>
<property name="margin-end">5</property> <property name="margin-end">5</property>
<child> <child>
<object class="GtkListBox" id="AdditionsPackageBox"> <object class="GtkListBox" id="AdditionsPackageBox">
@ -287,22 +305,29 @@
</packing> </packing>
</child> </child>
</object> </object>
<packing>
<property name="index">-1</property>
</packing>
</child>
</object>
<packing> <packing>
<property name="expand">True</property> <property name="expand">True</property>
<property name="fill">True</property> <property name="fill">True</property>
<property name="position">1</property> <property name="position">0</property>
</packing> </packing>
</child> </child>
<child>
<object class="GtkPaned" id="TerminalPaned">
<property name="can-focus">True</property>
<property name="orientation">vertical</property>
<property name="position">250</property>
<property name="wide-handle">True</property>
<child>
<placeholder/>
</child>
<child>
<placeholder/>
</child>
</object> </object>
<packing> <packing>
<property name="expand">True</property> <property name="expand">True</property>
<property name="fill">True</property> <property name="fill">True</property>
<property name="position">0</property> <property name="position">1</property>
</packing> </packing>
</child> </child>
<child> <child>
@ -388,8 +413,22 @@
<packing> <packing>
<property name="expand">False</property> <property name="expand">False</property>
<property name="fill">True</property> <property name="fill">True</property>
<property name="position">2</property>
</packing>
</child>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">1</property> <property name="position">1</property>
</packing> </packing>
</child> </child>
</object> </object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
</object>
</interface> </interface>

@ -162,67 +162,78 @@ msgstr ""
msgid "More" msgid "More"
msgstr "" msgstr ""
#: source/ubl-strings.h:48 #: source/ubl-strings.h:47
msgid "Accept" msgid "Hide"
msgstr "" msgstr ""
#: source/ubl-strings.h:49 #: source/ubl-strings.h:49
msgid "Warning" msgid "Accept"
msgstr "" msgstr ""
#: source/ubl-strings.h:50 #: source/ubl-strings.h:50
msgid "Warning"
msgstr ""
#: source/ubl-strings.h:51
msgid "Dependences" msgid "Dependences"
msgstr "" msgstr ""
#: source/ubl-strings.h:52 #: source/ubl-strings.h:53
msgid "Module" msgid "Module"
msgstr "" msgstr ""
#: source/ubl-strings.h:53 #: source/ubl-strings.h:54
msgid "Package" msgid "Package"
msgstr "" msgstr ""
#: source/ubl-strings.h:54 #: source/ubl-strings.h:55
msgid "Description" msgid "Description"
msgstr "" msgstr ""
#: source/ubl-strings.h:56 #: source/ubl-strings.h:57
msgid "Kernel and additions listst are loading"
msgstr ""
#: source/ubl-strings.h:59
msgid "Terminal operation success" msgid "Terminal operation success"
msgstr "" msgstr ""
#: source/ubl-strings.h:57 #: source/ubl-strings.h:60
msgid "Terminal operation failed" msgid "Terminal operation failed"
msgstr "" msgstr ""
#: source/ubl-strings.h:58 #: source/ubl-strings.h:61
msgid "Terminal operation in process" msgid "Terminal operation in process"
msgstr "" msgstr ""
#: source/ubl-strings.h:58 #: source/ubl-strings.h:62
msgid "The package with the module has been removed, but the module is not disabled from the system, as it is used by other system programs. After rebooting, the module will be disabled and removed." msgid ""
"The package with the module has been removed, but the module is not disabled "
"from the system, as it is used by other system programs. After rebooting, "
"the module will be disabled and removed."
msgstr "" msgstr ""
#: source/ubl-strings.h:60 #: source/ubl-strings.h:64
msgid "Are you sure want to install kernel" msgid "Are you sure want to install kernel"
msgstr "" msgstr ""
#: source/ubl-strings.h:61 #: source/ubl-strings.h:65
msgid "Are you sure want to install package" msgid "Are you sure want to install package"
msgstr "" msgstr ""
#: source/ubl-strings.h:62 #: source/ubl-strings.h:66
msgid "Are you sure want to remove module" msgid "Are you sure want to remove module"
msgstr "" msgstr ""
#: source/ubl-strings.h:63 #: source/ubl-strings.h:67
msgid "Are you sure want to remove package" msgid "Are you sure want to remove package"
msgstr "" msgstr ""
#: source/ubl-strings.h:64 #: source/ubl-strings.h:68
msgid "Are you sure want to launch" msgid "Are you sure want to launch"
msgstr "" msgstr ""
#: source/ubl-strings.h:64 #: source/ubl-strings.h:68
msgid "" msgid ""
"for boot?\n" "for boot?\n"
"\n" "\n"

@ -163,67 +163,81 @@ msgstr "Открыть информацию о пакете"
msgid "More" msgid "More"
msgstr "Подробнее" msgstr "Подробнее"
#: source/ubl-strings.h:48 #: source/ubl-strings.h:47
msgid "Hide"
msgstr "Скрыть"
#: source/ubl-strings.h:49
msgid "Accept" msgid "Accept"
msgstr "Принять" msgstr "Принять"
#: source/ubl-strings.h:49 #: source/ubl-strings.h:50
msgid "Warning" msgid "Warning"
msgstr "Внимание" msgstr "Внимание"
#: source/ubl-strings.h:50 #: source/ubl-strings.h:51
msgid "Dependences" msgid "Dependences"
msgstr "Зависимости" msgstr "Зависимости"
#: source/ubl-strings.h:52 #: source/ubl-strings.h:53
msgid "Module" msgid "Module"
msgstr "Модуль" msgstr "Модуль"
#: source/ubl-strings.h:53 #: source/ubl-strings.h:54
msgid "Package" msgid "Package"
msgstr "Пакет" msgstr "Пакет"
#: source/ubl-strings.h:54 #: source/ubl-strings.h:55
msgid "Description" msgid "Description"
msgstr "Описание" msgstr "Описание"
#: source/ubl-strings.h:56 #: source/ubl-strings.h:57
msgid "Kernel and additions listst are loading"
msgstr "Список ядер и дополнений загружается"
#: source/ubl-strings.h:59
msgid "Terminal operation success" msgid "Terminal operation success"
msgstr "Операция терминала успешно завершена" msgstr "Операция терминала успешно завершена"
#: source/ubl-strings.h:57 #: source/ubl-strings.h:60
msgid "Terminal operation failed" msgid "Terminal operation failed"
msgstr "Операция терминала завершена с ошибкой" msgstr "Операция терминала завершена с ошибкой"
#: source/ubl-strings.h:58 #: source/ubl-strings.h:61
msgid "Terminal operation in process" msgid "Terminal operation in process"
msgstr "Операция терминала в процессе выполнения" msgstr "Операция терминала в процессе выполнения"
#: source/ubl-strings.h:58 #: source/ubl-strings.h:62
msgid "The package with the module has been removed, but the module is not disabled from the system, as it is used by other system programs. After rebooting, the module will be disabled and removed." msgid ""
msgstr "Пакет с модулем удалён, но модуль не отключен от системы, так как используется другими системными программами. После перезагрузки модуль будет отключен и удалён." "The package with the module has been removed, but the module is not disabled "
"from the system, as it is used by other system programs. After rebooting, "
"the module will be disabled and removed."
msgstr ""
"Пакет с модулем удалён, но модуль не отключен от системы, так как "
"используется другими системными программами. После перезагрузки модуль будет "
"отключен и удалён."
#: source/ubl-strings.h:60 #: source/ubl-strings.h:64
msgid "Are you sure want to install kernel" msgid "Are you sure want to install kernel"
msgstr "Вы хотите установить в систему ядро" msgstr "Вы хотите установить в систему ядро"
#: source/ubl-strings.h:61 #: source/ubl-strings.h:65
msgid "Are you sure want to install package" msgid "Are you sure want to install package"
msgstr "Вы хотите установить в систему пакет с ядром" msgstr "Вы хотите установить в систему пакет с ядром"
#: source/ubl-strings.h:62 #: source/ubl-strings.h:66
msgid "Are you sure want to remove module" msgid "Are you sure want to remove module"
msgstr "Вы действительно хотите удалить из системы пакет с модулем ядра" msgstr "Вы действительно хотите удалить из системы пакет с модулем ядра"
#: source/ubl-strings.h:63 #: source/ubl-strings.h:67
msgid "Are you sure want to remove package" msgid "Are you sure want to remove package"
msgstr "Вы действительно хотите удалить из системы пакет с ядром" msgstr "Вы действительно хотите удалить из системы пакет с ядром"
#: source/ubl-strings.h:64 #: source/ubl-strings.h:68
msgid "Are you sure want to launch" msgid "Are you sure want to launch"
msgstr "Выбрать ядро" msgstr "Выбрать ядро"
#: source/ubl-strings.h:64 #: source/ubl-strings.h:68
msgid "" msgid ""
"for boot?\n" "for boot?\n"
"\n" "\n"

Loading…
Cancel
Save