Buttons on the kernels page, finished working with table

pull/9/head
parent 0bd1e1dbd0
commit 3685d14aa6

@ -62,7 +62,6 @@ add_custom_target(
DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/${GRESOURCE_C}
)
add_definitions(-DVTE_INCLUDE)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wextra -Werror -Wmissing-declarations -fdiagnostics-color=always \
-O2 -pipe -fno-plt -fexceptions \

@ -1 +0,0 @@
#cmakedefine WEBKIT_FOUND

@ -39,6 +39,19 @@ void yon_load_proceed(YON_CONFIG_TYPE type){
}
}
void yon_interface_update(main_window *widgets){
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));
}
int kernels_size;
config_str kernels = yon_resource_open_file(kernels_path, &kernels_size);
for (int i=1;i<kernels_size;i++){
GtkWidget * current = yon_tab_row_new(GTK_LIST_BOX(widgets->KernelsPackageBox),kernels[i],widgets);
gtk_widget_set_can_focus(gtk_widget_get_parent(current),0);
}
}
info_window *yon_info_window_new(){
info_window *window = malloc(sizeof(info_window));
@ -89,26 +102,89 @@ int yon_tag_add(GtkBox *target,char *tag_label, char *tag_style, char *icon_name
return 0;
}
gboolean on_command_execute_success(GtkWidget *,gint,main_window *widgets){
yon_interface_update(widgets);
return G_SOURCE_REMOVE;
}
void *yon_command_execute_async(char *command,main_window *widgets){
yon_terminal_integrated_start(widgets->InstallTerminal,command);
glong columns = vte_terminal_get_column_count(VTE_TERMINAL(widgets->InstallTerminal));
vte_terminal_set_size(VTE_TERMINAL(widgets->InstallTerminal),columns,20);
return NULL;
}
void on_module_install_clicked(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*);
char *command = install_command(tab->module);
yon_command_execute_async(command,widgets);
}
void on_package_install_clicked(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*);
char *command = install_command(tab->package);
yon_command_execute_async(command,widgets);
}
void on_module_remove_clicked(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*);
char *command = remove_command(tab->module);
yon_command_execute_async(command,widgets);
}
void on_package_remove_clicked(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*);
char *command = remove_command(tab->package);
yon_command_execute_async(command,widgets);
}
GtkWidget *yon_tab_row_new(GtkListBox *target, char *target_string, main_window *widgets){
GtkBuilder *builder = gtk_builder_new_from_resource(glade_table_row_path);
GtkWidget *main_box = yon_gtk_builder_get_widget(builder,"TableRowLabel");
GtkWidget *icon_box = yon_gtk_builder_get_widget(builder,"IconBox");
GtkWidget *name_label = yon_gtk_builder_get_widget(builder,"NameLabel");
GtkWidget *install_tags_box = yon_gtk_builder_get_widget(builder,"InstallTagsBox");
GtkWidget *run_tags_box = yon_gtk_builder_get_widget(builder,"RunBox");
GtkWidget *tags_box = yon_gtk_builder_get_widget(builder,"TagsBox");
GtkWidget *description_label = yon_gtk_builder_get_widget(builder,"DescriptionLabel");
GtkWidget *remove_module_button = yon_gtk_builder_get_widget(builder,"RemoveModuleButton");
GtkWidget *remove_package_button = yon_gtk_builder_get_widget(builder,"RemovePackageButton");
GtkWidget *install_module_button = yon_gtk_builder_get_widget(builder,"InstallModuleButton");
GtkWidget *install_package_button = yon_gtk_builder_get_widget(builder,"InstallPackageButton");
gtk_list_box_insert(target,main_box,-1);
kernels_tab *tab = malloc(sizeof(kernels_tab));
tab->main_box = yon_gtk_builder_get_widget(builder,"TableRowLabel");
tab->icon_box = yon_gtk_builder_get_widget(builder,"IconBox");
tab->name_label = yon_gtk_builder_get_widget(builder,"NameLabel");
tab->install_tags_box = yon_gtk_builder_get_widget(builder,"InstallTagsBox");
tab->run_tags_box = yon_gtk_builder_get_widget(builder,"RunBox");
tab->tags_box = yon_gtk_builder_get_widget(builder,"TagsBox");
tab->description_label = yon_gtk_builder_get_widget(builder,"DescriptionLabel");
tab->remove_module_button = yon_gtk_builder_get_widget(builder,"RemoveModuleButton");
tab->remove_package_button = yon_gtk_builder_get_widget(builder,"RemovePackageButton");
tab->install_module_button = yon_gtk_builder_get_widget(builder,"InstallModuleButton");
tab->install_package_button = yon_gtk_builder_get_widget(builder,"InstallPackageButton");
tab->changelog_button = yon_gtk_builder_get_widget(builder,"ChangelogButton");
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,"tab",tab);
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->remove_module_button),"clicked",G_CALLBACK(on_module_remove_clicked),dict);
g_signal_connect(G_OBJECT(tab->remove_package_button),"clicked",G_CALLBACK(on_package_remove_clicked),dict);
g_signal_connect(G_OBJECT(tab->changelog_button),"clicked",G_CALLBACK(on_changelog_clicked),tab);
gtk_list_box_insert(target,tab->main_box,-1);
int size;
config_str parsed = yon_char_parse(target_string,&size,";");
if (size){
char *name = yon_char_unite("<b>",parsed[2],"</b>\n<i>",MODULE_LABEL," ",parsed[0],"\n",PACKAGE_LABEL," ",parsed[1],"</i>",NULL);
char *boot_run = config(KERNEL_BOOT_parameter);
if (!yon_char_is_empty(boot_run)&&!strcmp(parsed[1],boot_run)){
yon_tag_add(GTK_BOX(tab->run_tags_box),BOOT_RUN_LABEL,"tag_orange",restart_icon_path);
}
tab->name = yon_char_new(parsed[0]);
tab->module = yon_char_new(parsed[1]);
tab->package = yon_char_new(parsed[2]);
char *name = yon_char_unite("<b>",tab->name,"</b>\n<i>",MODULE_LABEL," ",tab->module,"\n",PACKAGE_LABEL," ",tab->package,"</i>",NULL);
int types_size;
config_str types_parsed = yon_char_parse(parsed[5],&types_size,", ");
for (int k=0;k<types_size;k++){
@ -129,35 +205,44 @@ GtkWidget *yon_tab_row_new(GtkListBox *target, char *target_string, main_window
tag_type = "tag_purple";
} else continue;
yon_tag_add(GTK_BOX(tags_box),types_parsed[k],tag_type,NULL);
yon_tag_add(GTK_BOX(tab->tags_box),types_parsed[k],tag_type,NULL);
}
char *check_install_command = get_package_is_installed_command(parsed[1]);
char *check_install_command = get_package_is_installed_command(tab->module);
if (!system(check_install_command)){
yon_tag_add(GTK_BOX(install_tags_box),MODULE_INSTALLED_LABEL,"tag_green",module_icon_path);
gtk_widget_show(remove_module_button);
gtk_widget_show(remove_package_button);
gtk_widget_hide(install_module_button);
gtk_widget_hide(install_package_button);
yon_tag_add(GTK_BOX(tab->install_tags_box),MODULE_INSTALLED_LABEL,"tag_green",module_icon_path);
GtkWidget *module_image = gtk_image_new_from_icon_name(module_icon_path,GTK_ICON_SIZE_LARGE_TOOLBAR);
gtk_box_pack_start(GTK_BOX(tab->icon_box),module_image,0,0,2);
GtkWidget *package_image = gtk_image_new_from_icon_name(package_icon_path,GTK_ICON_SIZE_LARGE_TOOLBAR);
gtk_box_pack_start(GTK_BOX(tab->icon_box),package_image,0,0,2);
gtk_widget_show(module_image);
gtk_widget_show(package_image);
gtk_widget_show(tab->remove_module_button);
gtk_widget_show(tab->remove_package_button);
gtk_widget_hide(tab->install_module_button);
gtk_widget_hide(tab->install_package_button);
} else {
free(check_install_command);
check_install_command = get_package_is_installed_command(parsed[2]);
check_install_command = get_package_is_installed_command(tab->package);
if (!system(check_install_command)){
yon_tag_add(GTK_BOX(install_tags_box),PACKAGE_INSTALLED_LABEL,"tag_green",package_icon_path);
gtk_widget_hide(install_package_button);
gtk_widget_show(remove_package_button);
yon_tag_add(GTK_BOX(tab->install_tags_box),PACKAGE_INSTALLED_LABEL,"tag_green",package_icon_path);
GtkWidget *package_image = gtk_image_new_from_icon_name(package_icon_path,GTK_ICON_SIZE_LARGE_TOOLBAR);
gtk_box_pack_start(GTK_BOX(tab->icon_box),package_image,0,0,2);
gtk_widget_show(package_image);
gtk_widget_hide(tab->install_package_button);
gtk_widget_show(tab->remove_package_button);
}
}
yon_char_parsed_free(types_parsed,types_size);
gtk_label_set_markup(GTK_LABEL(name_label),name);
gtk_label_set_text(GTK_LABEL(description_label),parsed[6]);
gtk_size_group_add_widget(GTK_SIZE_GROUP(widgets->StatusSizeGroup),icon_box);
gtk_size_group_add_widget(GTK_SIZE_GROUP(widgets->KernelSizeGroup),name_label);
gtk_size_group_add_widget(GTK_SIZE_GROUP(widgets->TagsSizeGroup),tags_box);
gtk_size_group_add_widget(GTK_SIZE_GROUP(widgets->InstallSizeGroup),install_tags_box);
gtk_size_group_add_widget(GTK_SIZE_GROUP(widgets->RunSizeGroup),run_tags_box);
gtk_size_group_add_widget(GTK_SIZE_GROUP(widgets->DescriptionSizeGroup),description_label);
gtk_label_set_markup(GTK_LABEL(tab->name_label),name);
gtk_label_set_text(GTK_LABEL(tab->description_label),parsed[6]);
gtk_size_group_add_widget(GTK_SIZE_GROUP(widgets->StatusSizeGroup),tab->icon_box);
gtk_size_group_add_widget(GTK_SIZE_GROUP(widgets->KernelSizeGroup),tab->name_label);
gtk_size_group_add_widget(GTK_SIZE_GROUP(widgets->TagsSizeGroup),tab->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->RunSizeGroup),tab->run_tags_box);
gtk_size_group_add_widget(GTK_SIZE_GROUP(widgets->DescriptionSizeGroup),tab->description_label);
}
return main_box;
return tab->main_box;
}
// standard functions
@ -184,8 +269,7 @@ void config_init(){
void on_update_clicked(GtkWidget *, main_window *widgets){
if (widgets){};
yon_interface_update(widgets);
}
void on_info_clicked(GtkWidget *, main_window *widgets){
@ -204,14 +288,12 @@ void on_info_clicked(GtkWidget *, main_window *widgets){
GList *list3 = gtk_container_get_children(GTK_CONTAINER(g_list_nth_data(list2,1)));
char * target_str = yon_char_new((char*)gtk_label_get_text(GTK_LABEL(g_list_nth_data(list3,0))));
int size;
char *parameter = yon_char_divide_search(target_str,"\n",-1);
free(parameter);
parameter = yon_char_replace(target_str,"\n",",");
int sz;
config_str parsed = yon_char_parse(parameter,&sz,",");
free(parameter);
parameter = yon_char_parsed_to_string(parsed,sz," ");
config_str info = yon_config_load(get_package_info_command(parameter),&size);
config_str parsed = yon_char_parse(target_str,&size,"\n");
char *package=NULL;
if (size&&(package = strstr(parsed[2],": "))){
package+=2;
}
config_str info = yon_config_load(get_package_info_command(package),&size);
if (size!=-1){
char *final_text = yon_char_parsed_to_string(info,size,"");
gtk_label_set_text(GTK_LABEL(window->InfoLabel),final_text);
@ -224,36 +306,18 @@ void on_info_clicked(GtkWidget *, main_window *widgets){
gtk_widget_show(window->window);
}
void on_changelog_clicked(GtkWidget *, main_window *widgets){
void on_changelog_clicked(GtkWidget *, kernels_tab *tab){
info_window *window = yon_info_window_new();
yon_gtk_window_setup(GTK_WINDOW(window->window),GTK_WINDOW(widgets->Window),INFO_TITLE_LABEL,icon_path,"changelog_window");
GtkWidget *current_tree=NULL;
if (gtk_notebook_get_current_page(GTK_NOTEBOOK(widgets->MainNotebook))==0){
current_tree = widgets->KernelsPackageBox;
yon_gtk_window_setup(GTK_WINDOW(window->window),GTK_WINDOW(gtk_widget_get_toplevel(tab->main_box)),INFO_TITLE_LABEL,icon_path,"changelog_window");
int size;
config_str info = yon_config_load(yon_debug_output("%s\n",get_kernel_changelog_command(tab->package)),&size);
if (size!=-1){
char *full_text = yon_char_parsed_to_string(info,size,"");
gtk_label_set_text(GTK_LABEL(window->InfoLabel),full_text);
free(full_text);
yon_char_parsed_free(info,size);
} else {
current_tree = widgets->AdditionsPackageBox;
}
GtkListBoxRow *target = gtk_list_box_get_selected_row(GTK_LIST_BOX(current_tree));
if (target){
GList *list = gtk_container_get_children(GTK_CONTAINER(target));
GList *list2 = gtk_container_get_children(GTK_CONTAINER(g_list_nth_data(list,0)));
GList *list3 = gtk_container_get_children(GTK_CONTAINER(g_list_nth_data(list2,1)));
char * target_str = yon_char_new((char*)gtk_label_get_text(GTK_LABEL(g_list_nth_data(list3,0))));
int size;
char *parameter = yon_char_divide_search(target_str,"\n",-1);
free(parameter);
parameter = yon_char_replace(target_str,"\n",",");
int sz;
config_str parsed = yon_char_parse(parameter,&sz,",");
config_str info = yon_config_load(yon_debug_output("%s\n",get_kernel_changelog_command(parsed[0])),&size);
if (size!=-1){
char *final_text = yon_char_parsed_to_string(info,size,"");
gtk_label_set_text(GTK_LABEL(window->InfoLabel),final_text);
free(final_text);
yon_char_parsed_free(info,size);
} else {
gtk_label_set_text(GTK_LABEL(window->InfoLabel),PACKAGE_NOT_FOUND_LABEL);
}
gtk_label_set_text(GTK_LABEL(window->InfoLabel),PACKAGE_NOT_FOUND_LABEL);
}
gtk_widget_show(window->window);
}
@ -266,19 +330,22 @@ void on_building_clicked(GtkWidget *, main_window *widgets){
}
void on_install_module_toggled(GtkWidget *, char *path, main_window *widgets){
if (widgets||path){};
}
void on_install_package_toggled(GtkWidget *, char *path, main_window *widgets){
void on_boot_toggled(GtkWidget *, char *path, main_window *widgets){
if (widgets||path){};
}
void on_boot_toggled(GtkWidget *, char *path, main_window *widgets){
if (widgets||path){};
void on_terminal_revealer_open(GtkWidget *, main_window *widgets){
int opened = gtk_revealer_get_child_revealed(GTK_REVEALER(widgets->TerminalRevealer));
gtk_revealer_set_reveal_child(GTK_REVEALER(widgets->TerminalRevealer),!opened);
switch (opened){
case 0: {
gtk_revealer_set_transition_type(GTK_REVEALER(widgets->TerminalRevealer),GTK_REVEALER_TRANSITION_TYPE_SLIDE_UP);
} break;
case 1: {
gtk_revealer_set_transition_type(GTK_REVEALER(widgets->TerminalRevealer),GTK_REVEALER_TRANSITION_TYPE_SLIDE_DOWN);
} break;
}
}
/**yon_main_window_complete(main_window *widgets)
@ -302,6 +369,12 @@ void yon_main_window_complete(main_window *widgets){
widgets->KernelsTree = yon_gtk_builder_get_widget(builder, "KernelsTree");
widgets->AdditionsUpperTree = yon_gtk_builder_get_widget(builder, "AdditionsUpperTree");
widgets->AdditionsTree = yon_gtk_builder_get_widget(builder, "TestListBox");
widgets->MainRevealer = yon_gtk_builder_get_widget(builder, "MainRevealer");
widgets->MoreButton = yon_gtk_builder_get_widget(builder, "MoreButton");
widgets->InstallationProgress = yon_gtk_builder_get_widget(builder, "InstallationProgress");
widgets->InstallTerminal = yon_gtk_builder_get_widget(builder, "InstallTerminal");
widgets->TerminalRevealer = yon_gtk_builder_get_widget(builder, "TerminalRevealer");
widgets->TerminalOverlay = yon_gtk_builder_get_widget(builder, "TerminalOverlay");
widgets->KernelsList = GTK_LIST_STORE(gtk_builder_get_object(builder,"KernelsList"));
widgets->AdditionsList = GTK_LIST_STORE(gtk_builder_get_object(builder,"AdditionsList"));
widgets->KernelsPackageBox = yon_gtk_builder_get_widget(builder,"KernelsPackageBox");
@ -315,15 +388,15 @@ void yon_main_window_complete(main_window *widgets){
g_signal_connect(G_OBJECT(widgets->UpdateButton),"clicked",G_CALLBACK(on_update_clicked),widgets);
g_signal_connect(G_OBJECT(widgets->InfoButton),"clicked",G_CALLBACK(on_info_clicked),widgets);
g_signal_connect(G_OBJECT(widgets->LogButton),"clicked",G_CALLBACK(on_changelog_clicked),widgets);
g_signal_connect(G_OBJECT(widgets->BuildingButton),"clicked",G_CALLBACK(on_building_clicked),widgets);
g_signal_connect(G_OBJECT(widgets->MoreButton),"clicked",G_CALLBACK(on_terminal_revealer_open),widgets);
g_signal_connect(G_OBJECT(widgets->InstallTerminal),"child-exited",G_CALLBACK(on_command_execute_success),widgets);
int kernels_size;
config_str kernels = yon_resource_open_file(kernels_path, &kernels_size);
for (int i=1;i<kernels_size;i++){
GtkWidget * current = yon_tab_row_new(GTK_LIST_BOX(widgets->KernelsPackageBox),kernels[i],widgets);
gtk_widget_set_can_focus(gtk_widget_get_parent(current),0);
}
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);
yon_interface_update(widgets);
}
yon_load_proceed(YON_CONFIG_LOCAL);
}

@ -1,5 +1,6 @@
#include <gtk/gtk.h>
#include <gtk/gtkx.h>
#include <vte/vte.h>
#include <locale.h>
#include <stdio.h>
#include <unistd.h>
@ -7,6 +8,7 @@
#include <libintl.h>
#include <getopt.h>
#include <libintl.h>
#define VTE_INCLUDE
#include <libublsettings.h>
#include <libublsettings-gtk3.h>
#include <libublsettingsui-gtk3.h>
@ -31,6 +33,8 @@
#define kernels_addon_path "resource:///com/ublinux/csv/kernel-list-addon.csv"
#define module_icon_path "com.ublinux.libublsettingsui-gtk3.cubes-symbolic"
#define package_icon_path "com.ublinux.libublsettingsui-gtk3.dropbox-symbolic"
#define run_icon_path "com.ublinux.libublsettingsui-gtk3.play-symbolic"
#define restart_icon_path "com.ublinux.libublsettingsui-gtk3.reset-symbolic"
#define LocalePath "/usr/share/locale"
#define LocaleName "ubl-settings-kernel"
@ -41,6 +45,9 @@
#define get_package_info_command(target) yon_char_append("pacman -Q --info ",target)
#define get_package_is_installed_command(target) yon_char_append("pacman -Qqs ",target)
#define install_command(target) yon_char_append("pacman -S --noconfirm ",target)
#define remove_command(target) yon_char_append("pacman -R --noconfirm ",target)
#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_global_command "ubconfig --source global get boot KERNEL_BOOT"
@ -49,6 +56,8 @@
#define config_get_global_only_parameters ""
#define config_get_local_only_parameters ""
#define KERNEL_BOOT_parameter "KERNEL_BOOT"
typedef char* string;
string version_application;
@ -82,6 +91,13 @@ typedef struct {
GtkSizeGroup *InstallSizeGroup;
GtkSizeGroup *RunSizeGroup;
GtkSizeGroup *DescriptionSizeGroup;
GtkWidget *MainRevealer;
GtkWidget *TerminalRevealer;
GtkWidget *InstallTerminal;
GtkWidget *InstallationProgress;
GtkWidget *MoreButton;
GtkWidget *TerminalOverlay;
} main_window;
@ -104,12 +120,41 @@ typedef struct {
GtkWidget *DriversCheck;
}install_window;
typedef struct {
GtkWidget *main_box;
GtkWidget *icon_box;
GtkWidget *name_label;
GtkWidget *install_tags_box;
GtkWidget *run_tags_box;
GtkWidget *tags_box;
GtkWidget *description_label;
GtkWidget *remove_module_button;
GtkWidget *remove_package_button;
GtkWidget *install_module_button;
GtkWidget *install_package_button;
GtkWidget *changelog_button;
char *module;
char *package;
char *name;
} kernels_tab;
void yon_interface_update(main_window *widgets);
void yon_load_proceed(YON_CONFIG_TYPE type);
void config_init();
void yon_main_window_complete(main_window *widgets);
gboolean on_command_execute_success(GtkWidget *,gint,main_window *widgets);
void *yon_command_execute_async(char *command,main_window *widgets);
void on_module_install_clicked(GtkWidget *,dictionary *dict);
void on_package_install_clicked(GtkWidget *,dictionary *dict);
void on_module_remove_clicked(GtkWidget *,dictionary *dict);
void on_package_remove_clicked(GtkWidget *,dictionary *dict);
int yon_tag_add(GtkBox *target,char *tag_label, char *tag_style, char *icon_name);
GtkWidget *yon_tab_row_new(GtkListBox *target, char *target_string, main_window *widgets);
@ -117,15 +162,13 @@ void on_update_clicked(GtkWidget *, main_window *widgets);
void on_info_clicked(GtkWidget *, main_window *widgets);
void on_changelog_clicked(GtkWidget *, main_window *widgets);
void on_changelog_clicked(GtkWidget *, kernels_tab *tab);
void on_building_clicked(GtkWidget *, main_window *widgets);
void on_install_module_toggled(GtkWidget *, char *path, main_window *widgets);
void on_install_package_toggled(GtkWidget *, char *path, main_window *widgets);
void on_boot_toggled(GtkWidget *, char *path, main_window *widgets);
void on_terminal_revealer_open(GtkWidget *, main_window *widgets);
info_window *yon_info_window_new();
install_window *yon_install_window_new();

@ -7,8 +7,9 @@
#define MODULE_LABEL _("Module:")
#define PACKAGE_LABEL _("Package:")
#define PACKAGE_NOT_FOUND_LABEL _("Packages were not found")
#define PACKAGE_NOT_FOUND_LABEL _("Package were not found")
#define CHANGELOG_NOT_FOUND_LABEL _("Changelog was not found")
#define PACKAGE_INSTALLED_LABEL _("Package installed")
#define MODULE_INSTALLED_LABEL _("Module installed")
#define MODULE_INSTALLED_LABEL _("Module installed")
#define BOOT_RUN_LABEL _("Startup boot")

@ -1,7 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated with glade 3.38.2 -->
<interface>
<interface domain="ubl-settings-kernel">
<requires lib="gtk+" version="3.24"/>
<!-- interface-css-provider-path ubl-settings-kernel.css -->
<object class="GtkApplicationWindow" id="MainWindow">
<property name="width-request">800</property>
<property name="height-request">600</property>

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated with glade 3.38.2 -->
<!-- Generated with glade 3.40.0 -->
<interface domain="ubl-settings-kernel">
<requires lib="gtk+" version="3.24"/>
<!-- interface-css-provider-path ubl-settings-kernel.css -->
@ -35,9 +35,6 @@
<object class="GtkLabel" id="NameLabel">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">&lt;b&gt;Linux 5.15&lt;/b&gt;
Modules: ubm-001-linux515
Packages: linux515</property>
<property name="use-markup">True</property>
<property name="track-visited-links">False</property>
<property name="xalign">0</property>
@ -113,6 +110,9 @@ Packages: linux515</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>
<style>
<class name="buttonlistfx"/>
</style>
</object>
<packing>
<property name="expand">False</property>
@ -126,6 +126,9 @@ Packages: linux515</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>
<style>
<class name="buttonlistfx"/>
</style>
</object>
<packing>
<property name="expand">False</property>
@ -138,6 +141,9 @@ Packages: linux515</property>
<property name="label" translatable="yes">Remove module</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>
<style>
<class name="buttonlistfx"/>
</style>
</object>
<packing>
<property name="expand">False</property>
@ -150,6 +156,9 @@ Packages: linux515</property>
<property name="label" translatable="yes">Remove package</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>
<style>
<class name="buttonlistfx"/>
</style>
</object>
<packing>
<property name="expand">False</property>
@ -185,7 +194,6 @@ Packages: linux515</property>
<object class="GtkLabel" id="DescriptionLabel">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">The Linux kernel v5.15 and modules, headers. Manual modules: acpi_call, bbswitch, broadcom-wl, r8168, rtl8723bu, tp_smapi, vhba-module, virtualbox-host-modules, zfs</property>
<property name="wrap">True</property>
<property name="xalign">0</property>
</object>

@ -2,6 +2,7 @@
<!-- Generated with glade 3.38.2 -->
<interface domain="ubl-settings-kernel">
<requires lib="gtk+" version="3.24"/>
<requires lib="vte-2.91" version="0.76"/>
<!-- interface-css-provider-path ubl-settings-kernel.css -->
<object class="GtkListStore" id="AdditionsList">
<columns>
@ -42,9 +43,140 @@
<column type="gchararray"/>
</columns>
</object>
<object class="GtkRevealer" id="MainRevealer">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="valign">end</property>
<property name="transition-type">slide-up</property>
<property name="reveal-child">True</property>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="orientation">vertical</property>
<property name="spacing">5</property>
<child>
<object class="GtkRevealer" id="TerminalRevealer">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="transition-type">slide-up</property>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<child>
<object class="VteTerminal" id="InstallTerminal">
<property name="visible">True</property>
<property name="sensitive">False</property>
<property name="can-focus">True</property>
<property name="vscroll-policy">natural</property>
<property name="encoding">UTF-8</property>
<property name="pointer-autohide">True</property>
<property name="scroll-on-keystroke">True</property>
<property name="scroll-on-output">False</property>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkScrollbar">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="orientation">vertical</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkFrame">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label-xalign">0</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>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="spacing">5</property>
<child>
<object class="GtkProgressBar" id="InstallationProgress">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="valign">center</property>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkButton" id="MoreButton">
<property name="label" translatable="yes">More</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">2</property>
</packing>
</child>
</object>
</child>
</object>
</child>
<child type="label_item">
<placeholder/>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
<style>
<class name="workingbg"/>
</style>
</object>
</child>
<style>
<class name="workingbg"/>
</style>
</object>
<object class="GtkSizeGroup" id="RunSizeGroup"/>
<object class="GtkSizeGroup" id="StatusSizeGroup"/>
<object class="GtkSizeGroup" id="TagsSizeGroup"/>
<object class="GtkAdjustment" id="adjustment1">
<property name="upper">100</property>
<property name="step-increment">1</property>
<property name="page-increment">10</property>
</object>
<object class="GtkImage" id="image1">
<property name="visible">True</property>
<property name="can-focus">False</property>
@ -55,11 +187,6 @@
<property name="can-focus">False</property>
<property name="icon-name">com.ublinux.libublsettingsui-gtk3.important-symbolic</property>
</object>
<object class="GtkImage" id="image3">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="icon-name">com.ublinux.libublsettingsui-gtk3.source-symbolic</property>
</object>
<object class="GtkImage" id="image4">
<property name="visible">True</property>
<property name="can-focus">False</property>
@ -114,23 +241,6 @@
<property name="position">1</property>
</packing>
</child>
<child>
<object class="GtkButton" id="LogButton">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>
<property name="tooltip-text" translatable="yes">Open changelog</property>
<property name="image">image3</property>
<style>
<class name="thin"/>
</style>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">2</property>
</packing>
</child>
<child>
<object class="GtkButton" id="BuildingButton">
<property name="visible">True</property>
@ -156,97 +266,106 @@
</packing>
</child>
<child>
<object class="GtkNotebook" id="MainNotebook">
<object class="GtkOverlay" id="TerminalOverlay">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="can-focus">False</property>
<child>
<object class="GtkBox">
<object class="GtkNotebook" id="MainNotebook">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="margin-left">5</property>
<property name="margin-right">5</property>
<property name="margin-start">5</property>
<property name="margin-end">5</property>
<property name="margin-top">5</property>
<property name="margin-bottom">5</property>
<property name="orientation">vertical</property>
<property name="can-focus">True</property>
<child>
<object class="GtkScrolledWindow">
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="hscrollbar-policy">never</property>
<property name="can-focus">False</property>
<property name="margin-left">5</property>
<property name="margin-right">5</property>
<property name="margin-start">5</property>
<property name="margin-end">5</property>
<property name="margin-top">5</property>
<property name="margin-bottom">5</property>
<property name="orientation">vertical</property>
<child>
<object class="GtkViewport">
<object class="GtkScrolledWindow">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="margin-end">5</property>
<property name="can-focus">True</property>
<property name="hscrollbar-policy">never</property>
<child>
<object class="GtkListBox" id="KernelsPackageBox">
<object class="GtkViewport">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="selection-mode">none</property>
<style>
<class name="listfix"/>
</style>
<property name="margin-end">5</property>
<child>
<object class="GtkListBox" id="KernelsPackageBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="activate-on-single-click">False</property>
<style>
<class name="listfix"/>
</style>
</object>
</child>
</object>
</child>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object>
</child>
<child type="tab">
<object class="GtkLabel">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">Kernels</property>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">1</property>
<property name="tab-fill">False</property>
</packing>
</child>
</object>
</child>
<child type="tab">
<object class="GtkLabel">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">Kernels</property>
</object>
<packing>
<property name="tab-fill">False</property>
</packing>
</child>
<child>
<object class="GtkScrolledWindow">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="margin-start">5</property>
<property name="margin-end">5</property>
<property name="margin-top">5</property>
<property name="margin-bottom">5</property>
<property name="shadow-type">in</property>
<child>
<object class="GtkViewport">
<object class="GtkScrolledWindow">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="can-focus">True</property>
<property name="margin-start">5</property>
<property name="margin-end">5</property>
<property name="margin-top">5</property>
<property name="margin-bottom">5</property>
<property name="shadow-type">in</property>
<child>
<object class="GtkListBox" id="AdditionsPackageBox">
<object class="GtkViewport">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="margin-end">5</property>
<child>
<object class="GtkListBox" id="AdditionsPackageBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
</object>
</child>
</object>
</child>
</object>
<packing>
<property name="position">1</property>
</packing>
</child>
<child type="tab">
<object class="GtkLabel">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">Additions</property>
</object>
<packing>
<property name="position">1</property>
<property name="tab-fill">False</property>
</packing>
</child>
</object>
<packing>
<property name="position">1</property>
</packing>
</child>
<child type="tab">
<object class="GtkLabel">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">Additions</property>
</object>
<packing>
<property name="position">1</property>
<property name="tab-fill">False</property>
<property name="index">-1</property>
</packing>
</child>
</object>

Loading…
Cancel
Save