master #59

Merged
asmeron merged 63 commits from YanTheKaller/ubl-settings-update:master into master 1 year ago

@ -6,6 +6,9 @@ In order to build ubl-settings-manager you will need:
- CMake - CMake
- C compiler - C compiler
- GTK+ 3 & dependencies - GTK+ 3 & dependencies
- [libublsettings](https://gitea.ublinux.ru/Applications/libublsettings)
- [libublsettings-gtk3](https://gitea.ublinux.ru/Applications/libublsettings-gtk3)
- [libublsettingsui-gtk3](https://gitea.ublinux.ru/Applications/libublsettingsui-gtk3)
Once you have all the necessary dependencies, you can use: Once you have all the necessary dependencies, you can use:
```sh ```sh

Binary file not shown.

Before

Width:  |  Height:  |  Size: 50 KiB

After

Width:  |  Height:  |  Size: 76 KiB

@ -94,10 +94,14 @@ set(LIBRARIES
ublsettingsui-gtk3 ublsettingsui-gtk3
) )
set (TARGET_DIRS /usr/include/libublsettingsui-gtk3)
add_executable(${PROJECT_NAME} ${SOURCE_FILES} ${CMAKE_CURRENT_BINARY_DIR}/${GRESOURCE_C}) add_executable(${PROJECT_NAME} ${SOURCE_FILES} ${CMAKE_CURRENT_BINARY_DIR}/${GRESOURCE_C})
target_link_libraries(${PROJECT_NAME} PUBLIC ${LIBRARIES}) target_link_libraries(${PROJECT_NAME} PUBLIC ${LIBRARIES})
target_include_directories(${PROJECT_NAME} PUBLIC ${PROJECT_BINARY_DIR}) target_include_directories(${PROJECT_NAME} PUBLIC ${PROJECT_BINARY_DIR})
target_include_directories(${PROJECT_NAME} PUBLIC /usr/include/libublsettingsui-gtk3)
set_source_files_properties( set_source_files_properties(
${CMAKE_CURRENT_BINARY_DIR}/${GRESOURCE_C} ${CMAKE_CURRENT_BINARY_DIR}/${GRESOURCE_C}
PROPERTIES GENERATED TRUE PROPERTIES GENERATED TRUE

@ -24,6 +24,7 @@ void on_save_done(main_window *, config_str output, int size){
break; break;
} }
textdomain(LocaleName); textdomain(LocaleName);
yon_config_set_ignore(REPOSITORY_parameter);
} }
@ -33,7 +34,7 @@ void on_toggle_button_toggled(GtkWidget *self, main_window *widgets){
if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->AutoUpdateCheck))){ if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->AutoUpdateCheck))){
yon_config_register(AUTOUPDATE,AUTOUPDATE_command,"enable"); yon_config_register(AUTOUPDATE,AUTOUPDATE_command,"enable");
} else { } else {
yon_config_register(AUTOUPDATE,AUTOUPDATE_command,"disable"); yon_config_remove_by_key(AUTOUPDATE);
} }
} else if (self == widgets->UpdateModeCombo){ } else if (self == widgets->UpdateModeCombo){
@ -63,11 +64,11 @@ void on_toggle_button_toggled(GtkWidget *self, main_window *widgets){
switch(gtk_combo_box_get_active(GTK_COMBO_BOX(widgets->UpdateIntervalCombo))){ switch(gtk_combo_box_get_active(GTK_COMBO_BOX(widgets->UpdateIntervalCombo))){
case 0: interval = yon_char_unite(!yon_char_is_empty(interval)?interval:"",!yon_char_is_empty(interval)?",":"",int_str,"min",NULL); case 0: interval = yon_char_unite(!yon_char_is_empty(interval)?interval:"",!yon_char_is_empty(interval)?",":"",int_str,"min",NULL);
break; break;
case 1: interval = yon_char_unite(int_str,"h",NULL); case 1: interval = yon_char_unite(!yon_char_is_empty(interval)?interval:"",!yon_char_is_empty(interval)?",":"",int_str,"h",NULL);
break; break;
case 2: interval = yon_char_unite(int_str,"d",NULL); case 2: interval = yon_char_unite(!yon_char_is_empty(interval)?interval:"",!yon_char_is_empty(interval)?",":"",int_str,"d",NULL);
break; break;
case 3: interval = yon_char_unite(int_str,"M",NULL); case 3: interval = yon_char_unite(!yon_char_is_empty(interval)?interval:"",!yon_char_is_empty(interval)?",":"",int_str,"M",NULL);
break; break;
} }
yon_config_register(AUTOUPDATE_interval,AUTOUPDATE_interval_command,interval); yon_config_register(AUTOUPDATE_interval,AUTOUPDATE_interval_command,interval);
@ -159,7 +160,8 @@ void on_toggle_button_toggled(GtkWidget *self, main_window *widgets){
void yon_load_proceed(YON_CONFIG_TYPE type){ void yon_load_proceed(YON_CONFIG_TYPE type){
yon_config_clean(); yon_config_clean();
if (!yon_char_is_empty(config_get_default_command)) char *default_command = yon_char_unite(config_get_default_command,NULL);
if (!yon_char_is_empty(default_command))
yon_config_load_config(YON_CONFIG_DEFAULT,config_get_default_command,NULL); yon_config_load_config(YON_CONFIG_DEFAULT,config_get_default_command,NULL);
if (type==YON_CONFIG_GLOBAL){ if (type==YON_CONFIG_GLOBAL){
yon_config_load_config(type,config_get_global_command,NULL); yon_config_load_config(type,config_get_global_command,NULL);
@ -246,7 +248,7 @@ void yon_interface_update(main_window *widgets){
gtk_list_store_append(widgets->ReposList,&iter); gtk_list_store_append(widgets->ReposList,&iter);
char *temp = strstr(parsed[0],",")?yon_char_replace(parsed[0],",","\n"):parsed[0]; char *temp = strstr(parsed[0],",")?yon_char_replace(parsed[0],",","\n"):parsed[0];
parsed[0] = temp; parsed[0] = temp;
gtk_list_store_set(widgets->ReposList,&iter,0,cur_size>3&&!strcmp(parsed[3],"")?1:0,1,key,2,parsed[0],3,cur_size>1?parsed[1]:"",4,cur_size>2?parsed[2]:"",-1); gtk_list_store_set(widgets->ReposList,&iter,0,(cur_size>3&&!strcmp(parsed[3],""))||cur_size<3?1:0,1,key,2,parsed[0],3,cur_size>1?parsed[1]:"",4,cur_size>2?parsed[2]:"",-1);
} }
free(key); free(key);
@ -289,7 +291,12 @@ void yon_interface_update(main_window *widgets){
yon_char_parsed_free(parsed,cur_size); yon_char_parsed_free(parsed,cur_size);
} }
} else { } else {
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widgets->PublicationCheck),1); for (int i=0;i<repos_size;i++){
yon_char_remove_last_symbol(publish_repos[i],'\n');
gtk_list_store_append(widgets->PublicationList,&iter);
gtk_list_store_set(widgets->PublicationList,&iter,1,publish_repos[i],0,1,-1);
}
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widgets->PublicationCheck),0);
} }
} }
{ {
@ -305,6 +312,15 @@ void yon_interface_update(main_window *widgets){
config_str mirror_list = yon_config_get_all_by_key(REPOPUBLIC_CACHE_search,&size); config_str mirror_list = yon_config_get_all_by_key(REPOPUBLIC_CACHE_search,&size);
if (size){ if (size){
for (int i=0;i<size;i++){ for (int i=0;i<size;i++){
if (yon_char_check_begins_with(mirror_list[i],REPOPUBLIC_CACHE_port)||
yon_char_check_begins_with(mirror_list[i],REPOPUBLIC_CACHE_cache_dir)||
yon_char_check_begins_with(mirror_list[i],REPOPUBLIC_CACHE_purge_files_after)||
yon_char_check_begins_with(mirror_list[i],REPOPUBLIC_CACHE_download_timeout)||
yon_char_check_begins_with(mirror_list[i],REPOPUBLIC_CACHE_http_proxy)||
yon_char_check_begins_with(mirror_list[i],REPOPUBLIC_CACHE_user_agent)||
yon_char_check_begins_with(mirror_list[i],REPOPUBLIC_CACHE_cron)||
yon_char_check_begins_with(mirror_list[i],REPOPUBLIC_CACHE_ttl_unaccessed_in_days)||
yon_char_check_begins_with(mirror_list[i],REPOPUBLIC_CACHE_ttl_unupdated_in_days)) continue;
char *cur = yon_char_new(mirror_list[i]); char *cur = yon_char_new(mirror_list[i]);
char *key = yon_char_divide_search(cur,"=",-1); char *key = yon_char_divide_search(cur,"=",-1);
if (yon_char_is_empty(key)) continue; if (yon_char_is_empty(key)) continue;
@ -363,18 +379,27 @@ void yon_interface_update(main_window *widgets){
autoupdate_config = config(AUTOUPDATE_interval); autoupdate_config = config(AUTOUPDATE_interval);
if (!yon_char_is_empty(autoupdate_config)){ if (!yon_char_is_empty(autoupdate_config)){
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widgets->UpdateIntervalDefaultCheck),0); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widgets->UpdateIntervalDefaultCheck),0);
if (strstr(autoupdate_config,"min")){ int parsed_size;
config_str parsed = yon_char_parse(autoupdate_config,&parsed_size,",");
if (yon_char_parsed_check_exist(parsed,parsed_size,"boot")!=-1){
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widgets->BootCheck),1);
}
if (strstr(parsed[parsed_size-1],"min")){
gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->UpdateIntervalCombo),0); gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->UpdateIntervalCombo),0);
} else if (autoupdate_config[strlen(autoupdate_config)-1]=='h'){ } else if (parsed[parsed_size-1][strlen(parsed[parsed_size-1])-1]=='h'){
gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->UpdateIntervalCombo),1); gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->UpdateIntervalCombo),1);
} else if (autoupdate_config[strlen(autoupdate_config)-1]=='d'){ } else if (parsed[parsed_size-1][strlen(parsed[parsed_size-1])-1]=='d'){
gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->UpdateIntervalCombo),2); gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->UpdateIntervalCombo),2);
} else if (autoupdate_config[strlen(autoupdate_config)-1]=='M'){ } else if (parsed[parsed_size-1][strlen(parsed[parsed_size-1])-1]=='M'){
gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->UpdateIntervalCombo),3); gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->UpdateIntervalCombo),3);
} }
gtk_spin_button_set_value(GTK_SPIN_BUTTON(widgets->UpdateIntervalSpin),atol(autoupdate_config)); gtk_spin_button_set_value(GTK_SPIN_BUTTON(widgets->UpdateIntervalSpin),atol(parsed[parsed_size-1]));
} else { } else {
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widgets->UpdateIntervalDefaultCheck),1); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widgets->UpdateIntervalDefaultCheck),1);
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widgets->BootCheck),0);
gtk_spin_button_set_value(GTK_SPIN_BUTTON(widgets->UpdateIntervalSpin),0);
gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->UpdateIntervalCombo),0);
} }
} }
@ -396,7 +421,27 @@ void yon_interface_update(main_window *widgets){
int repos_size; int repos_size;
config_str repos = yon_char_parse(key,&repos_size,","); config_str repos = yon_char_parse(key,&repos_size,",");
gtk_list_store_set(widgets->WebPublicationList,&iter,1,path,2,yon_char_parsed_to_string(repos,repos_size,"\n"),-1); char *repos_paths = yon_char_parsed_to_string(repos,repos_size,",");
char *full_path = yon_char_unite(path,!yon_char_is_empty(repos_paths)?":":"",!yon_char_is_empty(repos_paths)?repos_paths:"",NULL);
if (!yon_char_is_empty(repos_paths)) free(repos_paths);
if (!repos_size){
int temp_size;
config_str contents = yon_dir_get_contents(path,&temp_size);
for (int k=0;k<temp_size;k++){
char *full_content_path = yon_char_unite(path,"/",contents[k],NULL);
if (yon_file_is_directory(full_content_path)&&strcmp(contents[k],"pool")&&strcmp(contents[k],".")&&strcmp(contents[k],"..")){
yon_char_parsed_add_or_create_if_exists(repos,&repos_size,contents[k]);
}
free(full_content_path);
}
yon_char_parsed_free(contents,temp_size);
}
repos_paths = yon_char_parsed_to_string(repos,repos_size,"\n");
gtk_list_store_set(widgets->WebPublicationList,&iter,1,path,2,repos_paths,8,full_path,-1);
free(repos_paths);
free(full_path);
int cur_size; int cur_size;
config_str parsed = yon_char_parse(cur,&cur_size,":"); config_str parsed = yon_char_parse(cur,&cur_size,":");
if (cur_size){ if (cur_size){
@ -415,11 +460,12 @@ void yon_interface_update(main_window *widgets){
gtk_list_store_set(widgets->WebPublicationList,&iter,5,parsed[3],-1); gtk_list_store_set(widgets->WebPublicationList,&iter,5,parsed[3],-1);
} }
if (cur_size>4&&!yon_char_is_empty(parsed[4])){ if (cur_size>4&&!yon_char_is_empty(parsed[4])){
if (!strcmp(parsed[4],"sha256")||!strcmp(parsed[4],"sha512")){ char *hash = yon_char_divide_search(parsed[4],"|",-1);
gtk_list_store_set(widgets->WebPublicationList,&iter,7,parsed[5],-1); if (!strcmp(hash,"sha256")||!strcmp(hash,"sha512")){
gtk_list_store_set(widgets->WebPublicationList,&iter,6,parsed[4],-1); gtk_list_store_set(widgets->WebPublicationList,&iter,7,"******",-1);
gtk_list_store_set(widgets->WebPublicationList,&iter,6,hash,-1);
} else { } else {
gtk_list_store_set(widgets->WebPublicationList,&iter,6,parsed[4],-1); gtk_list_store_set(widgets->WebPublicationList,&iter,6,"******",-1);
if (cur_size>5&&!yon_char_is_empty(parsed[5])){ if (cur_size>5&&!yon_char_is_empty(parsed[5])){
gtk_list_store_set(widgets->WebPublicationList,&iter,7,parsed[5],-1); gtk_list_store_set(widgets->WebPublicationList,&iter,7,parsed[5],-1);
} }
@ -629,7 +675,6 @@ void on_scrolled_window_size_allocate(GtkWidget *, GdkRectangle *allocation, rep
void on_repo_add(GtkWidget *, main_window *widgets){ void on_repo_add(GtkWidget *, main_window *widgets){
gtk_tree_selection_unselect_all(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->MirrorTree))); gtk_tree_selection_unselect_all(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->MirrorTree)));
repo_add_window *window = yon_repo_add_window_new(); repo_add_window *window = yon_repo_add_window_new();
g_signal_connect(G_OBJECT(window->RepoSourceCombo),"changed",G_CALLBACK(yon_gtk_widget_set_sensitive_from_combo_box),window->RepoSourceButton);
yon_gtk_window_setup(GTK_WINDOW(window->Window),GTK_WINDOW(widgets->Window),ADD_REPO_LABEL,icon_path,"add_repo_window"); yon_gtk_window_setup(GTK_WINDOW(window->Window),GTK_WINDOW(widgets->Window),ADD_REPO_LABEL,icon_path,"add_repo_window");
dictionary *dict = NULL; dictionary *dict = NULL;
@ -651,6 +696,13 @@ void on_mirror_add(GtkWidget *,main_window *widgets){
} }
void on_password_encryption_changed(GtkComboBox *self, password_window *dialog){
int active = gtk_combo_box_get_active(self);
gtk_widget_set_sensitive(dialog->NoEncriptionCheck,!!active);
if (!active)
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(dialog->NoEncriptionCheck),0);
}
void on_password_open(GtkWidget *, web_publication_add_window *window){ void on_password_open(GtkWidget *, web_publication_add_window *window){
password_window *dialog = yon_password_window_new(); password_window *dialog = yon_password_window_new();
yon_gtk_entry_set_password_visibility_icon(GTK_ENTRY(dialog->PasswordEntry)); yon_gtk_entry_set_password_visibility_icon(GTK_ENTRY(dialog->PasswordEntry));
@ -660,6 +712,8 @@ void on_password_open(GtkWidget *, web_publication_add_window *window){
yon_dictionary_add_or_create_if_exists_with_data(dict,"window",dialog); yon_dictionary_add_or_create_if_exists_with_data(dict,"window",dialog);
yon_dictionary_add_or_create_if_exists_with_data(dict,"target",window->UserPasswordEntry); yon_dictionary_add_or_create_if_exists_with_data(dict,"target",window->UserPasswordEntry);
g_signal_connect(G_OBJECT(dialog->AcceptButton),"clicked",G_CALLBACK(on_password_accept),dict); g_signal_connect(G_OBJECT(dialog->AcceptButton),"clicked",G_CALLBACK(on_password_accept),dict);
g_signal_connect(G_OBJECT(dialog->NoEncriptionCheck),"toggled",G_CALLBACK(yon_gtk_widget_set_sensitive_from_toggle_button),dialog->PasswordHashEntry);
g_signal_connect(G_OBJECT(dialog->EncryptionCombo),"changed",G_CALLBACK(on_password_encryption_changed),dialog);
} }
void on_web_publish_remove(GtkWidget *self,main_window *widgets){ void on_web_publish_remove(GtkWidget *self,main_window *widgets){
@ -693,19 +747,9 @@ void on_web_publish_remove_accept(GtkWidget *, main_window *widgets){
if (!gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->WebPublicationTree)),&model,&iter)) { if (!gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->WebPublicationTree)),&model,&iter)) {
return; return;
} }
char *storage;
char *repositories;
gtk_tree_model_get(model,&iter,1,&storage,2,&repositories,-1);
char *full_name = NULL; char *full_name = NULL;
if (!yon_char_is_empty(repositories)){ gtk_tree_model_get(model,&iter,8,&full_name,-1);
int size; yon_config_remove_by_key(REPOPUBLIC_WEB_full(full_name));
config_str parsed = yon_char_parse(repositories,&size,"\n");
char *temp = yon_char_parsed_to_string(parsed,size,",");
full_name=yon_char_unite(storage,":",temp);
free(temp);
yon_char_parsed_free(parsed,size);
} else full_name = storage;
yon_config_remove_by_key(full_name);
yon_interface_update(widgets); yon_interface_update(widgets);
} }
@ -717,7 +761,7 @@ void on_mirror_remove_accept(GtkWidget *, main_window *widgets){
} }
char *repo; char *repo;
gtk_tree_model_get(model,&iter,0,&repo,-1); gtk_tree_model_get(model,&iter,0,&repo,-1);
yon_config_remove_by_key(repo); yon_config_remove_by_key(REPOPUBLIC_CACHE_full(repo));
yon_interface_update(widgets); yon_interface_update(widgets);
} }
@ -764,66 +808,65 @@ void on_repo_edit(GtkWidget *,main_window *widgets){
section->TypeCombo = yon_gtk_builder_get_widget(builder,"TypeCombo"); section->TypeCombo = yon_gtk_builder_get_widget(builder,"TypeCombo");
section->edits=0; section->edits=0;
if (strstr(repos[i],"@")){ char *path = yon_char_new(repos[i]);
char *type = yon_char_divide_search(repos[i],"@",-1); if (strstr(repos[i],"file://")){
gtk_combo_box_set_active_id(GTK_COMBO_BOX(section->TypeCombo),type); gtk_combo_box_set_active(GTK_COMBO_BOX(section->TypeCombo),0);
free(type); free(yon_char_divide(path,6));
} else if (strstr(repos[i],"ftp://")){
gtk_combo_box_set_active(GTK_COMBO_BOX(section->TypeCombo),1);
free(yon_char_divide(path,5));
} else if (strstr(repos[i],"http://")){
gtk_combo_box_set_active(GTK_COMBO_BOX(section->TypeCombo),2);
free(yon_char_divide(path,6));
} else if (strstr(repos[i],"https://")){
gtk_combo_box_set_active(GTK_COMBO_BOX(section->TypeCombo),3);
free(yon_char_divide(path,7));
} else } else {
gtk_combo_box_set_active(GTK_COMBO_BOX(section->TypeCombo),4); gtk_combo_box_set_active(GTK_COMBO_BOX(section->TypeCombo),4);
}
gtk_entry_set_text(GTK_ENTRY(section->PathEntry),path);
free(path);
yon_dictionary_add_or_create_if_exists_with_data(window->sections,(char*)target,section); yon_dictionary_add_or_create_if_exists_with_data(window->sections,(char*)target,section);
gtk_entry_set_text(GTK_ENTRY(section->PathEntry),repos[i]); gtk_box_pack_start(GTK_BOX(window->SourceBox),section->PathRemovalBox,0,0,0);
gtk_box_pack_start(GTK_BOX(window->SourceBox),section->PathRemovalBox,0,0,2);
g_signal_connect(gtk_builder_get_object(builder,"PathEditButton"),"clicked",G_CALLBACK(on_mirror_path_edit),window); g_signal_connect(gtk_builder_get_object(builder,"PathEditButton"),"clicked",G_CALLBACK(on_mirror_path_edit),window);
g_signal_connect(gtk_builder_get_object(builder,"PathRemoveButton"),"clicked",G_CALLBACK(on_mirror_path_removed),window); g_signal_connect(gtk_builder_get_object(builder,"PathRemoveButton"),"clicked",G_CALLBACK(on_mirror_path_removed),window);
} }
gtk_widget_show(window->SourceListBox);
yon_char_parsed_free(repos,cur_size); yon_char_parsed_free(repos,cur_size);
} }
if (size>1&&!yon_char_is_empty(parsed[1])){ //siglevel if (size>1&&!yon_char_is_empty(parsed[1])){ //siglevel
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(window->SignDefaultCheck),0); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(window->SignDefaultCheck),0);
int cur_size; int cur_size;
config_str siglevel = yon_char_parse(parsed[1],&cur_size,","); config_str siglevel = yon_char_parse(parsed[1],&cur_size,",");
if (!strcmp(siglevel[0],"Never")){
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(window->NeverRadio),1); GtkTreeModel *model = GTK_TREE_MODEL(window->SignList);
} else if (!strcmp(siglevel[0],"Optional")){ GtkTreeIter iter;
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(window->OptionalRadio),1); for_iter (model,&iter){
} else if (!strcmp(siglevel[0],"Required")){ char *target;
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(window->RequiredRadio),1); gtk_tree_model_get(model,&iter,1,&target,-1);
} else if (!strcmp(siglevel[0],"TrustedOnly")){ if (yon_char_parsed_check_exist(siglevel,cur_size,target)>-1){
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(window->TrustedOnlyRadio),1); gtk_list_store_set(window->SignList,&iter,0,1,-1);
} else if (!strcmp(siglevel[0],"TrustAll")){ } else {
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(window->TrustAllRadio),1); gtk_list_store_set(window->SignList,&iter,0,0,-1);
}
if (!strcmp(siglevel[1],"PackageNever")){ }
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(window->PackageNeverRadio),1);
} else if (!strcmp(siglevel[1],"DatabaseNever")){
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(window->DatabaseNeverRadio),1);
} else if (!strcmp(siglevel[1],"PackageOptional")){
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(window->PackageOptionalRadio),1);
} else if (!strcmp(siglevel[1],"DatabaseOptional")){
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(window->DatabaseOptionalRadio),1);
} else if (!strcmp(siglevel[1],"PackageRequired")){
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(window->PackageRequiredRadio),1);
} else if (!strcmp(siglevel[1],"DatabaseRequired")){
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(window->DatabaseRequiredRadio),1);
} else if (!strcmp(siglevel[1],"PackageTrustedOnly")){
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(window->PackageTrustedOnlyRadio),1);
} else if (!strcmp(siglevel[1],"DatabaseTrustedOnly")){
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(window->DatabaseTrustedOnlyRadio),1);
} else if (!strcmp(siglevel[1],"PackageTrustAll")){
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(window->PackageTrustAllRadio),1);
} else if (!strcmp(siglevel[1],"DatabaseTrustAll")){
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(window->DatabaseTrustAllRadio),1);
} }
gtk_entry_set_text(GTK_ENTRY(window->SignLevelCheckEntry),parsed[1]);
} }
if (size>2&&!yon_char_is_empty(parsed[2])){ if (size>2&&!yon_char_is_empty(parsed[2])){ //usage
int usage_size; int usage_size;
config_str usage = yon_char_parse(parsed[2],&usage_size,","); config_str usage = yon_char_parse(parsed[2],&usage_size,",");
for (int i=0;i<usage_size;i++){ for (int i=0;i<usage_size;i++){
if (!strcmp(usage[i],"All")){ if (!strcmp(usage[i],"All")){
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(window->UsageDefaultCheck),1); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(window->UsageDefaultCheck),1);
} else { } else {
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(window->UsageDefaultCheck),0);
if (!strcmp(usage[i],"Sync")){ if (!strcmp(usage[i],"Sync")){
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(window->UsageEnableUpdateCheck),1); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(window->UsageEnableUpdateCheck),1);
} }
@ -839,7 +882,7 @@ void on_repo_edit(GtkWidget *,main_window *widgets){
} }
} }
if (usage_size) yon_char_parsed_free(usage,usage_size); if (usage_size) yon_char_parsed_free(usage,usage_size);
} //usage }
if (size<3||yon_char_is_empty(parsed[3])||strcmp(parsed[3],"disable")){ //disable if (size<3||yon_char_is_empty(parsed[3])||strcmp(parsed[3],"disable")){ //disable
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(window->EnabledCheck),1); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(window->EnabledCheck),1);
} }
@ -860,14 +903,13 @@ void on_web_publish_edit(GtkWidget *,main_window *widgets){
if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->WebPublicationTree)),NULL,&iter)){ if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->WebPublicationTree)),NULL,&iter)){
char *storage; char *storage;
char *repos; char *repos;
gtk_tree_model_get(GTK_TREE_MODEL(widgets->WebPublicationList),&iter,1,&storage,2,&repos,-1); char *full;
gtk_tree_model_get(GTK_TREE_MODEL(widgets->WebPublicationList),&iter,1,&storage,2,&repos,8,&full,-1);
gtk_entry_set_text(GTK_ENTRY(window->PathEntry),storage); gtk_entry_set_text(GTK_ENTRY(window->PathEntry),storage);
while(gtk_events_pending()) gtk_main_iteration(); while(gtk_events_pending()) gtk_main_iteration();
char *full_name = storage;
if(!yon_char_is_empty(repos)){ if(!yon_char_is_empty(repos)){
int size; int size;
config_str parsed = yon_char_parse(repos,&size,"\n"); config_str parsed = yon_char_parse(repos,&size,"\n");
full_name = yon_char_unite(storage,":",yon_char_replace(repos,"\n",","),NULL);
if (size){ if (size){
GtkTreeIter itar; GtkTreeIter itar;
for_iter(GTK_TREE_MODEL(window->list),&itar){ for_iter(GTK_TREE_MODEL(window->list),&itar){
@ -879,8 +921,8 @@ void on_web_publish_edit(GtkWidget *,main_window *widgets){
} }
} }
} }
window->name = full_name; window->name = full;
char *parameter = config(REPOPUBLIC_WEB_full(full_name)); char *parameter = config(REPOPUBLIC_WEB_full(full));
int size; int size;
config_str parsed = yon_char_parse(parameter,&size,":"); config_str parsed = yon_char_parse(parameter,&size,":");
if (size){ if (size){
@ -891,7 +933,7 @@ void on_web_publish_edit(GtkWidget *,main_window *widgets){
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(window->EnableWebFileBrowserCheck),1); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(window->EnableWebFileBrowserCheck),1);
} }
if (size>2&&!yon_char_is_empty(parsed[2])){ if (size>2&&!yon_char_is_empty(parsed[2])){
gtk_entry_set_text(GTK_ENTRY(window->PortEntry),parsed[2]); gtk_spin_button_set_value(GTK_SPIN_BUTTON(window->PortEntry),atol(parsed[2]));
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(window->PortCheck),1); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(window->PortCheck),1);
} }
if (size>3&&!yon_char_is_empty(parsed[3])){ if (size>3&&!yon_char_is_empty(parsed[3])){
@ -899,6 +941,7 @@ void on_web_publish_edit(GtkWidget *,main_window *widgets){
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(window->UsernameCheck),1); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(window->UsernameCheck),1);
} }
if (size>4&&!yon_char_is_empty(parsed[4])){ if (size>4&&!yon_char_is_empty(parsed[4])){
gtk_combo_box_set_active(GTK_COMBO_BOX(window->UserPasswordCombo),1);
if (!strcmp(parsed[4],"sha256")||!strcmp(parsed[4],"sha512")){ if (!strcmp(parsed[4],"sha256")||!strcmp(parsed[4],"sha512")){
gtk_combo_box_set_active_id(GTK_COMBO_BOX(window->UserPasswordCombo),parsed[4]); gtk_combo_box_set_active_id(GTK_COMBO_BOX(window->UserPasswordCombo),parsed[4]);
gtk_entry_set_text(GTK_ENTRY(window->UserPasswordEntry),parsed[5]); gtk_entry_set_text(GTK_ENTRY(window->UserPasswordEntry),parsed[5]);
@ -952,7 +995,7 @@ void on_mirror_edit(GtkWidget *,main_window *widgets){
yon_dictionary_add_or_create_if_exists_with_data(window->sections,(char*)target,section); yon_dictionary_add_or_create_if_exists_with_data(window->sections,(char*)target,section);
gtk_entry_set_text(GTK_ENTRY(section->PathEntry),parsed[i]); gtk_entry_set_text(GTK_ENTRY(section->PathEntry),parsed[i]);
gtk_box_pack_start(GTK_BOX(window->PathBox),section->PathRemovalBox,0,0,2); gtk_box_pack_start(GTK_BOX(window->PathBox),section->PathRemovalBox,0,0,0);
g_signal_connect(gtk_builder_get_object(builder,"PathEditButton"),"clicked",G_CALLBACK(on_mirror_path_edit),window); g_signal_connect(gtk_builder_get_object(builder,"PathEditButton"),"clicked",G_CALLBACK(on_mirror_path_edit),window);
g_signal_connect(gtk_builder_get_object(builder,"PathRemoveButton"),"clicked",G_CALLBACK(on_mirror_path_removed),window); g_signal_connect(gtk_builder_get_object(builder,"PathRemoveButton"),"clicked",G_CALLBACK(on_mirror_path_removed),window);
@ -1024,6 +1067,11 @@ void on_repo_accept_clicked(GtkWidget *, dictionary *dict){
main_window *widgets = yon_dictionary_get_data(dict->first,main_window*); main_window *widgets = yon_dictionary_get_data(dict->first,main_window*);
repo_add_window *window = yon_dictionary_get_data(dict->first->next,repo_add_window*); repo_add_window *window = yon_dictionary_get_data(dict->first->next,repo_add_window*);
if (!window->sections&&yon_char_is_empty(gtk_entry_get_text(GTK_ENTRY(window->RepoSourceEntry)))) {
yon_ubl_status_box_spawn(GTK_CONTAINER(window->StatusBox),EMPTY_IMPORTANT_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE);
yon_ubl_status_highlight_incorrect(window->RepoSourceEntry);
return;
}
const char *repo_name = gtk_entry_get_text(GTK_ENTRY(window->RepoNameEntry)); const char *repo_name = gtk_entry_get_text(GTK_ENTRY(window->RepoNameEntry));
if (yon_char_is_empty(repo_name)){ if (yon_char_is_empty(repo_name)){
yon_ubl_status_box_spawn(GTK_CONTAINER(window->StatusBox),EMPTY_IMPORTANT_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE); yon_ubl_status_box_spawn(GTK_CONTAINER(window->StatusBox),EMPTY_IMPORTANT_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE);
@ -1033,10 +1081,20 @@ void on_repo_accept_clicked(GtkWidget *, dictionary *dict){
int enabled = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(window->EnabledCheck)); int enabled = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(window->EnabledCheck));
char *sources = ""; char *sources = "";
dictionary *dact = NULL; dictionary *dact = NULL;
for_dictionaries (dact, window->sections){ if (window->sections){
char *type = (char*)gtk_combo_box_get_active_id(GTK_COMBO_BOX(((path_section*)dact->data)->TypeCombo)); for_dictionaries (dact, window->sections){
char *cur = yon_char_unite(type?type:"",type?"@":"",(char*)gtk_entry_get_text(GTK_ENTRY(((path_section*)dact->data)->PathEntry)),NULL); char *type = (char*)gtk_combo_box_get_active_id(GTK_COMBO_BOX(((path_section*)dact->data)->TypeCombo));
char *temp = yon_char_unite(sources,!yon_char_is_empty(sources)?",":"",cur,NULL); char *cur = yon_char_unite(type?type:"",(char*)gtk_entry_get_text(GTK_ENTRY(((path_section*)dact->data)->PathEntry)),NULL);
char *temp = yon_char_unite(sources,!yon_char_is_empty(sources)?",":"",cur,NULL);
if (!yon_char_is_empty(sources)) free(sources);
sources = temp;
}
}
char *source_main = (char*)gtk_entry_get_text(GTK_ENTRY(window->RepoSourceEntry));
if (!yon_char_is_empty(source_main)) {
char *type = (char*)gtk_combo_box_get_active_id(GTK_COMBO_BOX(window->RepoSourceCombo));
source_main = yon_char_unite(type?type:"",source_main,NULL);
char *temp = yon_char_unite(sources,!yon_char_is_empty(sources)?",":"",source_main,NULL);
if (!yon_char_is_empty(sources)) free(sources); if (!yon_char_is_empty(sources)) free(sources);
sources = temp; sources = temp;
} }
@ -1046,40 +1104,9 @@ void on_repo_accept_clicked(GtkWidget *, dictionary *dict){
return; return;
} }
char *sign_level_package = ""; char *sign_level= "";
char *sign_level_condiition = ""; if (!gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(window->SignDefaultCheck))){
if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(window->NeverRadio))){ sign_level = (char*)gtk_entry_get_text(GTK_ENTRY(window->SignLevelCheckEntry));
sign_level_package="Never";
} else if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(window->OptionalRadio))){
sign_level_package="Optional";
} else if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(window->RequiredRadio))){
sign_level_package="Required";
} else if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(window->TrustedOnlyRadio))){
sign_level_package="TrustedOnly";
} else if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(window->TrustAllRadio))){
sign_level_package="TrustAll";
}
if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(window->PackageNeverRadio))){
sign_level_condiition="PackageNever";
} else if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(window->DatabaseNeverRadio))){
sign_level_condiition="DatabaseNever";
} else if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(window->PackageOptionalRadio))){
sign_level_condiition="PackageOptional";
} else if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(window->DatabaseOptionalRadio))){
sign_level_condiition="DatabaseOptional";
} else if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(window->PackageRequiredRadio))){
sign_level_condiition="PackageRequired";
} else if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(window->DatabaseRequiredRadio))){
sign_level_condiition="DatabaseRequired";
} else if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(window->PackageTrustedOnlyRadio))){
sign_level_condiition="PackageTrustedOnly";
} else if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(window->DatabaseTrustedOnlyRadio))){
sign_level_condiition="DatabaseTrustedOnly";
} else if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(window->PackageTrustAllRadio))){
sign_level_condiition="PackageTrustAll";
} else if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(window->DatabaseTrustAllRadio))){
sign_level_condiition="DatabaseTrustAll";
} }
char *usage = ""; char *usage = "";
if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(window->UsageDefaultCheck))){ if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(window->UsageDefaultCheck))){
@ -1105,10 +1132,10 @@ void on_repo_accept_clicked(GtkWidget *, dictionary *dict){
} }
} }
char *final = yon_char_unite(sources,";",sign_level_package,",",sign_level_condiition,";",usage,";",enabled?"":"disable",NULL); char *final = yon_char_unite(sources,";",sign_level,";",usage,";",enabled?"":"disable",NULL);
if (!yon_char_is_empty(window->name)&&strcmp(repo_name,window->name)){ if (!yon_char_is_empty(window->name)&&strcmp(repo_name,window->name)){
yon_config_remove_by_key(REOSITORY_command(window->name)); yon_config_remove_by_key(REPOSITORY(window->name));
} }
yon_config_register(REPOSITORY(repo_name),REOSITORY_command(repo_name),final); yon_config_register(REPOSITORY(repo_name),REOSITORY_command(repo_name),final);
yon_interface_update(widgets); yon_interface_update(widgets);
@ -1123,13 +1150,24 @@ void on_web_publish_accept(GtkWidget *, dictionary *dict){
int enabled = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(window->EnablePublishCheck)); int enabled = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(window->EnablePublishCheck));
int port_enabled = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(window->PortCheck)); int port_enabled = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(window->PortCheck));
char *port = (char*)gtk_entry_get_text(GTK_ENTRY(window->PortEntry)); char *port = yon_char_from_long(gtk_spin_button_get_value(GTK_SPIN_BUTTON(window->PortEntry)));
int enable_browser = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(window->EnableWebFileBrowserCheck)); int enable_browser = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(window->EnableWebFileBrowserCheck));
int username_check = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(window->UsernameCheck)); int username_check = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(window->UsernameCheck));
char *username = (char*)gtk_entry_get_text(GTK_ENTRY(window->UsernameEntry)); char *username = (char*)gtk_entry_get_text(GTK_ENTRY(window->UsernameEntry));
char *user_password = yon_char_new((char*)gtk_entry_get_text(GTK_ENTRY(window->UserPasswordEntry))); char *user_password = yon_char_new((char*)gtk_entry_get_text(GTK_ENTRY(window->UserPasswordEntry)));
char *encryption = user_password[5]=='|'?yon_char_divide(user_password,6):NULL; char *encryption = user_password[6]=='|'?yon_char_divide(user_password,6):NULL;
if (strpbrk(username,"!@#%^&*\'")){
yon_ubl_status_box_spawn(GTK_CONTAINER(window->StatusBox),ENTRY_RESTRICTED_SYMBOL_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE);
yon_ubl_status_highlight_incorrect(window->UsernameEntry);
return;
}
if (strpbrk(user_password,"!@#%^&*\'")){
yon_ubl_status_box_spawn(GTK_CONTAINER(window->StatusBox),PASSWORD_RESTRICTED_SYMBOL_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE);
yon_ubl_status_highlight_incorrect(window->UserPasswordEntry);
return;
}
if (username_check&&yon_char_is_empty(username)){ if (username_check&&yon_char_is_empty(username)){
yon_ubl_status_box_spawn(GTK_CONTAINER(window->StatusBox),EMPTY_IMPORTANT_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE); yon_ubl_status_box_spawn(GTK_CONTAINER(window->StatusBox),EMPTY_IMPORTANT_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE);
yon_ubl_status_highlight_incorrect(window->UsernameEntry); yon_ubl_status_highlight_incorrect(window->UsernameEntry);
@ -1165,12 +1203,17 @@ void on_web_publish_accept(GtkWidget *, dictionary *dict){
return; return;
} }
char *final_name = yon_char_is_empty(full_name)||!disabled ? name : yon_char_unite(name,":",full_name,NULL); char *final_name = yon_char_is_empty(full_name)||!disabled ? name : yon_char_unite(name,":",full_name,NULL);
char *final = yon_char_unite(enabled?"enable":"disable",":",enable_browser?"listing":"",":",port_enabled?port:"",":",username_check?username:"",":",username_check?yon_char_is_empty(encryption)? user_password:encryption:"",":",username_check?!yon_char_is_empty(encryption)?user_password:"":"",NULL); char *final = yon_char_unite(enabled?"enable":"disable",":",
enable_browser?"listing":"",":",
port_enabled?port:"",":",
username_check?username:"",":",
username_check?yon_char_is_empty(encryption)? user_password:encryption:"",":",
username_check?!yon_char_is_empty(encryption)?user_password:"":"",
NULL);
if (!yon_char_is_empty(window->name)&&strcmp(final_name,window->name)){ if (!yon_char_is_empty(window->name)&&strcmp(final_name,window->name)){
yon_config_remove_by_key(REPOPUBLIC_WEB_command(window->name)); yon_config_remove_by_key(REPOPUBLIC_WEB_full(window->name));
} else {
yon_config_register(REPOPUBLIC_WEB_full(final_name),REPOPUBLIC_WEB_command(final_name),final);
} }
yon_config_register(REPOPUBLIC_WEB_full(final_name),REPOPUBLIC_WEB_command(final_name),final);
yon_interface_update(widgets); yon_interface_update(widgets);
gtk_widget_destroy(window->Window); gtk_widget_destroy(window->Window);
} }
@ -1178,13 +1221,32 @@ void on_web_publish_accept(GtkWidget *, dictionary *dict){
void on_mirror_accept(GtkWidget *,dictionary *dict){ void on_mirror_accept(GtkWidget *,dictionary *dict){
main_window *widgets = yon_dictionary_get_data(dict->first,main_window*); main_window *widgets = yon_dictionary_get_data(dict->first,main_window*);
mirror_add_window *window = yon_dictionary_get_data(dict->first->next,mirror_add_window*); mirror_add_window *window = yon_dictionary_get_data(dict->first->next,mirror_add_window*);
if (yon_char_is_empty(gtk_entry_get_text(GTK_ENTRY(window->NameEntry)))){
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;
}
if (!window->sections&&yon_char_is_empty(gtk_entry_get_text(GTK_ENTRY(window->TypeEntry)))) {
yon_ubl_status_box_spawn(GTK_CONTAINER(window->StatusBox),EMPTY_IMPORTANT_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE);
yon_ubl_status_highlight_incorrect(window->TypeEntry);
return;
}
char *name = (char*)gtk_entry_get_text(GTK_ENTRY(window->NameEntry)); char *name = (char*)gtk_entry_get_text(GTK_ENTRY(window->NameEntry));
char *paths = ""; char *paths = "";
dictionary *dact = NULL; if (window->sections){
for_dictionaries (dact, window->sections){ dictionary *dact = NULL;
for_dictionaries (dact, window->sections){
char *cur = yon_char_unite(gtk_combo_box_get_active_id(GTK_COMBO_BOX(((path_section*)dact->data)->TypeCombo)),"@",(char*)gtk_entry_get_text(GTK_ENTRY(((path_section*)dact->data)->PathEntry)),NULL); char *cur = yon_char_unite(gtk_combo_box_get_active_id(GTK_COMBO_BOX(((path_section*)dact->data)->TypeCombo)),"@",(char*)gtk_entry_get_text(GTK_ENTRY(((path_section*)dact->data)->PathEntry)),NULL);
char *temp = yon_char_unite(paths,!yon_char_is_empty(paths)?",":"",cur,NULL); char *temp = yon_char_unite(paths,!yon_char_is_empty(paths)?",":"",cur,NULL);
if (!yon_char_is_empty(paths)) free(paths);
paths = temp;
}
}
char *source_main = (char*)gtk_entry_get_text(GTK_ENTRY(window->TypeEntry));
if (!yon_char_is_empty(source_main)) {
char *type = (char*)gtk_combo_box_get_active_id(GTK_COMBO_BOX(window->TypeCombo));
source_main = yon_char_unite(type?type:"",type?"@":"",source_main,NULL);
char *temp = yon_char_unite(paths,!yon_char_is_empty(paths)?",":"",source_main,NULL);
if (!yon_char_is_empty(paths)) free(paths); if (!yon_char_is_empty(paths)) free(paths);
paths = temp; paths = temp;
} }
@ -1280,6 +1342,11 @@ void on_password_accept(GtkWidget *,dictionary *dict){
} else { } else {
char *password = (char*)gtk_entry_get_text(GTK_ENTRY(window->PasswordEntry)); char *password = (char*)gtk_entry_get_text(GTK_ENTRY(window->PasswordEntry));
char *password_check = (char*)gtk_entry_get_text(GTK_ENTRY(window->RepeatPasswordEntry)); char *password_check = (char*)gtk_entry_get_text(GTK_ENTRY(window->RepeatPasswordEntry));
if (strpbrk(password,"!@#%^&*\'")){
yon_ubl_status_box_spawn(GTK_CONTAINER(window->StatusBox),PASSWORD_RESTRICTED_SYMBOL_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE);
yon_ubl_status_highlight_incorrect(window->PasswordEntry);
return;
}
if (strcmp(password,password_check)){ if (strcmp(password,password_check)){
yon_ubl_status_box_spawn(GTK_CONTAINER(window->StatusBox),PASSWORD_MISMATCH_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE); yon_ubl_status_box_spawn(GTK_CONTAINER(window->StatusBox),PASSWORD_MISMATCH_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE);
yon_ubl_status_highlight_incorrect(window->PasswordEntry); yon_ubl_status_highlight_incorrect(window->PasswordEntry);
@ -1287,8 +1354,15 @@ void on_password_accept(GtkWidget *,dictionary *dict){
return; return;
} }
char *encryption = (char*)gtk_combo_box_get_active_id(GTK_COMBO_BOX(window->EncryptionCombo)); char *encryption = (char*)gtk_combo_box_get_active_id(GTK_COMBO_BOX(window->EncryptionCombo));
char *final_text = yon_char_unite(encryption,"|",password,NULL); if (yon_char_is_empty(encryption)){
gtk_entry_set_text(GTK_ENTRY(target),final_text); gtk_entry_set_text(GTK_ENTRY(target),password);
} else {
int size;
config_str hash = yon_config_load(yon_debug_output("%s\n",!strcmp(encryption,"sha512")?sha512_encrypt_command(password):sha256_encrypt_command(password)),&size);
yon_char_remove_last_symbol(hash[0],'\n');
gtk_entry_set_text(GTK_ENTRY(target),hash[0]);
}
} }
gtk_widget_destroy(window->Window); gtk_widget_destroy(window->Window);
@ -1364,7 +1438,7 @@ void on_mirror_path_add(GtkWidget *, mirror_add_window *window){
gtk_entry_set_text(GTK_ENTRY(section->PathEntry),target); gtk_entry_set_text(GTK_ENTRY(section->PathEntry),target);
gtk_entry_set_text(GTK_ENTRY(window->TypeEntry),""); gtk_entry_set_text(GTK_ENTRY(window->TypeEntry),"");
gtk_box_pack_start(GTK_BOX(window->PathBox),section->PathRemovalBox,0,0,2); gtk_box_pack_start(GTK_BOX(window->PathBox),section->PathRemovalBox,0,0,0);
g_signal_connect(gtk_builder_get_object(builder,"PathEditButton"),"clicked",G_CALLBACK(on_mirror_path_edit),window); g_signal_connect(gtk_builder_get_object(builder,"PathEditButton"),"clicked",G_CALLBACK(on_mirror_path_edit),window);
g_signal_connect(gtk_builder_get_object(builder,"PathRemoveButton"),"clicked",G_CALLBACK(on_mirror_path_removed),window); g_signal_connect(gtk_builder_get_object(builder,"PathRemoveButton"),"clicked",G_CALLBACK(on_mirror_path_removed),window);
@ -1389,12 +1463,17 @@ void on_repo_source_add(GtkWidget *, repo_add_window *window){
section->TypeCombo = yon_gtk_builder_get_widget(builder,"TypeCombo"); section->TypeCombo = yon_gtk_builder_get_widget(builder,"TypeCombo");
section->edits=0; section->edits=0;
gtk_combo_box_set_active_id(GTK_COMBO_BOX(section->TypeCombo),gtk_combo_box_get_active_id(GTK_COMBO_BOX(window->RepoSourceCombo))); const char *id = gtk_combo_box_get_active_id(GTK_COMBO_BOX(window->RepoSourceCombo));
if (!yon_char_is_empty(id))
gtk_combo_box_set_active_id(GTK_COMBO_BOX(section->TypeCombo),id);
else
gtk_combo_box_set_active(GTK_COMBO_BOX(section->TypeCombo),4);
yon_dictionary_add_or_create_if_exists_with_data(window->sections,(char*)target,section); yon_dictionary_add_or_create_if_exists_with_data(window->sections,(char*)target,section);
gtk_entry_set_text(GTK_ENTRY(section->PathEntry),target); gtk_entry_set_text(GTK_ENTRY(section->PathEntry),target);
gtk_entry_set_text(GTK_ENTRY(window->RepoSourceEntry),""); gtk_entry_set_text(GTK_ENTRY(window->RepoSourceEntry),"");
gtk_box_pack_start(GTK_BOX(window->SourceBox),section->PathRemovalBox,0,0,2); gtk_box_pack_start(GTK_BOX(window->SourceBox),section->PathRemovalBox,0,0,0);
gtk_widget_show(window->SourceListBox);
g_signal_connect(gtk_builder_get_object(builder,"PathEditButton"),"clicked",G_CALLBACK(on_mirror_path_edit),window); g_signal_connect(gtk_builder_get_object(builder,"PathEditButton"),"clicked",G_CALLBACK(on_mirror_path_edit),window);
g_signal_connect(gtk_builder_get_object(builder,"PathRemoveButton"),"clicked",G_CALLBACK(on_mirror_path_removed),window); g_signal_connect(gtk_builder_get_object(builder,"PathRemoveButton"),"clicked",G_CALLBACK(on_mirror_path_removed),window);
} }
@ -1430,23 +1509,46 @@ password_window *yon_password_window_new(){
return window; return window;
} }
void on_sign_cell_toggled(GtkWidget *, char *path, repo_add_window *window){
GtkTreeModel *model = GTK_TREE_MODEL(window->SignList);
GtkTreeIter check_iter;
if (gtk_tree_model_get_iter_from_string(model,&check_iter,path)){
int check_status;
char *target;
gtk_tree_model_get(model,&check_iter,0,&check_status,1,&target,-1);
gtk_list_store_set(window->SignList,&check_iter,0,!check_status,-1);
char *active_signs = yon_char_new((char*)gtk_entry_get_text(GTK_ENTRY(window->SignLevelCheckEntry)));
if (!check_status){
char *temp = yon_char_unite(active_signs,!yon_char_is_empty(active_signs)?",":"",target,NULL);
gtk_entry_set_text(GTK_ENTRY(window->SignLevelCheckEntry),temp);
} else {
int parsed_size;
config_str parsed = yon_char_parse(active_signs,&parsed_size,",");
if (parsed_size){
int found = yon_char_parsed_check_exist(parsed,parsed_size,target);
if (found>-1){
parsed = yon_char_parsed_rip(parsed,&parsed_size,found);
}
char *temp = yon_char_parsed_to_string(parsed,parsed_size,",");
gtk_entry_set_text(GTK_ENTRY(window->SignLevelCheckEntry),temp);
}
}
}
}
void on_sign_check_toggled(GtkToggleButton *self, repo_add_window *window){ void on_sign_check_toggled(GtkToggleButton *self, repo_add_window *window){
int status = gtk_toggle_button_get_active(self); int status = gtk_toggle_button_get_active(self);
gtk_widget_set_sensitive(window->NeverRadio,!status); gtk_widget_set_sensitive(window->SignTree,!status);
gtk_widget_set_sensitive(window->OptionalRadio,!status);
gtk_widget_set_sensitive(window->RequiredRadio,!status); }
gtk_widget_set_sensitive(window->TrustedOnlyRadio,!status);
gtk_widget_set_sensitive(window->TrustAllRadio,!status); void on_repo_source_changed(GtkComboBox *self, repo_add_window *window){
gtk_widget_set_sensitive(window->PackageNeverRadio,!status); int active = gtk_combo_box_get_active(self);
gtk_widget_set_sensitive(window->DatabaseNeverRadio,!status); if (active ==0 || active == 4){
gtk_widget_set_sensitive(window->PackageOptionalRadio,!status); gtk_widget_set_sensitive(window->RepoSourceButton,1);
gtk_widget_set_sensitive(window->DatabaseOptionalRadio,!status); } else {
gtk_widget_set_sensitive(window->PackageRequiredRadio,!status); gtk_widget_set_sensitive(window->RepoSourceButton,0);
gtk_widget_set_sensitive(window->DatabaseRequiredRadio,!status); }
gtk_widget_set_sensitive(window->PackageTrustedOnlyRadio,!status);
gtk_widget_set_sensitive(window->DatabaseTrustedOnlyRadio,!status);
gtk_widget_set_sensitive(window->PackageTrustAllRadio,!status);
gtk_widget_set_sensitive(window->DatabaseTrustAllRadio,!status);
} }
repo_add_window *yon_repo_add_window_new(){ repo_add_window *yon_repo_add_window_new(){
@ -1474,21 +1576,10 @@ repo_add_window *yon_repo_add_window_new(){
window->SourceListBox = yon_gtk_builder_get_widget(builder,"SourceListBox"); window->SourceListBox = yon_gtk_builder_get_widget(builder,"SourceListBox");
window->RepoSourceAddButton = yon_gtk_builder_get_widget(builder,"RepoSourceAddButton"); window->RepoSourceAddButton = yon_gtk_builder_get_widget(builder,"RepoSourceAddButton");
window->SignDefaultCheck = yon_gtk_builder_get_widget(builder,"SignDefaultCheck"); window->SignDefaultCheck = yon_gtk_builder_get_widget(builder,"SignDefaultCheck");
window->NeverRadio = yon_gtk_builder_get_widget(builder,"NeverRadio"); window->SignTree = yon_gtk_builder_get_widget(builder,"SignTree");
window->OptionalRadio = yon_gtk_builder_get_widget(builder,"OptionalRadio"); window->SignLevelCheckEntry = yon_gtk_builder_get_widget(builder,"SignLevelCheckEntry");
window->RequiredRadio = yon_gtk_builder_get_widget(builder,"RequiredRadio"); window->SignCell = GTK_CELL_RENDERER(gtk_builder_get_object(builder,"SignCell"));
window->TrustedOnlyRadio = yon_gtk_builder_get_widget(builder,"TrustedOnlyRadio"); window->SignList = GTK_LIST_STORE(gtk_builder_get_object(builder,"liststore1"));
window->TrustAllRadio = yon_gtk_builder_get_widget(builder,"TrustAllRadio");
window->PackageNeverRadio = yon_gtk_builder_get_widget(builder,"PackageNeverRadio");
window->DatabaseNeverRadio = yon_gtk_builder_get_widget(builder,"DatabaseNeverRadio");
window->PackageOptionalRadio = yon_gtk_builder_get_widget(builder,"PackageOptionalRadio");
window->DatabaseOptionalRadio = yon_gtk_builder_get_widget(builder,"DatabaseOptionalRadio");
window->PackageRequiredRadio = yon_gtk_builder_get_widget(builder,"PackageRequiredRadio");
window->DatabaseRequiredRadio = yon_gtk_builder_get_widget(builder,"DatabaseRequiredRadio");
window->PackageTrustedOnlyRadio = yon_gtk_builder_get_widget(builder,"PackageTrustedOnlyRadio");
window->DatabaseTrustedOnlyRadio = yon_gtk_builder_get_widget(builder,"DatabaseTrustedOnlyRadio");
window->PackageTrustAllRadio = yon_gtk_builder_get_widget(builder,"PackageTrustAllRadio");
window->DatabaseTrustAllRadio = yon_gtk_builder_get_widget(builder,"DatabaseTrustAllRadio");
window->sections = NULL; window->sections = NULL;
window->name=NULL; window->name=NULL;
@ -1499,11 +1590,13 @@ repo_add_window *yon_repo_add_window_new(){
g_signal_connect(G_OBJECT(window->UsageDefaultCheck),"toggled",G_CALLBACK(yon_gtk_widget_set_sensitive_from_toggle_button_inversed),window->UsageEnableSearchCheck); g_signal_connect(G_OBJECT(window->UsageDefaultCheck),"toggled",G_CALLBACK(yon_gtk_widget_set_sensitive_from_toggle_button_inversed),window->UsageEnableSearchCheck);
g_signal_connect(G_OBJECT(window->UsageDefaultCheck),"toggled",G_CALLBACK(yon_gtk_widget_set_sensitive_from_toggle_button_inversed),window->UsageEnableUpdateCheck); g_signal_connect(G_OBJECT(window->UsageDefaultCheck),"toggled",G_CALLBACK(yon_gtk_widget_set_sensitive_from_toggle_button_inversed),window->UsageEnableUpdateCheck);
g_signal_connect(G_OBJECT(window->UsageDefaultCheck),"toggled",G_CALLBACK(yon_gtk_widget_set_sensitive_from_toggle_button_inversed),window->UsageSysupgradeCheck); g_signal_connect(G_OBJECT(window->UsageDefaultCheck),"toggled",G_CALLBACK(yon_gtk_widget_set_sensitive_from_toggle_button_inversed),window->UsageSysupgradeCheck);
yon_gtk_entry_block_restricted_symbols(GTK_ENTRY(window->RepoNameEntry));
yon_gtk_entry_block_restricted_symbols(GTK_ENTRY(window->RepoSourceEntry));
g_signal_connect(G_OBJECT(window->SignDefaultCheck),"toggled",G_CALLBACK(on_sign_check_toggled),window); g_signal_connect(G_OBJECT(window->SignDefaultCheck),"toggled",G_CALLBACK(on_sign_check_toggled),window);
g_signal_connect(G_OBJECT(window->SignCell),"toggled",G_CALLBACK(on_sign_cell_toggled),window);
g_signal_connect(G_OBJECT(window->RepoSourceCombo),"changed",G_CALLBACK(on_repo_source_changed),window);
// g_signal_connect(G_OBJECT(window->SourceListBox),"size-allocate",G_CALLBACK(on_scrolled_window_size_allocate),window); // g_signal_connect(G_OBJECT(window->SourceListBox),"size-allocate",G_CALLBACK(on_scrolled_window_size_allocate),window);
gtk_widget_show(window->Window); gtk_widget_show(window->Window);
gtk_label_set_text(GTK_LABEL(window->SignLevelLabel),SIGN_LEVEL_LABEL);
return window; return window;
} }
@ -1533,6 +1626,8 @@ web_publication_add_window *yon_web_publication_add_window_new(){
window->SelectionCellRenderer = GTK_CELL_RENDERER(gtk_builder_get_object(builder,"SelectionCellRenderer")); window->SelectionCellRenderer = GTK_CELL_RENDERER(gtk_builder_get_object(builder,"SelectionCellRenderer"));
yon_gtk_entry_set_password_visibility_icon(GTK_ENTRY(window->UserPasswordEntry)); yon_gtk_entry_set_password_visibility_icon(GTK_ENTRY(window->UserPasswordEntry));
yon_gtk_entry_block_restricted_symbols(GTK_ENTRY(window->PathEntry));
yon_gtk_entry_block_restricted_symbols(GTK_ENTRY(window->UsernameEntry));
window->name=NULL; window->name=NULL;
g_signal_connect(G_OBJECT(window->SelectionCellRenderer),"toggled",G_CALLBACK(on_cell_renderer_toggle_toggled),window->RepositoriesTree); g_signal_connect(G_OBJECT(window->SelectionCellRenderer),"toggled",G_CALLBACK(on_cell_renderer_toggle_toggled),window->RepositoriesTree);
g_signal_connect(G_OBJECT(window->PathButton),"clicked",G_CALLBACK(on_file_chooser_open),window->PathEntry); g_signal_connect(G_OBJECT(window->PathButton),"clicked",G_CALLBACK(on_file_chooser_open),window->PathEntry);
@ -1540,8 +1635,10 @@ web_publication_add_window *yon_web_publication_add_window_new(){
g_signal_connect(G_OBJECT(window->CancelButton),"clicked",G_CALLBACK(on_subwindow_close),NULL); g_signal_connect(G_OBJECT(window->CancelButton),"clicked",G_CALLBACK(on_subwindow_close),NULL);
g_signal_connect(G_OBJECT(window->PasswordButton),"clicked",G_CALLBACK(on_password_open),window); g_signal_connect(G_OBJECT(window->PasswordButton),"clicked",G_CALLBACK(on_password_open),window);
g_signal_connect(G_OBJECT(window->UsernameCheck),"toggled",G_CALLBACK(on_web_user_check),window); g_signal_connect(G_OBJECT(window->UsernameCheck),"toggled",G_CALLBACK(on_web_user_check),window);
g_signal_connect(G_OBJECT(window->PortCheck),"toggled",G_CALLBACK(yon_gtk_widget_set_sensitive_from_toggle_button),window->PortEntry);
g_signal_connect(G_OBJECT(window->UserPasswordCombo),"changed",G_CALLBACK(yon_gtk_widget_set_sensitive_from_combo_box_inversed),window->PasswordButton); g_signal_connect(G_OBJECT(window->UserPasswordCombo),"changed",G_CALLBACK(yon_gtk_widget_set_sensitive_from_combo_box_inversed),window->PasswordButton);
g_signal_connect(G_OBJECT(window->UserPasswordCombo),"changed",G_CALLBACK(yon_gtk_widget_set_sensitive_from_combo_box_inversed),window->UserPasswordEntry); g_signal_connect(G_OBJECT(window->UserPasswordCombo),"changed",G_CALLBACK(yon_gtk_widget_set_sensitive_from_combo_box_inversed),window->UserPasswordEntry);
g_signal_connect(G_OBJECT(window->PortEntry),"insert-text",G_CALLBACK(yon_on_text_insert_only_digits),NULL);
gtk_widget_show(window->Window); gtk_widget_show(window->Window);
return window; return window;
@ -1575,20 +1672,30 @@ mirror_configure_window *yon_mirror_configure_window_new(){
window->UpdatesRequestDelaySpin = yon_gtk_builder_get_widget(builder,"UpdatesRequestDelaySpin"); window->UpdatesRequestDelaySpin = yon_gtk_builder_get_widget(builder,"UpdatesRequestDelaySpin");
g_signal_connect(G_OBJECT(window->CancelButton),"clicked",G_CALLBACK(on_subwindow_close),NULL); g_signal_connect(G_OBJECT(window->CancelButton),"clicked",G_CALLBACK(on_subwindow_close),NULL);
g_signal_connect(G_OBJECT(window->PortDefaultCheck),"clicked",G_CALLBACK(yon_gtk_widget_set_sensitive_from_toggle_button_inversed),window->PortSpin); g_signal_connect(G_OBJECT(window->PortDefaultCheck),"toggled",G_CALLBACK(yon_gtk_widget_set_sensitive_from_toggle_button_inversed),window->PortSpin);
g_signal_connect(G_OBJECT(window->CacheDefaultCheck),"clicked",G_CALLBACK(yon_gtk_widget_set_sensitive_from_toggle_button_inversed),window->CacheEntry); g_signal_connect(G_OBJECT(window->CacheDefaultCheck),"toggled",G_CALLBACK(yon_gtk_widget_set_sensitive_from_toggle_button_inversed),window->CacheEntry);
g_signal_connect(G_OBJECT(window->CacheDefaultCheck),"clicked",G_CALLBACK(yon_gtk_widget_set_sensitive_from_toggle_button_inversed),window->CacheButton); g_signal_connect(G_OBJECT(window->CacheDefaultCheck),"toggled",G_CALLBACK(yon_gtk_widget_set_sensitive_from_toggle_button_inversed),window->CacheButton);
g_signal_connect(G_OBJECT(window->InactivityDurationDefaultCheck),"clicked",G_CALLBACK(yon_gtk_widget_set_sensitive_from_toggle_button_inversed),window->InactivityDurationSpin); g_signal_connect(G_OBJECT(window->CacheButton),"clicked",G_CALLBACK(on_file_chooser_open),window->CacheEntry);
g_signal_connect(G_OBJECT(window->CacheTimeoutDefaultCheck),"clicked",G_CALLBACK(yon_gtk_widget_set_sensitive_from_toggle_button_inversed),window->CacheTimeoutSpin); g_signal_connect(G_OBJECT(window->InactivityDurationDefaultCheck),"toggled",G_CALLBACK(yon_gtk_widget_set_sensitive_from_toggle_button_inversed),window->InactivityDurationSpin);
g_signal_connect(G_OBJECT(window->ProxyCheck),"clicked",G_CALLBACK(yon_gtk_widget_set_sensitive_from_toggle_button),window->ProxyEntry); g_signal_connect(G_OBJECT(window->CacheTimeoutDefaultCheck),"toggled",G_CALLBACK(yon_gtk_widget_set_sensitive_from_toggle_button_inversed),window->CacheTimeoutSpin);
g_signal_connect(G_OBJECT(window->AgentDefaultCheck),"clicked",G_CALLBACK(yon_gtk_widget_set_sensitive_from_toggle_button_inversed),window->AgentEntry); g_signal_connect(G_OBJECT(window->ProxyCheck),"toggled",G_CALLBACK(yon_gtk_widget_set_sensitive_from_toggle_button),window->ProxyEntry);
g_signal_connect(G_OBJECT(window->UpdatesDelayDefaultCheck),"clicked",G_CALLBACK(yon_gtk_widget_set_sensitive_from_toggle_button_inversed),window->UpdatesDelaySpin); g_signal_connect(G_OBJECT(window->AgentDefaultCheck),"toggled",G_CALLBACK(yon_gtk_widget_set_sensitive_from_toggle_button_inversed),window->AgentEntry);
g_signal_connect(G_OBJECT(window->UpdatesRequestDelayDefaultCheck),"clicked",G_CALLBACK(yon_gtk_widget_set_sensitive_from_toggle_button_inversed),window->UpdatesRequestDelaySpin); g_signal_connect(G_OBJECT(window->UpdatesDelayDefaultCheck),"toggled",G_CALLBACK(yon_gtk_widget_set_sensitive_from_toggle_button_inversed),window->UpdatesDelaySpin);
g_signal_connect(G_OBJECT(window->UpdatesRequestDelayDefaultCheck),"toggled",G_CALLBACK(yon_gtk_widget_set_sensitive_from_toggle_button_inversed),window->UpdatesRequestDelaySpin);
gtk_widget_show(window->Window); gtk_widget_show(window->Window);
return window; return window;
} }
void on_mirror_type_changed(GtkComboBox *self, mirror_add_window *window){
int active = gtk_combo_box_get_active(self);
if (active == 2){
gtk_widget_set_sensitive(window->TypeButton,1);
} else {
gtk_widget_set_sensitive(window->TypeButton,0);
}
}
mirror_add_window *yon_mirror_add_window_new(){ mirror_add_window *yon_mirror_add_window_new(){
GtkBuilder *builder = gtk_builder_new_from_resource(glade_mirror_add_path); GtkBuilder *builder = gtk_builder_new_from_resource(glade_mirror_add_path);
mirror_add_window *window = malloc(sizeof(mirror_add_window)); mirror_add_window *window = malloc(sizeof(mirror_add_window));
@ -1603,6 +1710,8 @@ mirror_add_window *yon_mirror_add_window_new(){
window->CancelButton = yon_gtk_builder_get_widget(builder,"CancelButton"); window->CancelButton = yon_gtk_builder_get_widget(builder,"CancelButton");
window->HeadLabel = yon_gtk_builder_get_widget(builder,"HeadLabel"); window->HeadLabel = yon_gtk_builder_get_widget(builder,"HeadLabel");
window->PathBox = yon_gtk_builder_get_widget(builder,"PathBox"); window->PathBox = yon_gtk_builder_get_widget(builder,"PathBox");
yon_gtk_entry_block_restricted_symbols(GTK_ENTRY(window->NameEntry));
yon_gtk_entry_block_restricted_symbols(GTK_ENTRY(window->TypeEntry));
window->sections = NULL; window->sections = NULL;
window->name=NULL; window->name=NULL;
@ -1610,6 +1719,7 @@ mirror_add_window *yon_mirror_add_window_new(){
g_signal_connect(G_OBJECT(window->TypeButton),"clicked",G_CALLBACK(on_file_chooser_open),window->TypeEntry); g_signal_connect(G_OBJECT(window->TypeButton),"clicked",G_CALLBACK(on_file_chooser_open),window->TypeEntry);
g_signal_connect(G_OBJECT(window->AddButton),"clicked",G_CALLBACK(on_mirror_path_add),window); g_signal_connect(G_OBJECT(window->AddButton),"clicked",G_CALLBACK(on_mirror_path_add),window);
g_signal_connect(G_OBJECT(window->CancelButton),"clicked",G_CALLBACK(on_subwindow_close),NULL); g_signal_connect(G_OBJECT(window->CancelButton),"clicked",G_CALLBACK(on_subwindow_close),NULL);
g_signal_connect(G_OBJECT(window->TypeCombo),"changed",G_CALLBACK(on_mirror_type_changed),window);
gtk_widget_show(window->Window); gtk_widget_show(window->Window);
return window; return window;
@ -1733,6 +1843,60 @@ void yon_main_window_complete(main_window *widgets){
g_signal_connect(G_OBJECT(widgets->UpdateIntervalDefaultCheck),"toggled",G_CALLBACK(yon_gtk_widget_set_sensitive_from_toggle_button_inversed),widgets->UpdateIntervalSpin); g_signal_connect(G_OBJECT(widgets->UpdateIntervalDefaultCheck),"toggled",G_CALLBACK(yon_gtk_widget_set_sensitive_from_toggle_button_inversed),widgets->UpdateIntervalSpin);
g_signal_connect(G_OBJECT(widgets->UpdateIntervalDefaultCheck),"toggled",G_CALLBACK(yon_gtk_widget_set_sensitive_from_toggle_button_inversed),widgets->BootCheck); g_signal_connect(G_OBJECT(widgets->UpdateIntervalDefaultCheck),"toggled",G_CALLBACK(yon_gtk_widget_set_sensitive_from_toggle_button_inversed),widgets->BootCheck);
GList *list = gtk_tree_view_get_columns(GTK_TREE_VIEW(widgets->WebPublicationTree));
for (unsigned int i=0;i<g_list_length(list);i++){
g_signal_connect_after(G_OBJECT(g_list_nth_data(list,i)),"notify::width",G_CALLBACK(on_column_resize),widgets);
yon_window_config_add_listener(g_list_nth_data(list,i),yon_char_append("UserUnitsColumn",yon_char_from_int(i)),"fixed-width",YON_TYPE_INT);
}
}
GList *list = gtk_tree_view_get_columns(GTK_TREE_VIEW(widgets->MirrorTree));
for (guint i=0;i<g_list_length(list);i++){
yon_window_config_add_listener((GtkWidget*)g_list_nth_data(list,i),yon_char_append("MirrorColumn",yon_char_from_int(i)),"fixed-width",YON_TYPE_INT);
}
g_list_free(list);
list = gtk_tree_view_get_columns(GTK_TREE_VIEW(widgets->PublicationTree));
for (guint i=0;i<g_list_length(list);i++){
yon_window_config_add_listener((GtkWidget*)g_list_nth_data(list,i),yon_char_append("PublishColumn",yon_char_from_int(i)),"fixed-width",YON_TYPE_INT);
}
g_list_free(list);
list = gtk_tree_view_get_columns(GTK_TREE_VIEW(widgets->WebPublicationTree));
for (guint i=0;i<g_list_length(list);i++){
yon_window_config_add_listener((GtkWidget*)g_list_nth_data(list,i),yon_char_append("WebColumn",yon_char_from_int(i)),"fixed-width",YON_TYPE_INT);
}
g_list_free(list);
list = gtk_tree_view_get_columns(GTK_TREE_VIEW(widgets->RepositoriesTree));
for (guint i=0;i<g_list_length(list);i++){
yon_window_config_add_listener((GtkWidget*)g_list_nth_data(list,i),yon_char_append("RepoColumn",yon_char_from_int(i)),"fixed-width",YON_TYPE_INT);
}
g_list_free(list);
yon_load_proceed(YON_CONFIG_LOCAL);
list = gtk_tree_view_get_columns(GTK_TREE_VIEW(widgets->UpdateRepoTree));
for (guint i=0;i<g_list_length(list);i++){
yon_window_config_add_listener((GtkWidget*)g_list_nth_data(list,i),yon_char_append("UpdateColumn",yon_char_from_int(i)),"fixed-width",YON_TYPE_INT);
}
g_list_free(list);
{
int size;
config_str parsed = yon_config_load(yon_config_parameter_prepare_command(AUTOUPDATE_mode_command,"default",NULL,NULL),&size);
if (size){
yon_char_remove_last_symbol(parsed[0],'\n');
free(yon_char_divide_search(parsed[0],"=",-1));
char *mode = gtk_combo_box_text_get_active_text(GTK_COMBO_BOX_TEXT(widgets->UpdateModeCombo));
if (!strcmp(parsed[0],"modsys")){
mode = yon_char_unite(mode," (",MODSYS_UPDATE_MODE_LABEL,")",NULL);
} else if (!strcmp(parsed[0],"modules")){
mode = yon_char_unite(mode," (",MODULES_UPDATE_MODE_LABEL,")",NULL);
} else if (!strcmp(parsed[0],"system")){
mode = yon_char_unite(mode," (",SYSTEM_UPDATE_MODE_LABEL,")",NULL);
}
gtk_combo_box_text_remove(GTK_COMBO_BOX_TEXT(widgets->UpdateModeCombo),0);
gtk_combo_box_text_prepend_text(GTK_COMBO_BOX_TEXT(widgets->UpdateModeCombo),mode);
gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->UpdateModeCombo),0);
}
}
yon_interface_update(widgets);
g_signal_connect(G_OBJECT(widgets->BootCheck),"toggled",G_CALLBACK(on_toggle_button_toggled),widgets); g_signal_connect(G_OBJECT(widgets->BootCheck),"toggled",G_CALLBACK(on_toggle_button_toggled),widgets);
g_signal_connect(G_OBJECT(widgets->UpdateIntervalSpin),"changed",G_CALLBACK(on_toggle_button_toggled),widgets); g_signal_connect(G_OBJECT(widgets->UpdateIntervalSpin),"changed",G_CALLBACK(on_toggle_button_toggled),widgets);
@ -1747,12 +1911,6 @@ void yon_main_window_complete(main_window *widgets){
g_signal_connect(G_OBJECT(widgets->RecieveDBFromNetCheck),"toggled",G_CALLBACK(on_toggle_button_toggled),widgets); g_signal_connect(G_OBJECT(widgets->RecieveDBFromNetCheck),"toggled",G_CALLBACK(on_toggle_button_toggled),widgets);
g_signal_connect(G_OBJECT(widgets->MirrorPublicCheck),"toggled",G_CALLBACK(on_toggle_button_toggled),widgets); g_signal_connect(G_OBJECT(widgets->MirrorPublicCheck),"toggled",G_CALLBACK(on_toggle_button_toggled),widgets);
GList *list = gtk_tree_view_get_columns(GTK_TREE_VIEW(widgets->WebPublicationTree));
for (unsigned int i=0;i<g_list_length(list);i++){
g_signal_connect_after(G_OBJECT(g_list_nth_data(list,i)),"notify::width",G_CALLBACK(on_column_resize),widgets);
yon_window_config_add_listener(g_list_nth_data(list,i),yon_char_append("UserUnitsColumn",yon_char_from_int(i)),"fixed-width",YON_TYPE_INT);
}
}
{ {
yon_gtk_tree_view_minimal_fixed_size_set_full(GTK_TREE_VIEW(widgets->MirrorTree)); yon_gtk_tree_view_minimal_fixed_size_set_full(GTK_TREE_VIEW(widgets->MirrorTree));
yon_gtk_tree_view_minimal_fixed_size_set_full(GTK_TREE_VIEW(widgets->UpdateRepoTree)); yon_gtk_tree_view_minimal_fixed_size_set_full(GTK_TREE_VIEW(widgets->UpdateRepoTree));
@ -1761,8 +1919,6 @@ void yon_main_window_complete(main_window *widgets){
yon_gtk_tree_view_minimal_fixed_size_set_full(GTK_TREE_VIEW(widgets->WebPublicationTree)); yon_gtk_tree_view_minimal_fixed_size_set_full(GTK_TREE_VIEW(widgets->WebPublicationTree));
} }
yon_root_button_setup((template_main_window*)widgets,main_config.launch_arguments,main_config.launch_size); yon_root_button_setup((template_main_window*)widgets,main_config.launch_arguments,main_config.launch_size);
yon_load_proceed(YON_CONFIG_LOCAL);
yon_interface_update(widgets);
yon_save_window_set_postsave_function(on_save_done,widgets); yon_save_window_set_postsave_function(on_save_done,widgets);
} }

@ -41,11 +41,14 @@
#define LocaleName "ubl-settings-update" #define LocaleName "ubl-settings-update"
#define icon_path "com.ublinux.ubl-settings-update" #define icon_path "com.ublinux.ubl-settings-update"
#define yon_config_get_custom_command(target) yon_char_unite("ubconfig --source ",target," get update REPOPUBLIC_NET REPOPUBLIC_WEB REPOSITORY[*] REPOPUBLIC_WEB REPOPUBLIC_WEB[*] REPOPUBLIC_CACHE REPOPUBLIC_CACHE[*] AUTOUPDATE AUTOUPDATE[mode] AUTOUPDATE[interval] AUTOUPDATE[repos] AUTOUPDATE[timestamp]",NULL) #define sha256_encrypt_command(target) yon_char_unite("echo -n \"",target,"\" | sha256sum | cut -f 1 -d ' '",NULL)
#define config_get_local_command "ubconfig --source system get update REPOPUBLIC_NET REPOPUBLIC_WEB REPOSITORY[*] REPOPUBLIC_WEB REPOPUBLIC_WEB[*] REPOPUBLIC_CACHE REPOPUBLIC_CACHE[*] AUTOUPDATE AUTOUPDATE[mode] AUTOUPDATE[interval] AUTOUPDATE[repos] AUTOUPDATE[timestamp]" #define sha512_encrypt_command(target) yon_char_unite("echo -n \"",target,"\" | sha512sum | cut -f 1 -d ' '",NULL)
#define config_get_global_command "ubconfig --source global get update REPOPUBLIC_NET REPOPUBLIC_WEB REPOSITORY[*] REPOPUBLIC_WEB REPOPUBLIC_WEB[*] REPOPUBLIC_CACHE REPOPUBLIC_CACHE[*] AUTOUPDATE AUTOUPDATE[mode] AUTOUPDATE[interval] AUTOUPDATE[repos] AUTOUPDATE[timestamp]"
#define config_get_default_command "ubconfig --source global get update AUTOUPDATE[repos]" #define yon_config_get_custom_command(target) yon_char_unite("ubconfig --source ",target," get [update] REPOPUBLIC_NET REPOPUBLIC_WEB REPOSITORY REPOSITORY[*] REPOPUBLIC_WEB REPOPUBLIC_WEB[*] REPOPUBLIC_CACHE REPOPUBLIC_CACHE[*] AUTOUPDATE AUTOUPDATE[mode] AUTOUPDATE[interval] AUTOUPDATE[repos] AUTOUPDATE[timestamp]",NULL)
#define config_get_command_no_repos(config,target) yon_char_unite("ubconfig --source ",config," get update ",target,NULL) #define config_get_local_command "ubconfig --source system get [update] REPOPUBLIC_NET REPOPUBLIC_WEB REPOSITORY REPOSITORY[*] REPOPUBLIC_WEB REPOPUBLIC_WEB[*] REPOPUBLIC_CACHE REPOPUBLIC_CACHE[*] AUTOUPDATE AUTOUPDATE[mode] AUTOUPDATE[interval] AUTOUPDATE[repos] AUTOUPDATE[timestamp]",NULL
#define config_get_global_command "ubconfig --source global get [update] REPOPUBLIC_NET REPOPUBLIC_WEB REPOSITORY REPOSITORY[*] REPOPUBLIC_WEB REPOPUBLIC_WEB[*] REPOPUBLIC_CACHE REPOPUBLIC_CACHE[*] AUTOUPDATE AUTOUPDATE[mode] AUTOUPDATE[interval] AUTOUPDATE[repos] AUTOUPDATE[timestamp]",NULL
#define config_get_default_command "ubconfig --source default get [update] AUTOUPDATE[repos] AUTOUPDATE[interval] AUTOUPDATE[mode] AUTOUPDATE REPOSITORY REPOSITORY[*]",NULL
#define config_get_command_no_repos(config,target) yon_char_unite("ubconfig --source ",config," get update",target,NULL)
#define config_get_global_only_parameters "" #define config_get_global_only_parameters ""
#define config_get_local_only_parameters "" #define config_get_local_only_parameters ""
@ -69,6 +72,16 @@
#define REPOPUBLIC_CACHE_search "REPOPUBLIC_CACHE[" #define REPOPUBLIC_CACHE_search "REPOPUBLIC_CACHE["
#define REPOPUBLIC_CACHE_full(target) yon_char_unite("REPOPUBLIC_CACHE[",target,"]",NULL) #define REPOPUBLIC_CACHE_full(target) yon_char_unite("REPOPUBLIC_CACHE[",target,"]",NULL)
#define REPOPUBLIC_CACHE_full_command(target) yon_char_unite("ubconfig --source global get [update] REPOPUBLIC_CACHE[",target,"]",NULL) #define REPOPUBLIC_CACHE_full_command(target) yon_char_unite("ubconfig --source global get [update] REPOPUBLIC_CACHE[",target,"]",NULL)
#define REPOPUBLIC_CACHE_port "REPOPUBLIC_CACHE[port]"
#define REPOPUBLIC_CACHE_cache_dir "REPOPUBLIC_CACHE[cache_dir]"
#define REPOPUBLIC_CACHE_purge_files_after "REPOPUBLIC_CACHE[purge_files_after]"
#define REPOPUBLIC_CACHE_download_timeout "REPOPUBLIC_CACHE[download_timeout]"
#define REPOPUBLIC_CACHE_http_proxy "REPOPUBLIC_CACHE[http_proxy]"
#define REPOPUBLIC_CACHE_user_agent "REPOPUBLIC_CACHE[user_agent]"
#define REPOPUBLIC_CACHE_cron "REPOPUBLIC_CACHE[prefetch.cron]"
#define REPOPUBLIC_CACHE_ttl_unaccessed_in_days "REPOPUBLIC_CACHE[prefetch.ttl_unaccessed_in_days]"
#define REPOPUBLIC_CACHE_ttl_unupdated_in_days "REPOPUBLIC_CACHE[prefetch.ttl_unupdated_in_days]"
#define AUTOUPDATE "AUTOUPDATE" #define AUTOUPDATE "AUTOUPDATE"
#define AUTOUPDATE_command "ubconfig --source global get [update] AUTOUPDATE" #define AUTOUPDATE_command "ubconfig --source global get [update] AUTOUPDATE"
#define AUTOUPDATE_mode "AUTOUPDATE[mode]" #define AUTOUPDATE_mode "AUTOUPDATE[mode]"
@ -80,6 +93,9 @@
#define AUTOUPDATE_timestamp "AUTOUPDATE[timestamp]" #define AUTOUPDATE_timestamp "AUTOUPDATE[timestamp]"
#define AUTOUPDATE_timestamp_command "ubconfig --source global get [update] AUTOUPDATE[timestamp]" #define AUTOUPDATE_timestamp_command "ubconfig --source global get [update] AUTOUPDATE[timestamp]"
extern template_app_info template_app_information;
typedef char* string; typedef char* string;
string version_application; string version_application;
@ -169,21 +185,11 @@ typedef struct {
GtkWidget *SignLevelLabel; GtkWidget *SignLevelLabel;
GtkWidget *SignDefaultCheck; GtkWidget *SignDefaultCheck;
GtkWidget *NeverRadio; GtkWidget *SignTree;
GtkWidget *OptionalRadio; GtkWidget *SignLevelCheckEntry;
GtkWidget *RequiredRadio; GtkCellRenderer *SignCell;
GtkWidget *TrustedOnlyRadio;
GtkWidget *TrustAllRadio; GtkListStore *SignList;
GtkWidget *PackageNeverRadio;
GtkWidget *DatabaseNeverRadio;
GtkWidget *PackageOptionalRadio;
GtkWidget *DatabaseOptionalRadio;
GtkWidget *PackageRequiredRadio;
GtkWidget *DatabaseRequiredRadio;
GtkWidget *PackageTrustedOnlyRadio;
GtkWidget *DatabaseTrustedOnlyRadio;
GtkWidget *PackageTrustAllRadio;
GtkWidget *DatabaseTrustAllRadio;
char *name; char *name;
} repo_add_window; } repo_add_window;
@ -328,8 +334,14 @@ void on_password_open(GtkWidget *, web_publication_add_window *window);
void on_scrolled_window_size_allocate(GtkWidget *, GdkRectangle *allocation, repo_add_window *window); void on_scrolled_window_size_allocate(GtkWidget *, GdkRectangle *allocation, repo_add_window *window);
void on_sign_cell_toggled(GtkWidget *, char *path, repo_add_window *window);
void on_sign_check_toggled(GtkToggleButton *self, repo_add_window *window); void on_sign_check_toggled(GtkToggleButton *self, repo_add_window *window);
void on_password_encryption_changed(GtkComboBox *self, password_window *dialog);
void on_mirror_type_changed(GtkComboBox *self, mirror_add_window *window);
void on_repo_source_changed(GtkComboBox *self, repo_add_window *window);
password_window *yon_password_window_new(); password_window *yon_password_window_new();
repo_add_window *yon_repo_add_window_new(); repo_add_window *yon_repo_add_window_new();
web_publication_add_window *yon_web_publication_add_window_new(); web_publication_add_window *yon_web_publication_add_window_new();

@ -13,7 +13,14 @@
#define ADD_WEB_LABEL _("Add repository for publication") #define ADD_WEB_LABEL _("Add repository for publication")
#define EDIT_WEB_LABEL _("Edit repository for publication") #define EDIT_WEB_LABEL _("Edit repository for publication")
#define PASSWORD_MISMATCH_LABEL _("passwords do not match") #define PASSWORD_MISMATCH_LABEL _("Passwords do not match")
#define PASSWORD_RESTRICTED_SYMBOL_LABEL _("Password contains restricted symbols")
#define ENTRY_RESTRICTED_SYMBOL_LABEL _("Entry contains restricted symbols")
#define MODSYS_UPDATE_MODE_LABEL _("First update all modules and then the system")
#define MODULES_UPDATE_MODE_LABEL _("Update only modules")
#define SYSTEM_UPDATE_MODE_LABEL _("Update everything in the order of the specified repositories")
#define REPO_TOOLTIP_LABEL _("file://\t\t- Directory URL prefix for repository\n\ #define REPO_TOOLTIP_LABEL _("file://\t\t- Directory URL prefix for repository\n\
ftp://\t\t- FTP URL prefix for repository\n\ ftp://\t\t- FTP URL prefix for repository\n\
@ -23,22 +30,16 @@ Configuration - configuration path")
#define MIRROR_TOOLTIP_LABEL _("url - web-link for repository. It is allowed to write multiple, separating with comma (,)\n\ #define MIRROR_TOOLTIP_LABEL _("url - web-link for repository. It is allowed to write multiple, separating with comma (,)\n\
http_proxy - proxy-server for repository, replaces 'http_proxy'. Single parameter per repository\n\ http_proxy - proxy-server for repository, replaces 'http_proxy'. Single parameter per repository\n\
mirrorlist - mirrors file, make sure server URL is NOT included in this file! Single parameter per repository") mirrorlist - mirrors file, make sure server URL is NOT included in this file! Single parameter per repository")
#define SIGN_LEVEL_LABEL _("• Never - Signature verification will not be performed\n\
Optional - Signatures will be verified if present, but unsigned databases and packages will also be accepted\n\
Required - Signatures will be required for all packages and databases\n\
TrustedOnly - If signature is verified for packages and database, it must be in the keyring and fully trusted; marginal trust not applicable\n\
TrustAll - If signature is verified, it must be in keyring, but does not need to have a trust level assigned (e.g. unknown or marginal trust)\n\
PackageNever - Packages only\n\
DatabaseNever - Database only\n\
PackageOptional - Packages only\n\
DatabaseOptional - Database only\n\
PackageRequired - Packages only\n\
DatabaseRequired - Database only\n\
PackageTrustedOnly - If signature is verified only for packages\n\
DatabaseTrustedOnly - If signature is verified only for database\n\
PackageTrustAll - If signature is verified only for packages\n\
DatabaseTrustAll - If signature is verified only for database\n")
/* /*
#define _LABEL _("Signature verification will not be performed")
#define _LABEL _("Signatures will be verified if present, but unsigned databases and packages will also be accepted")
#define _LABEL _("Signatures will be required for all packages and databases")
#define _LABEL _("If signature is verified for packages and database, it must be in the keyring and fully trusted; marginal trust not applicable")
#define _LABEL _("If signature is verified, it must be in keyring, but does not need to have a trust level assigned (e.g. unknown or marginal trust)")
#define _LABEL _("Packages only")
#define _LABEL _("Database only")
#define _LABEL _("If signature is verified only for packages")
#define _LABEL _("If signature is verified only for database")
#define _LABEL _("every") #define _LABEL _("every")
#define _LABEL _("Resource link of file path") #define _LABEL _("Resource link of file path")
#define _LABEL _("Open file explorer") #define _LABEL _("Open file explorer")
@ -48,6 +49,7 @@ mirrorlist - mirrors file, make sure server URL is NOT included in this file! Si
#define _LABEL _("Storage path to publish") #define _LABEL _("Storage path to publish")
#define _LABEL _("The full URL of where to find the database, packages, and signatures (if available) for this repository. Multiple can be specified, separated by commas (,)") #define _LABEL _("The full URL of where to find the database, packages, and signatures (if available) for this repository. Multiple can be specified, separated by commas (,)")
#define _LABEL _("Update") #define _LABEL _("Update")
#define _LABEL _("System update")
#define _LABEL _("Repositories") #define _LABEL _("Repositories")
#define _LABEL _("Publication") #define _LABEL _("Publication")
#define _LABEL _("WEB-publication") #define _LABEL _("WEB-publication")
@ -55,9 +57,6 @@ mirrorlist - mirrors file, make sure server URL is NOT included in this file! Si
#define _LABEL _("Date of last automatic update:") #define _LABEL _("Date of last automatic update:")
#define _LABEL _("Date of last automatic update") #define _LABEL _("Date of last automatic update")
#define _LABEL _("Automatic update") #define _LABEL _("Automatic update")
#define _LABEL _("First update all modules and then the system")
#define _LABEL _("Update only modules")
#define _LABEL _("Update everything in the order of the specified repositories")
#define _LABEL _("Update mode:") #define _LABEL _("Update mode:")
#define _LABEL _("Update interval:") #define _LABEL _("Update interval:")
@ -152,12 +151,16 @@ mirrorlist - mirrors file, make sure server URL is NOT included in this file! Si
#define _LABEL _("Days") #define _LABEL _("Days")
#define _LABEL _("Months") #define _LABEL _("Months")
#define _LABEL _("Sign level") #define _LABEL _("Sign level")
#define _LABEL _("Description")
#define _LABEL _("Password input") #define _LABEL _("Password input")
#define _LABEL _("Password:") #define _LABEL _("Password:")
#define _LABEL _("Repeat password:") #define _LABEL _("Repeat password:")
#define _LABEL _("Entryption:") #define _LABEL _("Entryption:")
#define _LABEL _("Do not encrypt password") #define _LABEL _("Do not encrypt password")
#define _LABEL _("Password hash:") #define _LABEL _("Password hash:")
#define _LABEL _("Default (None)")
#define _LABEL _("Encryption:")
#define _LABEL _("Encryption")
*/ */
#endif #endif

@ -17,7 +17,9 @@
<property name="width-request">500</property> <property name="width-request">500</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="modal">True</property> <property name="modal">True</property>
<property name="icon-name">com.ublinux.ubl-settings-repomanager</property> <property name="default-width">800</property>
<property name="default-height">600</property>
<property name="icon-name">com.ublinux.ubl-settings-update</property>
<child> <child>
<object class="GtkBox"> <object class="GtkBox">
<property name="visible">True</property> <property name="visible">True</property>
@ -40,6 +42,7 @@
</child> </child>
<child> <child>
<object class="GtkBox"> <object class="GtkBox">
<property name="width-request">800</property>
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="margin-start">5</property> <property name="margin-start">5</property>
@ -171,6 +174,7 @@ mirrorlist - mirrors file, make sure server URL is NOT included in this file! Si
<property name="width-request">28</property> <property name="width-request">28</property>
<property name="height-request">28</property> <property name="height-request">28</property>
<property name="visible">True</property> <property name="visible">True</property>
<property name="sensitive">False</property>
<property name="can-focus">True</property> <property name="can-focus">True</property>
<property name="receives-default">True</property> <property name="receives-default">True</property>
<property name="tooltip-text" translatable="yes">Open file explorer</property> <property name="tooltip-text" translatable="yes">Open file explorer</property>
@ -236,6 +240,7 @@ mirrorlist - mirrors file, make sure server URL is NOT included in this file! Si
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="orientation">vertical</property> <property name="orientation">vertical</property>
<property name="spacing">5</property>
<child> <child>
<placeholder/> <placeholder/>
</child> </child>
@ -251,6 +256,7 @@ mirrorlist - mirrors file, make sure server URL is NOT included in this file! Si
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="orientation">vertical</property> <property name="orientation">vertical</property>
<property name="spacing">5</property>
<child> <child>
<placeholder/> <placeholder/>
</child> </child>
@ -324,7 +330,7 @@ mirrorlist - mirrors file, make sure server URL is NOT included in this file! Si
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="pixel-size">32</property> <property name="pixel-size">32</property>
<property name="icon-name">com.ublinux.ubl-settings-repomanager</property> <property name="icon-name">com.ublinux.ubl-settings-update</property>
</object> </object>
</child> </child>
<child> <child>

@ -35,10 +35,12 @@
<property name="icon-name">com.ublinux.libublsettingsui-gtk3.zoom-symbolic</property> <property name="icon-name">com.ublinux.libublsettingsui-gtk3.zoom-symbolic</property>
</object> </object>
<object class="GtkApplicationWindow" id="MainWindow"> <object class="GtkApplicationWindow" id="MainWindow">
<property name="width-request">500</property> <property name="width-request">800</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="modal">True</property> <property name="modal">True</property>
<property name="icon-name">com.ublinux.ubl-settings-repomanager</property> <property name="default-width">800</property>
<property name="default-height">600</property>
<property name="icon-name">com.ublinux.ubl-settings-update</property>
<child> <child>
<object class="GtkBox"> <object class="GtkBox">
<property name="visible">True</property> <property name="visible">True</property>
@ -110,7 +112,7 @@
<property name="adjustment">adjustment1</property> <property name="adjustment">adjustment1</property>
</object> </object>
<packing> <packing>
<property name="expand">False</property> <property name="expand">True</property>
<property name="fill">True</property> <property name="fill">True</property>
<property name="position">2</property> <property name="position">2</property>
</packing> </packing>
@ -235,7 +237,7 @@
<property name="adjustment">adjustment2</property> <property name="adjustment">adjustment2</property>
</object> </object>
<packing> <packing>
<property name="expand">False</property> <property name="expand">True</property>
<property name="fill">True</property> <property name="fill">True</property>
<property name="position">2</property> <property name="position">2</property>
</packing> </packing>
@ -288,7 +290,7 @@
<property name="adjustment">adjustment3</property> <property name="adjustment">adjustment3</property>
</object> </object>
<packing> <packing>
<property name="expand">False</property> <property name="expand">True</property>
<property name="fill">True</property> <property name="fill">True</property>
<property name="position">2</property> <property name="position">2</property>
</packing> </packing>
@ -467,7 +469,7 @@
<property name="adjustment">adjustment4</property> <property name="adjustment">adjustment4</property>
</object> </object>
<packing> <packing>
<property name="expand">False</property> <property name="expand">True</property>
<property name="fill">True</property> <property name="fill">True</property>
<property name="position">2</property> <property name="position">2</property>
</packing> </packing>
@ -520,7 +522,7 @@
<property name="adjustment">adjustment5</property> <property name="adjustment">adjustment5</property>
</object> </object>
<packing> <packing>
<property name="expand">False</property> <property name="expand">True</property>
<property name="fill">True</property> <property name="fill">True</property>
<property name="position">2</property> <property name="position">2</property>
</packing> </packing>
@ -560,7 +562,7 @@
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="pixel-size">32</property> <property name="pixel-size">32</property>
<property name="icon-name">com.ublinux.ubl-settings-repomanager</property> <property name="icon-name">com.ublinux.ubl-settings-update</property>
</object> </object>
</child> </child>
<child> <child>

@ -27,8 +27,7 @@
<property name="tooltip-text" translatable="yes">Remove</property> <property name="tooltip-text" translatable="yes">Remove</property>
<property name="image">image2</property> <property name="image">image2</property>
<style> <style>
<class name="noborder"/> <class name="thin"/>
<class name="nobg_active"/>
</style> </style>
</object> </object>
<packing> <packing>
@ -81,8 +80,7 @@
<property name="tooltip-text" translatable="yes">Edit</property> <property name="tooltip-text" translatable="yes">Edit</property>
<property name="image">image1</property> <property name="image">image1</property>
<style> <style>
<class name="noborder"/> <class name="thin"/>
<class name="nobg_active"/>
</style> </style>
</object> </object>
<packing> <packing>

@ -18,7 +18,7 @@
<property name="resizable">False</property> <property name="resizable">False</property>
<property name="modal">True</property> <property name="modal">True</property>
<property name="default-width">450</property> <property name="default-width">450</property>
<property name="icon-name">com.ublinux.ubl-settings-usergroups</property> <property name="icon-name">com.ublinux.ubl-settings-update</property>
<child> <child>
<object class="GtkBox"> <object class="GtkBox">
<property name="visible">True</property> <property name="visible">True</property>
@ -173,7 +173,7 @@
<property name="tooltip-text" translatable="yes">Encryption</property> <property name="tooltip-text" translatable="yes">Encryption</property>
<property name="active">0</property> <property name="active">0</property>
<items> <items>
<item id="sha512" translatable="yes">Default</item> <item translatable="yes">Default (None)</item>
<item id="sha256" translatable="yes">SHA-512</item> <item id="sha256" translatable="yes">SHA-512</item>
<item id="sha512" translatable="yes">SHA-256</item> <item id="sha512" translatable="yes">SHA-256</item>
</items> </items>
@ -212,6 +212,7 @@
<object class="GtkCheckButton" id="NoEncriptionCheck"> <object class="GtkCheckButton" id="NoEncriptionCheck">
<property name="label" translatable="yes">Do not encrypt password</property> <property name="label" translatable="yes">Do not encrypt password</property>
<property name="visible">True</property> <property name="visible">True</property>
<property name="sensitive">False</property>
<property name="can-focus">True</property> <property name="can-focus">True</property>
<property name="receives-default">False</property> <property name="receives-default">False</property>
<property name="draw-indicator">True</property> <property name="draw-indicator">True</property>

@ -13,12 +13,99 @@
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="icon-name">com.ublinux.libublsettingsui-gtk3.increase-symbolic</property> <property name="icon-name">com.ublinux.libublsettingsui-gtk3.increase-symbolic</property>
</object> </object>
<object class="GtkListStore" id="liststore1">
<columns>
<!-- column-name Active -->
<column type="gboolean"/>
<!-- column-name Sign -->
<column type="gchararray"/>
<!-- column-name Desc -->
<column type="gchararray"/>
</columns>
<data>
<row>
<col id="0">False</col>
<col id="1" translatable="yes">Never</col>
<col id="2" translatable="yes">Signature verification will not be performed</col>
</row>
<row>
<col id="0">False</col>
<col id="1" translatable="yes">Optional</col>
<col id="2" translatable="yes">Signatures will be verified if present, but unsigned databases and packages will also be accepted</col>
</row>
<row>
<col id="0">True</col>
<col id="1" translatable="yes">Required</col>
<col id="2" translatable="yes">Signatures will be required for all packages and databases</col>
</row>
<row>
<col id="0">False</col>
<col id="1" translatable="yes">TrustedOnly</col>
<col id="2" translatable="yes">If signature is verified for packages and database, it must be in the keyring and fully trusted; marginal trust not applicable</col>
</row>
<row>
<col id="0">False</col>
<col id="1" translatable="yes">TrustAll</col>
<col id="2" translatable="yes">If signature is verified, it must be in keyring, but does not need to have a trust level assigned (e.g. unknown or marginal trust)</col>
</row>
<row>
<col id="0">False</col>
<col id="1" translatable="yes">PackageNever</col>
<col id="2" translatable="yes">Packages only</col>
</row>
<row>
<col id="0">False</col>
<col id="1" translatable="yes">DatabaseNever</col>
<col id="2" translatable="yes">Database only</col>
</row>
<row>
<col id="0">False</col>
<col id="1" translatable="yes">PackageOptional</col>
<col id="2" translatable="yes">Packages only</col>
</row>
<row>
<col id="0">True</col>
<col id="1" translatable="yes">DatabaseOptional</col>
<col id="2" translatable="yes">Database only</col>
</row>
<row>
<col id="0">False</col>
<col id="1" translatable="yes">PackageRequired</col>
<col id="2" translatable="yes">Packages only</col>
</row>
<row>
<col id="0">False</col>
<col id="1" translatable="yes">DatabaseRequired</col>
<col id="2" translatable="yes">Database only</col>
</row>
<row>
<col id="0">False</col>
<col id="1" translatable="yes">PackageTrustedOnly</col>
<col id="2" translatable="yes">If signature is verified only for packages</col>
</row>
<row>
<col id="0">False</col>
<col id="1" translatable="yes">DatabaseTrustedOnly</col>
<col id="2" translatable="yes">If signature is verified only for database</col>
</row>
<row>
<col id="0">False</col>
<col id="1" translatable="yes">PackageTrustAll</col>
<col id="2" translatable="yes">If signature is verified only for packages</col>
</row>
<row>
<col id="0">False</col>
<col id="1" translatable="yes">DatabaseTrustAll</col>
<col id="2" translatable="yes">If signature is verified only for database</col>
</row>
</data>
</object>
<object class="GtkApplicationWindow" id="MainWindow"> <object class="GtkApplicationWindow" id="MainWindow">
<property name="width-request">500</property> <property name="width-request">800</property>
<property name="height-request">300</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="modal">True</property> <property name="modal">True</property>
<property name="icon-name">com.ublinux.ubl-settings-repomanager</property> <property name="default-height">600</property>
<property name="icon-name">com.ublinux.ubl-settings-update</property>
<child> <child>
<object class="GtkBox"> <object class="GtkBox">
<property name="visible">True</property> <property name="visible">True</property>
@ -77,7 +164,6 @@
<object class="GtkBox"> <object class="GtkBox">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="margin-start">3</property>
<property name="spacing">5</property> <property name="spacing">5</property>
<child> <child>
<object class="GtkLabel"> <object class="GtkLabel">
@ -121,10 +207,6 @@
<object class="GtkAlignment"> <object class="GtkAlignment">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="top-padding">5</property>
<property name="bottom-padding">5</property>
<property name="left-padding">5</property>
<property name="right-padding">5</property>
<child> <child>
<object class="GtkBox"> <object class="GtkBox">
<property name="visible">True</property> <property name="visible">True</property>
@ -135,7 +217,6 @@
<object class="GtkBox"> <object class="GtkBox">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="margin-start">3</property>
<property name="spacing">5</property> <property name="spacing">5</property>
<child> <child>
<object class="GtkLabel" id="label1"> <object class="GtkLabel" id="label1">
@ -232,7 +313,6 @@ Configuration - configuration path</property>
</child> </child>
<child> <child>
<object class="GtkBox" id="SourceListBox"> <object class="GtkBox" id="SourceListBox">
<property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="spacing">5</property> <property name="spacing">5</property>
<child> <child>
@ -304,559 +384,119 @@ Configuration - configuration path</property>
<object class="GtkBox"> <object class="GtkBox">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="orientation">vertical</property>
<property name="spacing">5</property> <property name="spacing">5</property>
<child> <child>
<object class="GtkBox"> <object class="GtkCheckButton" id="SignDefaultCheck">
<property name="label" translatable="yes">Default</property>
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">True</property>
<property name="orientation">vertical</property> <property name="receives-default">False</property>
<property name="spacing">5</property> <property name="active">True</property>
<property name="draw-indicator">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkScrolledWindow">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="margin-start">3</property>
<property name="margin-end">3</property>
<property name="shadow-type">in</property>
<property name="min-content-height">200</property>
<child> <child>
<object class="GtkCheckButton" id="SignDefaultCheck"> <object class="GtkTreeView" id="SignTree">
<property name="label" translatable="yes">Default</property>
<property name="visible">True</property> <property name="visible">True</property>
<property name="sensitive">False</property>
<property name="can-focus">True</property> <property name="can-focus">True</property>
<property name="receives-default">False</property> <property name="model">liststore1</property>
<property name="active">True</property> <property name="search-column">0</property>
<property name="draw-indicator">True</property> <property name="enable-grid-lines">both</property>
</object> <child internal-child="selection">
<packing> <object class="GtkTreeSelection"/>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="spacing">5</property>
<child>
<object class="GtkRadioButton" id="NeverRadio">
<property name="label" translatable="yes">Never</property>
<property name="visible">True</property>
<property name="sensitive">False</property>
<property name="can-focus">True</property>
<property name="receives-default">False</property>
<property name="tooltip-text" translatable="yes">Signature verification will not be performed</property>
<property name="active">True</property>
<property name="draw-indicator">True</property>
<property name="group">RequiredRadio</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkRadioButton" id="PackageNeverRadio">
<property name="label" translatable="yes">PackageNever</property>
<property name="visible">True</property>
<property name="sensitive">False</property>
<property name="can-focus">True</property>
<property name="receives-default">False</property>
<property name="tooltip-text" translatable="yes">For packages only</property>
<property name="active">True</property>
<property name="draw-indicator">True</property>
<property name="group">DatabaseOptionalRadio</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="spacing">5</property>
<child>
<object class="GtkRadioButton" id="OptionalRadio">
<property name="label" translatable="yes">Optional</property>
<property name="visible">True</property>
<property name="sensitive">False</property>
<property name="can-focus">True</property>
<property name="receives-default">False</property>
<property name="tooltip-text" translatable="yes">Signatures will be checked if present, but unsigned databases and packages will also be accepted</property>
<property name="active">True</property>
<property name="draw-indicator">True</property>
<property name="group">RequiredRadio</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child> </child>
<child> <child>
<object class="GtkRadioButton" id="DatabaseNeverRadio"> <object class="GtkTreeViewColumn">
<property name="label" translatable="yes">DatabaseNever</property>
<property name="visible">True</property>
<property name="sensitive">False</property>
<property name="can-focus">True</property>
<property name="receives-default">False</property>
<property name="tooltip-text" translatable="yes">For database only</property>
<property name="active">True</property>
<property name="draw-indicator">True</property>
<property name="group">DatabaseOptionalRadio</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">2</property>
</packing>
</child>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="spacing">5</property>
<child>
<object class="GtkRadioButton" id="RequiredRadio">
<property name="label" translatable="yes">Required</property>
<property name="visible">True</property>
<property name="sensitive">False</property>
<property name="can-focus">True</property>
<property name="receives-default">False</property>
<property name="tooltip-text" translatable="yes">Signatures will be required for all packages and databases</property>
<property name="active">True</property>
<property name="draw-indicator">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkRadioButton" id="PackageOptionalRadio">
<property name="label" translatable="yes">PackageOptional</property>
<property name="visible">True</property>
<property name="sensitive">False</property>
<property name="can-focus">True</property>
<property name="receives-default">False</property>
<property name="tooltip-text" translatable="yes">For packages only</property>
<property name="active">True</property>
<property name="draw-indicator">True</property>
<property name="group">DatabaseOptionalRadio</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">3</property>
</packing>
</child>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="spacing">5</property>
<child>
<object class="GtkRadioButton" id="TrustedOnlyRadio">
<property name="label" translatable="yes">TrustedOnly</property>
<property name="visible">True</property>
<property name="sensitive">False</property>
<property name="can-focus">True</property>
<property name="receives-default">False</property>
<property name="tooltip-text" translatable="yes">Signatures will be required for all packages and databases</property>
<property name="active">True</property>
<property name="draw-indicator">True</property>
<property name="group">RequiredRadio</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkRadioButton" id="DatabaseOptionalRadio">
<property name="label" translatable="yes">DatabaseOptional</property>
<property name="visible">True</property>
<property name="sensitive">False</property>
<property name="can-focus">True</property>
<property name="receives-default">False</property>
<property name="tooltip-text" translatable="yes">For database only</property>
<property name="active">True</property>
<property name="draw-indicator">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">4</property>
</packing>
</child>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="spacing">5</property>
<child>
<object class="GtkRadioButton" id="TrustAllRadio">
<property name="label" translatable="yes">TrustAll</property>
<property name="visible">True</property>
<property name="sensitive">False</property>
<property name="can-focus">True</property>
<property name="receives-default">False</property>
<property name="tooltip-text" translatable="yes">If the signature is verified for packages and the database, it must be in the keyring and be fully trusted</property>
<property name="active">True</property>
<property name="draw-indicator">True</property>
<property name="group">RequiredRadio</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkRadioButton" id="PackageRequiredRadio">
<property name="label" translatable="yes">PackageRequired</property>
<property name="visible">True</property>
<property name="sensitive">False</property>
<property name="can-focus">True</property>
<property name="receives-default">False</property>
<property name="tooltip-text" translatable="yes">For packages only</property>
<property name="active">True</property>
<property name="draw-indicator">True</property>
<property name="group">DatabaseOptionalRadio</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">5</property>
</packing>
</child>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="spacing">5</property>
<child>
<object class="GtkBox" id="box2">
<property name="visible">True</property>
<property name="can-focus">False</property>
<child> <child>
<placeholder/> <object class="GtkCellRendererToggle" id="SignCell"/>
<attributes>
<attribute name="active">0</attribute>
</attributes>
</child> </child>
</object> </object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child> </child>
<child> <child>
<object class="GtkRadioButton" id="DatabaseRequiredRadio"> <object class="GtkTreeViewColumn">
<property name="label" translatable="yes">DatabaseRequired</property> <property name="title" translatable="yes">Sign level</property>
<property name="visible">True</property>
<property name="sensitive">False</property>
<property name="can-focus">True</property>
<property name="receives-default">False</property>
<property name="tooltip-text" translatable="yes">For database only</property>
<property name="active">True</property>
<property name="draw-indicator">True</property>
<property name="group">DatabaseOptionalRadio</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">6</property>
</packing>
</child>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="spacing">5</property>
<child>
<object class="GtkBox" id="box3">
<property name="visible">True</property>
<property name="can-focus">False</property>
<child> <child>
<placeholder/> <object class="GtkCellRendererText"/>
<attributes>
<attribute name="markup">1</attribute>
</attributes>
</child> </child>
</object> </object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkRadioButton" id="PackageTrustedOnlyRadio">
<property name="label" translatable="yes">PackageTrustedOnly</property>
<property name="visible">True</property>
<property name="sensitive">False</property>
<property name="can-focus">True</property>
<property name="receives-default">False</property>
<property name="tooltip-text" translatable="yes">For packages only</property>
<property name="active">True</property>
<property name="draw-indicator">True</property>
<property name="group">DatabaseOptionalRadio</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child> </child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">7</property>
</packing>
</child>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="spacing">5</property>
<child> <child>
<object class="GtkBox" id="box4"> <object class="GtkTreeViewColumn">
<property name="visible">True</property> <property name="title" translatable="yes">Description</property>
<property name="can-focus">False</property>
<child> <child>
<placeholder/> <object class="GtkCellRendererText">
<property name="wrap-width">350</property>
</object>
<attributes>
<attribute name="markup">2</attribute>
</attributes>
</child> </child>
</object> </object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkRadioButton" id="DatabaseTrustedOnlyRadio">
<property name="label" translatable="yes">DatabaseTrustedOnly</property>
<property name="visible">True</property>
<property name="sensitive">False</property>
<property name="can-focus">True</property>
<property name="receives-default">False</property>
<property name="tooltip-text" translatable="yes">For database only</property>
<property name="active">True</property>
<property name="draw-indicator">True</property>
<property name="group">DatabaseOptionalRadio</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child> </child>
</object> </object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">8</property>
</packing>
</child> </child>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="spacing">5</property>
<child> <child>
<object class="GtkBox"> <object class="GtkLabel">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="spacing">5</property> <property name="label" translatable="yes">Sign level:</property>
<child>
<object class="GtkBox" id="box5">
<property name="visible">True</property>
<property name="can-focus">False</property>
<child>
<placeholder/>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkRadioButton" id="PackageTrustAllRadio">
<property name="label" translatable="yes">PackageTrustAll</property>
<property name="visible">True</property>
<property name="sensitive">False</property>
<property name="can-focus">True</property>
<property name="receives-default">False</property>
<property name="tooltip-text" translatable="yes">If the signature is verified only for packets</property>
<property name="active">True</property>
<property name="draw-indicator">True</property>
<property name="group">DatabaseOptionalRadio</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object> </object>
<packing> <packing>
<property name="expand">False</property> <property name="expand">False</property>
<property name="fill">True</property> <property name="fill">True</property>
<property name="position">9</property> <property name="position">0</property>
</packing> </packing>
</child> </child>
<child> <child>
<object class="GtkBox"> <object class="GtkEntry" id="SignLevelCheckEntry">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="spacing">5</property> <property name="text" translatable="yes">Required,DatabaseOptional</property>
<child>
<object class="GtkBox" id="box6">
<property name="visible">True</property>
<property name="can-focus">False</property>
<child>
<placeholder/>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkRadioButton" id="DatabaseTrustAllRadio">
<property name="label" translatable="yes">DatabaseTrustAll</property>
<property name="visible">True</property>
<property name="sensitive">False</property>
<property name="can-focus">True</property>
<property name="receives-default">False</property>
<property name="tooltip-text" translatable="yes">If the signature is verified only for the database</property>
<property name="active">True</property>
<property name="draw-indicator">True</property>
<property name="group">DatabaseOptionalRadio</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object> </object>
<packing> <packing>
<property name="expand">False</property> <property name="expand">True</property>
<property name="fill">True</property> <property name="fill">True</property>
<property name="position">10</property> <property name="position">1</property>
</packing> </packing>
</child> </child>
</object> </object>
<packing> <packing>
<property name="expand">False</property> <property name="expand">False</property>
<property name="fill">True</property> <property name="fill">True</property>
<property name="position">0</property> <property name="position">2</property>
</packing>
</child>
<child>
<object class="GtkFrame">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label-xalign">0</property>
<property name="shadow-type">in</property>
<child>
<object class="GtkAlignment">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="top-padding">5</property>
<property name="bottom-padding">5</property>
<property name="left-padding">5</property>
<property name="right-padding">5</property>
<child>
<object class="GtkScrolledWindow">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="hscrollbar-policy">never</property>
<child>
<object class="GtkViewport">
<property name="visible">True</property>
<property name="can-focus">False</property>
<child>
<object class="GtkLabel" id="SignLevelLabel">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="margin-left">5</property>
<property name="margin-right">5</property>
<property name="label" translatable="yes">- Never - Signature verification will not be performed. Primary
\t- PackageNever - Packages only. Secondary
\t- DatabaseNever - Database only. Secondary
- Optional - Signatures will be verified if present, but unsigned databases and packages will also be accepted. Primary
\t- PackageOptional - Packages only. Secondary
\t- DatabaseOptional - Database only.
- Required - Signatures will be required for all packages and databases. Primary
\t- PackageRequired - Packages only. Secondary
\t- DatabaseRequired - Database only. Secondary
- TrustedOnly - If signature is verified for packages and database, it must be in the keyring and fully trusted; marginal trust not applicable
\t- PackageTrustedOnly - If signature is verified only for packages
\t- DatabaseTrustedOnly - If signature is verified only for database
- TrustAll - If signature is verified, it must be in keyring, but does not need to have a trust level assigned (e.g. unknown or marginal trust)
\t- PackageTrustAll - If signature is verified only for packages
\t- DatabaseTrustAll - If signature is verified only for database</property>
<property name="wrap">True</property>
<property name="xalign">0</property>
<property name="yalign">0</property>
<attributes>
<attribute name="size" value="8192"/>
</attributes>
</object>
</child>
</object>
</child>
</object>
</child>
</object>
</child>
<child type="label_item">
<placeholder/>
</child>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing> </packing>
</child> </child>
</object> </object>
@ -872,7 +512,7 @@ Configuration - configuration path</property>
</child> </child>
</object> </object>
<packing> <packing>
<property name="expand">False</property> <property name="expand">True</property>
<property name="fill">True</property> <property name="fill">True</property>
<property name="position">3</property> <property name="position">3</property>
</packing> </packing>
@ -901,6 +541,7 @@ Configuration - configuration path</property>
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">True</property> <property name="can-focus">True</property>
<property name="receives-default">False</property> <property name="receives-default">False</property>
<property name="active">True</property>
<property name="draw-indicator">True</property> <property name="draw-indicator">True</property>
<child> <child>
<object class="GtkLabel"> <object class="GtkLabel">
@ -920,6 +561,7 @@ Configuration - configuration path</property>
<child> <child>
<object class="GtkCheckButton" id="UsageEnableUpdateCheck"> <object class="GtkCheckButton" id="UsageEnableUpdateCheck">
<property name="visible">True</property> <property name="visible">True</property>
<property name="sensitive">False</property>
<property name="can-focus">True</property> <property name="can-focus">True</property>
<property name="receives-default">False</property> <property name="receives-default">False</property>
<property name="draw-indicator">True</property> <property name="draw-indicator">True</property>
@ -942,6 +584,7 @@ Configuration - configuration path</property>
<child> <child>
<object class="GtkCheckButton" id="UsageEnableSearchCheck"> <object class="GtkCheckButton" id="UsageEnableSearchCheck">
<property name="visible">True</property> <property name="visible">True</property>
<property name="sensitive">False</property>
<property name="can-focus">True</property> <property name="can-focus">True</property>
<property name="receives-default">False</property> <property name="receives-default">False</property>
<property name="draw-indicator">True</property> <property name="draw-indicator">True</property>
@ -964,6 +607,7 @@ Configuration - configuration path</property>
<child> <child>
<object class="GtkCheckButton" id="UsageEnableInsallCheck"> <object class="GtkCheckButton" id="UsageEnableInsallCheck">
<property name="visible">True</property> <property name="visible">True</property>
<property name="sensitive">False</property>
<property name="can-focus">True</property> <property name="can-focus">True</property>
<property name="receives-default">False</property> <property name="receives-default">False</property>
<property name="draw-indicator">True</property> <property name="draw-indicator">True</property>
@ -989,6 +633,7 @@ Configuration - configuration path</property>
<child> <child>
<object class="GtkCheckButton" id="UsageSysupgradeCheck"> <object class="GtkCheckButton" id="UsageSysupgradeCheck">
<property name="visible">True</property> <property name="visible">True</property>
<property name="sensitive">False</property>
<property name="can-focus">True</property> <property name="can-focus">True</property>
<property name="receives-default">False</property> <property name="receives-default">False</property>
<property name="draw-indicator">True</property> <property name="draw-indicator">True</property>
@ -1024,7 +669,7 @@ Configuration - configuration path</property>
</child> </child>
</object> </object>
<packing> <packing>
<property name="expand">True</property> <property name="expand">False</property>
<property name="fill">True</property> <property name="fill">True</property>
<property name="position">5</property> <property name="position">5</property>
</packing> </packing>
@ -1061,7 +706,7 @@ Configuration - configuration path</property>
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="pixel-size">32</property> <property name="pixel-size">32</property>
<property name="icon-name">com.ublinux.ubl-settings-repomanager</property> <property name="icon-name">com.ublinux.ubl-settings-update</property>
</object> </object>
</child> </child>
<child> <child>
@ -1096,18 +741,4 @@ Configuration - configuration path</property>
<widget name="box1"/> <widget name="box1"/>
</widgets> </widgets>
</object> </object>
<object class="GtkSizeGroup">
<widgets>
<widget name="NeverRadio"/>
<widget name="OptionalRadio"/>
<widget name="RequiredRadio"/>
<widget name="TrustedOnlyRadio"/>
<widget name="TrustAllRadio"/>
<widget name="box2"/>
<widget name="box3"/>
<widget name="box4"/>
<widget name="box5"/>
<widget name="box6"/>
</widgets>
</object>
</interface> </interface>

@ -27,8 +27,7 @@
<property name="tooltip-text" translatable="yes">Remove</property> <property name="tooltip-text" translatable="yes">Remove</property>
<property name="image">image2</property> <property name="image">image2</property>
<style> <style>
<class name="noborder"/> <class name="thin"/>
<class name="nobg_active"/>
</style> </style>
</object> </object>
<packing> <packing>
@ -83,8 +82,7 @@
<property name="tooltip-text" translatable="yes">Edit</property> <property name="tooltip-text" translatable="yes">Edit</property>
<property name="image">image1</property> <property name="image">image1</property>
<style> <style>
<class name="noborder"/> <class name="thin"/>
<class name="nobg_active"/>
</style> </style>
</object> </object>
<packing> <packing>

@ -3,6 +3,11 @@
<interface domain="ubl-settings-update"> <interface domain="ubl-settings-update">
<requires lib="gtk+" version="3.24"/> <requires lib="gtk+" version="3.24"/>
<!-- interface-css-provider-path ubl-settings-update.css --> <!-- interface-css-provider-path ubl-settings-update.css -->
<object class="GtkAdjustment" id="adjustment1">
<property name="upper">65535</property>
<property name="step-increment">1</property>
<property name="page-increment">10</property>
</object>
<object class="GtkImage" id="image1"> <object class="GtkImage" id="image1">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
@ -22,10 +27,12 @@
</columns> </columns>
</object> </object>
<object class="GtkApplicationWindow" id="MainWindow"> <object class="GtkApplicationWindow" id="MainWindow">
<property name="width-request">500</property> <property name="width-request">800</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="modal">True</property> <property name="modal">True</property>
<property name="icon-name">com.ublinux.ubl-settings-repomanager</property> <property name="default-width">800</property>
<property name="default-height">600</property>
<property name="icon-name">com.ublinux.ubl-settings-update</property>
<child> <child>
<object class="GtkBox"> <object class="GtkBox">
<property name="visible">True</property> <property name="visible">True</property>
@ -62,6 +69,7 @@
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">True</property> <property name="can-focus">True</property>
<property name="receives-default">False</property> <property name="receives-default">False</property>
<property name="margin-end">3</property>
<property name="draw-indicator">True</property> <property name="draw-indicator">True</property>
</object> </object>
<packing> <packing>
@ -74,7 +82,6 @@
<object class="GtkBox"> <object class="GtkBox">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="margin-start">3</property>
<property name="spacing">5</property> <property name="spacing">5</property>
<child> <child>
<object class="GtkLabel"> <object class="GtkLabel">
@ -130,7 +137,6 @@
<object class="GtkScrolledWindow"> <object class="GtkScrolledWindow">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">True</property> <property name="can-focus">True</property>
<property name="margin-start">3</property>
<property name="shadow-type">in</property> <property name="shadow-type">in</property>
<child> <child>
<object class="GtkTreeView" id="RepositoriesTree"> <object class="GtkTreeView" id="RepositoriesTree">
@ -177,7 +183,6 @@
<object class="GtkBox"> <object class="GtkBox">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="margin-start">3</property>
<property name="spacing">5</property> <property name="spacing">5</property>
<child> <child>
<object class="GtkLabel"> <object class="GtkLabel">
@ -208,14 +213,15 @@
</packing> </packing>
</child> </child>
<child> <child>
<object class="GtkEntry" id="PortEntry"> <object class="GtkSpinButton" id="PortEntry">
<property name="visible">True</property> <property name="visible">True</property>
<property name="sensitive">False</property>
<property name="can-focus">True</property> <property name="can-focus">True</property>
<property name="tooltip-text" translatable="yes">Port</property> <property name="adjustment">adjustment1</property>
<property name="placeholder-text" translatable="yes">8080</property> <property name="value">8080</property>
</object> </object>
<packing> <packing>
<property name="expand">True</property> <property name="expand">False</property>
<property name="fill">True</property> <property name="fill">True</property>
<property name="position">2</property> <property name="position">2</property>
</packing> </packing>
@ -374,7 +380,7 @@
<object class="GtkEntry" id="UserPasswordEntry"> <object class="GtkEntry" id="UserPasswordEntry">
<property name="visible">True</property> <property name="visible">True</property>
<property name="sensitive">False</property> <property name="sensitive">False</property>
<property name="can-focus">True</property> <property name="can-focus">False</property>
<property name="tooltip-text" translatable="yes">User password</property> <property name="tooltip-text" translatable="yes">User password</property>
<property name="visibility">False</property> <property name="visibility">False</property>
<property name="invisible-char">*</property> <property name="invisible-char">*</property>
@ -459,7 +465,7 @@
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="pixel-size">32</property> <property name="pixel-size">32</property>
<property name="icon-name">com.ublinux.ubl-settings-repomanager</property> <property name="icon-name">com.ublinux.ubl-settings-update</property>
</object> </object>
</child> </child>
<child> <child>

@ -83,6 +83,8 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
<column type="gchararray"/> <column type="gchararray"/>
<!-- column-name PasswordHash --> <!-- column-name PasswordHash -->
<column type="gchararray"/> <column type="gchararray"/>
<!-- column-name FullName -->
<column type="gchararray"/>
</columns> </columns>
</object> </object>
<object class="GtkSizeGroup"/> <object class="GtkSizeGroup"/>
@ -608,6 +610,17 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
<property name="position">0</property> <property name="position">0</property>
</packing> </packing>
</child> </child>
<child>
<object class="GtkSeparator">
<property name="visible">True</property>
<property name="can-focus">False</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
<child> <child>
<object class="GtkButton" id="RepositoriesMoveUpButton"> <object class="GtkButton" id="RepositoriesMoveUpButton">
<property name="width-request">26</property> <property name="width-request">26</property>
@ -641,7 +654,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
<packing> <packing>
<property name="expand">False</property> <property name="expand">False</property>
<property name="fill">True</property> <property name="fill">True</property>
<property name="position">1</property> <property name="position">2</property>
</packing> </packing>
</child> </child>
<child> <child>
@ -676,7 +689,18 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
<packing> <packing>
<property name="expand">False</property> <property name="expand">False</property>
<property name="fill">True</property> <property name="fill">True</property>
<property name="position">2</property> <property name="position">3</property>
</packing>
</child>
<child>
<object class="GtkSeparator">
<property name="visible">True</property>
<property name="can-focus">False</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">4</property>
</packing> </packing>
</child> </child>
<child> <child>
@ -695,7 +719,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
<packing> <packing>
<property name="expand">False</property> <property name="expand">False</property>
<property name="fill">True</property> <property name="fill">True</property>
<property name="position">3</property> <property name="position">5</property>
</packing> </packing>
</child> </child>
<child> <child>
@ -715,7 +739,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
<packing> <packing>
<property name="expand">False</property> <property name="expand">False</property>
<property name="fill">True</property> <property name="fill">True</property>
<property name="position">4</property> <property name="position">6</property>
</packing> </packing>
</child> </child>
<child> <child>
@ -735,7 +759,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
<packing> <packing>
<property name="expand">False</property> <property name="expand">False</property>
<property name="fill">True</property> <property name="fill">True</property>
<property name="position">5</property> <property name="position">7</property>
</packing> </packing>
</child> </child>
</object> </object>
@ -1115,6 +1139,17 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
<property name="position">0</property> <property name="position">0</property>
</packing> </packing>
</child> </child>
<child>
<object class="GtkSeparator">
<property name="visible">True</property>
<property name="can-focus">False</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
<child> <child>
<object class="GtkButton" id="WebPublicationAddButton"> <object class="GtkButton" id="WebPublicationAddButton">
<property name="width-request">26</property> <property name="width-request">26</property>
@ -1131,7 +1166,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
<packing> <packing>
<property name="expand">False</property> <property name="expand">False</property>
<property name="fill">True</property> <property name="fill">True</property>
<property name="position">1</property> <property name="position">2</property>
</packing> </packing>
</child> </child>
<child> <child>
@ -1151,7 +1186,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
<packing> <packing>
<property name="expand">False</property> <property name="expand">False</property>
<property name="fill">True</property> <property name="fill">True</property>
<property name="position">2</property> <property name="position">3</property>
</packing> </packing>
</child> </child>
<child> <child>
@ -1171,7 +1206,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
<packing> <packing>
<property name="expand">False</property> <property name="expand">False</property>
<property name="fill">True</property> <property name="fill">True</property>
<property name="position">3</property> <property name="position">4</property>
</packing> </packing>
</child> </child>
</object> </object>
@ -1438,6 +1473,17 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
<property name="position">0</property> <property name="position">0</property>
</packing> </packing>
</child> </child>
<child>
<object class="GtkSeparator">
<property name="visible">True</property>
<property name="can-focus">False</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
<child> <child>
<object class="GtkButton" id="MirrorAddButton"> <object class="GtkButton" id="MirrorAddButton">
<property name="width-request">26</property> <property name="width-request">26</property>
@ -1454,7 +1500,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
<packing> <packing>
<property name="expand">False</property> <property name="expand">False</property>
<property name="fill">True</property> <property name="fill">True</property>
<property name="position">1</property> <property name="position">2</property>
</packing> </packing>
</child> </child>
<child> <child>
@ -1474,7 +1520,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
<packing> <packing>
<property name="expand">False</property> <property name="expand">False</property>
<property name="fill">True</property> <property name="fill">True</property>
<property name="position">2</property> <property name="position">3</property>
</packing> </packing>
</child> </child>
<child> <child>
@ -1494,7 +1540,18 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
<packing> <packing>
<property name="expand">False</property> <property name="expand">False</property>
<property name="fill">True</property> <property name="fill">True</property>
<property name="position">3</property> <property name="position">4</property>
</packing>
</child>
<child>
<object class="GtkSeparator">
<property name="visible">True</property>
<property name="can-focus">False</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">5</property>
</packing> </packing>
</child> </child>
<child> <child>
@ -1513,7 +1570,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
<packing> <packing>
<property name="expand">False</property> <property name="expand">False</property>
<property name="fill">True</property> <property name="fill">True</property>
<property name="position">4</property> <property name="position">6</property>
</packing> </packing>
</child> </child>
</object> </object>

@ -17,7 +17,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
#: source/ubl-strings.h:4 #: source/ubl-strings.h:4 source/ubl-strings.h:45
msgid "System update" msgid "System update"
msgstr "" msgstr ""
@ -58,7 +58,15 @@ msgid "Edit repository for publication"
msgstr "" msgstr ""
#: source/ubl-strings.h:16 #: source/ubl-strings.h:16
msgid "passwords do not match" msgid "Passwords do not match"
msgstr ""
#: source/ubl-strings.h:17
msgid "Password contains restricted symbols"
msgstr ""
#: source/ubl-strings.h:17
msgid "Entry contains restricted symbols"
msgstr "" msgstr ""
#: source/ubl-strings.h:18 #: source/ubl-strings.h:18
@ -80,477 +88,513 @@ msgid ""
"file! Single parameter per repository" "file! Single parameter per repository"
msgstr "" msgstr ""
#: source/ubl-strings.h:26 #: source/ubl-strings.h:27
msgid "Signature verification will not be performed"
msgstr ""
#: source/ubl-strings.h:28
msgid "" msgid ""
"• Never - Signature verification will not be performed\n" "Signatures will be verified if present, but unsigned databases and packages "
"• Optional - Signatures will be verified if present, but unsigned databases " "will also be accepted"
"and packages will also be accepted\n"
"• Required - Signatures will be required for all packages and databases\n"
"• TrustedOnly - If signature is verified for packages and database, it must "
"be in the keyring and fully trusted; marginal trust not applicable\n"
"• TrustAll - If signature is verified, it must be in keyring, but does not "
"need to have a trust level assigned (e.g. unknown or marginal trust)\n"
"• PackageNever - Packages only\n"
"• DatabaseNever - Database only\n"
"• PackageOptional - Packages only\n"
"• DatabaseOptional - Database only\n"
"• PackageRequired - Packages only\n"
"• DatabaseRequired - Database only\n"
"• PackageTrustedOnly - If signature is verified only for packages\n"
"• DatabaseTrustedOnly - If signature is verified only for database\n"
"• PackageTrustAll - If signature is verified only for packages\n"
"• DatabaseTrustAll - If signature is verified only for database\n"
msgstr "" msgstr ""
#: source/ubl-strings.h:42 #: source/ubl-strings.h:29
msgid "Signatures will be required for all packages and databases"
msgstr ""
#: source/ubl-strings.h:30
msgid ""
"If signature is verified for packages and database, it must be in the "
"keyring and fully trusted; marginal trust not applicable"
msgstr ""
#: source/ubl-strings.h:31
msgid ""
"If signature is verified, it must be in keyring, but does not need to have a "
"trust level assigned (e.g. unknown or marginal trust)"
msgstr ""
#: source/ubl-strings.h:32
msgid "Packages only"
msgstr ""
#: source/ubl-strings.h:33
msgid "Database only"
msgstr ""
#: source/ubl-strings.h:34
msgid "If signature is verified only for packages"
msgstr ""
#: source/ubl-strings.h:35
msgid "If signature is verified only for database"
msgstr ""
#: source/ubl-strings.h:36
msgid "every" msgid "every"
msgstr "" msgstr ""
#: source/ubl-strings.h:43 #: source/ubl-strings.h:37
msgid "Resource link of file path" msgid "Resource link of file path"
msgstr "" msgstr ""
#: source/ubl-strings.h:44 #: source/ubl-strings.h:38
msgid "Open file explorer" msgid "Open file explorer"
msgstr "" msgstr ""
#: source/ubl-strings.h:45 #: source/ubl-strings.h:39
msgid "Add source" msgid "Add source"
msgstr "" msgstr ""
#: source/ubl-strings.h:46 #: source/ubl-strings.h:40
msgid "Username" msgid "Username"
msgstr "" msgstr ""
#: source/ubl-strings.h:47 #: source/ubl-strings.h:41
msgid "User password" msgid "User password"
msgstr "" msgstr ""
#: source/ubl-strings.h:48 #: source/ubl-strings.h:42
msgid "Storage path to publish" msgid "Storage path to publish"
msgstr "" msgstr ""
#: source/ubl-strings.h:49 #: source/ubl-strings.h:43
msgid "" msgid ""
"The full URL of where to find the database, packages, and signatures (if " "The full URL of where to find the database, packages, and signatures (if "
"available) for this repository. Multiple can be specified, separated by " "available) for this repository. Multiple can be specified, separated by "
"commas (,)" "commas (,)"
msgstr "" msgstr ""
#: source/ubl-strings.h:50 source/ubl-strings.h:80 #: source/ubl-strings.h:44 source/ubl-strings.h:75
msgid "Update" msgid "Update"
msgstr "" msgstr ""
#: source/ubl-strings.h:51 #: source/ubl-strings.h:46
msgid "Repositories" msgid "Repositories"
msgstr "" msgstr ""
#: source/ubl-strings.h:52 #: source/ubl-strings.h:47
msgid "Publication" msgid "Publication"
msgstr "" msgstr ""
#: source/ubl-strings.h:53 #: source/ubl-strings.h:48
msgid "WEB-publication" msgid "WEB-publication"
msgstr "" msgstr ""
#: source/ubl-strings.h:54 #: source/ubl-strings.h:49
msgid "Mirror publication" msgid "Mirror publication"
msgstr "" msgstr ""
#: source/ubl-strings.h:55 #: source/ubl-strings.h:50
msgid "Date of last automatic update:" msgid "Date of last automatic update:"
msgstr "" msgstr ""
#: source/ubl-strings.h:56 #: source/ubl-strings.h:51
msgid "Date of last automatic update" msgid "Date of last automatic update"
msgstr "" msgstr ""
#: source/ubl-strings.h:57 #: source/ubl-strings.h:52
msgid "Automatic update" msgid "Automatic update"
msgstr "" msgstr ""
#: source/ubl-strings.h:58 #: source/ubl-strings.h:53
msgid "First update all modules and then the system" msgid "First update all modules and then the system"
msgstr "" msgstr ""
#: source/ubl-strings.h:59 #: source/ubl-strings.h:54
msgid "Update only modules" msgid "Update only modules"
msgstr "" msgstr ""
#: source/ubl-strings.h:60 #: source/ubl-strings.h:55
msgid "Update everything in the order of the specified repositories" msgid "Update everything in the order of the specified repositories"
msgstr "" msgstr ""
#: source/ubl-strings.h:61 #: source/ubl-strings.h:56
msgid "Update mode:" msgid "Update mode:"
msgstr "" msgstr ""
#: source/ubl-strings.h:62 #: source/ubl-strings.h:57
msgid "Update interval:" msgid "Update interval:"
msgstr "" msgstr ""
#: source/ubl-strings.h:64 #: source/ubl-strings.h:59
msgid "Update mode" msgid "Update mode"
msgstr "" msgstr ""
#: source/ubl-strings.h:65 #: source/ubl-strings.h:60
msgid "Update interval" msgid "Update interval"
msgstr "" msgstr ""
#: source/ubl-strings.h:66 #: source/ubl-strings.h:61
msgid "Boot" msgid "Boot"
msgstr "" msgstr ""
#: source/ubl-strings.h:67 source/ubl-strings.h:150 #: source/ubl-strings.h:62 source/ubl-strings.h:145
msgid "Minutes" msgid "Minutes"
msgstr "" msgstr ""
#: source/ubl-strings.h:68 source/ubl-strings.h:151 #: source/ubl-strings.h:63 source/ubl-strings.h:146
msgid "Hours" msgid "Hours"
msgstr "" msgstr ""
#: source/ubl-strings.h:69 source/ubl-strings.h:152 #: source/ubl-strings.h:64 source/ubl-strings.h:147
msgid "Days" msgid "Days"
msgstr "" msgstr ""
#: source/ubl-strings.h:70 source/ubl-strings.h:153 #: source/ubl-strings.h:65 source/ubl-strings.h:148
msgid "Months" msgid "Months"
msgstr "" msgstr ""
#: source/ubl-strings.h:71 #: source/ubl-strings.h:66
msgid "Repositories from which the update will occur" msgid "Repositories from which the update will occur"
msgstr "" msgstr ""
#: source/ubl-strings.h:72 source/ubl-strings.h:95 #: source/ubl-strings.h:67 source/ubl-strings.h:90
msgid "Repositories list:" msgid "Repositories list:"
msgstr "" msgstr ""
#: source/ubl-strings.h:73 #: source/ubl-strings.h:68
msgid "Repositories list" msgid "Repositories list"
msgstr "" msgstr ""
#: source/ubl-strings.h:74 #: source/ubl-strings.h:69
msgid "Default" msgid "Default"
msgstr "" msgstr ""
#: source/ubl-strings.h:75 source/ubl-strings.h:97 #: source/ubl-strings.h:70 source/ubl-strings.h:92
msgid "Choose" msgid "Choose"
msgstr "" msgstr ""
#: source/ubl-strings.h:76 #: source/ubl-strings.h:71
msgid "Chosen" msgid "Chosen"
msgstr "" msgstr ""
#: source/ubl-strings.h:77 #: source/ubl-strings.h:72
msgid "Repository" msgid "Repository"
msgstr "" msgstr ""
#: source/ubl-strings.h:78 #: source/ubl-strings.h:73
msgid "Manage repository list" msgid "Manage repository list"
msgstr "" msgstr ""
#: source/ubl-strings.h:79 #: source/ubl-strings.h:74
msgid "Disable system repositories" msgid "Disable system repositories"
msgstr "" msgstr ""
#: source/ubl-strings.h:81 #: source/ubl-strings.h:76
msgid "Move up" msgid "Move up"
msgstr "" msgstr ""
#: source/ubl-strings.h:82 #: source/ubl-strings.h:77
msgid "Move down" msgid "Move down"
msgstr "" msgstr ""
#: source/ubl-strings.h:83 #: source/ubl-strings.h:78
msgid "Add" msgid "Add"
msgstr "" msgstr ""
#: source/ubl-strings.h:84 #: source/ubl-strings.h:79
msgid "Edit" msgid "Edit"
msgstr "" msgstr ""
#: source/ubl-strings.h:85 #: source/ubl-strings.h:80
msgid "Remove" msgid "Remove"
msgstr "" msgstr ""
#: source/ubl-strings.h:86 #: source/ubl-strings.h:81
msgid "Enabled" msgid "Enabled"
msgstr "" msgstr ""
#: source/ubl-strings.h:87 #: source/ubl-strings.h:82
msgid "Source" msgid "Source"
msgstr "" msgstr ""
#: source/ubl-strings.h:88 #: source/ubl-strings.h:83
msgid "Signature level" msgid "Signature level"
msgstr "" msgstr ""
#: source/ubl-strings.h:89 #: source/ubl-strings.h:84
msgid "Usage level" msgid "Usage level"
msgstr "" msgstr ""
#: source/ubl-strings.h:90 #: source/ubl-strings.h:85
msgid "Repository connection configuration" msgid "Repository connection configuration"
msgstr "" msgstr ""
#: source/ubl-strings.h:91 #: source/ubl-strings.h:86
msgid "" msgid ""
"Setting up a connection to a distributed repository network and publishing " "Setting up a connection to a distributed repository network and publishing "
"your repositories" "your repositories"
msgstr "" msgstr ""
#: source/ubl-strings.h:92 #: source/ubl-strings.h:87
msgid "Connect and publish" msgid "Connect and publish"
msgstr "" msgstr ""
#: source/ubl-strings.h:93 #: source/ubl-strings.h:88
msgid "Recieve DB packages from shared network" msgid "Recieve DB packages from shared network"
msgstr "" msgstr ""
#: source/ubl-strings.h:94 #: source/ubl-strings.h:89
msgid "Repositories for publishing" msgid "Repositories for publishing"
msgstr "" msgstr ""
#: source/ubl-strings.h:96 #: source/ubl-strings.h:91
msgid "All repositories" msgid "All repositories"
msgstr "" msgstr ""
#: source/ubl-strings.h:98 #: source/ubl-strings.h:93
msgid "Accept" msgid "Accept"
msgstr "" msgstr ""
#: source/ubl-strings.h:99 #: source/ubl-strings.h:94
msgid "Repository name" msgid "Repository name"
msgstr "" msgstr ""
#: source/ubl-strings.h:100 #: source/ubl-strings.h:95
msgid "" msgid ""
"Setting up publication of storage and/or repositories as a local WEB resource" "Setting up publication of storage and/or repositories as a local WEB resource"
msgstr "" msgstr ""
#: source/ubl-strings.h:101 source/ubl-strings.h:142 #: source/ubl-strings.h:96 source/ubl-strings.h:137
msgid "Authorization parameters" msgid "Authorization parameters"
msgstr "" msgstr ""
#: source/ubl-strings.h:102 #: source/ubl-strings.h:97
msgid "Storage" msgid "Storage"
msgstr "" msgstr ""
#: source/ubl-strings.h:103 #: source/ubl-strings.h:98
msgid "Chosen repositories" msgid "Chosen repositories"
msgstr "" msgstr ""
#: source/ubl-strings.h:104 #: source/ubl-strings.h:99
msgid "Reviewer" msgid "Reviewer"
msgstr "" msgstr ""
#: source/ubl-strings.h:105 #: source/ubl-strings.h:100
msgid "Port" msgid "Port"
msgstr "" msgstr ""
#: source/ubl-strings.h:106 #: source/ubl-strings.h:101
msgid "Name" msgid "Name"
msgstr "" msgstr ""
#: source/ubl-strings.h:107 #: source/ubl-strings.h:102
msgid "Password/Hash type" msgid "Password/Hash type"
msgstr "" msgstr ""
#: source/ubl-strings.h:108 #: source/ubl-strings.h:103
msgid "Password/Password hash" msgid "Password/Password hash"
msgstr "" msgstr ""
#: source/ubl-strings.h:109 #: source/ubl-strings.h:104
msgid "" msgid ""
"Setting up publication of a lazy mirror of connected repositories as a local " "Setting up publication of a lazy mirror of connected repositories as a local "
"WEB resource" "WEB resource"
msgstr "" msgstr ""
#: source/ubl-strings.h:110 #: source/ubl-strings.h:105
msgid "Publish lazy mirror" msgid "Publish lazy mirror"
msgstr "" msgstr ""
#: source/ubl-strings.h:111 #: source/ubl-strings.h:106
msgid "Type" msgid "Type"
msgstr "" msgstr ""
#: source/ubl-strings.h:112 #: source/ubl-strings.h:107
msgid "Resource URL" msgid "Resource URL"
msgstr "" msgstr ""
#: source/ubl-strings.h:113 #: source/ubl-strings.h:108
msgid "Configure" msgid "Configure"
msgstr "" msgstr ""
#: source/ubl-strings.h:114 #: source/ubl-strings.h:109
msgid "Mirror publish configuration" msgid "Mirror publish configuration"
msgstr "" msgstr ""
#: source/ubl-strings.h:115 #: source/ubl-strings.h:110
msgid "Service port:" msgid "Service port:"
msgstr "" msgstr ""
#: source/ubl-strings.h:116 #: source/ubl-strings.h:111
msgid "Cache directory:" msgid "Cache directory:"
msgstr "" msgstr ""
#: source/ubl-strings.h:117 #: source/ubl-strings.h:112
msgid "Duration of inactivity (in seconds):" msgid "Duration of inactivity (in seconds):"
msgstr "" msgstr ""
#: source/ubl-strings.h:118 #: source/ubl-strings.h:113
msgid "Timeout (in seconds) for loading internel cache:" msgid "Timeout (in seconds) for loading internel cache:"
msgstr "" msgstr ""
#: source/ubl-strings.h:119 #: source/ubl-strings.h:114
msgid "Work through proxy:" msgid "Work through proxy:"
msgstr "" msgstr ""
#: source/ubl-strings.h:120 #: source/ubl-strings.h:115
msgid "User agent:" msgid "User agent:"
msgstr "" msgstr ""
#: source/ubl-strings.h:121 #: source/ubl-strings.h:116
msgid "Standard expression for cron:" msgid "Standard expression for cron:"
msgstr "" msgstr ""
#: source/ubl-strings.h:122 #: source/ubl-strings.h:117
msgid "" msgid ""
"The number of consecutie days that systems on the network have not been " "The number of consecutie days that systems on the network have not been "
"updated:" "updated:"
msgstr "" msgstr ""
#: source/ubl-strings.h:123 #: source/ubl-strings.h:118
msgid "The number of consecutive days wthout an update requested:" msgid "The number of consecutive days wthout an update requested:"
msgstr "" msgstr ""
#: source/ubl-strings.h:124 #: source/ubl-strings.h:119
msgid "Add mirror" msgid "Add mirror"
msgstr "" msgstr ""
#: source/ubl-strings.h:125 #: source/ubl-strings.h:120
msgid "Repository name:" msgid "Repository name:"
msgstr "" msgstr ""
#: source/ubl-strings.h:126 #: source/ubl-strings.h:121
msgid "Repository type:" msgid "Repository type:"
msgstr "" msgstr ""
#: source/ubl-strings.h:127 #: source/ubl-strings.h:122
msgid "WEB link" msgid "WEB link"
msgstr "" msgstr ""
#: source/ubl-strings.h:128 #: source/ubl-strings.h:123
msgid "Proxy server" msgid "Proxy server"
msgstr "" msgstr ""
#: source/ubl-strings.h:129 #: source/ubl-strings.h:124
msgid "Mirrors file" msgid "Mirrors file"
msgstr "" msgstr ""
#: source/ubl-strings.h:130 #: source/ubl-strings.h:125
msgid "Source:" msgid "Source:"
msgstr "" msgstr ""
#: source/ubl-strings.h:131 #: source/ubl-strings.h:126
msgid "Configuration" msgid "Configuration"
msgstr "" msgstr ""
#: source/ubl-strings.h:132 #: source/ubl-strings.h:127
msgid "Sign level:" msgid "Sign level:"
msgstr "" msgstr ""
#: source/ubl-strings.h:133 #: source/ubl-strings.h:128
msgid "Enable repository update" msgid "Enable repository update"
msgstr "" msgstr ""
#: source/ubl-strings.h:134 #: source/ubl-strings.h:129
msgid "Enable repository search" msgid "Enable repository search"
msgstr "" msgstr ""
#: source/ubl-strings.h:135 #: source/ubl-strings.h:130
msgid "" msgid ""
"Enable installation of packages from this repository during --sync operation" "Enable installation of packages from this repository during --sync operation"
msgstr "" msgstr ""
#: source/ubl-strings.h:136 #: source/ubl-strings.h:131
msgid "" msgid ""
"Allow this repository to be a valid source of packages when running --" "Allow this repository to be a valid source of packages when running --"
"sysupgrade" "sysupgrade"
msgstr "" msgstr ""
#: source/ubl-strings.h:137 #: source/ubl-strings.h:132
msgid "Enable publishing of local repository as WEB resource" msgid "Enable publishing of local repository as WEB resource"
msgstr "" msgstr ""
#: source/ubl-strings.h:138 #: source/ubl-strings.h:133
msgid "Path to publication directory:" msgid "Path to publication directory:"
msgstr "" msgstr ""
#: source/ubl-strings.h:139 #: source/ubl-strings.h:134
msgid "Port:" msgid "Port:"
msgstr "" msgstr ""
#: source/ubl-strings.h:140 #: source/ubl-strings.h:135
msgid "Publishing parameters" msgid "Publishing parameters"
msgstr "" msgstr ""
#: source/ubl-strings.h:141 #: source/ubl-strings.h:136
msgid "Enable WEB file browser" msgid "Enable WEB file browser"
msgstr "" msgstr ""
#: source/ubl-strings.h:143 #: source/ubl-strings.h:138
msgid "Set" msgid "Set"
msgstr "" msgstr ""
#: source/ubl-strings.h:144 #: source/ubl-strings.h:139
msgid "Username:" msgid "Username:"
msgstr "" msgstr ""
#: source/ubl-strings.h:145 #: source/ubl-strings.h:140
msgid "User password:" msgid "User password:"
msgstr "" msgstr ""
#: source/ubl-strings.h:146 #: source/ubl-strings.h:141
msgid "Not encrypted" msgid "Not encrypted"
msgstr "" msgstr ""
#: source/ubl-strings.h:147 #: source/ubl-strings.h:142
msgid "Encrypted with SHA256" msgid "Encrypted with SHA256"
msgstr "" msgstr ""
#: source/ubl-strings.h:148 #: source/ubl-strings.h:143
msgid "Encrypted with SHA512" msgid "Encrypted with SHA512"
msgstr "" msgstr ""
#: source/ubl-strings.h:149 #: source/ubl-strings.h:144
msgid "System" msgid "System"
msgstr "" msgstr ""
#: source/ubl-strings.h:154 #: source/ubl-strings.h:149
msgid "Sign level" msgid "Sign level"
msgstr "" msgstr ""
#: source/ubl-strings.h:155 #: source/ubl-strings.h:150
msgid "Description"
msgstr ""
#: source/ubl-strings.h:151
msgid "Password input" msgid "Password input"
msgstr "" msgstr ""
#: source/ubl-strings.h:156 #: source/ubl-strings.h:152
msgid "Password:" msgid "Password:"
msgstr "" msgstr ""
#: source/ubl-strings.h:157 #: source/ubl-strings.h:153
msgid "Repeat password:" msgid "Repeat password:"
msgstr "" msgstr ""
#: source/ubl-strings.h:158 #: source/ubl-strings.h:154
msgid "Entryption:" msgid "Entryption:"
msgstr "" msgstr ""
#: source/ubl-strings.h:159 #: source/ubl-strings.h:155
msgid "Do not encrypt password" msgid "Do not encrypt password"
msgstr "" msgstr ""
#: source/ubl-strings.h:160 #: source/ubl-strings.h:156
msgid "Password hash:" msgid "Password hash:"
msgstr "" msgstr ""
#: source/ubl-strings.h:157
msgid "Default (None)"
msgstr ""
#: source/ubl-strings.h:158
msgid "Encryption:"
msgstr ""
#: source/ubl-strings.h:159
msgid "Encryption"
msgstr ""

@ -17,7 +17,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
#: source/ubl-strings.h:4 #: source/ubl-strings.h:4 source/ubl-strings.h:45
msgid "System update" msgid "System update"
msgstr "Обновление системы" msgstr "Обновление системы"
@ -58,9 +58,17 @@ msgid "Edit repository for publication"
msgstr "Редактирование репозитория для публикации" msgstr "Редактирование репозитория для публикации"
#: source/ubl-strings.h:16 #: source/ubl-strings.h:16
msgid "passwords do not match" msgid "Passwords do not match"
msgstr "Пароли не совпадают" msgstr "Пароли не совпадают"
#: source/ubl-strings.h:17
msgid "Password contains restricted symbols"
msgstr "Пароль содержит запрещённые символы"
#: source/ubl-strings.h:17
msgid "Entry contains restricted symbols"
msgstr "Поле содержит запрещённые символы"
#: source/ubl-strings.h:18 #: source/ubl-strings.h:18
msgid "" msgid ""
"file://\t\t- Directory URL prefix for repository\n" "file://\t\t- Directory URL prefix for repository\n"
@ -90,78 +98,84 @@ msgstr ""
"mirrorlist - файл зерка, убедитесь что URL текущего сервера НЕ включен в " "mirrorlist - файл зерка, убедитесь что URL текущего сервера НЕ включен в "
"этот файл! Допускается только один параметр на репозиторий" "этот файл! Допускается только один параметр на репозиторий"
#: source/ubl-strings.h:26 #: source/ubl-strings.h:27
#, fuzzy msgid "Signature verification will not be performed"
msgstr "Проверка подписи выполняться не будет"
#: source/ubl-strings.h:28
msgid "" msgid ""
"• Never - Signature verification will not be performed\n" "Signatures will be verified if present, but unsigned databases and packages "
"• Optional - Signatures will be verified if present, but unsigned databases " "will also be accepted"
"and packages will also be accepted\n"
"• Required - Signatures will be required for all packages and databases\n"
"• TrustedOnly - If signature is verified for packages and database, it must "
"be in the keyring and fully trusted; marginal trust not applicable\n"
"• TrustAll - If signature is verified, it must be in keyring, but does not "
"need to have a trust level assigned (e.g. unknown or marginal trust)\n"
"• PackageNever - Packages only\n"
"• DatabaseNever - Database only\n"
"• PackageOptional - Packages only\n"
"• DatabaseOptional - Database only\n"
"• PackageRequired - Packages only\n"
"• DatabaseRequired - Database only\n"
"• PackageTrustedOnly - If signature is verified only for packages\n"
"• DatabaseTrustedOnly - If signature is verified only for database\n"
"• PackageTrustAll - If signature is verified only for packages\n"
"• DatabaseTrustAll - If signature is verified only for database\n"
msgstr "" msgstr ""
"• Never - Проверка подписи выполняться не будет\n" "Подписи будут проверяться при их наличии, но неподписанные базы данных и "
"• Optional - Подписи будут проверяться при их наличии, но неподписанные " "пакеты также будут приниматься"
"базы данных и пакеты также будут приниматься\n"
"• Required - Подписи будут необходимы для всех пакетов и баз данных.\n"
"• TrustedOnly - Если подпись проверяется для пакетов и базы, она должна "
"находиться в связке ключей и быть полностью доверенной; маргинальное доверие "
"не применимо\n"
"• TrustAll - Если подпись проверена, она должна находиться в связке ключей, "
"но ей не требуется назначать уровень доверия (например, неизвестное или "
"предельное доверие)\n"
"• PackageNever - Только для пакетов\n"
"• DatabaseNever - Только для базы данных\n"
"• PackageOptional - Только для пакетов\n"
"• DatabaseOptional - Только для базы данных\n"
"• PackageRequired - Только для пакетов\n"
"• DatabaseRequired - Только для базы данных\n"
"• PackageTrustedOnly - Если подпись проверяется только для пакетов\n"
"• DatabaseTrustedOnly - Если подпись проверяется только для базы данных\n"
"• PackageTrustAll - Если подпись проверена только для пакетов\n"
"• DatabaseTrustAll - Если подпись проверена только для базы данных\n"
#: source/ubl-strings.h:42 #: source/ubl-strings.h:29
msgid "Signatures will be required for all packages and databases"
msgstr "Подписи будут необходимы для всех пакетов и баз данных"
#: source/ubl-strings.h:30
msgid ""
"If signature is verified for packages and database, it must be in the "
"keyring and fully trusted; marginal trust not applicable"
msgstr ""
"Если подпись проверяется для пакетов и базы, она должна находиться в связке "
"ключей и быть полностью доверенной"
#: source/ubl-strings.h:31
msgid ""
"If signature is verified, it must be in keyring, but does not need to have a "
"trust level assigned (e.g. unknown or marginal trust)"
msgstr ""
"Если подпись проверена, она должна находиться в связке ключей, но ей не "
"требуется назначать уровень доверия (например, неизвестное или предельное "
"доверие)"
#: source/ubl-strings.h:32
msgid "Packages only"
msgstr "Только для пакетов"
#: source/ubl-strings.h:33
msgid "Database only"
msgstr "Только для базы данных"
#: source/ubl-strings.h:34
msgid "If signature is verified only for packages"
msgstr "Если подпись проверяется только для пакетов"
#: source/ubl-strings.h:35
msgid "If signature is verified only for database"
msgstr "Если подпись проверяется только для базы данных"
#: source/ubl-strings.h:36
msgid "every" msgid "every"
msgstr "каждые" msgstr "каждые"
#: source/ubl-strings.h:43 #: source/ubl-strings.h:37
msgid "Resource link of file path" msgid "Resource link of file path"
msgstr "Ссылка на ресурс или путь до файла" msgstr "Ссылка на ресурс или путь до файла"
#: source/ubl-strings.h:44 #: source/ubl-strings.h:38
msgid "Open file explorer" msgid "Open file explorer"
msgstr "Открыть в файловом менеджере" msgstr "Открыть в файловом менеджере"
#: source/ubl-strings.h:45 #: source/ubl-strings.h:39
msgid "Add source" msgid "Add source"
msgstr "Добавить источник" msgstr "Добавить источник"
#: source/ubl-strings.h:46 #: source/ubl-strings.h:40
msgid "Username" msgid "Username"
msgstr "Имя пользователя" msgstr "Имя пользователя"
#: source/ubl-strings.h:47 #: source/ubl-strings.h:41
msgid "User password" msgid "User password"
msgstr "Пароль" msgstr "Пароль"
#: source/ubl-strings.h:48 #: source/ubl-strings.h:42
msgid "Storage path to publish" msgid "Storage path to publish"
msgstr "Путь до каталога хранилища, который будет опубликован" msgstr "Путь до каталога хранилища, который будет опубликован"
#: source/ubl-strings.h:49 #: source/ubl-strings.h:43
msgid "" msgid ""
"The full URL of where to find the database, packages, and signatures (if " "The full URL of where to find the database, packages, and signatures (if "
"available) for this repository. Multiple can be specified, separated by " "available) for this repository. Multiple can be specified, separated by "
@ -170,163 +184,163 @@ msgstr ""
"Полный адрес места, где можно найти базу данных, пакеты и подписа (если " "Полный адрес места, где можно найти базу данных, пакеты и подписа (если "
"доступны) для этого репозитория. Возможно указать несколько через запятую (,)" "доступны) для этого репозитория. Возможно указать несколько через запятую (,)"
#: source/ubl-strings.h:50 source/ubl-strings.h:80 #: source/ubl-strings.h:44 source/ubl-strings.h:75
msgid "Update" msgid "Update"
msgstr "Обновить" msgstr "Обновление"
#: source/ubl-strings.h:51 #: source/ubl-strings.h:46
msgid "Repositories" msgid "Repositories"
msgstr "Репозитории" msgstr "Репозитории"
#: source/ubl-strings.h:52 #: source/ubl-strings.h:47
msgid "Publication" msgid "Publication"
msgstr "Публикация" msgstr "Публикация"
#: source/ubl-strings.h:53 #: source/ubl-strings.h:48
msgid "WEB-publication" msgid "WEB-publication"
msgstr "WEB-публикация" msgstr "WEB-публикация"
#: source/ubl-strings.h:54 #: source/ubl-strings.h:49
msgid "Mirror publication" msgid "Mirror publication"
msgstr "Публикация зеркала" msgstr "Публикация зеркала"
#: source/ubl-strings.h:55 #: source/ubl-strings.h:50
msgid "Date of last automatic update:" msgid "Date of last automatic update:"
msgstr "Дата последнего автообновления:" msgstr "Дата последнего автообновления:"
#: source/ubl-strings.h:56 #: source/ubl-strings.h:51
msgid "Date of last automatic update" msgid "Date of last automatic update"
msgstr "Дата последнего автообновления" msgstr "Дата последнего автообновления"
#: source/ubl-strings.h:57 #: source/ubl-strings.h:52
msgid "Automatic update" msgid "Automatic update"
msgstr "Автоматическое обновление" msgstr "Автоматическое обновление"
#: source/ubl-strings.h:58 #: source/ubl-strings.h:53
msgid "First update all modules and then the system" msgid "First update all modules and then the system"
msgstr "Вначале обновлять все модули и после систему" msgstr "Вначале обновлять все модули и после систему"
#: source/ubl-strings.h:59 #: source/ubl-strings.h:54
msgid "Update only modules" msgid "Update only modules"
msgstr "Обновлять только модули" msgstr "Обновлять только модули"
#: source/ubl-strings.h:60 #: source/ubl-strings.h:55
msgid "Update everything in the order of the specified repositories" msgid "Update everything in the order of the specified repositories"
msgstr "Обновлять всё в порядке указанных репозиториев" msgstr "Обновлять всё в порядке указанных репозиториев"
#: source/ubl-strings.h:61 #: source/ubl-strings.h:56
msgid "Update mode:" msgid "Update mode:"
msgstr "Режим обновления:" msgstr "Режим обновления:"
#: source/ubl-strings.h:62 #: source/ubl-strings.h:57
msgid "Update interval:" msgid "Update interval:"
msgstr "Интервал обновлений:" msgstr "Интервал обновлений:"
#: source/ubl-strings.h:64 #: source/ubl-strings.h:59
msgid "Update mode" msgid "Update mode"
msgstr "Режим обновления" msgstr "Режим обновления"
#: source/ubl-strings.h:65 #: source/ubl-strings.h:60
msgid "Update interval" msgid "Update interval"
msgstr "Интервал обновлений" msgstr "Интервал обновлений"
#: source/ubl-strings.h:66 #: source/ubl-strings.h:61
msgid "Boot" msgid "Boot"
msgstr "Запуск" msgstr "Запуск"
#: source/ubl-strings.h:67 source/ubl-strings.h:150 #: source/ubl-strings.h:62 source/ubl-strings.h:145
msgid "Minutes" msgid "Minutes"
msgstr "минут" msgstr "минут"
#: source/ubl-strings.h:68 source/ubl-strings.h:151 #: source/ubl-strings.h:63 source/ubl-strings.h:146
msgid "Hours" msgid "Hours"
msgstr "часов" msgstr "часов"
#: source/ubl-strings.h:69 source/ubl-strings.h:152 #: source/ubl-strings.h:64 source/ubl-strings.h:147
msgid "Days" msgid "Days"
msgstr "дней" msgstr "дней"
#: source/ubl-strings.h:70 source/ubl-strings.h:153 #: source/ubl-strings.h:65 source/ubl-strings.h:148
msgid "Months" msgid "Months"
msgstr "месяцев" msgstr "месяцев"
#: source/ubl-strings.h:71 #: source/ubl-strings.h:66
msgid "Repositories from which the update will occur" msgid "Repositories from which the update will occur"
msgstr "Репозитории с которых будет происходить обновление" msgstr "Репозитории с которых будет происходить обновление"
#: source/ubl-strings.h:72 source/ubl-strings.h:95 #: source/ubl-strings.h:67 source/ubl-strings.h:90
msgid "Repositories list:" msgid "Repositories list:"
msgstr "Список репозиториев:" msgstr "Список репозиториев:"
#: source/ubl-strings.h:73 #: source/ubl-strings.h:68
msgid "Repositories list" msgid "Repositories list"
msgstr "Список репозиториев" msgstr "Список репозиториев"
#: source/ubl-strings.h:74 #: source/ubl-strings.h:69
msgid "Default" msgid "Default"
msgstr "По умолчанию" msgstr "По умолчанию"
#: source/ubl-strings.h:75 source/ubl-strings.h:97 #: source/ubl-strings.h:70 source/ubl-strings.h:92
msgid "Choose" msgid "Choose"
msgstr "Выбрать" msgstr "Выбрать"
#: source/ubl-strings.h:76 #: source/ubl-strings.h:71
msgid "Chosen" msgid "Chosen"
msgstr "Выбран" msgstr "Выбран"
#: source/ubl-strings.h:77 #: source/ubl-strings.h:72
msgid "Repository" msgid "Repository"
msgstr "Репозиторий" msgstr "Репозиторий"
#: source/ubl-strings.h:78 #: source/ubl-strings.h:73
msgid "Manage repository list" msgid "Manage repository list"
msgstr "Управление списком репозиториев" msgstr "Управление списком репозиториев"
#: source/ubl-strings.h:79 #: source/ubl-strings.h:74
msgid "Disable system repositories" msgid "Disable system repositories"
msgstr "Отключить системные репозитории" msgstr "Отключить системные репозитории"
#: source/ubl-strings.h:81 #: source/ubl-strings.h:76
msgid "Move up" msgid "Move up"
msgstr "Переместить выше" msgstr "Переместить выше"
#: source/ubl-strings.h:82 #: source/ubl-strings.h:77
msgid "Move down" msgid "Move down"
msgstr "Переместить ниже" msgstr "Переместить ниже"
#: source/ubl-strings.h:83 #: source/ubl-strings.h:78
msgid "Add" msgid "Add"
msgstr "Добавить" msgstr "Добавить"
#: source/ubl-strings.h:84 #: source/ubl-strings.h:79
msgid "Edit" msgid "Edit"
msgstr "Изменить" msgstr "Изменить"
#: source/ubl-strings.h:85 #: source/ubl-strings.h:80
msgid "Remove" msgid "Remove"
msgstr "Удалить" msgstr "Удалить"
#: source/ubl-strings.h:86 #: source/ubl-strings.h:81
msgid "Enabled" msgid "Enabled"
msgstr "Включен" msgstr "Включен"
#: source/ubl-strings.h:87 #: source/ubl-strings.h:82
msgid "Source" msgid "Source"
msgstr "Источник" msgstr "Источник"
#: source/ubl-strings.h:88 #: source/ubl-strings.h:83
msgid "Signature level" msgid "Signature level"
msgstr "Уровень подписи" msgstr "Уровень подписи"
#: source/ubl-strings.h:89 #: source/ubl-strings.h:84
msgid "Usage level" msgid "Usage level"
msgstr "Уровень использования" msgstr "Уровень использования"
#: source/ubl-strings.h:90 #: source/ubl-strings.h:85
msgid "Repository connection configuration" msgid "Repository connection configuration"
msgstr "Настройки подключения репозитория" msgstr "Настройки подключения репозитория"
#: source/ubl-strings.h:91 #: source/ubl-strings.h:86
msgid "" msgid ""
"Setting up a connection to a distributed repository network and publishing " "Setting up a connection to a distributed repository network and publishing "
"your repositories" "your repositories"
@ -334,70 +348,70 @@ msgstr ""
"Настройки подключения к распределённой сети репозиториев и публикация своих " "Настройки подключения к распределённой сети репозиториев и публикация своих "
"репозиториев" "репозиториев"
#: source/ubl-strings.h:92 #: source/ubl-strings.h:87
msgid "Connect and publish" msgid "Connect and publish"
msgstr "Подключиться и опубликовать" msgstr "Подключиться и опубликовать"
#: source/ubl-strings.h:93 #: source/ubl-strings.h:88
msgid "Recieve DB packages from shared network" msgid "Recieve DB packages from shared network"
msgstr "Получать БД пакетов из распределённой сети" msgstr "Получать БД пакетов из распределённой сети"
#: source/ubl-strings.h:94 #: source/ubl-strings.h:89
msgid "Repositories for publishing" msgid "Repositories for publishing"
msgstr "Репозитории для публикации" msgstr "Репозитории для публикации"
#: source/ubl-strings.h:96 #: source/ubl-strings.h:91
msgid "All repositories" msgid "All repositories"
msgstr "Все репозитории" msgstr "Все репозитории"
#: source/ubl-strings.h:98 #: source/ubl-strings.h:93
msgid "Accept" msgid "Accept"
msgstr "Принять" msgstr "Принять"
#: source/ubl-strings.h:99 #: source/ubl-strings.h:94
msgid "Repository name" msgid "Repository name"
msgstr "Имя репозитория" msgstr "Имя репозитория"
#: source/ubl-strings.h:100 #: source/ubl-strings.h:95
msgid "" msgid ""
"Setting up publication of storage and/or repositories as a local WEB resource" "Setting up publication of storage and/or repositories as a local WEB resource"
msgstr "" msgstr ""
"Настройка публикации хранилища и/или репозиториев в виде локального WEB " "Настройка публикации хранилища и/или репозиториев в виде локального WEB "
"ресурса" "ресурса"
#: source/ubl-strings.h:101 source/ubl-strings.h:142 #: source/ubl-strings.h:96 source/ubl-strings.h:137
msgid "Authorization parameters" msgid "Authorization parameters"
msgstr "Параметры авторизации" msgstr "Параметры авторизации"
#: source/ubl-strings.h:102 #: source/ubl-strings.h:97
msgid "Storage" msgid "Storage"
msgstr "Хранилище" msgstr "Хранилище"
#: source/ubl-strings.h:103 #: source/ubl-strings.h:98
msgid "Chosen repositories" msgid "Chosen repositories"
msgstr "Выбранные репозитории" msgstr "Выбранные репозитории"
#: source/ubl-strings.h:104 #: source/ubl-strings.h:99
msgid "Reviewer" msgid "Reviewer"
msgstr "Обозреватель" msgstr "Обозреватель"
#: source/ubl-strings.h:105 #: source/ubl-strings.h:100
msgid "Port" msgid "Port"
msgstr "Порт" msgstr "Порт"
#: source/ubl-strings.h:106 #: source/ubl-strings.h:101
msgid "Name" msgid "Name"
msgstr "Имя пользователя" msgstr "Имя пользователя"
#: source/ubl-strings.h:107 #: source/ubl-strings.h:102
msgid "Password/Hash type" msgid "Password/Hash type"
msgstr "Пароль/Тип хэша" msgstr "Пароль/Тип хэша"
#: source/ubl-strings.h:108 #: source/ubl-strings.h:103
msgid "Password/Password hash" msgid "Password/Password hash"
msgstr "Пароль/Хэш пароля" msgstr "Пароль/Хэш пароля"
#: source/ubl-strings.h:109 #: source/ubl-strings.h:104
msgid "" msgid ""
"Setting up publication of a lazy mirror of connected repositories as a local " "Setting up publication of a lazy mirror of connected repositories as a local "
"WEB resource" "WEB resource"
@ -405,117 +419,117 @@ msgstr ""
"Настройка публикации ленивого зеркала подключенных репозиториев в виде " "Настройка публикации ленивого зеркала подключенных репозиториев в виде "
"локального WEB ресурса" "локального WEB ресурса"
#: source/ubl-strings.h:110 #: source/ubl-strings.h:105
msgid "Publish lazy mirror" msgid "Publish lazy mirror"
msgstr "Опубликовать ленивое зеркало" msgstr "Опубликовать ленивое зеркало"
#: source/ubl-strings.h:111 #: source/ubl-strings.h:106
msgid "Type" msgid "Type"
msgstr "Тип" msgstr "Тип"
#: source/ubl-strings.h:112 #: source/ubl-strings.h:107
msgid "Resource URL" msgid "Resource URL"
msgstr "Ресурс URL" msgstr "Ресурс URL"
#: source/ubl-strings.h:113 #: source/ubl-strings.h:108
msgid "Configure" msgid "Configure"
msgstr "Настроить" msgstr "Настроить"
#: source/ubl-strings.h:114 #: source/ubl-strings.h:109
msgid "Mirror publish configuration" msgid "Mirror publish configuration"
msgstr "Параметры публикации зеркала" msgstr "Параметры публикации зеркала"
#: source/ubl-strings.h:115 #: source/ubl-strings.h:110
msgid "Service port:" msgid "Service port:"
msgstr "Порт сервиса:" msgstr "Порт сервиса:"
#: source/ubl-strings.h:116 #: source/ubl-strings.h:111
msgid "Cache directory:" msgid "Cache directory:"
msgstr "Каталог кеша:" msgstr "Каталог кеша:"
#: source/ubl-strings.h:117 #: source/ubl-strings.h:112
msgid "Duration of inactivity (in seconds):" msgid "Duration of inactivity (in seconds):"
msgstr "Продолжительность бездействия (в секундах):" msgstr "Продолжительность бездействия (в секундах):"
#: source/ubl-strings.h:118 #: source/ubl-strings.h:113
msgid "Timeout (in seconds) for loading internel cache:" msgid "Timeout (in seconds) for loading internel cache:"
msgstr "Таймаут (в секундах) для загрузки интернет-кэша:" msgstr "Таймаут (в секундах) для загрузки интернет-кэша:"
#: source/ubl-strings.h:119 #: source/ubl-strings.h:114
msgid "Work through proxy:" msgid "Work through proxy:"
msgstr "Работать через прокси:" msgstr "Работать через прокси:"
#: source/ubl-strings.h:120 #: source/ubl-strings.h:115
msgid "User agent:" msgid "User agent:"
msgstr "Пользовательский агент:" msgstr "Пользовательский агент:"
#: source/ubl-strings.h:121 #: source/ubl-strings.h:116
msgid "Standard expression for cron:" msgid "Standard expression for cron:"
msgstr "Стандартное выражение cron:" msgstr "Стандартное выражение cron:"
#: source/ubl-strings.h:122 #: source/ubl-strings.h:117
msgid "" msgid ""
"The number of consecutie days that systems on the network have not been " "The number of consecutie days that systems on the network have not been "
"updated:" "updated:"
msgstr "" msgstr ""
"Количество дней подряд, в течение которых не обновляются системы в сети:" "Количество дней подряд, в течение которых не обновляются системы в сети:"
#: source/ubl-strings.h:123 #: source/ubl-strings.h:118
msgid "The number of consecutive days wthout an update requested:" msgid "The number of consecutive days wthout an update requested:"
msgstr "" msgstr ""
"Количество дней подряд, в течение которых не было запрошено обновление:" "Количество дней подряд, в течение которых не было запрошено обновление:"
#: source/ubl-strings.h:124 #: source/ubl-strings.h:119
msgid "Add mirror" msgid "Add mirror"
msgstr "Добавить зеркало" msgstr "Добавить зеркало"
#: source/ubl-strings.h:125 #: source/ubl-strings.h:120
msgid "Repository name:" msgid "Repository name:"
msgstr "Имя репозитория:" msgstr "Имя репозитория:"
#: source/ubl-strings.h:126 #: source/ubl-strings.h:121
msgid "Repository type:" msgid "Repository type:"
msgstr "Тип репозитория:" msgstr "Тип репозитория:"
#: source/ubl-strings.h:127 #: source/ubl-strings.h:122
msgid "WEB link" msgid "WEB link"
msgstr "Вэб ссылка" msgstr "Вэб ссылка"
#: source/ubl-strings.h:128 #: source/ubl-strings.h:123
msgid "Proxy server" msgid "Proxy server"
msgstr "Прокси-сервер" msgstr "Прокси-сервер"
#: source/ubl-strings.h:129 #: source/ubl-strings.h:124
msgid "Mirrors file" msgid "Mirrors file"
msgstr "Файл зеркал" msgstr "Файл зеркал"
#: source/ubl-strings.h:130 #: source/ubl-strings.h:125
msgid "Source:" msgid "Source:"
msgstr "Источник:" msgstr "Источник:"
#: source/ubl-strings.h:131 #: source/ubl-strings.h:126
msgid "Configuration" msgid "Configuration"
msgstr "Конфигурация" msgstr "Конфигурация"
#: source/ubl-strings.h:132 #: source/ubl-strings.h:127
msgid "Sign level:" msgid "Sign level:"
msgstr "Уровень подписи:" msgstr "Уровень подписи:"
#: source/ubl-strings.h:133 #: source/ubl-strings.h:128
msgid "Enable repository update" msgid "Enable repository update"
msgstr "Включать обновления для этого репозитория" msgstr "Включать обновления для этого репозитория"
#: source/ubl-strings.h:134 #: source/ubl-strings.h:129
msgid "Enable repository search" msgid "Enable repository search"
msgstr "Включать поиск этого репозитория" msgstr "Включать поиск этого репозитория"
#: source/ubl-strings.h:135 #: source/ubl-strings.h:130
msgid "" msgid ""
"Enable installation of packages from this repository during --sync operation" "Enable installation of packages from this repository during --sync operation"
msgstr "" msgstr ""
"Включать установку пакетов из этого репозитория во время операции --sync" "Включать установку пакетов из этого репозитория во время операции --sync"
#: source/ubl-strings.h:136 #: source/ubl-strings.h:131
msgid "" msgid ""
"Allow this repository to be a valid source of packages when running --" "Allow this repository to be a valid source of packages when running --"
"sysupgrade" "sysupgrade"
@ -523,82 +537,98 @@ msgstr ""
"Позволить этому репозиторию быть действительным источником пакетов при " "Позволить этому репозиторию быть действительным источником пакетов при "
"выполнении --sysupgrade" "выполнении --sysupgrade"
#: source/ubl-strings.h:137 #: source/ubl-strings.h:132
msgid "Enable publishing of local repository as WEB resource" msgid "Enable publishing of local repository as WEB resource"
msgstr "Включить публикацию локального репозитория в виде WEB ресурса" msgstr "Включить публикацию локального репозитория в виде WEB ресурса"
#: source/ubl-strings.h:138 #: source/ubl-strings.h:133
msgid "Path to publication directory:" msgid "Path to publication directory:"
msgstr "Хранилище:" msgstr "Хранилище:"
#: source/ubl-strings.h:139 #: source/ubl-strings.h:134
msgid "Port:" msgid "Port:"
msgstr "Порт:" msgstr "Порт:"
#: source/ubl-strings.h:140 #: source/ubl-strings.h:135
msgid "Publishing parameters" msgid "Publishing parameters"
msgstr "Параметры публикации" msgstr "Параметры публикации"
#: source/ubl-strings.h:141 #: source/ubl-strings.h:136
msgid "Enable WEB file browser" msgid "Enable WEB file browser"
msgstr "Включить WEB обозреватель файлов" msgstr "Включить WEB обозреватель файлов"
#: source/ubl-strings.h:143 #: source/ubl-strings.h:138
msgid "Set" msgid "Set"
msgstr "Задать" msgstr "Задать"
#: source/ubl-strings.h:144 #: source/ubl-strings.h:139
msgid "Username:" msgid "Username:"
msgstr "Имя пользователя:" msgstr "Имя пользователя:"
#: source/ubl-strings.h:145 #: source/ubl-strings.h:140
msgid "User password:" msgid "User password:"
msgstr "Пароль:" msgstr "Пароль:"
#: source/ubl-strings.h:146 #: source/ubl-strings.h:141
msgid "Not encrypted" msgid "Not encrypted"
msgstr "Пароль не требуется" msgstr "Пароль не требуется"
#: source/ubl-strings.h:147 #: source/ubl-strings.h:142
msgid "Encrypted with SHA256" msgid "Encrypted with SHA256"
msgstr "Шфировать с SHA256" msgstr "Шфировать с SHA256"
#: source/ubl-strings.h:148 #: source/ubl-strings.h:143
msgid "Encrypted with SHA512" msgid "Encrypted with SHA512"
msgstr "Шифровать с SHA512" msgstr "Шифровать с SHA512"
#: source/ubl-strings.h:149 #: source/ubl-strings.h:144
msgid "System" msgid "System"
msgstr "Система" msgstr "Система"
#: source/ubl-strings.h:154 #: source/ubl-strings.h:149
msgid "Sign level" msgid "Sign level"
msgstr "Уровень подписи:" msgstr "Уровень подписи"
#: source/ubl-strings.h:155 #: source/ubl-strings.h:150
msgid "Description"
msgstr "Описание"
#: source/ubl-strings.h:151
msgid "Password input" msgid "Password input"
msgstr "Ввод пароля" msgstr "Ввод пароля"
#: source/ubl-strings.h:156 #: source/ubl-strings.h:152
msgid "Password:" msgid "Password:"
msgstr "Пароль:" msgstr "Пароль:"
#: source/ubl-strings.h:157 #: source/ubl-strings.h:153
msgid "Repeat password:" msgid "Repeat password:"
msgstr "Подтвердите ввод пароля:" msgstr "Подтвердите ввод пароля:"
#: source/ubl-strings.h:158 #: source/ubl-strings.h:154
msgid "Entryption:" msgid "Entryption:"
msgstr "Алгоритм шифрования пароля:" msgstr "Алгоритм шифрования пароля:"
#: source/ubl-strings.h:159 #: source/ubl-strings.h:155
msgid "Do not encrypt password" msgid "Do not encrypt password"
msgstr "Не шифровать пароль" msgstr "Не шифровать пароль"
#: source/ubl-strings.h:160 #: source/ubl-strings.h:156
msgid "Password hash:" msgid "Password hash:"
msgstr "Пароль/Хэш пароля" msgstr "Пароль/Хэш пароля"
#: source/ubl-strings.h:157
msgid "Default (None)"
msgstr "По умолчанию (Отсутствует)"
#: source/ubl-strings.h:158
msgid "Encryption:"
msgstr "Алгоритм шифрования пароля:"
#: source/ubl-strings.h:159
msgid "Encryption"
msgstr "Алгоритм шифрования пароля"
msgid "Check system updates at system startup" msgid "Check system updates at system startup"
msgstr "Проверять обновления при загрузке системы" msgstr "Проверять обновления при загрузке системы"
@ -607,35 +637,3 @@ msgstr "дней"
msgid "Cancel" msgid "Cancel"
msgstr "Отмена" msgstr "Отмена"
msgid "Signature verification will not be performed"
msgstr "Проверка подписи выполняться не будет"
msgid "For packages only"
msgstr "Только для пакетов"
msgid "For database only"
msgstr "Только для базы данных"
msgid ""
"Signatures will be checked if present, but unsigned databases and "
"packages will also be accepted"
msgstr ""
"Подписи будут проверяться при их наличии, но неподписанные базы данных и "
"пакеты также будут приниматься"
msgid "Signatures will be required for all packages and databases"
msgstr "Подписи будут необходимы для всех пакетов и баз данных"
msgid ""
"If the signature is verified for packages and the database, it must be in "
"the keyring and be fully trusted"
msgstr ""
"Если подпись проверяется для пакетов и базы, она должна находиться в "
"связке ключей и быть полностью доверенной"
msgid "If the signature is verified only for packets"
msgstr "Если подпись проверяется только для пакетов"
msgid "If the signature is verified only for the database"
msgstr "Если подпись проверяется только для базы данных"

Loading…
Cancel
Save