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

@ -48,7 +48,7 @@
#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 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 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);
gboolean yon_clear_interface(main_window *widgets);
char *yon_package_string_set(char *target);
gboolean yon_tab_create_tags(kernels_tab *tab);
void *yon_tab_set_installed(kernels_tab *tab);
void *yon_interface_update(main_window *widgets);

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

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

@ -52,118 +52,39 @@
<property name="step-increment">1</property>
<property name="page-increment">10</property>
</object>
<object class="GtkRevealer" id="MainRevealer">
<object class="GtkRevealer" id="TerminalRevealer">
<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">
<object class="VteTerminal" id="InstallTerminal">
<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="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>
<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">False</property>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkFrame">
<object class="GtkScrollbar" id="TerminalScroll">
<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>
<property name="orientation">vertical</property>
<property name="adjustment">adjustment1</property>
</object>
<packing>
<property name="expand">False</property>
@ -171,14 +92,8 @@
<property name="position">1</property>
</packing>
</child>
<style>
<class name="workingbg"/>
</style>
</object>
</child>
<style>
<class name="workingbg"/>
</style>
</object>
<object class="GtkImage" id="image1">
<property name="visible">True</property>
@ -389,5 +304,91 @@
<property name="position">0</property>
</packing>
</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>
</interface>

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

Loading…
Cancel
Save