master #4

Merged
asmeron merged 7 commits from YanTheKaller/ubl-settings-update:master into develop 3 years ago

1
.gitignore vendored

@ -3,3 +3,4 @@ ubl-settings-update.glade~
ubl-settings-update
ubl-settings-update_ru.po~
build/
compile/

@ -88,6 +88,7 @@ uninstall:
@$(RM) "${DESTDIR}${PREFIX}/share/icons/hicolor/scalable/apps/com.ublinux.${PKGNAME}.svg"
@$(RM) -rd "${DESTDIR}${PREFIX}/share/${PKGNAME}/images/${PKGNAME}-banner.png"
@$(RM) -rd "${DESTDIR}${PREFIX}/share/${PKGNAME}"
@$(RM) "${DESTDIR}${PREFIX}/share/polkit-1/actions/com.ublinux.${PKGNAME}.policy"
@if [ -z ${DESTDIR} ]; then \
[ -d "${DESTDIR}${PREFIX}/share/icons/hicolor/" ] && gtk-update-icon-cache -fiq "${DESTDIR}${PREFIX}/share/icons/hicolor/" &>/dev/null || true; \
update-desktop-database --quiet &>/dev/null || true; \
@ -111,6 +112,8 @@ install: check uninstall
done
@install -dm755 "${DESTDIR}${PREFIX}/share/icons/hicolor/scalable/apps"
@install -Dm644 -t "${DESTDIR}${PREFIX}/share/icons/hicolor/scalable/apps/" "com.ublinux.${PKGNAME}.svg"
@install -dm755 "${DESTDIR}${PREFIX}/share/polkit-1/actions"
@install -Dm644 -t "${DESTDIR}${PREFIX}/share/polkit-1/actions/" "com.ublinux.${PKGNAME}.policy"
@install -Dm755 -t "${DESTDIR}${PREFIX}/bin/" "${CMAKE_BUILD_DIR}/${PKGNAME}"
@install -dm755 "${DESTDIR}/etc/xdg"
@install -dm755 "${DESTDIR}${PREFIX}/share/applications"

@ -0,0 +1,24 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE policyconfig PUBLIC
"-//freedesktop//DTD PolicyKit Policy Configuration 1.0//EN"
"http://www.freedesktop.org/standards/PolicyKit/1/policyconfig.dtd">
<policyconfig>
<vendor>UBLinux</vendor>
<vendor_url>https://ublinux.ru</vendor_url>
<action id="com.ublinux.ubl-settings-update.run">
<description>Run ubl-settings-update as root</description>
<description xml:lang="ru">Запуск утилиты ubl-settings-update с правами root</description>
<message>Authentication is required to run ubl-settings-update</message>
<message xml:lang="ru">Требуется авторизация для запуска утилиты ubl-settings-update с правами root</message>
<defaults>
<allow_any>auth_admin</allow_any>
<allow_inactive>auth_admin</allow_inactive>
<allow_active>auth_admin</allow_active>
</defaults>
<annotate key="org.freedesktop.policykit.exec.path">/usr/bin/ubl-settings-update</annotate>
<annotate key="org.freedesktop.policykit.exec.allow_gui">true</annotate>
</action>
</policyconfig>

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 210 KiB

After

Width:  |  Height:  |  Size: 254 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 50 KiB

@ -8,6 +8,20 @@ include_directories(${GTK_INCLUDE_DIRS})
link_directories(${GTK_LIBRARY_DIRS})
add_definitions(${GTK_CFLAGS_OTHER})
find_library(WEBKIT_LIBRARIES_FOUND webkit2gtk-4.0 webkit2gtk-web-extension-4.0)
option(WEBKIT_FOUND "No" OFF)
if(WEBKIT_LIBRARIES_FOUND)
option(WEBKIT_FOUND "Yes" ON)
PKG_CHECK_MODULES(WEBKIT REQUIRED webkit2gtk-4.0 webkit2gtk-web-extension-4.0)
include_directories(${WEBKIT_INCLUDE_DIRS})
link_directories(${WEBKIT_LIBRARY_DIRS})
add_definitions(${WEBKIT_CFLAGS_OTHER})
endif()
configure_file(ubl-settings-update.h.in ubl-settings-cmake.h)
#set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pedantic -Wall -Wextra -Werror -Wmissing-declarations -fdiagnostics-color=always -std=c++2a")
#set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pedantic -Wall -Wextra -Werror -Wmissing-declarations -fdiagnostics-color=always -lm")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pedantic -Wall -Wextra -Werror -Wmissing-declarations -fdiagnostics-color=always \
@ -18,13 +32,17 @@ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pedantic -Wall -Wextra -Werror -Wmissin
set(SOURCE_FILES
ubl-settings-update.c
ubl-settings-update.h
ubl-utils.c)
ubl-utils.h
ubl-utils.c
ubl-settings-cmake.h)
set(LIBRARIES
${GTK_LIBRARIES}
${WEBKIT_LIBRARIES}
pthread)
add_executable(ubl-settings-update ${SOURCE_FILES})
target_link_libraries(ubl-settings-update ${LIBRARIES})
add_executable(${PROJECT_NAME} ${SOURCE_FILES})
target_link_libraries(${PROJECT_NAME} PUBLIC ${LIBRARIES})
target_include_directories(${PROJECT_NAME} PUBLIC ${PROJECT_BINARY_DIR})
install(TARGETS ubl-settings-update DESTINATION bin)

@ -0,0 +1,49 @@
#define VERSION_LABEL yon_char_unite(_("Version:")," ",version_application,"\n",NULL)
#define HELP_LABEL yon_char_unite(_("ubl-settings-update version:")," ", version_application,"\n",_("update settings"),"\n",_("Usage:"), " ubl-settings-update ",_("[OPTIONS]"),"\n",_("Options:"),"\n\t--help, -h\t\t\t",_("Show this help"),"\n\t--version, -V\t\t\t",_("Show package version"),"\n\t--lock-help\t\t\t",_("Lock this help menu"),"\n\t--lock-save\t\t\t",_("Lock configuration saving"),"\n\t--lock-save-local\t\t",_("Lock local configration saving"),"\n\t--lock-save-global\t\t",_("Lock global configration saving"),"\n\t--lock-load-global\t\t",_("Lock global configration loading"),"\n",NULL)
#define TITLE_LABEL _("System update")
#define TITLE_INFO_LABEL _("System update settings management")
#define CHECK_FOR_UPDATES_LABEL _("Check for updates")
#define ABOUT_LABEL _("About")
#define DOCUMENTATION_LABEL _("Documentation")
#define SAVE_LOCAL_LABEL _("Save to local configuration")
#define SAVE_GLOBAL_LABEL _("Save to global configuration")
#define SAVE_CONFIGURATION_LABEL _("Save configuration")
#define SAVE_LABEL _("Save")
#define LOAD_LOCAL_LABEL _("Load local configuration")
#define LOAD_GLOBAL_LABEL _("Load global configuration")
#define LOAD_LABEL _("load")
#define LAUNCH_PACKAGE_MANAGER_LABEL _("Launch package manager")
#define CACHE_CLEAN_LABEL _("Cache clean command: ")
#define UPDATE_COMMAND_LABEL _("Update command: ")
#define PACKAGE_MANAGER_LABEL _("Package manager: ")
#define URI_LABEL _("URI")
#define ENABLED_LABEL _("Enabled")
#define DISTIBUTION_LABEL _("Distribution")
#define UBUR_LABEL _("Activate UBUR")
#define AUR_LABEL _("Activate AUR")
#define EVERY_3_HOURS_LABEL _("Every 3 hours")
#define EVERY_2_HOURS_LABEL _("Every 2 hours")
#define EVERY_1_HOUR_LABEL _("Every 1 hour")
#define AUTO_UPDATE_LABEL _("Download updates automatically")
#define HIDE_NO_UPDATES_LABEL _("Hide icon of no updates found")
#define CHECK_FREQUENCY_LABEL _("Update checking frequency")
#define EXTRA_LABEL _("Extra")
#define REPOSITORIES_LABEL _("Repositories")
#define GENERAL_LABEL _("General")
#define ADRESS_LABEL _("Adress: ")
#define DISTRIBUTION_LABEL _("Distribution: ")
#define CANCEL_LABEL _("Cancel")
#define SAVE_LABEL _("Save")
#define HELP_TITLE_LABEL _("Would you like to read documentation in the Web?")
#define HELP_INFO_LABEL _("You will be redirected to documentation website where documentation is\ntranslated and supported by community.")
#define HELP_ALWAYS_OPEN_LABEL _("Always redirect to online documentation")
#define OPEN_HELP_LABEL _("Open documentation")
#define PROJECT_HOME_LABEL _("Project Home Page")
#define NOTHING_CHOSEN_LABEL _("Nothing were chosen")
#define GLOBAL_LOAD_SUCCESS _("Global configuration loading succseeded.")
#define LOCAL_LOAD_SUCCESS _("Local configuration loading succseeded.")
#define GLOBAL_LOCAL_SAVE_SUCCESS _("Local and global configuration saving succseeded.")
#define GLOBAL_SAVE_SUCCESS _("Global configuration saving succseeded.")
#define LOCAL_SAVE_SUCCESS _("Local configuration saving succseeded.")

@ -1,63 +1,183 @@
#include <gtk/gtk.h>
#include "ubl-settings-update.h"
void on_repo_window_open(GtkWidget *self){
repo_window *widgets=setup_repo_window();
}
config main_config;
render_data render;
void on_close_subwindow(GtkWidget *self){
gtk_widget_destroy(gtk_widget_get_toplevel(self));
}
void yon_open_browser(GtkWidget *self, char *link){
yon_ubl_browser_window_open(link,TITLE_LABEL);
}
void on_open_documentation_confirmation(GtkWidget *self, char *link){
if (main_config.always_open_documentation==0){
GtkBuilder *builder = gtk_builder_new_from_file(glade_path);
documentation_confirmation_window *widgets = malloc(sizeof(documentation_confirmation_window));
widgets->Window = yon_gtk_builder_get_widget(builder,"helpConfirmationWindow");
widgets->AcceptButton = yon_gtk_builder_get_widget(builder,"ReadHelpButton");
widgets->CloseButton = yon_gtk_builder_get_widget(builder,"CancelHelpButton");
widgets->HatText = yon_gtk_builder_get_widget(builder,"webHeaderNameLabel");
widgets->HeaderText = yon_gtk_builder_get_widget(builder,"helpHeader");
widgets->InfoText = yon_gtk_builder_get_widget(builder,"helpText");
widgets->AlwaysOpenCheck = yon_gtk_builder_get_widget(builder,"AlwaysOpenDocumentationCheckbox");
gtk_label_set_text(GTK_LABEL(widgets->HatText),TITLE_LABEL);
gtk_label_set_text(GTK_LABEL(widgets->HeaderText),HELP_TITLE_LABEL);
gtk_label_set_text(GTK_LABEL(widgets->InfoText),HELP_INFO_LABEL);
gtk_button_set_label(GTK_BUTTON(widgets->AcceptButton),OPEN_HELP_LABEL);
gtk_button_set_label(GTK_BUTTON(widgets->AlwaysOpenCheck),HELP_ALWAYS_OPEN_LABEL);
gtk_button_set_label(GTK_BUTTON(widgets->CloseButton),CANCEL_LABEL);
gtk_widget_show_all(widgets->Window);
g_signal_connect(G_OBJECT(widgets->CloseButton),"clicked",G_CALLBACK(on_close_subwindow),NULL);
g_signal_connect(G_OBJECT(widgets->AcceptButton),"clicked",G_CALLBACK(yon_open_browser),yon_char_new(link));
g_signal_connect(G_OBJECT(widgets->AcceptButton),"clicked",G_CALLBACK(on_close_subwindow),NULL);
} else {
yon_open_browser(self,link);
}
}
void on_link(GtkWidget *self, char* uri, gpointer user_data){
gtk_widget_destroy(self);
on_open_documentation_confirmation(self,uri);
}
void on_about(){
GtkBuilder *builder=gtk_builder_new_from_file(glade_path);
GtkWidget *window=yon_gtk_builder_get_widget(builder,"AboutWindow");
GtkWidget *title=yon_gtk_builder_get_widget(builder,"headerAboutTopic");
GtkWidget *hideButtonBox=yon_gtk_builder_get_widget(builder,"buttonBoxHide");
gtk_about_dialog_set_program_name(GTK_ABOUT_DIALOG(window),_("UBlinux System update"));
gtk_about_dialog_set_version(GTK_ABOUT_DIALOG(window),version_application);
gtk_about_dialog_set_website_label(GTK_ABOUT_DIALOG(window),_("Project Home Page"));
gtk_about_dialog_set_comments(GTK_ABOUT_DIALOG(window),_("Update configurator"));
gtk_about_dialog_set_website_label(GTK_ABOUT_DIALOG(window),PROJECT_HOME_LABEL);
gtk_about_dialog_set_comments(GTK_ABOUT_DIALOG(window),TITLE_LABEL);
gtk_label_set_text(GTK_LABEL(title),TITLE_LABEL);
g_signal_connect(G_OBJECT(window),"activate-link",G_CALLBACK(on_link),NULL);
gtk_widget_set_visible(hideButtonBox,0);
gtk_widget_destroy(hideButtonBox);
gtk_widget_show(window);
}
repo_window *setup_repo_window(){
void on_repos_add(GtkWidget *self, repo_window *repo){
char *distr = yon_char_new((char*)gtk_entry_get_text(GTK_ENTRY(repo->repoDistributionEntry)));
char *address = yon_char_new((char*)gtk_entry_get_text(GTK_ENTRY(repo->repoTypeEntry)));
if ((distr&&address)||(strcmp(distr,"")!=0&&strcmp(address,"")!=0)){
GtkTreeIter iter;
gtk_list_store_append(main_config.list,&iter);
gtk_list_store_set(main_config.list,&iter,1,address,2,distr,-1);
}
}
void on_repos_delete(GtkWidget *self, GtkWidget *tree){
GtkTreeIter iter;
GtkTreeModel *model = GTK_TREE_MODEL(main_config.list);
if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(tree)),&model,&iter)){
gtk_list_store_remove(main_config.list,&iter);
} else {
yon_ubl_status_box_render(render,NOTHING_CHOSEN_LABEL,BACKGROUND_IMAGE_FAIL_TYPE);
}
}
void on_repos_edit(GtkWidget *self, repo_window *widgets){
GtkTreeIter iter;
GtkTreeModel *model=GTK_TREE_MODEL(main_config.list);
if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->tree)),&model,&iter)){
char *adress=yon_char_new((char*)gtk_entry_get_text(GTK_ENTRY(widgets->repoTypeEntry)));
char *distro=yon_char_new((char*)gtk_entry_get_text(GTK_ENTRY(widgets->repoDistributionEntry)));
if ((distro&&adress)||(strcmp(distro,"")!=0&&strcmp(adress,"")!=0))
gtk_list_store_set(main_config.list,&iter,1,adress,2,distro,-1);
}
}
void on_repo_window_open_edit(GtkWidget *self, GtkWidget *tree){
GtkTreeIter iter;
GtkTreeModel *model=GTK_TREE_MODEL(main_config.list);
if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(tree)),&model,&iter)){
repo_window *widgets=NULL;
widgets=malloc(sizeof(repo_window));
widgets->builder= gtk_builder_new_from_file(glade_path);
widgets->window=yon_gtk_builder_get_widget(widgets->builder, "RepoWindow");
widgets->repoTypeLabel=yon_gtk_builder_get_widget(widgets->builder, "repoAdressLabel");
widgets->repoTypeEntry=yon_gtk_builder_get_widget(widgets->builder, "repoAdressEntry");
widgets->repoDistributionLabel=yon_gtk_builder_get_widget(widgets->builder, "repoDistributionLabel");
widgets->repoDistributionEntry=yon_gtk_builder_get_widget(widgets->builder, "repoDistributionEntry");
widgets->repoCancelButton=yon_gtk_builder_get_widget(widgets->builder, "repoCancelButton");
widgets->repoAcceptButton=yon_gtk_builder_get_widget(widgets->builder, "repoAcceptButton");
widgets->tree=tree;
g_signal_connect(G_OBJECT(widgets->repoCancelButton), "clicked", G_CALLBACK(on_close_subwindow), NULL);
g_signal_connect(G_OBJECT(widgets->repoAcceptButton), "clicked", G_CALLBACK(on_repos_edit), widgets);
g_signal_connect(G_OBJECT(widgets->repoAcceptButton), "clicked", G_CALLBACK(on_close_subwindow), NULL);
char *adress = NULL;
char *distro = NULL;
gtk_tree_model_get(GTK_TREE_MODEL(main_config.list),&iter,1,&adress,2,&distro,-1);
gtk_entry_set_text(GTK_ENTRY(widgets->repoTypeEntry),adress);
gtk_entry_set_text(GTK_ENTRY(widgets->repoDistributionEntry),distro);
gtk_window_set_title(GTK_WINDOW(widgets->window),TITLE_LABEL);
gtk_label_set_text(GTK_LABEL(widgets->repoTypeLabel),ADRESS_LABEL);
gtk_label_set_text(GTK_LABEL(widgets->repoDistributionLabel),DISTRIBUTION_LABEL);
gtk_button_set_label(GTK_BUTTON(widgets->repoCancelButton),CANCEL_LABEL);
gtk_button_set_label(GTK_BUTTON(widgets->repoAcceptButton),SAVE_LABEL);
gtk_widget_show_all(widgets->window);
} else {
yon_ubl_status_box_render(render,NOTHING_CHOSEN_LABEL,BACKGROUND_IMAGE_FAIL_TYPE);
}
}
repo_window *on_repo_window_open_create(GtkWidget *self){
repo_window *widgets=NULL;
widgets=malloc(sizeof(repo_window));
widgets->builder= gtk_builder_new_from_file(glade_path);
widgets->window=yon_gtk_builder_get_widget(widgets->builder, "RepoWindow");
widgets->repoTypeLabel=yon_gtk_builder_get_widget(widgets->builder, "repoTypeLabel");
widgets->repoTypeEntry=yon_gtk_builder_get_widget(widgets->builder, "repoTypeEntry");
widgets->repoURILabel=yon_gtk_builder_get_widget(widgets->builder, "repoURILabel");
widgets->repoURIMeanLabel=yon_gtk_builder_get_widget(widgets->builder, "repoURIMeanLabel");
widgets->repoTypeLabel=yon_gtk_builder_get_widget(widgets->builder, "repoAdressLabel");
widgets->repoTypeEntry=yon_gtk_builder_get_widget(widgets->builder, "repoAdressEntry");
widgets->repoDistributionLabel=yon_gtk_builder_get_widget(widgets->builder, "repoDistributionLabel");
widgets->repoDistributionMeanLabel=yon_gtk_builder_get_widget(widgets->builder, "repoDistributionMeanLabel");
widgets->repoSectionsLabel=yon_gtk_builder_get_widget(widgets->builder, "repoSectionsLabel");
widgets->repoSectionsMeanlabel=yon_gtk_builder_get_widget(widgets->builder, "repoSectionsMeanlabel");
widgets->repoDistributionEntry=yon_gtk_builder_get_widget(widgets->builder, "repoDistributionEntry");
widgets->repoCancelButton=yon_gtk_builder_get_widget(widgets->builder, "repoCancelButton");
widgets->repoAcceptButton=yon_gtk_builder_get_widget(widgets->builder, "repoAcceptButton");
g_signal_connect(G_OBJECT(widgets->repoCancelButton), "clicked", G_CALLBACK(on_close_subwindow), NULL);
g_signal_connect(G_OBJECT(widgets->repoAcceptButton), "clicked", G_CALLBACK(on_repos_add), widgets);
g_signal_connect(G_OBJECT(widgets->repoAcceptButton), "clicked", G_CALLBACK(on_close_subwindow), NULL);
gtk_window_set_title(GTK_WINDOW(widgets->window),_("System update"));
gtk_window_set_title(GTK_WINDOW(widgets->window),TITLE_LABEL);
gtk_label_set_text(GTK_LABEL(widgets->repoTypeLabel),_("Type: "));
gtk_label_set_text(GTK_LABEL(widgets->repoURILabel),_("URI: "));
gtk_label_set_text(GTK_LABEL(widgets->repoURIMeanLabel),_(" "));
gtk_label_set_text(GTK_LABEL(widgets->repoDistributionLabel),_("Distribution: "));
gtk_label_set_text(GTK_LABEL(widgets->repoDistributionMeanLabel),_(" "));
gtk_label_set_text(GTK_LABEL(widgets->repoSectionsLabel),_("Sections: "));
gtk_label_set_text(GTK_LABEL(widgets->repoSectionsMeanlabel),_(" "));
gtk_label_set_text(GTK_LABEL(widgets->repoTypeLabel),ADRESS_LABEL);
gtk_label_set_text(GTK_LABEL(widgets->repoDistributionLabel),DISTRIBUTION_LABEL);
gtk_button_set_label(GTK_BUTTON(widgets->repoCancelButton),_("Cancel"));
gtk_button_set_label(GTK_BUTTON(widgets->repoAcceptButton),_("Save"));
gtk_button_set_label(GTK_BUTTON(widgets->repoCancelButton),CANCEL_LABEL);
gtk_button_set_label(GTK_BUTTON(widgets->repoAcceptButton),SAVE_LABEL);
gtk_widget_show_all(widgets->window);
}
void init(GtkListStore *list){
main_config.always_open_documentation=0;
main_config.win_height=600;
main_config.win_width=800;
main_config.win_pos_x=0;
main_config.win_pos_y=0;
main_config.socket_id=-1;
main_config.save_socket_id=-1;
main_config.load_socket_id=-1;
main_config.lock_help=0;
main_config.lock_help=0;
main_config.lock_load_global=0;
main_config.lock_save_global=0;
main_config.lock_save_local=0;
main_config.list=list;
}
main_window *setup_window(){
main_window *widgets=NULL;
widgets=malloc(sizeof(main_window));
@ -66,6 +186,10 @@ main_window *setup_window(){
widgets->HeaderTopic=yon_gtk_builder_get_widget(widgets->builder,"headerTopic");
widgets->PlugBox=yon_gtk_builder_get_widget(widgets->builder,"plugBox");
widgets->RightBox=yon_gtk_builder_get_widget(widgets->builder,"LeftBox");
widgets->LeftBox=yon_gtk_builder_get_widget(widgets->builder,"RightBox");
widgets->generalSettingsTabLabel=yon_gtk_builder_get_widget(widgets->builder,"generalTabLabel");
widgets->repositoriesSettingsTabLabel=yon_gtk_builder_get_widget(widgets->builder,"repositoriesTabLabel");
widgets->extraSettingsTabLabel=yon_gtk_builder_get_widget(widgets->builder,"extraTabLabel");
@ -85,6 +209,7 @@ main_window *setup_window(){
widgets->repositoriesSettingsRepositoriesTreeView=yon_gtk_builder_get_widget(widgets->builder,"RepositoriesTreeView");
widgets->repositoriesSettingsEnabledColumn=GTK_TREE_VIEW_COLUMN(gtk_builder_get_object(widgets->builder,"EnabledColumn"));
widgets->repositoriesSettingsURIColumn=GTK_TREE_VIEW_COLUMN(gtk_builder_get_object(widgets->builder,"URIColumn"));
widgets->repositoriesSettingsDistributionColumn=GTK_TREE_VIEW_COLUMN(gtk_builder_get_object(widgets->builder,"DistributionColumn"));
widgets->extraSettingsPackageManagerLabel=yon_gtk_builder_get_widget(widgets->builder,"PackageManagerLabel");
widgets->extraSettingsPackageManagerEntry=yon_gtk_builder_get_widget(widgets->builder,"PackageManagerEntry");
@ -108,47 +233,67 @@ main_window *setup_window(){
widgets->mainCheckForUpdatesButton=yon_gtk_builder_get_widget(widgets->builder,"checkForUpdatesButton");
gtk_window_set_title(GTK_WINDOW(widgets->window),_("System update"));
gtk_label_set_text(GTK_LABEL(widgets->HeaderTopic),_("System update"));
gtk_label_set_text(GTK_LABEL(widgets->generalSettingsTabLabel),_("General"));
gtk_label_set_text(GTK_LABEL(widgets->repositoriesSettingsTabLabel),_("Repositories"));
gtk_label_set_text(GTK_LABEL(widgets->extraSettingsTabLabel),_("Extra"));
gtk_label_set_text(GTK_LABEL(widgets->generalSettingsUpdatesCheckFreqLabel),_("Update checking frequency"));
gtk_button_set_label(GTK_BUTTON(widgets->generalSettingsHideNoUpdatesCheck),_("Hide icon of no updates found"));
gtk_button_set_label(GTK_BUTTON(widgets->generalSettingsDownloadAutoCheck),_("Download updates automatically"));
gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(widgets->generalSettingsUpdatesCheckFreqCombo),_("Every 1 hour"));
gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(widgets->generalSettingsUpdatesCheckFreqCombo),_("Every 2 hours"));
gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(widgets->generalSettingsUpdatesCheckFreqCombo),_("Every 3 hours"));
gtk_button_set_label(GTK_BUTTON(widgets->repositoriesSettingsActivateAURCheck),_("Activate AUR"));
gtk_button_set_label(GTK_BUTTON(widgets->repositoriesSettingsActivateUBURCheck),_("Activate UBUR"));
gtk_button_set_label(GTK_BUTTON(widgets->repositoriesSettingsCreateButton),_("Create"));
gtk_button_set_label(GTK_BUTTON(widgets->repositoriesSettingsEditButton),_("Edit"));
gtk_button_set_label(GTK_BUTTON(widgets->repositoriesSettingsDeleteButton),_("Delete"));
gtk_tree_view_column_set_title(GTK_TREE_VIEW_COLUMN(widgets->repositoriesSettingsEnabledColumn),_("Enabled"));
gtk_tree_view_column_set_title(GTK_TREE_VIEW_COLUMN(widgets->repositoriesSettingsURIColumn),_("URI"));
gtk_label_set_text(GTK_LABEL(widgets->extraSettingsPackageManagerLabel),_("Package manager: "));
gtk_label_set_text(GTK_LABEL(widgets->extraSettingsUpdateCommandLabel),_("Update command: "));
gtk_label_set_text(GTK_LABEL(widgets->extraSettingsCacheCleanlabel),_("Cache clean command: "));
gtk_button_set_label(GTK_BUTTON(widgets->extraSettingsLaunchPackageManagerButton),_("Launch package manager"));
gtk_label_set_text(GTK_LABEL(widgets->headerLoadConfigLabel),_("load"));
gtk_menu_item_set_label(GTK_MENU_ITEM(widgets->headerLoadGlobalConfigButton),_("Load global configuration"));
gtk_menu_item_set_label(GTK_MENU_ITEM(widgets->headerLoadLocalConfigButton),_("Load local configuration"));
gtk_label_set_text(GTK_LABEL(widgets->headerSaveConfigLabel),_("Save"));
gtk_menu_item_set_label(GTK_MENU_ITEM(widgets->headerSaveGlobalLocalConfigButton),_("Save to global and local configuration"));
gtk_menu_item_set_label(GTK_MENU_ITEM(widgets->headerSaveGlobalConfigButton),_("Save to global configuration"));
gtk_menu_item_set_label(GTK_MENU_ITEM(widgets->headerSaveLocalConfigButton),_("Save to local configuration"));
gtk_menu_item_set_label(GTK_MENU_ITEM(widgets->headerDocumentationButton),_("Documentation"));
gtk_menu_item_set_label(GTK_MENU_ITEM(widgets->headerAboutButton),_("About"));
gtk_button_set_label(GTK_BUTTON(widgets->mainCheckForUpdatesButton),_("Check for updates"));
widgets->mainCheckForUpdatesButton = yon_gtk_builder_get_widget(widgets->builder,"checkForUpdatesButton");
widgets->statusBox = yon_gtk_builder_get_widget(widgets->builder,"mainStatusBox");
widgets->statusIcon = yon_gtk_builder_get_widget(widgets->builder,"mainStatusIcon");
widgets->statusLabel = yon_gtk_builder_get_widget(widgets->builder,"mainStatusLabel");
main_config.list=GTK_LIST_STORE(gtk_builder_get_object(widgets->builder,"liststore1"));
if (main_config.lock_load_global == 1){
gtk_widget_set_sensitive(widgets->headerLoadGlobalConfigButton,0);
}
if (main_config.lock_save_global == 1){
gtk_widget_set_sensitive(widgets->headerSaveGlobalConfigButton,0);
gtk_widget_set_sensitive(widgets->headerSaveGlobalLocalConfigButton,0);
}
if (main_config.lock_save_local == 1){
gtk_widget_set_sensitive(widgets->headerSaveLocalConfigButton,0);
gtk_widget_set_sensitive(widgets->headerSaveGlobalLocalConfigButton,0);
}
gtk_window_set_title(GTK_WINDOW(widgets->window),TITLE_LABEL);
gtk_label_set_text(GTK_LABEL(widgets->HeaderTopic),TITLE_LABEL);
gtk_label_set_text(GTK_LABEL(widgets->generalSettingsTabLabel),GENERAL_LABEL);
gtk_label_set_text(GTK_LABEL(widgets->repositoriesSettingsTabLabel),REPOSITORIES_LABEL);
gtk_label_set_text(GTK_LABEL(widgets->extraSettingsTabLabel),EXTRA_LABEL);
gtk_label_set_text(GTK_LABEL(widgets->generalSettingsUpdatesCheckFreqLabel),CHECK_FREQUENCY_LABEL);
gtk_button_set_label(GTK_BUTTON(widgets->generalSettingsHideNoUpdatesCheck),HIDE_NO_UPDATES_LABEL);
gtk_button_set_label(GTK_BUTTON(widgets->generalSettingsDownloadAutoCheck),AUTO_UPDATE_LABEL);
gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(widgets->generalSettingsUpdatesCheckFreqCombo),EVERY_1_HOUR_LABEL);
gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(widgets->generalSettingsUpdatesCheckFreqCombo),EVERY_2_HOURS_LABEL);
gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(widgets->generalSettingsUpdatesCheckFreqCombo),EVERY_3_HOURS_LABEL);
gtk_button_set_label(GTK_BUTTON(widgets->repositoriesSettingsActivateAURCheck),AUR_LABEL);
gtk_button_set_label(GTK_BUTTON(widgets->repositoriesSettingsActivateUBURCheck),UBUR_LABEL);
// gtk_button_set_label(GTK_BUTTON(widgets->repositoriesSettingsCreateButton),_("Create"));
// gtk_button_set_label(GTK_BUTTON(widgets->repositoriesSettingsEditButton),_("Edit"));
// gtk_button_set_label(GTK_BUTTON(widgets->repositoriesSettingsDeleteButton),_("Delete"));
gtk_tree_view_column_set_title(GTK_TREE_VIEW_COLUMN(widgets->repositoriesSettingsEnabledColumn),ENABLED_LABEL);
gtk_tree_view_column_set_title(GTK_TREE_VIEW_COLUMN(widgets->repositoriesSettingsURIColumn),URI_LABEL);
gtk_tree_view_column_set_title(GTK_TREE_VIEW_COLUMN(widgets->repositoriesSettingsDistributionColumn),DISTIBUTION_LABEL);
gtk_label_set_text(GTK_LABEL(widgets->extraSettingsPackageManagerLabel),PACKAGE_MANAGER_LABEL);
gtk_label_set_text(GTK_LABEL(widgets->extraSettingsUpdateCommandLabel),UPDATE_COMMAND_LABEL);
gtk_label_set_text(GTK_LABEL(widgets->extraSettingsCacheCleanlabel),CACHE_CLEAN_LABEL);
gtk_button_set_label(GTK_BUTTON(widgets->extraSettingsLaunchPackageManagerButton),LAUNCH_PACKAGE_MANAGER_LABEL);
gtk_label_set_text(GTK_LABEL(widgets->headerLoadConfigLabel),LOAD_LABEL);
gtk_menu_item_set_label(GTK_MENU_ITEM(widgets->headerLoadGlobalConfigButton),LOAD_GLOBAL_LABEL);
gtk_menu_item_set_label(GTK_MENU_ITEM(widgets->headerLoadLocalConfigButton),LOAD_LOCAL_LABEL);
gtk_label_set_text(GTK_LABEL(widgets->headerSaveConfigLabel),SAVE_LABEL);
gtk_menu_item_set_label(GTK_MENU_ITEM(widgets->headerSaveGlobalLocalConfigButton),SAVE_LABEL);
gtk_menu_item_set_label(GTK_MENU_ITEM(widgets->headerSaveGlobalConfigButton),SAVE_GLOBAL_LABEL);
gtk_menu_item_set_label(GTK_MENU_ITEM(widgets->headerSaveLocalConfigButton),SAVE_LOCAL_LABEL);
gtk_menu_item_set_label(GTK_MENU_ITEM(widgets->headerDocumentationButton),DOCUMENTATION_LABEL);
gtk_menu_item_set_label(GTK_MENU_ITEM(widgets->headerAboutButton),ABOUT_LABEL);
gtk_button_set_label(GTK_BUTTON(widgets->mainCheckForUpdatesButton),CHECK_FOR_UPDATES_LABEL);
@ -158,29 +303,100 @@ main_window *setup_window(){
GtkWidget *Overlay = yon_gtk_builder_get_widget(widgets->builder,"HeadOverlay");
GtkWidget *UnderNoteOverlay = yon_gtk_builder_get_widget(widgets->builder,"UnderNoteOverlay");
GtkWidget *checkForUpdatesButton = yon_gtk_builder_get_widget(widgets->builder,"checkForUpdatesButton");
GtkWidget *headLabel = yon_gtk_builder_get_widget(widgets->builder,"headLabel");
GtkWidget *headInfoLabel = yon_gtk_builder_get_widget(widgets->builder,"headInfoLabel");
yon_ubl_header_setup(Overlay,Header,Image,image_path);
gtk_overlay_add_overlay(GTK_OVERLAY(UnderNoteOverlay),checkForUpdatesButton);
gtk_overlay_add_overlay(GTK_OVERLAY(UnderNoteOverlay),widgets->mainCheckForUpdatesButton);
gtk_label_set_text(GTK_LABEL(headLabel),_("System update parameter configuration"));
gtk_label_set_text(GTK_LABEL(headLabel),TITLE_LABEL);
gtk_label_set_text(GTK_LABEL(headInfoLabel),TITLE_INFO_LABEL);
gtk_widget_show_all(widgets->window);
render.box=widgets->statusBox;
render.icon=widgets->statusIcon;
render.label=widgets->statusLabel;
yon_ubl_setup_sockets(widgets->PlugBox,widgets->LeftBox,widgets->RightBox,main_config.socket_id,main_config.load_socket_id,main_config.save_socket_id);
g_signal_connect(G_OBJECT(widgets->repositoriesSettingsCreateButton), "clicked", G_CALLBACK(on_repo_window_open), NULL);
g_signal_connect(G_OBJECT(widgets->repositoriesSettingsEditButton), "clicked", G_CALLBACK(on_repo_window_open), NULL);
g_signal_connect(G_OBJECT(widgets->repositoriesSettingsCreateButton), "clicked", G_CALLBACK(on_repo_window_open_create), NULL);
g_signal_connect(G_OBJECT(widgets->repositoriesSettingsEditButton), "clicked", G_CALLBACK(on_repo_window_open_edit), widgets->repositoriesSettingsRepositoriesTreeView);
g_signal_connect(G_OBJECT(widgets->repositoriesSettingsDeleteButton), "clicked", G_CALLBACK(on_repos_delete), widgets->repositoriesSettingsRepositoriesTreeView);
g_signal_connect(G_OBJECT(widgets->headerAboutButton), "activate", G_CALLBACK(on_about), NULL);
g_signal_connect(G_OBJECT(widgets->window), "destroy", G_CALLBACK(gtk_main_quit), NULL);
g_signal_connect(G_OBJECT(widgets->headerDocumentationButton), "activate", G_CALLBACK(on_open_documentation_confirmation), WIKI_LINK);
}
int main(int argc, char *argv[]){
local=setlocale(LC_ALL, "");
textdomain (LocaleName);
init(NULL);
int option_index=0;
int show_help=0;
{
struct option long_options[] = {
{"help", 0, 0, 'h'},
{"version", 0, 0, 'V'},
{"lock-help", 0,0, 1},
{"lock-save", 0,0, 2},
{"lock-save-local", 0,0, 3},
{"lock-save-global", 0,0, 4},
{"lock-load-global", 0,0, 5},
{"socket-id", 1, 0, 's'},
{"socket-ext-id", 1,0, 'e'},
{"socket-trd-id", 1,0, 't'},
{ NULL, 0, NULL, 0 }
};
for (int i=0;i<argc;i++){
int argument=getopt_long(argc,argv,"hVvs:e:t:",long_options,&option_index);
switch(argument){
case 'h':
show_help=1;
break;
case 'v':
case 'V':
printf("%s\n",VERSION_LABEL);
exit(0);
break;
case 's':
if(optarg)
main_config.socket_id=atoi(optarg);
break;
case 'e':
if(optarg)
main_config.load_socket_id=atoi(optarg);
break;
case 't':
if(optarg)
main_config.save_socket_id=atoi(optarg);
break;
case 1:
main_config.lock_help=1;
break;
case 2:
main_config.lock_save_local=1;
main_config.lock_save_global=1;
break;
case 3:
main_config.lock_save_local=1;
break;
case 4:
main_config.lock_save_global=1;
break;
case 5:
main_config.lock_load_global=1;
break;
}
}
if (show_help==1&&main_config.lock_help!=1){
printf("%s\n",HELP_LABEL);
exit(0);
}
}
gtk_init(&argc,&argv);
main_window *widgets = setup_window();
yon_ubl_status_box_render(render,LOCAL_LOAD_SUCCESS,BACKGROUND_IMAGE_SUCCESS_TYPE);
GtkCssProvider *css=gtk_css_provider_new();
gtk_css_provider_load_from_path(css,CssPath,NULL);
gtk_style_context_add_provider_for_screen(gdk_screen_get_default(),

@ -1,10 +1,20 @@
#include <gtk/gtk.h>
#include <gtk/gtkx.h>
#include "ubl-utils.h"
#include <locale.h>
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <libintl.h>
#include <getopt.h>
#include <libintl.h>
#include "ubl-settings-cmake.h"
#ifdef WEBKIT_FOUND
#include <webkit2/webkit2.h>
#endif
#include "ubl-settings-update-strings.h"
#define WIKI_LINK "https://wiki.ublinux.ru/ru/Программное_обеспечениерограммы_и_утилиты/Все/ubl-settings-update"
#define _(String) gettext(String)
@ -19,12 +29,35 @@ string version_application = "1.2";
char *local;
typedef struct {
int always_open_documentation;
int win_pos_x;
int win_pos_y;
int win_width;
int win_height;
int socket_id;
int load_socket_id;
int save_socket_id;
int lock_help;
int lock_save_local;
int lock_save_global;
int lock_load_global;
GtkListStore *list;
} config;
typedef struct {
GtkWidget *window;
GtkBuilder *builder;
GtkWidget *HeaderTopic;
GtkWidget *PlugBox;
GtkWidget *LeftBox;
GtkWidget *RightBox;
GtkWidget *generalSettingsTabLabel;
GtkWidget *repositoriesSettingsTabLabel;
GtkWidget *extraSettingsTabLabel;
@ -44,6 +77,7 @@ typedef struct {
GtkWidget *repositoriesSettingsRepositoriesTreeView;
GtkTreeViewColumn *repositoriesSettingsEnabledColumn;
GtkTreeViewColumn *repositoriesSettingsURIColumn;
GtkTreeViewColumn *repositoriesSettingsDistributionColumn;
GtkWidget *extraSettingsPackageManagerLabel;
GtkWidget *extraSettingsPackageManagerEntry;
@ -67,26 +101,41 @@ typedef struct {
GtkWidget *mainCheckForUpdatesButton;
GtkWidget *statusBox;
GtkWidget *statusIcon;
GtkWidget *statusLabel;
} main_window;
typedef struct {
GtkWidget *window;
GtkBuilder *builder;
GtkListStore *list;
GtkWidget *repoTypeLabel;
GtkWidget *repoTypeEntry;
GtkWidget *repoURILabel;
GtkWidget *repoURIMeanLabel;
GtkWidget *repoDistributionLabel;
GtkWidget *repoDistributionMeanLabel;
GtkWidget *repoSectionsLabel;
GtkWidget *repoSectionsMeanlabel;
GtkWidget *repoDistributionEntry;
GtkWidget *repoCancelButton;
GtkWidget *repoAcceptButton;
GtkWidget *tree;
} repo_window;
typedef struct {
GtkWidget *Window;
GtkWidget *HatText;
GtkWidget *HeaderText;
GtkWidget *InfoText;
GtkWidget *AlwaysOpenCheck;
GtkWidget *CloseButton;
GtkWidget *AcceptButton;
} documentation_confirmation_window;
void on_repo_window_open(GtkWidget *self);
main_window *setup_window();
repo_window *setup_repo_window();
void on_repo_window_open_edit(GtkWidget *self, GtkWidget *tree);
repo_window *on_repo_window_open_create(GtkWidget *self);
main_window *setup_window();

@ -0,0 +1 @@
#cmakedefine WEBKIT_FOUND

File diff suppressed because it is too large Load Diff

@ -3,6 +3,7 @@
#include <pthread.h>
#include <stdio.h>
#include <stdlib.h>
#include <stdarg.h>
#include <pthread.h>
#include <string.h>
#include <dirent.h>
@ -12,22 +13,36 @@
#define DesktopPath "/usr/share/applications/"
#define for_dictionaries(obj,obj1) for(obj=obj1->first;obj!=NULL;obj=obj->next)
#define for_dictionaries(obj, obj1) for (obj = obj1->first; obj != NULL; obj = obj->next)
typedef enum {
DICTIONARY_ACTION_WIDGETS_TYPE,
DICTIONARY_IVGRAPHICALS_TYPE,
#define new(type) malloc(sizeof(type))
#define new_arr(type,size) malloc(sizeof(type)*size)
#define yon_ubl_set_config_save_data_pointer(command) config_commands.config_save_data = command
#define yon_ubl_load_global_config(command, size_pointer) yon_config_load(command, size_pointer)
#define yon_ubl_load_local_config(command, size_pointer) yon_config_load(command, size_pointer)
#define yon_ubl_save_global_config(command) yon_config_save(command)
#define yon_ubl_save_local_config(command) yon_config_save(command)
typedef enum
{
#ifdef __GTK_H__
DICTIONARY_GTK_WIDGETS_TYPE,
#endif
DICTIONARY_OTHER_TYPE
} DICT_TYPE;
typedef struct {
typedef struct
{
char *command;
int *exitcode;
} thread_output;
typedef struct dictionary {
typedef struct dictionary
{
char *key;
void *data;
struct dictionary *next;
@ -36,26 +51,41 @@ typedef struct dictionary {
DICT_TYPE data_type;
} dictionary;
typedef struct apps{
char *Name;
int Type;
char *Categories;
char *Exec;
char *Icon;
int Pluggable;
int DualPluggable;
} apps;
//dictionary functions
typedef struct apps
{
char *Name;
int Type;
char *Categories;
char *Exec;
char *Icon;
int Pluggable;
int DualPluggable;
} apps;
typedef char** config_str;
// dictionary functions
/**yon_dictionary_get_data(dictionary, type)
* [EN]
* Gets data from dictionary.
* [dictionary] is dictionary, from which data should be extracted;
* [type] is type of data, [dictionary] contains.
* [RU]
* Возвращает данные из словаря.
* [dictionary] - словарь из которого достаются данные.
* [type] - тип данных, хранящихся в словаре [dictionary].
*/
#define yon_dictionary_get_data(dictionary, type) ((type)dictionary->data)
#define yon_dictionary_add_or_create_if_exists_with_data(dict,key,data) {if (!dict) dict=yon_dictionary_create_with_data(key,data); \
else dict=yon_dictionary_create_with_data_connected(dict,key,data);}
dictionary *yon_dictionary_create_empty();
dictionary * yon_dictionary_create_conneced(dictionary *targetdict);
dictionary *yon_dictionary_create_conneced(dictionary *targetdict);
dictionary *yon_dictionary_get_last(dictionary *dict);
dictionary *yon_dictionary_switch_places(dictionary *dict,int aim);
dictionary *yon_dictionary_switch_places(dictionary *dict, int aim);
void yon_dictionary_make_first(dictionary *dict);
@ -73,92 +103,195 @@ dictionary *yon_dictionary_rip(dictionary *dict);
dictionary *yon_dictionary_get_nth(dictionary *dict, int place);
//char functions
void *yon_dictionary_free_all(dictionary *dictionary,void (data_manipulation)(void*));
// char functions
char *yon_char_get_augumented(char *source, char *append);
char *yon_char_new(char *chr);
char *yon_char_unite(char *source, ...);
char *yon_cut(char *source, int size, int startpos);
char *yon_char_divide(char *source, int dividepos);
char *yon_char_divide_search(char *source, char* dividepos, int delete_divider);
char *yon_char_divide_search(char *source, char *dividepos, int delete_divider);
char *yon_char_from_int(int int_to_convert);
char *yon_char_replace(char *source, char *find, char*replace);
char **yon_char_parse(char *parameters, int *size, char *divider);
//parsing functions
char **yon_char_parsed_shrink(char **char_string, int *size, int item_to_delete);
apps *yon_apps_scan_and_parse_desktops(int *sizef);
int yon_char_parsed_check_exist(char **parameters, int size, char *param);
int yon_char_find_count(char *source, char *find);
void yon_apps_sort(apps *applist,int size);
int yon_char_parsed_includes_char_parsed (config_str source, config_str to_check, int source_size, int check_size);
config_str yon_char_parsed_new (config_str old, int *old_size, ...);
apps *yon_apps_get_by_name(apps *applist,char *name, int size);
// parsing functions
apps *yon_apps_scan_and_parse_desktops(int *sizef);
//terminal-using functions
void yon_apps_sort(apps *applist, int size);
apps *yon_apps_get_by_name(apps *applist, char *name, int size);
config_str yon_config_load(char *command, int *str_len);
int yon_launch_app(char *name);
int yon_config_save(char *command);
char *yon_config_get_parameter(config_str parameters, int size, char *param);
int yon_launch_app_with_arguments(char *name, char *args);
char *yon_config_make_save_parameter_with_multiple_arguments(char *parameter_string, char *config_parameter, char *divider);
// terminal-using functions
int yon_launch_app(char *name);
int yon_launch_app_with_arguments(char *name, char *args);
int yon_launch(thread_output *thread);
//Gtk functions
// Gtk functions
#ifdef __GTK_H__
#ifdef VTE_TERMINAL
#define yon_gtk_builder_get_widget(obj,obj2) GTK_WIDGET(gtk_builder_get_object(obj,obj2))
/**
*
*/
void yon_terminal_integrated_launch(GtkWidget *place_to_show, char* command, void *endwork_function, void* endwork_function_argument);
#endif
/**yon_gtk_builder_get_widget(builder, widget_name)
* [EN]
* Returns GtkWidget from GtkBuilder *[builder].
* [builder] is GtkBuilder*;
* [widget_name] is id of widget;
*/
#define yon_gtk_builder_get_widget(builder, widget_name) GTK_WIDGET(gtk_builder_get_object(builder, widget_name))
typedef struct {
typedef struct
{
GtkWidget *Icon;
GtkWidget *Label;
GtkWidget *IconView;
GtkListStore *List;
} expander_icon_view;
// GtkWidget *yon_gtk_app_chooser_apps_create();
// dictionary *yon_gtk_app_chooser_create();
// expander_icon_view yon_gtk_icon_view_expander_create(GtkWidget *pack, ...);
GtkWidget *yon_gtk_socket_create_new_with_connect(GtkWidget *container, gpointer data);
int yon_gtk_combo_box_fill(GtkWidget *combo, char **parameters,int size);
int yon_gtk_combo_box_text_find(GtkWidget *combo_box, char *text_to_find);
int yon_gtk_icon_view_hide_empty(dictionary *icon_view_segment);
int yon_dictionary_gtk_pack_start_multiple_widgets(dictionary *dict, GtkWidget *destination, gboolean expand, gboolean fill, int padding);
int yon_dictionary_gtk_pack_end_multiple_widgets(dictionary *dict, GtkWidget *destination, gboolean expand, gboolean fill, int padding);
//uninitialised
void yon_on_plug_added(GtkSocket* self, gpointer user_data);
void yon_on_plug_removed(GtkSocket* self, gpointer user_data);
#endif
typedef enum {
typedef enum
{
BACKGROUND_IMAGE_SUCCESS_TYPE,
BACKGROUND_IMAGE_FAIL_TYPE
} BACKGROUND_IMAGE_TYPE;
typedef struct {
BACKGROUND_IMAGE_TYPE type;
GtkWidget *icon;
GtkWidget *box;
GtkWidget *label;
char* text_to_render;
} render_data;
/**yon_ubl_status_box_setup(render,icon,box,label)
* [EN]
* Sets up [render] structure of type render_data.
* [icon] is GtkImage widget of status box for showing status icons;
* [box] is GtkBox widget of status box for showing status color;
* [label] is GtkLabel widget of status box for showing status text;
* [RU]
* Настраивает структуру [render] типа render_data.
* [icon] - виджет типа GtkIcon в котором будут отображаться статусные иконки;
* [box] - виджет типа GtkBox в котором будет отображаться цвет статуса;
* [label] - виджет типа GtkLabel в котором будет отображаться текст статусного сообщения;
*/
#define yon_ubl_status_box_setup(render,icon,box,label) {render.icon=GTK_WIDGET(icon); render.box=GTK_WIDGET(box); render.label=GTK_WIDGET(label);}
/**yon_ubl_status_box_render(render,text,type)
* [EN]
* Renders message in status box;
* [render] is render_data structure of status box;
* [text] is text to be shown in status box;
* [type] if type of message. Can be BACKGROUND_IMAGE_FAIL_TYPE or BACKGROUND_IMAGE_SUCCESS_TYPE
* [RU]
* Отображает сообщение в статусном окне.
* [render] - структура типа render_data для нужного статусного окна;
* [text] - текст, отображаемый в статусном окне;
* [type] - тип сообщения. Может быть:
* BACKGROUND_IMAGE_FAIL_TYPE (красный фон,иконка - восклицательный знак)
* или
* BACKGROUND_IMAGE_SUCCESS_TYPE (Жёлтный фон, иконка - галка)
*/
#define yon_ubl_status_box_render(render,text,m_type) {render.text_to_render=text; render.type=m_type; pthread_attr_t attr; pthread_attr_init(&attr); pthread_t tid; pthread_create(&tid,&attr,(void*)_yon_ubl_status_box_render,((void*)&render)); }
#ifdef __cplusplus
#define yon_ubl_header_setup(overlay,head,image,imag_path) _yon_ubl_header_setup(GTK_WIDGET(overlay.gobj()),GTK_WIDGET(head.gobj()),GTK_WIDGET(image.gobj()),(char*)imag_path)
#define yon_ubl_status_box_render(statusbox, statusicon, statuslabel, iconname, statustext, backgroundclass) _yon_ubl_status_box_render(GTK_WIDGET(statusbox.gobj()), GTK_WIDGET(statusicon.gobj()), GTK_WIDGET(statuslabel.gobj()), (char*)iconname, (char*)statustext, backgroundclass)
/**yon_ubl_header_setup(overlay, head, image, imag_path)
* [EN]
* Sets up header of app.
* [overlay] is overlay for app header;
* [head] is box of header, which connects to [overlay]
* [image] is header background image;
* [imag_path] is path of image, shown in [image]
* [RU]
* Настраивает заголовок приложения.
* [overlay] - оверлей заголовка приложения;
* [head] - шапка заголовка, присоединяемая к [overlay]
* [image] - виджет картинки для заднего фона;
* [imag_path] - путь до картинки, загружаемой в [image]
*/
#define yon_ubl_header_setup(overlay, head, image, imag_path) _yon_ubl_header_setup(GTK_WIDGET(overlay.gobj()), GTK_WIDGET(head.gobj()), GTK_WIDGET(image.gobj()), (char *)imag_path)
#else
#define yon_ubl_header_setup(overlay,head,image,imag_path) _yon_ubl_header_setup(GTK_WIDGET(overlay),GTK_WIDGET(head),GTK_WIDGET(image), (char*)imag_path)
#define yon_ubl_status_box_render(statusbox, statusicon, statuslabel, iconname, statustext, backgroundclass) _yon_ubl_status_box_render(statusbox, statusicon, statuslabel, iconname, statustext, backgroundclass)
/**yon_ubl_header_setup(overlay, head, image, imag_path)
* [EN]
* Sets up header of app.
* [overlay] is overlay for app header;
* [head] is box of header, which connects to [overlay]
* [image] is header background image;
* [imag_path] is path of image, shown in [image]
* [RU]
* Настраивает заголовок приложения.
* [overlay] - оверлей заголовка приложения;
* [head] - шапка заголовка, присоединяемая к [overlay]
* [image] - виджет картинки для заднего фона;
* [imag_path] - путь до картинки, загружаемой в [image]
*/
#define yon_ubl_header_setup(overlay, head, image, imag_path) _yon_ubl_header_setup(GTK_WIDGET(overlay), GTK_WIDGET(head), GTK_WIDGET(image), (char *)imag_path)
#endif
void _yon_ubl_header_setup(GtkWidget *Overlay, GtkWidget *Head, GtkWidget *Image, char *image_path);
void _yon_ubl_status_box_render(GtkWidget *StatusBox, GtkWidget *StatusIcon, GtkWidget *StatusLabel, char *IconName, char* StatusText, BACKGROUND_IMAGE_TYPE BackgroundClass);
void _yon_ubl_status_box_render(render_data *datav);
void yon_ubl_setup_sockets(GtkWidget *main_window, GtkWidget *left_window, GtkWidget *right_window, int socket_main_id, int socket_left_id, int socket_right_id);
#ifdef WEBKIT_FOUND
void yon_ubl_browser_window_open(char *link, char *browser_window_name);
#else
void yon_ubl_browser_window_open(char *link, char *browser_window_name);
#endif
#endif
#endif

@ -12,3 +12,97 @@ background:transparent;
.nobackground:active {
background:transparent;
}
.textHead{
text-shadow: 2px 2px @theme_bg_color;
color: @theme_text_color;
}
.inherited>* {
border:none;
background:inherit;
}
.workingbg {
background:@theme_base_color;
}
.menuitembottom{
margin-top:0px;
margin-bottom:3px;
border-color:inherit;
border-left-width:inherit;
border-right-width:inherit;
}
.menuitemmiddle{
margin-top:0px;
margin-bottom:0px;
border-color:inherit;
border-left-width:inherit;
border-right-width:inherit;
}
.menuitemtop{
margin-bottom:0px;
border-color:inherit;
border-top-width:inherit;
border-left-width:inherit;
border-right-width:inherit;
}
.menuitemtop *{
margin:2px 2px 0 2px;
padding: 5px 10px 3px 5px;
border:transparent;
}
.menuitemmiddle *{
margin:0 2px 0 2px;
padding: 3px 10px 3px 5px;
border:transparent;
}
.menuitembottom *{
margin:0 2px 2px 2px;
padding: 3px 10px 5px 5px;
}
.menuitemtop:hover {
background:@theme_bg_color;
border-color:inherit;
border-top-width:inherit;
border-left-width:inherit;
border-right-width:inherit;
}
.menuitemmiddle:hover {
background:@theme_bg_color;
border-color:inherit;
border-left-width:inherit;
border-right-width:inherit;
}
.menuitembottom:hover {
background:@theme_bg_color;
border-color:inherit;
border-bottom-width:0px;
border-left-width:inherit;
border-right-width:inherit;
}
.menuitemtop:hover* {
margin:2px 2px 0 2px;
padding: 5px 10px 3px 5px;
background:@theme_selected_bg_color;
border-radius:2px;
}
.menuitemmiddle:hover* {
margin:0 2px 0 2px;
padding: 3px 10px 3px 5px;
background:@theme_selected_bg_color;
border-radius:2px;
}
.menuitembottom:hover* {
margin:0 2px 2px 2px;
padding: 3px 10px 5px 5px;
background:@theme_selected_bg_color;
border-radius:2px;
}
.boxInfoMessError{
background-color: #ea9999;
}
.boxInfoMessOK{
background-color: #f3f0ac;
}

@ -1,9 +1,9 @@
[Desktop Entry]
Encoding=UTF-8
Name=ubl-settings-update
Name[ru]=Настройки обновлений
GenericName=ubl-settings-quotas
GenericName[ru]=Настройки обновлений
Name[ru]=Обновление системы
GenericName=ubl-settings-update
GenericName[ru]=Обновление системы
Comment=ubl-settings-update
Comment[ru]=Приложение для управления настройками обновлений
Type=Application

File diff suppressed because it is too large Load Diff

@ -1,184 +1,249 @@
# language translations for ubl-settings-manager package.
# Language translations for ubl-settings-update package.
# Copyright (C) 2022, UBTech LLC
# This file is distributed under the same license as the ubl-settings-manager package.
# This file is distributed under the same license as the ubl-settings-update 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"
"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"
"Project-Id-Version: ubl-settings-update 1.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-05-22 17:22+0600\n"
"PO-Revision-Date: \n"
"Last-Translator: \n"
"Language-Team: \n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: source/ubl-settings-update.c:16
msgid "UBlinux System update"
#: source/ubl-settings-update-strings.h:1
msgid "Version:"
msgstr ""
#: source/ubl-settings-update.c:18
msgid "Project Home Page"
#: source/ubl-settings-update-strings.h:2
msgid "ubl-settings-update version:"
msgstr ""
#: source/ubl-settings-update-strings.h:2
msgid "update settings"
msgstr ""
#: source/ubl-settings-update-strings.h:2
msgid "Usage:"
msgstr ""
#: source/ubl-settings-update-strings.h:2
msgid "[OPTIONS]"
msgstr ""
#: source/ubl-settings-update-strings.h:2
msgid "Options:"
msgstr ""
#: source/ubl-settings-update-strings.h:2
msgid "Show this help"
msgstr ""
#: source/ubl-settings-update.c:19
msgid "Update configurator"
#: source/ubl-settings-update-strings.h:2
msgid "Show package version"
msgstr ""
#: source/ubl-settings-update.c:46 source/ubl-settings-update.c:111
#: source/ubl-settings-update.c:113
#: source/ubl-settings-update-strings.h:2
msgid "Lock this help menu"
msgstr ""
#: source/ubl-settings-update-strings.h:2
msgid "Lock configuration saving"
msgstr ""
#: source/ubl-settings-update-strings.h:2
msgid "Lock local configration saving"
msgstr ""
#: source/ubl-settings-update-strings.h:2
msgid "Lock global configration saving"
msgstr ""
#: source/ubl-settings-update-strings.h:2
msgid "Lock global configration loading"
msgstr ""
#: source/ubl-settings-update-strings.h:3
msgid "System update"
msgstr ""
#: source/ubl-settings-update.c:48
msgid "Type: "
#: source/ubl-settings-update-strings.h:4
msgid "System update settings management"
msgstr ""
#: source/ubl-settings-update-strings.h:5
msgid "Check for updates"
msgstr ""
#: source/ubl-settings-update.c:49
msgid "URI: "
#: source/ubl-settings-update-strings.h:6
msgid "About"
msgstr ""
#: source/ubl-settings-update.c:50 source/ubl-settings-update.c:52
#: source/ubl-settings-update.c:54
msgid " "
#: source/ubl-settings-update-strings.h:7
msgid "Documentation"
msgstr ""
#: source/ubl-settings-update.c:51
msgid "Distribution: "
#: source/ubl-settings-update-strings.h:8
msgid "Save to local configuration"
msgstr ""
#: source/ubl-settings-update.c:53
msgid "Sections: "
#: source/ubl-settings-update-strings.h:9
msgid "Save to global configuration"
msgstr ""
#: source/ubl-settings-update.c:56
msgid "Cancel"
#: source/ubl-settings-update-strings.h:10
msgid "Save configuration"
msgstr ""
#: source/ubl-settings-update.c:57 source/ubl-settings-update.c:143
#: source/ubl-settings-update-strings.h:11
#: source/ubl-settings-update-strings.h:36
msgid "Save"
msgstr ""
#: source/ubl-settings-update.c:115
msgid "General"
#: source/ubl-settings-update-strings.h:12
msgid "Load local configuration"
msgstr ""
#: source/ubl-settings-update.c:116
msgid "Repositories"
#: source/ubl-settings-update-strings.h:13
msgid "Load global configuration"
msgstr ""
#: source/ubl-settings-update.c:117
msgid "Extra"
#: source/ubl-settings-update-strings.h:14
msgid "load"
msgstr ""
#: source/ubl-settings-update.c:119
msgid "Update checking frequency"
#: source/ubl-settings-update-strings.h:15
msgid "Launch package manager"
msgstr ""
#: source/ubl-settings-update.c:120
msgid "Hide icon of no updates found"
#: source/ubl-settings-update-strings.h:16
msgid "Cache clean command: "
msgstr ""
#: source/ubl-settings-update.c:121
msgid "Download updates automatically"
#: source/ubl-settings-update-strings.h:17
msgid "Update command: "
msgstr ""
#: source/ubl-settings-update.c:122
msgid "Every 1 hour"
#: source/ubl-settings-update-strings.h:18
msgid "Package manager: "
msgstr ""
#: source/ubl-settings-update.c:123
msgid "Every 2 hours"
#: source/ubl-settings-update-strings.h:19
msgid "URI"
msgstr ""
#: source/ubl-settings-update.c:124
msgid "Every 3 hours"
#: source/ubl-settings-update-strings.h:20
msgid "Enabled"
msgstr ""
#: source/ubl-settings-update.c:126
msgid "Activate AUR"
#: source/ubl-settings-update-strings.h:21
msgid "Distribution"
msgstr ""
#: source/ubl-settings-update.c:127
#: source/ubl-settings-update-strings.h:22
msgid "Activate UBUR"
msgstr ""
#: source/ubl-settings-update.c:128
msgid "Create"
#: source/ubl-settings-update-strings.h:23
msgid "Activate AUR"
msgstr ""
#: source/ubl-settings-update.c:129
msgid "Edit"
#: source/ubl-settings-update-strings.h:24
msgid "Every 3 hours"
msgstr ""
#: source/ubl-settings-update.c:130
msgid "Delete"
#: source/ubl-settings-update-strings.h:25
msgid "Every 2 hours"
msgstr ""
#: source/ubl-settings-update.c:131
msgid "Enabled"
#: source/ubl-settings-update-strings.h:26
msgid "Every 1 hour"
msgstr ""
#: source/ubl-settings-update.c:132
msgid "URI"
#: source/ubl-settings-update-strings.h:27
msgid "Download updates automatically"
msgstr ""
#: source/ubl-settings-update.c:134
msgid "Package manager: "
#: source/ubl-settings-update-strings.h:28
msgid "Hide icon of no updates found"
msgstr ""
#: source/ubl-settings-update.c:135
msgid "Update command: "
#: source/ubl-settings-update-strings.h:29
msgid "Update checking frequency"
msgstr ""
#: source/ubl-settings-update.c:136
msgid "Cache clean command: "
#: source/ubl-settings-update-strings.h:30
msgid "Extra"
msgstr ""
#: source/ubl-settings-update.c:137
msgid "Launch package manager"
#: source/ubl-settings-update-strings.h:31
msgid "Repositories"
msgstr ""
#: source/ubl-settings-update.c:139
msgid "load"
#: source/ubl-settings-update-strings.h:32
msgid "General"
msgstr ""
#: source/ubl-settings-update.c:140
msgid "Load global configuration"
#: source/ubl-settings-update-strings.h:33
msgid "Adress: "
msgstr ""
#: source/ubl-settings-update.c:141
msgid "Load local configuration"
#: source/ubl-settings-update-strings.h:34
msgid "Distribution: "
msgstr ""
#: source/ubl-settings-update.c:144
msgid "Save to global and local configuration"
#: source/ubl-settings-update-strings.h:35
msgid "Cancel"
msgstr ""
#: source/ubl-settings-update.c:145
msgid "Save to global configuration"
#: source/ubl-settings-update-strings.h:37
msgid "Would you like to read documentation in the Web?"
msgstr ""
#: source/ubl-settings-update.c:146
msgid "Save to local configuration"
#: source/ubl-settings-update-strings.h:38
msgid ""
"You will be redirected to documentation website where documentation is\n"
"translated and supported by community."
msgstr ""
#: source/ubl-settings-update.c:148
msgid "Documentation"
#: source/ubl-settings-update-strings.h:39
msgid "Always redirect to online documentation"
msgstr ""
#: source/ubl-settings-update.c:149
msgid "About"
#: source/ubl-settings-update-strings.h:40
msgid "Open documentation"
msgstr ""
#: source/ubl-settings-update.c:151
msgid "Check for updates"
#: source/ubl-settings-update-strings.h:41
msgid "Project Home Page"
msgstr ""
#: source/ubl-settings-update-strings.h:42
msgid "Nothing were chosen"
msgstr ""
#: source/ubl-settings-update-strings.h:44
msgid "Global configuration loading succseeded."
msgstr ""
#: source/ubl-settings-update-strings.h:45
msgid "Local configuration loading succseeded."
msgstr ""
#: source/ubl-settings-update-strings.h:47
msgid "Local and global configuration saving succseeded."
msgstr ""
#: source/ubl-settings-update-strings.h:48
msgid "Global configuration saving succseeded."
msgstr ""
#: source/ubl-settings-update.c:166
msgid "System update parameter configuration"
#: source/ubl-settings-update-strings.h:49
msgid "Local configuration saving succseeded."
msgstr ""

@ -1,14 +1,14 @@
# Russian translations for ubl-settings-manager package.
# Russian translations for ubl-settings-update package.
# Copyright (C) 2022, UBTech LLC
# This file is distributed under the same license as the ubl-settings-manager package.
# This file is distributed under the same license as the ubl-settings-update 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"
"POT-Creation-Date: 2023-04-21 12:33+0000\n"
"Project-Id-Version: ubl-settings-update 1.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-05-22 17:22+0600\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"
@ -17,173 +17,236 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: source/ubl-settings-update.c:16
#, fuzzy
msgid "UBlinux System update"
msgstr "Обновление системы"
#: source/ubl-settings-update-strings.h:1
msgid "Version:"
msgstr "Версия:"
#: source/ubl-settings-update.c:18
#, fuzzy
msgid "Project Home Page"
msgstr "Домашняя страница проекта"
#: source/ubl-settings-update-strings.h:2
msgid "ubl-settings-update version:"
msgstr "Версия ubl-settings-update: "
#: source/ubl-settings-update.c:19
#, fuzzy
msgid "Update configurator"
msgstr "Загрузить локальную конфигурацию"
#: source/ubl-settings-update-strings.h:2
msgid "update settings"
msgstr "Настройки обновлений"
#: source/ubl-settings-update-strings.h:2
msgid "Usage:"
msgstr "Использование:"
#: source/ubl-settings-update-strings.h:2
msgid "[OPTIONS]"
msgstr "[АРГУМЕНТЫ]"
#: source/ubl-settings-update-strings.h:2
msgid "Options:"
msgstr "Аргументы:"
#: source/ubl-settings-update-strings.h:2
msgid "Show this help"
msgstr "Показать параметры справки"
#: source/ubl-settings-update-strings.h:2
msgid "Show package version"
msgstr "Показать текущую версию"
#: source/ubl-settings-update-strings.h:2
msgid "Lock this help menu"
msgstr "Блокировка вызова справки"
#: source/ubl-settings-update-strings.h:2
msgid "Lock configuration saving"
msgstr "Блокировка сохранения локальной и глобальной конфигурации"
#: source/ubl-settings-update-strings.h:2
msgid "Lock local configration saving"
msgstr "Блокировка сохранения локальной конфигурации"
#: source/ubl-settings-update-strings.h:2
msgid "Lock global configration saving"
msgstr "Блокировка сохранения глобальной конфигурации"
#: source/ubl-settings-update-strings.h:2
msgid "Lock global configration loading"
msgstr "Блокировка загрузки глобальной конфигурации"
#: source/ubl-settings-update.c:46 source/ubl-settings-update.c:111
#: source/ubl-settings-update.c:113
#: source/ubl-settings-update-strings.h:3
msgid "System update"
msgstr "Обновление системы"
#: source/ubl-settings-update.c:48
msgid "Type: "
msgstr "Тип: "
#: source/ubl-settings-update-strings.h:4
msgid "System update settings management"
msgstr "Настройка параметров обновления системы"
#: source/ubl-settings-update.c:49
msgid "URI: "
msgstr "URI: "
#: source/ubl-settings-update-strings.h:5
msgid "Check for updates"
msgstr "Проверить обновления"
#: source/ubl-settings-update.c:50 source/ubl-settings-update.c:52
#: source/ubl-settings-update.c:54
msgid " "
msgstr " "
#: source/ubl-settings-update-strings.h:6
msgid "About"
msgstr "О программе"
#: source/ubl-settings-update.c:51
msgid "Distribution: "
msgstr "Дистрибутив: "
#: source/ubl-settings-update-strings.h:7
msgid "Documentation"
msgstr "Справка"
#: source/ubl-settings-update.c:53
msgid "Sections: "
msgstr "Разделы: "
#: source/ubl-settings-update-strings.h:8
msgid "Save to local configuration"
msgstr "Сохранить в локальную конфигурацию"
#: source/ubl-settings-update.c:56
msgid "Cancel"
msgstr "Отмена"
#: source/ubl-settings-update-strings.h:9
msgid "Save to global configuration"
msgstr "Сохранить в глобальную конфигурацию"
#: source/ubl-settings-update-strings.h:10
msgid "Save configuration"
msgstr "Сохранить в конфигурацию"
#: source/ubl-settings-update.c:57 source/ubl-settings-update.c:143
#: source/ubl-settings-update-strings.h:11
#: source/ubl-settings-update-strings.h:36
msgid "Save"
msgstr "Сохранить"
#: source/ubl-settings-update.c:115
msgid "General"
msgstr "Общие настройки"
#: source/ubl-settings-update-strings.h:12
msgid "Load local configuration"
msgstr "Загрузить локальную конфигурацию"
#: source/ubl-settings-update.c:116
msgid "Repositories"
msgstr "Репозитории"
#: source/ubl-settings-update-strings.h:13
msgid "Load global configuration"
msgstr "Загрузить глобальную конфигурацию"
#: source/ubl-settings-update.c:117
msgid "Extra"
msgstr "Дополнительно"
#: source/ubl-settings-update-strings.h:14
msgid "load"
msgstr "Загрузить"
#: source/ubl-settings-update.c:119
msgid "Update checking frequency"
msgstr "Частота проверки обновлений"
#: source/ubl-settings-update-strings.h:15
msgid "Launch package manager"
msgstr "Запустить менеджер пакетов"
#: source/ubl-settings-update.c:120
msgid "Hide icon of no updates found"
msgstr "Скрыть значок в трее при отсутствии обновлений"
#: source/ubl-settings-update-strings.h:16
msgid "Cache clean command: "
msgstr "Команда очистки кеша пакетов: "
#: source/ubl-settings-update.c:121
msgid "Download updates automatically"
msgstr "Автоматически скачивать обновления"
#: source/ubl-settings-update-strings.h:17
msgid "Update command: "
msgstr "Команда обновления: "
#: source/ubl-settings-update.c:122
msgid "Every 1 hour"
msgstr "Каждый час"
#: source/ubl-settings-update-strings.h:18
msgid "Package manager: "
msgstr "Менеджер пакетов: "
#: source/ubl-settings-update.c:123
msgid "Every 2 hours"
msgstr "Каждые 2 часа"
#: source/ubl-settings-update-strings.h:19
msgid "URI"
msgstr "URI"
#: source/ubl-settings-update.c:124
msgid "Every 3 hours"
msgstr "Каждые 3 часа"
#: source/ubl-settings-update-strings.h:20
msgid "Enabled"
msgstr "Включен"
#: source/ubl-settings-update.c:126
msgid "Activate AUR"
msgstr "Активировать AUR"
#: source/ubl-settings-update-strings.h:21
msgid "Distribution"
msgstr "Дистрибутив"
#: source/ubl-settings-update.c:127
#: source/ubl-settings-update-strings.h:22
msgid "Activate UBUR"
msgstr "Активировать UBUR"
#: source/ubl-settings-update.c:128
msgid "Create"
msgstr "Создать"
#: source/ubl-settings-update-strings.h:23
msgid "Activate AUR"
msgstr "Активировать AUR"
#: source/ubl-settings-update.c:129
msgid "Edit"
msgstr "Изменить"
#: source/ubl-settings-update-strings.h:24
msgid "Every 3 hours"
msgstr "Каждые 3 часа"
#: source/ubl-settings-update.c:130
msgid "Delete"
msgstr "Удалить"
#: source/ubl-settings-update-strings.h:25
msgid "Every 2 hours"
msgstr "Каждые 2 часа"
#: source/ubl-settings-update.c:131
msgid "Enabled"
msgstr "Включен"
#: source/ubl-settings-update-strings.h:26
msgid "Every 1 hour"
msgstr "Каждый час"
#: source/ubl-settings-update.c:132
#, fuzzy
msgid "URI"
msgstr "URI"
#: source/ubl-settings-update-strings.h:27
msgid "Download updates automatically"
msgstr "Автоматически скачивать обновления"
#: source/ubl-settings-update.c:134
msgid "Package manager: "
msgstr "Менеджер пакетов: "
#: source/ubl-settings-update-strings.h:28
msgid "Hide icon of no updates found"
msgstr "Скрыть значок в трее при отсутствии обновлений"
#: source/ubl-settings-update.c:135
msgid "Update command: "
msgstr "Команда обновления: "
#: source/ubl-settings-update-strings.h:29
msgid "Update checking frequency"
msgstr "Частота проверки обновлений"
#: source/ubl-settings-update.c:136
msgid "Cache clean command: "
msgstr "Команда очистки кеша пакетов: "
#: source/ubl-settings-update-strings.h:30
msgid "Extra"
msgstr "Дополнительно"
#: source/ubl-settings-update.c:137
msgid "Launch package manager"
msgstr "Запустить менеджер пакетов"
#: source/ubl-settings-update-strings.h:31
msgid "Repositories"
msgstr "Репозитории"
#: source/ubl-settings-update.c:139
msgid "load"
msgstr "Загрузить"
#: source/ubl-settings-update-strings.h:32
msgid "General"
msgstr "Общие настройки"
#: source/ubl-settings-update.c:140
msgid "Load global configuration"
msgstr "Загрузить глобальную конфигурацию"
#: source/ubl-settings-update-strings.h:33
msgid "Adress: "
msgstr "Адрес: "
#: source/ubl-settings-update.c:141
msgid "Load local configuration"
msgstr "Загрузить локальную конфигурацию"
#: source/ubl-settings-update-strings.h:34
msgid "Distribution: "
msgstr "Дистрибутив: "
#: source/ubl-settings-update.c:144
msgid "Save to global and local configuration"
msgstr "Сохранить в глобальную и локальную конфигурацию"
#: source/ubl-settings-update-strings.h:35
msgid "Cancel"
msgstr "Отмена"
#: source/ubl-settings-update.c:145
msgid "Save to global configuration"
msgstr "Сохранить в глобальную конфигурацию"
#: source/ubl-settings-update-strings.h:37
msgid "Would you like to read documentation in the Web?"
msgstr "Вы хотите прочитать справку в Сети?"
#: source/ubl-settings-update.c:146
msgid "Save to local configuration"
msgstr "Сохранить в локальную конфигурацию"
#: source/ubl-settings-update-strings.h:38
msgid ""
"You will be redirected to documentation website where documentation is\n"
"translated and supported by community."
msgstr ""
"Вы будете перенаправлены на сайт с документацией где страницы помощи\n"
"переводятся и поддерживаются сообществом."
#: source/ubl-settings-update.c:148
msgid "Documentation"
#: source/ubl-settings-update-strings.h:39
msgid "Always redirect to online documentation"
msgstr "Всегда перенаправлять"
#: source/ubl-settings-update-strings.h:40
msgid "Open documentation"
msgstr "Справка"
#: source/ubl-settings-update.c:149
msgid "About"
msgstr "О программе"
#: source/ubl-settings-update-strings.h:41
msgid "Project Home Page"
msgstr "Домашняя страница проекта"
#: source/ubl-settings-update.c:151
msgid "Check for updates"
msgstr "Проверить обновления"
#: source/ubl-settings-update-strings.h:42
msgid "Nothing were chosen"
msgstr "Ничего не выбрано"
#: source/ubl-settings-update-strings.h:44
msgid "Global configuration loading succseeded."
msgstr "Успешно загружена глобальная конфигурация"
#: source/ubl-settings-update-strings.h:45
msgid "Local configuration loading succseeded."
msgstr "Успешно загружена локальная конфигурация"
#: source/ubl-settings-update-strings.h:47
msgid "Local and global configuration saving succseeded."
msgstr "Успешно записаны локальная и глобальная конфигурация"
#: source/ubl-settings-update-strings.h:48
msgid "Global configuration saving succseeded."
msgstr "Успешно записана глобальная конфигурация"
#: source/ubl-settings-update-strings.h:49
msgid "Local configuration saving succseeded."
msgstr "Успешно записана локальная конфигурация"
#: source/ubl-settings-update.c:166
#, fuzzy
msgid "System update parameter configuration"
msgstr "настройка параметров обновления системы"

Loading…
Cancel
Save