Merge pull request 'WIP sections settings' (#75) from YanTheKaller/ubl-settings-manager:master into master
Reviewed-on: #75pull/76/head
commit
6516edf879
|
Before Width: | Height: | Size: 210 KiB After Width: | Height: | Size: 210 KiB |
@ -0,0 +1,145 @@
|
|||||||
|
# Language translations for ubl-settings-manager package.
|
||||||
|
# Copyright (C) 2022, UBTech LLC
|
||||||
|
# This file is distributed under the same license as the ubl-settings-manager package.
|
||||||
|
# UBLinux Team <info@ublinux.com>, 2022
|
||||||
|
#
|
||||||
|
#, fuzzy
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: ubl-settings-manager 1.0\n"
|
||||||
|
"Report-Msgid-Bugs-To: info@ublinux.com\n"
|
||||||
|
"Report-Msgid-Bugs-To: \n"
|
||||||
|
"POT-Creation-Date: 2023-04-21 12:33+0000\n"
|
||||||
|
"PO-Revision-Date: 2023-01-01 00:00+0600\n"
|
||||||
|
"Last-Translator: UBLinux Team <info@ublinux.com>\n"
|
||||||
|
"Language-Team: Russian - UBLinux Team <info@ublinux.com>\n"
|
||||||
|
"Language: Russian\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
|
||||||
|
#: source/ubl-strings.h:3
|
||||||
|
msgid "UBLinux Settings Manager"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: source/ubl-strings.h:4
|
||||||
|
msgid "About UBLinux Settings Manager"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: source/ubl-strings.h:6
|
||||||
|
msgid ""
|
||||||
|
"https://wiki.ublinux.ru/software/programs_and_utilities/all/ubl-settings-"
|
||||||
|
"manager"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: source/ubl-strings.h:8
|
||||||
|
msgid "Settings manager for UBLinux"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: source/ubl-strings.h:9
|
||||||
|
msgid "Back to settings"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: source/ubl-strings.h:10
|
||||||
|
msgid "Config loading failed!\n"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: source/ubl-strings.h:11
|
||||||
|
msgid "Double click selection"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: source/ubl-strings.h:12
|
||||||
|
msgid "Sections management"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: source/ubl-strings.h:13
|
||||||
|
msgid "Understood"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: source/ubl-strings.h:14
|
||||||
|
msgid "Settings"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: source/ubl-strings.h:15
|
||||||
|
msgid "Apply"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: source/ubl-strings.h:16
|
||||||
|
msgid "Close"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: source/ubl-strings.h:17
|
||||||
|
msgid "Cancel"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: source/ubl-strings.h:18
|
||||||
|
msgid "About..."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: source/ubl-strings.h:19
|
||||||
|
msgid "Documentation"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: source/ubl-strings.h:20
|
||||||
|
msgid "Window theme"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: source/ubl-strings.h:21
|
||||||
|
msgid "Icon size"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: source/ubl-strings.h:22
|
||||||
|
msgid "All settings"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: source/ubl-strings.h:23
|
||||||
|
msgid "Failed to load theme"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: source/ubl-strings.h:24
|
||||||
|
msgid "Main theme"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: source/ubl-strings.h:25
|
||||||
|
msgid "GNOME theme"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: source/ubl-strings.h:26
|
||||||
|
msgid "Default"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: source/ubl-strings.h:27
|
||||||
|
msgid "Section name"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: source/ubl-strings.h:28
|
||||||
|
msgid "Identifier"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: source/ubl-strings.h:29
|
||||||
|
msgid "Add section"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: source/ubl-strings.h:30
|
||||||
|
msgid "Clear fields"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: source/ubl-strings.h:31
|
||||||
|
msgid "Remove section"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: source/ubl-strings.h:32
|
||||||
|
msgid "Personal"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: source/ubl-strings.h:33
|
||||||
|
msgid "Hardware"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: source/ubl-strings.h:34
|
||||||
|
msgid "System"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: source/ubl-strings.h:35
|
||||||
|
msgid "Misc"
|
||||||
|
msgstr ""
|
||||||
@ -0,0 +1,177 @@
|
|||||||
|
#include "ubl-settings-manager.h"
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
GtkWidget *Window;
|
||||||
|
GtkWidget *StatusBox;
|
||||||
|
GtkWidget *DefaultSwitch;
|
||||||
|
GtkWidget *SectionsBox;
|
||||||
|
GtkWidget *NameEntry;
|
||||||
|
GtkWidget *CategoriesEntry;
|
||||||
|
GtkWidget *ClearButton;
|
||||||
|
GtkWidget *AddButton;
|
||||||
|
GtkWidget *CancelButton;
|
||||||
|
GtkWidget *SaveButton;
|
||||||
|
// section_struct *sections;
|
||||||
|
} settings_section_window;
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
GtkWidget *SectionBox;
|
||||||
|
GtkWidget *NameEntry;
|
||||||
|
GtkWidget *CategoriesEntry;
|
||||||
|
GtkWidget *RemoveButton;
|
||||||
|
// GtkWidget *AcceptButton;
|
||||||
|
} section_struct;
|
||||||
|
|
||||||
|
void yon_section_window_add_default(settings_section_window *window);
|
||||||
|
void on_section_remove(GtkWidget *,section_struct *section);
|
||||||
|
void on_section_add(GtkWidget *,settings_section_window *window);
|
||||||
|
void on_section_clear(GtkWidget *,settings_section_window *window);
|
||||||
|
void on_sections_save(GtkWidget *,settings_section_window *window);
|
||||||
|
section_struct *yon_section_new();
|
||||||
|
settings_section_window *yon_section_window_new();
|
||||||
|
|
||||||
|
|
||||||
|
void on_section_remove(GtkWidget *,section_struct *section){
|
||||||
|
gtk_widget_destroy(section->SectionBox);
|
||||||
|
}
|
||||||
|
|
||||||
|
section_struct *yon_section_new(){
|
||||||
|
section_struct *section = malloc(sizeof(section_struct));
|
||||||
|
GtkBuilder *builder = gtk_builder_new_from_resource(glade_path_section_element);
|
||||||
|
section->SectionBox = yon_gtk_builder_get_widget(builder,"SectionBox");
|
||||||
|
section->NameEntry = yon_gtk_builder_get_widget(builder,"NameEntry");
|
||||||
|
section->CategoriesEntry = yon_gtk_builder_get_widget(builder,"CategoriesEntry");
|
||||||
|
section->RemoveButton = yon_gtk_builder_get_widget(builder,"RemoveButton");
|
||||||
|
// section->AcceptButton = yon_gtk_builder_get_widget(builder,"AcceptButton");
|
||||||
|
|
||||||
|
g_object_set_data(G_OBJECT(section->SectionBox),"section",section);
|
||||||
|
|
||||||
|
g_signal_connect(G_OBJECT(section->RemoveButton),"clicked",G_CALLBACK(on_section_remove),section);
|
||||||
|
return section;
|
||||||
|
}
|
||||||
|
|
||||||
|
void on_section_add(GtkWidget *,settings_section_window *window){
|
||||||
|
const char *cat_name = gtk_entry_get_text(GTK_ENTRY(window->NameEntry));
|
||||||
|
char *cat_categories = yon_char_new(gtk_entry_get_text(GTK_ENTRY(window->CategoriesEntry)));
|
||||||
|
if (cat_categories[strlen(cat_categories)-1]!=';') {
|
||||||
|
char *temp = yon_char_append_c(cat_categories,';');
|
||||||
|
free(cat_categories);
|
||||||
|
cat_categories = temp;
|
||||||
|
}
|
||||||
|
if (yon_char_is_empty(cat_name)){
|
||||||
|
yon_ubl_status_box_spawn(GTK_CONTAINER(window->StatusBox),_EMPTY_IMPORTANT_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE);
|
||||||
|
yon_ubl_status_highlight_incorrect(window->NameEntry);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
section_struct *section = yon_section_new();
|
||||||
|
gtk_box_pack_start(GTK_BOX(window->SectionsBox),section->SectionBox,0,0,0);
|
||||||
|
|
||||||
|
gtk_entry_set_text(GTK_ENTRY(section->NameEntry),cat_name);
|
||||||
|
gtk_entry_set_text(GTK_ENTRY(section->CategoriesEntry),cat_categories);
|
||||||
|
|
||||||
|
gtk_entry_set_text(GTK_ENTRY(window->NameEntry),"");
|
||||||
|
gtk_entry_set_text(GTK_ENTRY(window->CategoriesEntry),"");
|
||||||
|
free(cat_categories);
|
||||||
|
}
|
||||||
|
|
||||||
|
void on_section_clear(GtkWidget *,settings_section_window *window){
|
||||||
|
gtk_entry_set_text(GTK_ENTRY(window->NameEntry),"");
|
||||||
|
gtk_entry_set_text(GTK_ENTRY(window->CategoriesEntry),"");
|
||||||
|
}
|
||||||
|
|
||||||
|
void on_sections_save(GtkWidget *,settings_section_window *window){
|
||||||
|
main_window *widgets = g_object_get_data(G_OBJECT(window->Window),"widgets");
|
||||||
|
gsize size;
|
||||||
|
config_str parameters = yon_window_config_get_section(sections_section,&size);
|
||||||
|
for (gsize i=0;i<size;i++){
|
||||||
|
yon_window_config_erase_instant_parameter(parameters[i],sections_section);
|
||||||
|
}
|
||||||
|
if (!gtk_switch_get_active(GTK_SWITCH(window->DefaultSwitch))){
|
||||||
|
GList *list = gtk_container_get_children(GTK_CONTAINER(window->SectionsBox));
|
||||||
|
GList *iter;
|
||||||
|
for (iter=list;iter;iter=iter->next){
|
||||||
|
section_struct *section = g_object_get_data(G_OBJECT(iter->data),"section");
|
||||||
|
char *name = (char*)gtk_entry_get_text(GTK_ENTRY(section->NameEntry));
|
||||||
|
char *categories = (char*)gtk_entry_get_text(GTK_ENTRY(section->CategoriesEntry));
|
||||||
|
yon_window_config_add_instant_parameter(name,sections_section,categories,YON_TYPE_STRING);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
on_subwindow_close(window->Window);
|
||||||
|
yon_interface_update(widgets);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void yon_section_window_add_default(settings_section_window *window){
|
||||||
|
|
||||||
|
section_struct *cur_section = yon_section_new();
|
||||||
|
gtk_box_pack_start(GTK_BOX(window->SectionsBox),cur_section->SectionBox,0,0,0);
|
||||||
|
gtk_entry_set_text(GTK_ENTRY(cur_section->NameEntry),_("Personal"));
|
||||||
|
gtk_entry_set_text(GTK_ENTRY(cur_section->CategoriesEntry),"X-UBL-SettingsManager;X-UBL-PersonalSettings;");
|
||||||
|
|
||||||
|
cur_section = yon_section_new();
|
||||||
|
gtk_box_pack_start(GTK_BOX(window->SectionsBox),cur_section->SectionBox,0,0,0);
|
||||||
|
gtk_entry_set_text(GTK_ENTRY(cur_section->NameEntry),_("Hardware"));
|
||||||
|
gtk_entry_set_text(GTK_ENTRY(cur_section->CategoriesEntry),"X-UBL-SettingsManager;X-UBL-HardwareSettings;");
|
||||||
|
|
||||||
|
cur_section = yon_section_new();
|
||||||
|
gtk_box_pack_start(GTK_BOX(window->SectionsBox),cur_section->SectionBox,0,0,0);
|
||||||
|
gtk_entry_set_text(GTK_ENTRY(cur_section->NameEntry),_("System"));
|
||||||
|
gtk_entry_set_text(GTK_ENTRY(cur_section->CategoriesEntry),"X-UBL-SettingsManager;X-UBL-SystemSettings;");
|
||||||
|
|
||||||
|
cur_section = yon_section_new();
|
||||||
|
gtk_box_pack_start(GTK_BOX(window->SectionsBox),cur_section->SectionBox,0,0,0);
|
||||||
|
gtk_entry_set_text(GTK_ENTRY(cur_section->NameEntry),_("Misc"));
|
||||||
|
gtk_entry_set_text(GTK_ENTRY(cur_section->CategoriesEntry),"");
|
||||||
|
}
|
||||||
|
|
||||||
|
settings_section_window *yon_section_window_new(){
|
||||||
|
settings_section_window *window = malloc(sizeof(settings_section_window));
|
||||||
|
|
||||||
|
GtkBuilder *builder = gtk_builder_new_from_resource(glade_path_settings_section);
|
||||||
|
window->Window = yon_gtk_builder_get_widget(builder,"Window");
|
||||||
|
window->StatusBox = yon_gtk_builder_get_widget(builder,"StatusBox");
|
||||||
|
window->DefaultSwitch = yon_gtk_builder_get_widget(builder,"DefaultSwitch");
|
||||||
|
window->SectionsBox = yon_gtk_builder_get_widget(builder,"SectionsBox");
|
||||||
|
window->NameEntry = yon_gtk_builder_get_widget(builder,"NameEntry");
|
||||||
|
window->CategoriesEntry = yon_gtk_builder_get_widget(builder,"CategoriesEntry");
|
||||||
|
window->ClearButton = yon_gtk_builder_get_widget(builder,"ClearButton");
|
||||||
|
window->AddButton = yon_gtk_builder_get_widget(builder,"AddButton");
|
||||||
|
window->CancelButton = yon_gtk_builder_get_widget(builder,"CancelButton");
|
||||||
|
window->SaveButton = yon_gtk_builder_get_widget(builder,"SaveButton");
|
||||||
|
|
||||||
|
g_signal_connect(G_OBJECT(window->CancelButton),"clicked",G_CALLBACK(on_subwindow_close),NULL);
|
||||||
|
g_signal_connect(G_OBJECT(window->SaveButton),"clicked",G_CALLBACK(on_sections_save),window);
|
||||||
|
g_signal_connect(G_OBJECT(window->AddButton),"clicked",G_CALLBACK(on_section_add),window);
|
||||||
|
g_signal_connect(G_OBJECT(window->ClearButton),"clicked",G_CALLBACK(on_section_clear),window);
|
||||||
|
g_signal_connect(G_OBJECT(window->DefaultSwitch),"state-set",G_CALLBACK(yon_gtk_widget_set_sensitive_from_switch_inversed),window->SectionsBox);
|
||||||
|
g_signal_connect(G_OBJECT(window->DefaultSwitch),"state-set",G_CALLBACK(yon_gtk_widget_set_sensitive_from_switch_inversed),window->NameEntry);
|
||||||
|
g_signal_connect(G_OBJECT(window->DefaultSwitch),"state-set",G_CALLBACK(yon_gtk_widget_set_sensitive_from_switch_inversed),window->CategoriesEntry);
|
||||||
|
g_signal_connect(G_OBJECT(window->DefaultSwitch),"state-set",G_CALLBACK(yon_gtk_widget_set_sensitive_from_switch_inversed),window->AddButton);
|
||||||
|
g_signal_connect(G_OBJECT(window->DefaultSwitch),"state-set",G_CALLBACK(yon_gtk_widget_set_sensitive_from_switch_inversed),window->ClearButton);
|
||||||
|
|
||||||
|
gsize parameters_size;
|
||||||
|
config_str parameters = NULL;
|
||||||
|
parameters = yon_window_config_get_section(sections_section,¶meters_size);
|
||||||
|
if (parameters_size){
|
||||||
|
for (gsize i=0;i<parameters_size;i++){
|
||||||
|
char *param;
|
||||||
|
yon_window_config_get_parameter(sections_section,parameters[i],¶m,YON_TYPE_STRING);
|
||||||
|
section_struct *cur_section = yon_section_new();
|
||||||
|
gtk_box_pack_start(GTK_BOX(window->SectionsBox),cur_section->SectionBox,0,0,0);
|
||||||
|
gtk_entry_set_text(GTK_ENTRY(cur_section->NameEntry),parameters[i]);
|
||||||
|
gtk_entry_set_text(GTK_ENTRY(cur_section->CategoriesEntry),param);
|
||||||
|
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
gtk_switch_set_active(GTK_SWITCH(window->DefaultSwitch),1);
|
||||||
|
yon_section_window_add_default(window);
|
||||||
|
}
|
||||||
|
return window;
|
||||||
|
}
|
||||||
|
|
||||||
|
void yon_section_window_open(GtkWidget *, settings_window *settings){
|
||||||
|
main_window *widgets = g_object_get_data(G_OBJECT(settings->Window),"widgets");
|
||||||
|
settings_section_window *window = yon_section_window_new();
|
||||||
|
g_object_set_data(G_OBJECT(window->Window),"widgets",widgets);
|
||||||
|
yon_gtk_window_setup(GTK_WINDOW(window->Window),GTK_WINDOW(settings->Window),TITLE_LABEL,icon_path,"sections_window");
|
||||||
|
}
|
||||||
@ -0,0 +1,203 @@
|
|||||||
|
#include "ubl-settings-manager.h"
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
GtkWidget *expander;
|
||||||
|
GtkWidget *MainLabel;
|
||||||
|
GtkWidget *AppsList;
|
||||||
|
app_section *section;
|
||||||
|
} main_section;
|
||||||
|
|
||||||
|
void yon_main_section_setup_apps(main_section *cur_section, const char *target);
|
||||||
|
main_section *yon_main_section_new();
|
||||||
|
void yon_main_section_get_max_size(main_section *section, int *ret_width, int *ret_height);
|
||||||
|
|
||||||
|
void on_main_plug_connected(GtkWidget *,main_theme_struct *theme){
|
||||||
|
gtk_widget_show(theme->SocketBox);
|
||||||
|
gtk_widget_hide(theme->HideBox);
|
||||||
|
}
|
||||||
|
|
||||||
|
void on_main_plug_disconnected(GtkWidget *,main_theme_struct *theme){
|
||||||
|
gtk_widget_show(theme->HideBox);
|
||||||
|
gtk_widget_hide(theme->SocketBox);
|
||||||
|
on_plug_disconnected(GTK_SOCKET(theme->Socket),main_config.widgets);
|
||||||
|
}
|
||||||
|
|
||||||
|
void on_main_selected(GtkWidget* self, main_theme_struct *theme);
|
||||||
|
void on_main_selected(GtkWidget* self, main_theme_struct *theme){
|
||||||
|
GList *list = gtk_container_get_children(GTK_CONTAINER(theme->AppsTree));
|
||||||
|
GList *iter;
|
||||||
|
for (iter=list;iter;iter=iter->next){
|
||||||
|
main_section *cur_section = g_object_get_data(G_OBJECT(iter->data),"main_section");
|
||||||
|
if (cur_section->AppsList != self){
|
||||||
|
g_signal_handlers_block_by_func(G_OBJECT(cur_section->AppsList),G_CALLBACK(on_main_selected),theme);
|
||||||
|
GList *flowlist = gtk_flow_box_get_selected_children(GTK_FLOW_BOX(cur_section->AppsList));
|
||||||
|
if (flowlist){
|
||||||
|
gtk_flow_box_unselect_child(GTK_FLOW_BOX(cur_section->AppsList),GTK_FLOW_BOX_CHILD(flowlist->data));
|
||||||
|
g_list_free(flowlist);
|
||||||
|
}
|
||||||
|
g_signal_handlers_unblock_by_func(G_OBJECT(cur_section->AppsList),G_CALLBACK(on_main_selected),theme);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void on_main_activate(GtkFlowBox* , GtkFlowBoxChild* child, main_theme_struct *theme){
|
||||||
|
theme->Socket = GTK_WIDGET(yon_sockets_init(GTK_BOX(theme->SocketBox)));
|
||||||
|
g_signal_connect(G_OBJECT(theme->Socket),"plug_added",G_CALLBACK(on_main_plug_connected),theme);
|
||||||
|
g_signal_connect(G_OBJECT(theme->Socket),"destroy",G_CALLBACK(on_main_plug_disconnected),theme);
|
||||||
|
apps *cur_app = g_object_get_data(G_OBJECT(child),"apps");
|
||||||
|
char *command = cur_app->Exec;//launch_command(cur_app->Desktop_path);
|
||||||
|
char *command_args = NULL;
|
||||||
|
if (cur_app->DualPluggable==1){
|
||||||
|
char *save_socket = yon_get_save_socket();
|
||||||
|
char *load_socket = yon_get_load_socket();
|
||||||
|
char *main_socket_id = yon_char_from_long((long)gtk_socket_get_id(GTK_SOCKET(theme->Socket)));
|
||||||
|
command_args = launch_args_command(main_socket_id,load_socket,save_socket);
|
||||||
|
} else if (cur_app->Pluggable){
|
||||||
|
char *main_socket_id = yon_char_from_long((long)gtk_socket_get_id(GTK_SOCKET(theme->Socket)));
|
||||||
|
command_args = yon_char_unite("--socket-id=",main_socket_id,NULL);
|
||||||
|
|
||||||
|
}
|
||||||
|
yon_launch_app_with_arguments(command,command_args);
|
||||||
|
}
|
||||||
|
|
||||||
|
// void on_main_socket_add(){
|
||||||
|
|
||||||
|
// }
|
||||||
|
|
||||||
|
void yon_main_section_setup_apps(main_section *cur_section, const char *target){
|
||||||
|
if (yon_char_is_empty(target)) return;
|
||||||
|
apps *cur_app = yon_apps_get((char*)target);
|
||||||
|
GtkIconInfo *info = gtk_icon_theme_lookup_icon_for_scale(gtk_icon_theme_get_default(), !yon_char_is_empty(cur_app->Icon)?cur_app->Icon:icon_path, main_config.apps_icon_size,1,GTK_ICON_LOOKUP_FORCE_SIZE);
|
||||||
|
GtkWidget *Image = NULL;
|
||||||
|
if (info){
|
||||||
|
Image = gtk_image_new_from_pixbuf(gtk_icon_info_load_icon(info,NULL));
|
||||||
|
} else {
|
||||||
|
info = gtk_icon_theme_lookup_icon_for_scale(gtk_icon_theme_get_default(), icon_path, main_config.apps_icon_size,1,GTK_ICON_LOOKUP_FORCE_SIZE);
|
||||||
|
Image = gtk_image_new_from_pixbuf(gtk_icon_info_load_icon(info,NULL));
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
char *name = yon_char_wrap_to_length_str(cur_app->Name,20);
|
||||||
|
|
||||||
|
GtkWidget *Row = gtk_flow_box_child_new();
|
||||||
|
GtkWidget *Box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL,5);
|
||||||
|
GtkWidget *Label = gtk_label_new(name);
|
||||||
|
GtkWidget *Icon = Image;
|
||||||
|
|
||||||
|
gtk_box_pack_start(GTK_BOX(Box),Icon,0,0,0);
|
||||||
|
gtk_box_pack_start(GTK_BOX(Box),Label,0,0,0);
|
||||||
|
gtk_container_add(GTK_CONTAINER(Row),Box);
|
||||||
|
gtk_flow_box_insert(GTK_FLOW_BOX(cur_section->AppsList),Row,-1);
|
||||||
|
|
||||||
|
gtk_widget_set_size_request(Row,50,50);
|
||||||
|
|
||||||
|
gtk_widget_set_halign(Box,GTK_ALIGN_START);
|
||||||
|
gtk_widget_set_valign(Box,GTK_ALIGN_CENTER);
|
||||||
|
|
||||||
|
gtk_label_set_line_wrap_mode(GTK_LABEL(Label),PANGO_WRAP_WORD);
|
||||||
|
gtk_label_set_line_wrap(GTK_LABEL(Label),1);
|
||||||
|
gtk_label_set_xalign(GTK_LABEL(Label),0);
|
||||||
|
|
||||||
|
g_object_set_data(G_OBJECT(Row),"main_section",cur_section);
|
||||||
|
g_object_set_data(G_OBJECT(Row),"apps",cur_app);
|
||||||
|
g_object_set_data(G_OBJECT(Row),"Label",Label);
|
||||||
|
|
||||||
|
gtk_widget_show_all(Row);
|
||||||
|
}
|
||||||
|
|
||||||
|
main_section *yon_main_section_new(){
|
||||||
|
main_section *cur_section = malloc(sizeof(main_section));
|
||||||
|
memset(cur_section,0,sizeof(main_section));
|
||||||
|
GtkBuilder *builder = gtk_builder_new_from_resource(glade_path_main_section);
|
||||||
|
cur_section->expander = yon_gtk_builder_get_widget(builder,"MainExpander");
|
||||||
|
cur_section->MainLabel = yon_gtk_builder_get_widget(builder,"MainLabel");
|
||||||
|
cur_section->AppsList = yon_gtk_builder_get_widget(builder,"AppsFlow");
|
||||||
|
g_object_set_data(G_OBJECT(cur_section->expander),"main_section",cur_section);
|
||||||
|
int doubleclick=0;
|
||||||
|
yon_window_config_get_parameter(settings_section,double_click_parameter,&doubleclick,YON_TYPE_BOOLEAN);
|
||||||
|
gtk_flow_box_set_activate_on_single_click(GTK_FLOW_BOX(cur_section->AppsList),!doubleclick);
|
||||||
|
return cur_section;
|
||||||
|
}
|
||||||
|
|
||||||
|
void yon_main_section_setup(main_theme_struct *theme, app_section *section){
|
||||||
|
main_section *cur_section = yon_main_section_new();
|
||||||
|
cur_section->section = section;
|
||||||
|
gtk_label_set_text(GTK_LABEL(cur_section->MainLabel),section->name);
|
||||||
|
int app_size;
|
||||||
|
config_str app_list = yon_apps_get_by_categories(section->categories,section->categories_size,&app_size);
|
||||||
|
for(int i=0;i<app_size;i++){
|
||||||
|
yon_main_section_setup_apps(cur_section,app_list[i]);
|
||||||
|
}
|
||||||
|
gtk_box_pack_start(GTK_BOX(theme->AppsTree),cur_section->expander,0,0,0);
|
||||||
|
g_object_set_data(G_OBJECT(cur_section->expander),"main_section",cur_section);
|
||||||
|
g_signal_connect(G_OBJECT(cur_section->AppsList),"child-activated",G_CALLBACK(on_main_activate),theme);
|
||||||
|
g_signal_connect(G_OBJECT(cur_section->AppsList),"selected-children-changed",G_CALLBACK(on_main_selected),theme);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void yon_main_section_get_max_size(main_section *section, int *ret_width, int *ret_height){
|
||||||
|
GList *list = gtk_container_get_children(GTK_CONTAINER(section->AppsList));
|
||||||
|
GList *iter;
|
||||||
|
for (iter = list; iter;iter=iter->next){
|
||||||
|
gtk_widget_realize(GTK_WIDGET(iter->data));
|
||||||
|
int width;
|
||||||
|
int height;
|
||||||
|
GtkWidget *Label = g_object_get_data(G_OBJECT(iter->data),"Label");
|
||||||
|
|
||||||
|
gtk_widget_get_preferred_width(Label,NULL,&width);
|
||||||
|
gtk_widget_get_preferred_height(Label,NULL,&height);
|
||||||
|
if ((*ret_width)<width) (*ret_width) = width;
|
||||||
|
if ((*ret_height)<height) (*ret_height) = height;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void yon_main_theme_resize(main_theme_struct *theme){
|
||||||
|
GList *list = gtk_container_get_children(GTK_CONTAINER(theme->AppsTree));
|
||||||
|
GList *iter;
|
||||||
|
int max_width=0;
|
||||||
|
int max_height=0;
|
||||||
|
for (iter=list;iter;iter=iter->next){
|
||||||
|
main_section *section = g_object_get_data(G_OBJECT(iter->data),"main_section");
|
||||||
|
yon_main_section_get_max_size(section,&max_width,&max_height);
|
||||||
|
}
|
||||||
|
for (iter=list;iter;iter=iter->next){
|
||||||
|
main_section *section = g_object_get_data(G_OBJECT(iter->data),"main_section");
|
||||||
|
GList *child_list = gtk_container_get_children(GTK_CONTAINER(section->AppsList));
|
||||||
|
if (child_list){
|
||||||
|
GtkWidget *Label = g_object_get_data(G_OBJECT(child_list->data),"Label");
|
||||||
|
gtk_widget_set_size_request(Label,max_width,max_height);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
int yon_main_update(main_theme_struct *theme){
|
||||||
|
GList *list = gtk_container_get_children(GTK_CONTAINER(theme->AppsTree));
|
||||||
|
GList *iter;
|
||||||
|
for (iter=list;iter;iter=iter->next){
|
||||||
|
gtk_widget_destroy(GTK_WIDGET(iter->data));
|
||||||
|
}
|
||||||
|
|
||||||
|
dictionary *cur;
|
||||||
|
for_dictionaries(cur,main_config.sections){
|
||||||
|
app_section *section_data = yon_dictionary_get_data(cur,app_section*);
|
||||||
|
yon_main_section_setup(theme,section_data);
|
||||||
|
}
|
||||||
|
|
||||||
|
yon_main_theme_resize(theme);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
main_theme_struct *yon_main_theme_new(){
|
||||||
|
main_theme_struct *theme = malloc(sizeof(main_theme_struct));
|
||||||
|
|
||||||
|
GtkBuilder *builder = gtk_builder_new_from_resource(glade_path_main_theme);
|
||||||
|
theme->MainBox = yon_gtk_builder_get_widget(builder,"MainBox");
|
||||||
|
theme->AppsTree = yon_gtk_builder_get_widget(builder,"AppsTree");
|
||||||
|
theme->SocketBox = yon_gtk_builder_get_widget(builder,"SocketBox");
|
||||||
|
theme->HideBox = yon_gtk_builder_get_widget(builder,"HideBox");
|
||||||
|
theme->theme_name = yon_char_new(MAIN_THEME_LABEL);
|
||||||
|
theme->Socket = NULL;
|
||||||
|
theme->list_update_func = (int(*)(struct main_theme_struct*))yon_main_update;
|
||||||
|
|
||||||
|
return theme;
|
||||||
|
}
|
||||||
@ -0,0 +1,62 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!-- Generated with glade 3.40.0 -->
|
||||||
|
<interface>
|
||||||
|
<requires lib="gtk+" version="3.24"/>
|
||||||
|
<object class="GtkImage" id="image2">
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="can-focus">False</property>
|
||||||
|
<property name="pixel-size">16</property>
|
||||||
|
<property name="icon-name">com.ublinux.libublsettingsui-gtk3.trash-symbolic</property>
|
||||||
|
</object>
|
||||||
|
<object class="GtkBox" id="SectionBox">
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="can-focus">False</property>
|
||||||
|
<property name="spacing">5</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkEntry" id="NameEntry">
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="can-focus">False</property>
|
||||||
|
<property name="width-chars">15</property>
|
||||||
|
<property name="truncate-multiline">True</property>
|
||||||
|
<property name="caps-lock-warning">False</property>
|
||||||
|
<property name="input-purpose">name</property>
|
||||||
|
</object>
|
||||||
|
<packing>
|
||||||
|
<property name="expand">False</property>
|
||||||
|
<property name="fill">True</property>
|
||||||
|
<property name="position">0</property>
|
||||||
|
</packing>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkEntry" id="CategoriesEntry">
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="can-focus">False</property>
|
||||||
|
<property name="width-chars">0</property>
|
||||||
|
<property name="caps-lock-warning">False</property>
|
||||||
|
</object>
|
||||||
|
<packing>
|
||||||
|
<property name="expand">True</property>
|
||||||
|
<property name="fill">True</property>
|
||||||
|
<property name="position">1</property>
|
||||||
|
</packing>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="RemoveButton">
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="can-focus">True</property>
|
||||||
|
<property name="receives-default">True</property>
|
||||||
|
<property name="tooltip-text" translatable="yes">Remove section</property>
|
||||||
|
<property name="halign">center</property>
|
||||||
|
<property name="image">image2</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>
|
||||||
|
</object>
|
||||||
|
</interface>
|
||||||
@ -1,60 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<!-- Generated with glade 3.38.2 -->
|
|
||||||
<interface>
|
|
||||||
<requires lib="gtk+" version="3.24"/>
|
|
||||||
<object class="GtkListStore" id="liststoreTemplate">
|
|
||||||
<columns>
|
|
||||||
<!-- column-name gchararray1 -->
|
|
||||||
<column type="gchararray"/>
|
|
||||||
<!-- column-name gfloat1 -->
|
|
||||||
<column type="gfloat"/>
|
|
||||||
<!-- column-name gfloat2 -->
|
|
||||||
<column type="gfloat"/>
|
|
||||||
<!-- column-name gint1 -->
|
|
||||||
<column type="gint"/>
|
|
||||||
<!-- column-name GdkPixbuf1 -->
|
|
||||||
<column type="GdkPixbuf"/>
|
|
||||||
<!-- column-name gint2 -->
|
|
||||||
<column type="gint"/>
|
|
||||||
</columns>
|
|
||||||
</object>
|
|
||||||
<object class="GtkIconView" id="iconTemplate">
|
|
||||||
<property name="visible">True</property>
|
|
||||||
<property name="can-focus">True</property>
|
|
||||||
<property name="margin">4</property>
|
|
||||||
<property name="hscroll-policy">natural</property>
|
|
||||||
<property name="item-orientation">horizontal</property>
|
|
||||||
<property name="model">liststoreTemplate</property>
|
|
||||||
<property name="item-width">135</property>
|
|
||||||
<property name="row-spacing">0</property>
|
|
||||||
<property name="column-spacing">2</property>
|
|
||||||
<property name="item-padding">5</property>
|
|
||||||
<property name="activate-on-single-click">True</property>
|
|
||||||
<child>
|
|
||||||
<object class="GtkCellRendererPixbuf" id="iconPic">
|
|
||||||
<property name="xpad">2</property>
|
|
||||||
</object>
|
|
||||||
<attributes>
|
|
||||||
<attribute name="width">5</attribute>
|
|
||||||
<attribute name="height">3</attribute>
|
|
||||||
<attribute name="xalign">1</attribute>
|
|
||||||
<attribute name="yalign">2</attribute>
|
|
||||||
<attribute name="pixbuf">4</attribute>
|
|
||||||
</attributes>
|
|
||||||
</child>
|
|
||||||
<child>
|
|
||||||
<object class="GtkCellRendererText">
|
|
||||||
<property name="xalign">0</property>
|
|
||||||
<property name="wrap-mode">word</property>
|
|
||||||
<property name="wrap-width">130</property>
|
|
||||||
</object>
|
|
||||||
<attributes>
|
|
||||||
<attribute name="height">3</attribute>
|
|
||||||
<attribute name="text">0</attribute>
|
|
||||||
</attributes>
|
|
||||||
</child>
|
|
||||||
<style>
|
|
||||||
<class name="workingbg"/>
|
|
||||||
</style>
|
|
||||||
</object>
|
|
||||||
</interface>
|
|
||||||
@ -0,0 +1,56 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!-- Generated with glade 3.38.2 -->
|
||||||
|
<interface domain="ubl-settings-manager">
|
||||||
|
<requires lib="gtk+" version="3.24"/>
|
||||||
|
<!-- interface-css-provider-path ubl-settings-manager.css -->
|
||||||
|
<object class="GtkListStore" id="List">
|
||||||
|
<columns>
|
||||||
|
<!-- column-name Name -->
|
||||||
|
<column type="gchararray"/>
|
||||||
|
<!-- column-name Icon -->
|
||||||
|
<column type="GdkPixbuf"/>
|
||||||
|
</columns>
|
||||||
|
</object>
|
||||||
|
<object class="GtkBox" id="MainExpander">
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="can-focus">False</property>
|
||||||
|
<property name="orientation">vertical</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel" id="MainLabel">
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="can-focus">False</property>
|
||||||
|
<property name="label" translatable="yes">label</property>
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<attributes>
|
||||||
|
<attribute name="size" value="13312"/>
|
||||||
|
</attributes>
|
||||||
|
<style>
|
||||||
|
<class name="separatorBottom"/>
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
<packing>
|
||||||
|
<property name="expand">False</property>
|
||||||
|
<property name="fill">True</property>
|
||||||
|
<property name="position">0</property>
|
||||||
|
</packing>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkFlowBox" id="AppsFlow">
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="can-focus">False</property>
|
||||||
|
<property name="valign">start</property>
|
||||||
|
<property name="homogeneous">True</property>
|
||||||
|
<property name="column-spacing">5</property>
|
||||||
|
<property name="row-spacing">5</property>
|
||||||
|
<property name="max-children-per-line">15</property>
|
||||||
|
<property name="selection-mode">browse</property>
|
||||||
|
<property name="activate-on-single-click">False</property>
|
||||||
|
</object>
|
||||||
|
<packing>
|
||||||
|
<property name="expand">False</property>
|
||||||
|
<property name="fill">True</property>
|
||||||
|
<property name="position">1</property>
|
||||||
|
</packing>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</interface>
|
||||||
@ -1,22 +0,0 @@
|
|||||||
[window]
|
|
||||||
WindowPosX=0
|
|
||||||
WindowPosY=0
|
|
||||||
WindowWidth=800
|
|
||||||
WindowHeight=600
|
|
||||||
WindowTheme=0
|
|
||||||
MainIconSize=3
|
|
||||||
GnomeIconSize=3
|
|
||||||
IconSegmentSize=250
|
|
||||||
MainLabelSize=12
|
|
||||||
GnomeLabelSize=12
|
|
||||||
LabelDensity=0
|
|
||||||
User=
|
|
||||||
GnomeDoubleClick=false
|
|
||||||
MainDoubleClick=true
|
|
||||||
BannerHidden=false
|
|
||||||
|
|
||||||
[sections]
|
|
||||||
Personal=X-UBL-SettingsManager;X-UBL-PersonalSettings;
|
|
||||||
Hardware=X-UBL-SettingsManager;X-UBL-HardwareSettings;
|
|
||||||
System=X-UBL-SettingsManager;X-UBL-SystemSettings;
|
|
||||||
Misc=
|
|
||||||
@ -1,164 +0,0 @@
|
|||||||
# Language translations for ubl-settings-manager package.
|
|
||||||
# Copyright (C) 2022, UBTech LLC
|
|
||||||
# This file is distributed under the same license as the ubl-settings-manager package.
|
|
||||||
# UBLinux Team <info@ublinux.com>, 2022
|
|
||||||
#
|
|
||||||
#, fuzzy
|
|
||||||
msgid ""
|
|
||||||
msgstr ""
|
|
||||||
"Project-Id-Version: ubl-settings-manager 1.0\n"
|
|
||||||
"Report-Msgid-Bugs-To: info@ublinux.com\n"
|
|
||||||
"Report-Msgid-Bugs-To: \n"
|
|
||||||
"POT-Creation-Date: 2023-04-21 12:33+0000\n"
|
|
||||||
"PO-Revision-Date: 2023-01-01 00:00+0600\n"
|
|
||||||
"Last-Translator: UBLinux Team <info@ublinux.com>\n"
|
|
||||||
"Language-Team: Russian - UBLinux Team <info@ublinux.com>\n"
|
|
||||||
"Language: Russian\n"
|
|
||||||
"MIME-Version: 1.0\n"
|
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
|
||||||
|
|
||||||
#: source/ubl-settings-manager.h:9
|
|
||||||
msgid ""
|
|
||||||
"\n"
|
|
||||||
"GTK settings manager for UBLinux\n"
|
|
||||||
"Usage: ubl-settings-manager [OPTIONS...]\n"
|
|
||||||
"Options:\n"
|
|
||||||
" -h, --help\t\t Show this help\n"
|
|
||||||
" -V, --version\t \t Show package version\n"
|
|
||||||
" --lock-settings Lock menu settings\n"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: source/ubl-settings-manager.h:27
|
|
||||||
msgid "About UBLinux Settings Manager"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: source/ubl-settings-manager.h:34 source/ubl-settings-manager.c:1685
|
|
||||||
msgid "About..."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: source/ubl-settings-manager.h:37 source/ubl-settings-manager.h:36
|
|
||||||
#: source/ubl-settings-manager.c:1683
|
|
||||||
msgid "Always redirect"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: source/ubl-settings-manager.h:38 source/ubl-settings-manager.h:37
|
|
||||||
#: source/ubl-settings-manager.c:1742
|
|
||||||
msgid "Apply"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: source/ubl-settings-manager.h:47 source/ubl-settings-manager.h:46
|
|
||||||
#: source/ubl-settings-manager.c:1600
|
|
||||||
msgid "All settings"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: source/ubl-settings-manager.h:41 source/ubl-settings-manager.h:40
|
|
||||||
#: source/ubl-settings-manager.c:1680
|
|
||||||
msgid "Cancel"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: source/ubl-settings-manager.h:40 source/ubl-settings-manager.h:39
|
|
||||||
#: source/ubl-settings-manager.c:1681
|
|
||||||
msgid "Close"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: source/ubl-settings-manager.h:30
|
|
||||||
msgid "Config loading failed!\n"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: source/ubl-settings-manager.h:35
|
|
||||||
msgid "Documentation"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: source/ubl-settings-manager.h:31 source/ubl-settings-manager.c:1748
|
|
||||||
msgid "Double click selection"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: source/ubl-settings-manager.c:1913 source/ubl-settings-manager.c:1912
|
|
||||||
#: source/ubl-settings-manager.c:1793
|
|
||||||
msgid "GNOME theme"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Hardware"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: source/ubl-settings-manager.h:46 source/ubl-settings-manager.h:45
|
|
||||||
#: source/ubl-settings-manager.c:1675
|
|
||||||
msgid "Icon size"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Misc"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Personal"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: source/ubl-settings-manager.h:28 source/ubl-settings-manager.c:636
|
|
||||||
msgid "Project Home Page"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: source/ubl-settings-manager.h:42 source/ubl-settings-manager.h:41
|
|
||||||
#: source/ubl-settings-manager.c:1679
|
|
||||||
msgid "Read online"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: source/ubl-settings-manager.h:39 source/ubl-settings-manager.h:38
|
|
||||||
#: source/ubl-settings-manager.c:1682
|
|
||||||
msgid "Save and apply"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: source/ubl-settings-manager.h:32 source/ubl-settings-manager.c:1687
|
|
||||||
msgid "Sections management"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: source/ubl-settings-manager.h:36 source/ubl-settings-manager.h:35
|
|
||||||
#: source/ubl-settings-manager.c:1684
|
|
||||||
msgid "Settings"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: source/ubl-settings-manager.h:29 source/ubl-settings-manager.c:632
|
|
||||||
msgid "Settings manager for UBLinux"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: source/ubl-settings-manager.c:1912 source/ubl-settings-manager.c:1911
|
|
||||||
#: source/ubl-settings-manager.c:1792
|
|
||||||
msgid "Standard theme"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "System"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: source/ubl-settings-manager.h:26 source/ubl-settings-manager.c:633
|
|
||||||
#: source/ubl-settings-manager.c:1601 source/ubl-settings-manager.c:1615
|
|
||||||
#: source/ubl-settings-manager.c:1674
|
|
||||||
msgid "UBLinux Settings Manager"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: source/ubl-settings-manager.h:33 source/ubl-settings-manager.c:1686
|
|
||||||
msgid "Understood"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: source/ubl-settings-manager.h:8
|
|
||||||
msgid "Version: "
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: source/ubl-settings-manager.h:45 source/ubl-settings-manager.h:44
|
|
||||||
#: source/ubl-settings-manager.c:1676
|
|
||||||
msgid "Window theme"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: source/ubl-settings-manager.h:44 source/ubl-settings-manager.h:43
|
|
||||||
#: source/ubl-settings-manager.c:1677
|
|
||||||
msgid "Would you like to read documentation in the Web?"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: source/ubl-settings-manager.h:43 source/ubl-settings-manager.h:42
|
|
||||||
#: source/ubl-settings-manager.c:1678
|
|
||||||
msgid ""
|
|
||||||
"You will be redirected to documentation site, where user help pages are\n"
|
|
||||||
"translated and supported by community."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: source/ubl-settings-manager.h:9
|
|
||||||
msgid "ubl-settings-manager version: "
|
|
||||||
msgstr ""
|
|
||||||
|
Before Width: | Height: | Size: 14 KiB |
Loading…
Reference in new issue