Added ability to install and uninstall multiple packages from one list element

pull/9/head
parent ea6080ef97
commit 4716df026a

@ -1,10 +1,10 @@
NAME;PAСKAGE_UBM;PAСKAGE;DESCRIPTION NAME;PAСKAGE_UBM;PAСKAGE;DESCRIPTION
Linux 5.15 headers;ubm-002-linux515-headers;linux515-headers;The Linux kernel headers v5.15 Linux 5.15 headers;ubm-002-linux515-headers;linux515-headers;The Linux kernel headers v5.15
Linux 5.15 Docs;ubm-003-linux515-docs;linux515-docs;The Linux kernel docs v5.15 Linux 5.15 Docs;ubm-003-linux515-docs;linux515-docs;The Linux kernel docs v5.15
Linux 5.15 DKMS modules;ubm-linux515-dkms;linux515-dkms;The Linux kernel DKMS modules v5.15 : v4l2loopback, r8168-8136, rtl88x2bu, r8125, rtl8192eu Linux 5.15 DKMS modules;ubm-linux515-dkms;v4l2loopback-dkms,rtl88x2bu-dkms-git,r8125-dkms,rtl8192eu-dkms,rtl8821cu-dkms-git;The Linux kernel DKMS modules v5.15 : v4l2loopback, r8168-8136, rtl88x2bu, r8125, rtl8192eu
Linux 6.1 headers;ubm-002-linux61-headers;linux61-headers;The Linux kernel headers v6.1 Linux 6.1 headers;ubm-002-linux61-headers;linux61-headers;The Linux kernel headers v6.1
Linux 6.1 Docs;ubm-003-linux61-docs;linux61-docs;The Linux kernel docs v6.1 Linux 6.1 Docs;ubm-003-linux61-docs;linux61-docs;The Linux kernel docs v6.1
Linux 6.1 DKMS modules;ubm-linux61-dkms;linux61-dkms;The Linux kernel DKMS modules v6.1 : v4l2loopback, r8168-8136, rtl88x2bu, r8125, rtl8192eu Linux 6.1 DKMS modules;ubm-linux61-dkms;v4l2loopback-dkms,rtl88x2bu-dkms-git,r8125-dkms,rtl8192eu-dkms,rtl8821cu-dkms-git;The Linux kernel DKMS modules v6.1 : v4l2loopback, r8168-8136, rtl88x2bu, r8125, rtl8192eu
Linux 6.6 headers;ubm-002-linux66-headers;linux66-headers;The Linux kernel headers v6.6 Linux 6.6 headers;ubm-002-linux66-headers;linux66-headers;The Linux kernel headers v6.6
Linux 6.6 Docs;ubm-003-linux66-docs;linux66-docs;The Linux kernel docs v6.6 Linux 6.6 Docs;ubm-003-linux66-docs;linux66-docs;The Linux kernel docs v6.6
Linux 6.6 DKMS modules;ubm-linux66-dkms;linux66-dkms;The Linux kernel DKMS modules v6.6 : v4l2loopback, r8168-8136, rtl88x2bu, r8125, rtl8192eu Linux 6.6 DKMS modules;ubm-linux66-dkms;v4l2loopback-dkms,rtl88x2bu-dkms-git,r8125-dkms,rtl8192eu-dkms,rtl8821cu-dkms-git;The Linux kernel DKMS modules v6.6 : v4l2loopback, r8168-8136, rtl88x2bu, r8125, rtl8192eu
1 NAME PAСKAGE_UBM PAСKAGE DESCRIPTION
2 Linux 5.15 headers ubm-002-linux515-headers linux515-headers The Linux kernel headers v5.15
3 Linux 5.15 Docs ubm-003-linux515-docs linux515-docs The Linux kernel docs v5.15
4 Linux 5.15 DKMS modules ubm-linux515-dkms linux515-dkms v4l2loopback-dkms,rtl88x2bu-dkms-git,r8125-dkms,rtl8192eu-dkms,rtl8821cu-dkms-git The Linux kernel DKMS modules v5.15 : v4l2loopback, r8168-8136, rtl88x2bu, r8125, rtl8192eu
5 Linux 6.1 headers ubm-002-linux61-headers linux61-headers The Linux kernel headers v6.1
6 Linux 6.1 Docs ubm-003-linux61-docs linux61-docs The Linux kernel docs v6.1
7 Linux 6.1 DKMS modules ubm-linux61-dkms linux61-dkms v4l2loopback-dkms,rtl88x2bu-dkms-git,r8125-dkms,rtl8192eu-dkms,rtl8821cu-dkms-git The Linux kernel DKMS modules v6.1 : v4l2loopback, r8168-8136, rtl88x2bu, r8125, rtl8192eu
8 Linux 6.6 headers ubm-002-linux66-headers linux66-headers The Linux kernel headers v6.6
9 Linux 6.6 Docs ubm-003-linux66-docs linux66-docs The Linux kernel docs v6.6
10 Linux 6.6 DKMS modules ubm-linux66-dkms linux66-dkms v4l2loopback-dkms,rtl88x2bu-dkms-git,r8125-dkms,rtl8192eu-dkms,rtl8821cu-dkms-git The Linux kernel DKMS modules v6.6 : v4l2loopback, r8168-8136, rtl88x2bu, r8125, rtl8192eu

@ -118,24 +118,6 @@ void on_config_custom_load(GtkWidget *,main_window *widgets){
yon_interface_update(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){ gboolean yon_tab_create_tags(kernels_tab *tab){
GList *list = gtk_container_get_children(GTK_CONTAINER(tab->install_tags_box)); GList *list = gtk_container_get_children(GTK_CONTAINER(tab->install_tags_box));
for (guint i=0;i<g_list_length(list);i++){ 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; 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){ void *yon_tab_set_installed(kernels_tab *tab){
char *check_install_command = get_package_is_installed_command(tab->module); char *target_module = yon_package_string_set(tab->module);
if (!system(check_install_command)){ 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; 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(tab->package); check_install_command = get_package_is_installed_command(target_package);
if (!system(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(tab->module); check_install_command = get_package_is_updated_command(target_module);
if (!system(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(tab->package); check_install_command = get_package_is_updated_command(target_package);
if (!system(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;
free(check_install_command); free(check_install_command);
@ -200,7 +193,20 @@ void *yon_tab_set_installed(kernels_tab *tab){
} }
void *yon_interface_update(main_window *widgets){ 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; int kernels_size;
config_str kernels = yon_resource_open_file(kernels_path, &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)){ 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 *box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL,2);
GtkWidget *label = gtk_label_new(tag_label); 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); gtk_style_context_add_class(gtk_widget_get_style_context(label),tag_style);
GtkWidget *icon = NULL; GtkWidget *icon = NULL;
if (icon_name){ if (icon_name){
@ -304,7 +315,6 @@ gboolean on_command_execute_success(GtkWidget *,gint status,main_window *widgets
main_config.progress_active=0; main_config.progress_active=0;
g_mutex_unlock(&main_config.progress_mutex); g_mutex_unlock(&main_config.progress_mutex);
if (!status){ 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_ubl_status_box_render(OPERATION_SUCCESS_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE);
yon_interface_update(widgets); yon_interface_update(widgets);
} else { } else {
@ -347,7 +357,6 @@ 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_transition_type(GTK_REVEALER(widgets->MainRevealer),GTK_REVEALER_TRANSITION_TYPE_SLIDE_UP);
gtk_revealer_set_reveal_child(GTK_REVEALER(widgets->TerminalRevealer),0); gtk_revealer_set_reveal_child(GTK_REVEALER(widgets->TerminalRevealer),0);
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));
@ -365,7 +374,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*);
char *modules_to_install = tab->module; char *module_formated = yon_package_string_set(tab->module);
char *modules_to_install = module_formated;
GtkTreeIter iter; GtkTreeIter iter;
for_iter (GTK_TREE_MODEL(window->liststore1),&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); gtk_tree_model_get(GTK_TREE_MODEL(window->liststore1),&iter,0,&status,1,&package,-1);
if (status){ if (status){
char *temp = yon_char_unite(modules_to_install," ", package, NULL); 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; 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*); 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*);
char *modules_to_install = tab->package; char *package_formated = yon_package_string_set(tab->package);
char *modules_to_install = package_formated;
GtkTreeIter iter; GtkTreeIter iter;
for_iter (GTK_TREE_MODEL(window->liststore1),&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); gtk_tree_model_get(GTK_TREE_MODEL(window->liststore1),&iter,0,&status,1,&package,-1);
if (status){ if (status){
char *temp = yon_char_unite(modules_to_install," ", package, NULL); 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; modules_to_install = temp;
} }
} }
@ -460,7 +471,8 @@ void on_module_install_clicked(GtkWidget *self,dictionary *dict){
data->function = NULL; data->function = NULL;
data->data = NULL; data->data = NULL;
if (yon_confirmation_dialog_call(self,data) == GTK_RESPONSE_ACCEPT){ 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); yon_command_execute_async(command,widgets);
tab->module_installed=1; tab->module_installed=1;
} }
@ -501,7 +513,8 @@ void on_package_install_clicked(GtkWidget *self,dictionary *dict){
data->function = NULL; data->function = NULL;
data->data = NULL; data->data = NULL;
if (yon_confirmation_dialog_call(self,data) == GTK_RESPONSE_ACCEPT){ 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); yon_command_execute_async(command,widgets);
tab->package_installed=1; tab->package_installed=1;
} }
@ -524,7 +537,8 @@ void on_module_remove_clicked(GtkWidget *self,dictionary *dict){
data->function = NULL; data->function = NULL;
data->data = NULL; data->data = NULL;
if (yon_confirmation_dialog_call(self,data) == GTK_RESPONSE_ACCEPT){ 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); 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;
@ -541,7 +555,8 @@ void on_package_remove_clicked(GtkWidget *self,dictionary *dict){
data->data = NULL; data->data = NULL;
int resp = yon_confirmation_dialog_call(self,data); int resp = yon_confirmation_dialog_call(self,data);
if (resp == GTK_RESPONSE_ACCEPT){ 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); yon_command_execute_async(command,widgets);
tab->package_installed=0; 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; char *passw = types_parsed[k][0]==' '?yon_char_divide(types_parsed[k],0):NULL;
if (passw) free(passw); if (passw) free(passw);
char *tag_type = NULL; char *tag_type = NULL;
if (!strcmp(types_parsed[k],LTS_TAG)){ if (!strcmp(_(types_parsed[k]),LTS_TAG)){
tag_type = "tag_blue"; tag_type = "tag_blue";
} else if (!strcmp(types_parsed[k],STABLE_TAG)){ } else if (!strcmp(_(types_parsed[k]),STABLE_TAG)){
tag_type = "tag_green"; tag_type = "tag_green";
} else if (!strcmp(types_parsed[k],REALTIME_TAG)){ } else if (!strcmp(_(types_parsed[k]),REALTIME_TAG)){
tag_type = "tag_orange"; tag_type = "tag_orange";
} else if (!strcmp(types_parsed[k],HARDENED_TAG)){ } else if (!strcmp(_(types_parsed[k]),HARDENED_TAG)){
tag_type = "tag_yellow"; tag_type = "tag_yellow";
} else if (!strcmp(types_parsed[k],RECOMENDED_TAG)){ } else if (!strcmp(_(types_parsed[k]),RECOMENDED_TAG)){
tag_type = "tag_blue"; tag_type = "tag_blue";
} else if (!strcmp(types_parsed[k],REACTIVE_TAG)){ } else if (!strcmp(_(types_parsed[k]),REACTIVE_TAG)){
tag_type = "tag_purple"; tag_type = "tag_purple";
} else continue; } 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->module_requirements = yon_char_parse(parsed[3],&tab->module_requirements_size,",");
tab->package_requirements = yon_char_parse(parsed[4],&tab->package_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; char *package=NULL;
if ((package = strstr(target_str,": "))){ if ((package = strstr(target_str,": "))){
package+=2; package+=2;
if (strstr(package,",")){
package = yon_char_replace(package,","," ");
}
} }
config_str info = yon_config_load(get_package_info_command(package),&size); config_str info = yon_config_load(get_package_info_command(package),&size);
if (size!=-1){ 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)); 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->MainRevealer); gtk_overlay_add_overlay(GTK_OVERLAY(widgets->TerminalOverlay),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);

@ -48,7 +48,7 @@
#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 install_command(target) yon_char_append("pacman -S --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)
#define get_active_kernel_command "cat /usr/lib/modules/$(uname -r)/pkgbase" #define get_active_kernel_command "cat /usr/lib/modules/$(uname -r)/pkgbase"
@ -211,7 +211,7 @@ typedef struct {
void on_save_done(main_window *widgets, config_str output, int size); void on_save_done(main_window *widgets, config_str output, int size);
gboolean yon_clear_interface(main_window *widgets); char *yon_package_string_set(char *target);
gboolean yon_tab_create_tags(kernels_tab *tab); gboolean yon_tab_create_tags(kernels_tab *tab);
void *yon_tab_set_installed(kernels_tab *tab); void *yon_tab_set_installed(kernels_tab *tab);
void *yon_interface_update(main_window *widgets); void *yon_interface_update(main_window *widgets);

@ -48,7 +48,6 @@
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="label" translatable="yes">Name</property> <property name="label" translatable="yes">Name</property>
<property name="use-markup">True</property>
<property name="track-visited-links">False</property> <property name="track-visited-links">False</property>
<property name="xalign">0</property> <property name="xalign">0</property>
</object> </object>
@ -86,6 +85,7 @@
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="label" translatable="yes">Module</property> <property name="label" translatable="yes">Module</property>
<property name="wrap">True</property>
<property name="xalign">0</property> <property name="xalign">0</property>
</object> </object>
<packing> <packing>
@ -122,6 +122,7 @@
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="label" translatable="yes">Package</property> <property name="label" translatable="yes">Package</property>
<property name="wrap">True</property>
<property name="xalign">0</property> <property name="xalign">0</property>
</object> </object>
<packing> <packing>
@ -150,6 +151,7 @@
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="margin-bottom">5</property> <property name="margin-bottom">5</property>
<property name="orientation">vertical</property> <property name="orientation">vertical</property>
<property name="spacing">2</property>
<child> <child>
<placeholder/> <placeholder/>
</child> </child>

@ -154,72 +154,79 @@ background:transparent;
border-radius: 2px; border-radius: 2px;
border-width: 0.5px; border-width: 0.5px;
border-style: solid; border-style: solid;
margin:2px; padding:2px 5px;
color:#2f2f2f; color:#a25757;
border-color: #d8504e;
background-color:#ab709a background-color:#ea9999
} }
.tag_blue{ .tag_blue{
border-radius: 2px; border-radius: 2px;
border-width: 0.5px; border-width: 0.5px;
border-style: solid; border-style: solid;
margin:2px; padding:2px 5px;
color:#2f2f2f; color:#4973a1;
border-color: #3e85e7;
background-color:#33aadf background-color:#9fc5f8
} }
.tag_purple{ .tag_purple{
border-radius: 2px; border-radius: 2px;
border-width: 0.5px; border-width: 0.5px;
border-style: solid; border-style: solid;
margin:2px; padding:2px 5px;
color:#2f2f2f; color:#41346a;
border-color: #9d17f9;
background-color:#ab709a background-color:#b4a7d6
} }
.tag_orange{ .tag_orange{
border-radius: 2px; border-radius: 2px;
border-width: 0.5px; border-width: 0.5px;
border-style: solid; border-style: solid;
margin:2px; padding:2px 5px;
color:#2f2f2f; color:#a87644;
border-color: #fea11a;
background-color:#ffac40 background-color:#f9cb9c
} }
.tag_yellow{ .tag_yellow{
border-radius: 2px; border-radius: 2px;
border-width: 0.5px; border-width: 0.5px;
border-style: solid; border-style: solid;
margin:2px; padding:2px 5px;
color:#2f2f2f; color:#866715;
border-color: #cca11f;
background-color:#ffd070 background-color:#ffe599
} }
.tag_green{ .tag_green{
border-radius: 2px; border-radius: 2px;
border-width: 0.5px; border-width: 0.5px;
border-style: solid; border-style: solid;
margin:2px; padding:2px 5px;
color:#2f2f2f; color:#61815a;
border-color: #2aab37;
background-color:#80ff80 background-color:#c8e1be
} }
.tag_grey{ .tag_grey{
border-radius: 2px; border-radius: 2px;
border-width: 0.5px; border-width: 0.5px;
border-style: solid; border-style: solid;
margin:2px; padding:2px 5px;
color:#2f2f2f; color:#5f5f5f;
border-color: #777777;
background-color:#999999 background-color:#999999
} }
.updatebutton { .updatebutton {
background-color: #ef7a7a; background-color: #e06666;
color: @theme_bg_color; color: @theme_bg_color;
border-color: #aa5555; border-color: #a36666;
} }
.updatebutton *{ .updatebutton *{
background-color: #ef7a7a; background-color: #e06666;
color: @theme_bg_color; color: @theme_bg_color;
} }
.updatebutton:active { .updatebutton:active {
@ -232,11 +239,11 @@ background:transparent;
color: @theme_bg_color; color: @theme_bg_color;
} }
.updatebutton:disabled { .updatebutton:disabled {
background-color: #ffcfcf; background-color: transparent;
border-color: @insensitive_fg_color; border-color: @insensitive_fg_color;
border-width:0.5px; border-width:0.5px;
} }
.updatebutton *:disabled { .updatebutton *:disabled {
background-color: #ffcfcf; background-color: transparent;
color: @insensitive_fg_color; color: @insensitive_fg_color;
} }

@ -52,118 +52,39 @@
<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="MainRevealer"> <object class="GtkRevealer" 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="valign">end</property>
<property name="transition-type">slide-up</property> <property name="transition-type">slide-up</property>
<property name="reveal-child">True</property>
<child> <child>
<object class="GtkBox"> <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="GtkRevealer" id="TerminalRevealer"> <object class="VteTerminal" id="InstallTerminal">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="sensitive">False</property>
<property name="transition-type">slide-up</property> <property name="can-focus">True</property>
<child> <property name="vadjustment">adjustment1</property>
<object class="GtkBox"> <property name="vscroll-policy">natural</property>
<property name="visible">True</property> <property name="encoding">UTF-8</property>
<property name="can-focus">False</property> <property name="pointer-autohide">True</property>
<child> <property name="scroll-on-keystroke">True</property>
<object class="VteTerminal" id="InstallTerminal"> <property name="scroll-on-output">False</property>
<property name="visible">True</property>
<property name="sensitive">False</property>
<property name="can-focus">True</property>
<property name="vadjustment">adjustment1</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" id="TerminalScroll">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="orientation">vertical</property>
<property name="adjustment">adjustment1</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object>
</child>
</object> </object>
<packing> <packing>
<property name="expand">False</property> <property name="expand">True</property>
<property name="fill">True</property> <property name="fill">True</property>
<property name="position">0</property> <property name="position">0</property>
</packing> </packing>
</child> </child>
<child> <child>
<object class="GtkFrame"> <object class="GtkScrollbar" id="TerminalScroll">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="label-xalign">0</property> <property name="orientation">vertical</property>
<property name="shadow-type">in</property> <property name="adjustment">adjustment1</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> </object>
<packing> <packing>
<property name="expand">False</property> <property name="expand">False</property>
@ -171,14 +92,8 @@
<property name="position">1</property> <property name="position">1</property>
</packing> </packing>
</child> </child>
<style>
<class name="workingbg"/>
</style>
</object> </object>
</child> </child>
<style>
<class name="workingbg"/>
</style>
</object> </object>
<object class="GtkImage" id="image1"> <object class="GtkImage" id="image1">
<property name="visible">True</property> <property name="visible">True</property>
@ -389,5 +304,91 @@
<property name="position">0</property> <property name="position">0</property>
</packing> </packing>
</child> </child>
<child>
<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="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>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object> </object>
</interface> </interface>

@ -133,7 +133,7 @@ msgstr "Рекомендуется"
#: source/ubl-strings.h:38 #: source/ubl-strings.h:38
msgid "Hardened" msgid "Hardened"
msgstr "" msgstr "Усиленная защита"
#: source/ubl-strings.h:39 #: source/ubl-strings.h:39
msgid "RealTime" msgid "RealTime"

Loading…
Cancel
Save