From ad454a3456432cd64c561b3c2786396b69526b57 Mon Sep 17 00:00:00 2001 From: Ivan Yarcev Date: Mon, 29 Jan 2024 17:49:31 +0600 Subject: [PATCH] Russian localisation and fixes --- source/ubl-settings-services.c | 45 +++++++++++++++++------- source/ubl-settings-services.h | 63 ++++++++++++++++++---------------- source/ubl-strings.h | 6 ++-- ubl-settings-services.pot | 8 +++++ ubl-settings-services_ru.po | 10 +++++- 5 files changed, 86 insertions(+), 46 deletions(-) diff --git a/source/ubl-settings-services.c b/source/ubl-settings-services.c index 9032aae..84d1626 100644 --- a/source/ubl-settings-services.c +++ b/source/ubl-settings-services.c @@ -11,14 +11,22 @@ void yon_load_proceed(YON_CONFIG_TYPE type){ } -void on_config_local_load(main_window *widgets){ +void on_config_local_load(GtkWidget *self,main_window *widgets){ + if (self){}; yon_load_proceed(YON_CONFIG_LOCAL); yon_interface_update(widgets); + textdomain(template_ui_LocaleName); + yon_ubl_status_box_render(LOCAL_LOAD_SUCCESS_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE); + textdomain(LocaleName); } -void on_config_global_load(main_window *widgets){ +void on_config_global_load(GtkWidget *self,main_window *widgets){ + if (self){}; yon_load_proceed(YON_CONFIG_GLOBAL); yon_interface_update(widgets); + textdomain(template_ui_LocaleName); + yon_ubl_status_box_render(GLOBAL_LOAD_SUCCESS_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE); + textdomain(LocaleName); } @@ -320,17 +328,15 @@ void on_service_update(GtkWidget *self, terminal_window* window){ vte_terminal_set_color_cursor(VTE_TERMINAL(window->SystemTerminal),&rgba); } -void on_search(){ - -} - terminal_window *yon_terminal_window_new(){ terminal_window *window = malloc(sizeof(terminal_window)); GtkBuilder *builder = gtk_builder_new_from_resource(glade_path_terminal); window->Window = yon_gtk_builder_get_widget(builder,"MonitorWindow"); window->SystemTerminal = yon_gtk_builder_get_widget(builder,"SystemTerminal"); window->UpdateButton = yon_gtk_builder_get_widget(builder,"UpdateButton"); + window->webHeaderNameLabel = yon_gtk_builder_get_widget(builder,"webHeaderNameLabel"); window->target=NULL; + yon_window_config_custom_window_setup(GTK_WINDOW(window->Window),"terminal_window"); g_signal_connect(G_OBJECT(window->UpdateButton),"clicked",G_CALLBACK(on_service_update),window); gtk_widget_show(window->Window); @@ -348,22 +354,34 @@ void on_info_clicked(GtkWidget *self, main_window *widgets){ if (!yon_char_is_empty(service_name)){ terminal_window *window = yon_terminal_window_new(); window->target=service_name; + char *header = yon_char_unite(STATUS_LABEL," ",service_name,NULL); + gtk_label_set_text(GTK_LABEL(window->webHeaderNameLabel),header); + gtk_window_set_title(GTK_WINDOW(window->Window),header); + free(header); on_service_update(NULL,window); } } } -void on_update(){ - +void *yon_unthreaded_config_load(void *widgets){ + if (main_config.load_mode==1){ + on_config_local_load(NULL,(main_window*)widgets); + } else if (main_config.load_mode==0){ + on_config_global_load(NULL,(main_window*)widgets); + } + return NULL; } -void on_status_show(){ - +void on_update(GtkWidget *self,main_window *widgets){ + if (self){} + yon_ubl_status_box_render(LIST_LOAD_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE); + g_thread_new("",(GThreadFunc)yon_unthreaded_config_load,widgets); } void yon_interface_update(main_window *widgets){ int size; GtkTreeIter iter; + gtk_tree_view_set_model(GTK_TREE_VIEW(widgets->MainTree),NULL); config_str services = yon_config_load(load_services_command,&size); for (int i=0;iMainTree),GTK_TREE_MODEL(widgets->liststore2)); } void on_column_resize(GtkTreeViewColumn *self,GParamSpec *pspec,main_window *widgets){ @@ -507,7 +526,7 @@ gboolean on_context_menu_open(GtkWidget *self,GdkEventButton *event, main_window g_signal_connect(G_OBJECT(menu_item_autostart_system),"activate",G_CALLBACK(on_system_autostart_clicked),widgets); g_signal_connect(G_OBJECT(menu_item_launched),"activate",G_CALLBACK(on_system_launch_clicked),widgets); g_signal_connect(G_OBJECT(menu_item_reload),"activate",G_CALLBACK(on_update),widgets); - g_signal_connect(G_OBJECT(menu_item_status),"activate",G_CALLBACK(on_status_show),widgets); + g_signal_connect(G_OBJECT(menu_item_status),"activate",G_CALLBACK(on_info_clicked),widgets); gtk_menu_shell_append(GTK_MENU_SHELL(menu),menu_item_configuration_in_config); gtk_menu_shell_append(GTK_MENU_SHELL(menu),menu_item_autostart_config); gtk_menu_shell_append(GTK_MENU_SHELL(menu),menu_item_autostop); @@ -523,7 +542,7 @@ gboolean on_context_menu_open(GtkWidget *self,GdkEventButton *event, main_window widgets->menu=menu_object; // gtk_widget_show_all(widgets->RMBMenu); // gtk_widget_show_all(widgets->menu->Menu); - gtk_menu_popup_at_pointer(GTK_MENU(menu),NULL); + gtk_menu_popup_at_pointer(GTK_MENU(menu),NULL); return 0; } return 0; @@ -612,7 +631,7 @@ void yon_main_window_complete(main_window *widgets){ g_signal_connect(G_OBJECT(widgets->SystemLaunchButton),"clicked",G_CALLBACK(on_system_launch_clicked),widgets); g_signal_connect(G_OBJECT(widgets->UpdateButton),"clicked",G_CALLBACK(on_update),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_status_show),widgets); + // g_signal_connect(G_OBJECT(widgets->LogButton),"clicked",G_CALLBACK(on_status_show),widgets); g_signal_connect(G_OBJECT(g_list_nth_data(list,0)),"notify::width",G_CALLBACK(on_column_resize),widgets); g_signal_connect(G_OBJECT(g_list_nth_data(list,1)),"notify::width",G_CALLBACK(on_column_resize),widgets); g_signal_connect(G_OBJECT(g_list_nth_data(list,2)),"notify::width",G_CALLBACK(on_column_resize),widgets); diff --git a/source/ubl-settings-services.h b/source/ubl-settings-services.h index 2500c9d..c66d42f 100644 --- a/source/ubl-settings-services.h +++ b/source/ubl-settings-services.h @@ -38,7 +38,7 @@ #define service_stop_command(target) yon_char_append("systemctl stop --no-pager ",target) #define service_enable_command(target) yon_char_append("systemctl enable --no-pager ",target) #define service_disable_command(target) yon_char_append("systemctl disable --no-pager ",target) -#define service_info_command(target) yon_char_append("systemctl status --no-pager ",target) +#define service_info_command(target) yon_char_append("systemctl status -l --no-pager ",target) typedef char* string; string version_application; @@ -83,33 +83,33 @@ typedef struct { typedef struct { // Standard widgets. DO NOT EDIT - MUST BE SAME AS ublsettings-ui's template_main_window STRUCT { - GtkWidget *Window; - GtkWidget *HeadLabel; - GtkWidget *PlugBox; - - GtkWidget *HeadOverlay; - GtkWidget *HeadImage; - GtkWidget *HeadBox; - GtkWidget *HeadTitleLabel; - GtkWidget *HeadInfoLabel; - - GtkWidget *StatusBox; - GtkWidget *StatusIcon; - GtkWidget *StatusLabel; - - GtkWidget *SaveMenuItem; - GtkWidget *SaveGlobalMenuItem; - GtkWidget *SaveLocalMenuItem; - GtkWidget *RightBox; - - GtkWidget *LoadGlobalMenuItem; - GtkWidget *LoadLocalMenuItem; - GtkWidget *LeftBox; - - GtkWidget *DocumentationMenuItem; - GtkWidget *AboutMenuItem; - - GtkWidget *InterfaceBox; + GtkWidget *Window; + GtkWidget *HeadLabel; + GtkWidget *PlugBox; + + GtkWidget *HeadOverlay; + GtkWidget *HeadImage; + GtkWidget *HeadBox; + GtkWidget *HeadTitleLabel; + GtkWidget *HeadInfoLabel; + + GtkWidget *StatusBox; + GtkWidget *StatusIcon; + GtkWidget *StatusLabel; + + GtkWidget *SaveMenuItem; + GtkWidget *SaveGlobalMenuItem; + GtkWidget *SaveLocalMenuItem; + GtkWidget *RightBox; + + GtkWidget *LoadGlobalMenuItem; + GtkWidget *LoadLocalMenuItem; + GtkWidget *LeftBox; + + GtkWidget *DocumentationMenuItem; + GtkWidget *AboutMenuItem; + + GtkWidget *InterfaceBox; // } Standard widgets. DO NOT EDIT - MUST BE SAME AS ublsettings-ui's template_main_window STRUCT // Type custom parameters below: GtkListStore *liststore1; @@ -167,12 +167,13 @@ typedef struct { GtkWidget *Window; GtkWidget *UpdateButton; GtkWidget *SystemTerminal; + GtkWidget *webHeaderNameLabel; char *target; } terminal_window; -void on_config_local_load(); +void on_config_local_load(GtkWidget *self,main_window *widgets); -void on_config_global_load(); +void on_config_global_load(GtkWidget *self,main_window *widgets); void on_config_global_local_save(); @@ -214,6 +215,8 @@ void on_search(); void on_info_clicked(); +void *yon_unthreaded_config_load(void *widgets); + void on_update(); void on_status_show(); diff --git a/source/ubl-strings.h b/source/ubl-strings.h index 1aef286..70f96df 100644 --- a/source/ubl-strings.h +++ b/source/ubl-strings.h @@ -12,7 +12,7 @@ #define SYSTEM_CONFIGURATION_LABEL _("Configure in system") #define LAUNCHED_LABEL _("Launched") #define SERVICE_RELOAD_LABEL _("Reload") -#define STATUS_LABEL _("Show status") +#define SHOW_STATUS_LABEL _("Show status") #define UPDATE_LABEL _("Update") #define ALL_SERIVCES_LABEL _("All services") @@ -44,4 +44,6 @@ #define AUTOSTART_LABEL _("Autostart") #define AUTOSTOP_LABEL _("Autostop") #define BLOCK_LABEL _("Block") -#define LAUNCHED_LABEL _("Launched") \ No newline at end of file +#define LAUNCHED_LABEL _("Launched") +#define LIST_LOAD_LABEL _("Service list is loading") +#define STATUS_LABEL _("Status") \ No newline at end of file diff --git a/ubl-settings-services.pot b/ubl-settings-services.pot index 6be8f5b..169a20f 100644 --- a/ubl-settings-services.pot +++ b/ubl-settings-services.pot @@ -192,3 +192,11 @@ msgstr "" #: source/ubl-strings.h:42 msgid "Service" msgstr "" + +#: source/ubl-strings.h:48 +msgid "Service list is loading" +msgstr "" + +#: source/ubl-strings.h:49 +msgid "Status" +msgstr "" diff --git a/ubl-settings-services_ru.po b/ubl-settings-services_ru.po index 2267b78..d1bd136 100644 --- a/ubl-settings-services_ru.po +++ b/ubl-settings-services_ru.po @@ -192,4 +192,12 @@ msgstr "Описание:" #: source/ubl-strings.h:42 msgid "Service" -msgstr "Сервис" \ No newline at end of file +msgstr "Сервис" + +#: source/ubl-strings.h:48 +msgid "Service list is loading" +msgstr "Список сервисов загружается" + +#: source/ubl-strings.h:49 +msgid "Status" +msgstr "Статус"