From 71acaf8a152dcf890d6eeb5ea5bdd9bc63dbe67c Mon Sep 17 00:00:00 2001 From: Ivan Yarcev Date: Wed, 10 Apr 2024 16:20:34 +0600 Subject: [PATCH 1/2] Localisation update --- libublsettingsui-gtk3.pot | 4 ++++ libublsettingsui-gtk3_ru.po | 4 ++++ source/libublsettingsui-gtk3.c | 5 +++++ source/libublsettingsui-gtk3.h | 1 + 4 files changed, 14 insertions(+) diff --git a/libublsettingsui-gtk3.pot b/libublsettingsui-gtk3.pot index e36ad95..d1d30bb 100644 --- a/libublsettingsui-gtk3.pot +++ b/libublsettingsui-gtk3.pot @@ -246,3 +246,7 @@ msgstr "" #: source/libublsettingsui-gtk3.h:96 msgid "HDD sandbox with profile saving" msgstr "" + +#: source/libublsettingsui-gtk3.h:98 +msgid "Upgrade to root" +msgstr "" diff --git a/libublsettingsui-gtk3_ru.po b/libublsettingsui-gtk3_ru.po index 7d37bc0..50ccefe 100644 --- a/libublsettingsui-gtk3_ru.po +++ b/libublsettingsui-gtk3_ru.po @@ -252,3 +252,7 @@ msgstr "Полная песочница на HDD" #: source/libublsettingsui-gtk3.h:96 msgid "HDD sandbox with profile saving" msgstr "Полная песочница на HDD с сохранением профиля пользователя" + +#: source/libublsettingsui-gtk3.h:98 +msgid "Upgrade to root" +msgstr "Повысить права до root" diff --git a/source/libublsettingsui-gtk3.c b/source/libublsettingsui-gtk3.c index cdb12b6..39c6d35 100644 --- a/source/libublsettingsui-gtk3.c +++ b/source/libublsettingsui-gtk3.c @@ -116,6 +116,11 @@ void on_about(GtkWidget *self, char *version_application){ } //functions + +/**function and argument, which called after successful config saving. + * Example: + * void on_save_done(main_window *widgets, config_str output, int size) +*/ void (*save_success_function)(void*,config_str,int)=NULL; void *save_success_argument=NULL; diff --git a/source/libublsettingsui-gtk3.h b/source/libublsettingsui-gtk3.h index f41eb58..e570f1d 100644 --- a/source/libublsettingsui-gtk3.h +++ b/source/libublsettingsui-gtk3.h @@ -95,6 +95,7 @@ #define SAVE_MODE_HDD_LABEL _("HDD sandbox") #define SAVE_MODE_HDD_HOME_LABEL _("HDD sandbox with profile saving") #define CUSTOM_CONFIG_CREATION_ERROR_LABEL _("New configuration file creation failed") + #define ROOT_CHECK_LABEL _("Upgrade to root") #endif #define dull_parameter_get_command "ubconfig --source global get users PARAMETER" -- 2.35.1 From da6d887501bcdb3a4992267213d7f1558709f499 Mon Sep 17 00:00:00 2001 From: Ivan Yarcev Date: Wed, 10 Apr 2024 17:25:55 +0600 Subject: [PATCH 2/2] Added function to setup root button --- source/libublsettingsui-gtk3.c | 52 ++++++++++++++++++++++++++++++++++ source/libublsettingsui-gtk3.h | 2 ++ 2 files changed, 54 insertions(+) diff --git a/source/libublsettingsui-gtk3.c b/source/libublsettingsui-gtk3.c index 39c6d35..7610bd5 100644 --- a/source/libublsettingsui-gtk3.c +++ b/source/libublsettingsui-gtk3.c @@ -688,6 +688,58 @@ int yon_ubl_setup_arguments(int argc, char *argv[],config_str *unfound_arguments } } + +void on_root_get_root(char *argline){ + yon_launch(argline); +} + +int arg_size; +config_str arg_target; + +void on_root_access(GtkWidget *self, template_main_window *widgets){ + if (self){}; + if (getuid()){ + char *argline = template_app_information.app_tech_name; + for (int i=1;iWindow); + } + } +} + +void yon_root_button_setup(template_main_window *widgets, config_str args, int args_size){ + arg_size=args_size; + arg_target=args; + GtkWidget *root_item = gtk_menu_item_new(); + gtk_style_context_add_class(gtk_widget_get_style_context(root_item),"menuitemtop"); + gtk_style_context_add_class(gtk_widget_get_style_context(widgets->DocumentationMenuItem),"menuitemmiddle"); + gtk_style_context_remove_class(gtk_widget_get_style_context(widgets->DocumentationMenuItem),"menuitemtop"); + GtkWidget *box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL,5); + GtkWidget *root_label = gtk_label_new(ROOT_CHECK_LABEL); + GtkWidget *root_check = gtk_check_button_new(); + gtk_menu_shell_prepend(GTK_MENU_SHELL(gtk_widget_get_parent(widgets->DocumentationMenuItem)),root_item); + gtk_box_pack_start(GTK_BOX(box),root_label,1,1,0); + gtk_box_pack_start(GTK_BOX(box),root_check,0,0,0); + gtk_container_add(GTK_CONTAINER(root_item),box); + gtk_widget_show_all(root_item); + g_signal_connect(G_OBJECT(root_item),"activate", G_CALLBACK(on_root_access),widgets); + if (getuid()==0) { + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(root_check),1); + gtk_widget_set_sensitive(root_item,0); + } +} + template_main_window *yon_ubl_window_setup(){ textdomain (template_ui_LocaleName); setlocale(LC_ALL,""); diff --git a/source/libublsettingsui-gtk3.h b/source/libublsettingsui-gtk3.h index e570f1d..3cb8b94 100644 --- a/source/libublsettingsui-gtk3.h +++ b/source/libublsettingsui-gtk3.h @@ -256,6 +256,8 @@ void yon_open_browser(GtkWidget *self, char *link); */ int yon_ubl_connect_config(_template_config *config); +void yon_root_button_setup(template_main_window *widgets, config_str args, int args_size); + /**yon_ubl_window_init(int argc, char *argv[]) * [EN] * -- 2.35.1