Merge pull request 'master' (#120) from YanTheKaller/ubl-settings-repomanager:master into master

Reviewed-on: #120
pull/132/head v2.16
Dmitry Razumov 4 months ago
commit 4fda4afa0e

@ -157,6 +157,22 @@ void on_add_packages_accept(GtkWidget *self, dictionary *dict){
const char *repo = gtk_combo_box_get_active_id(GTK_COMBO_BOX(window->RepositoryCombo)); const char *repo = gtk_combo_box_get_active_id(GTK_COMBO_BOX(window->RepositoryCombo));
const char *arch = gtk_combo_box_get_active_id(GTK_COMBO_BOX(window->ArchitectureCombo)); const char *arch = gtk_combo_box_get_active_id(GTK_COMBO_BOX(window->ArchitectureCombo));
if (yon_char_is_empty(storage)||yon_char_is_empty(repo)||yon_char_is_empty(arch)){
yon_ubl_status_box_spawn(GTK_CONTAINER(window->StatusBox),EMPTY_IMPORTANT_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE);
yon_ubl_status_highlight_incorrect(window->StorageCombo);
return;
}
if (yon_char_is_empty(repo)){
yon_ubl_status_box_spawn(GTK_CONTAINER(window->StatusBox),EMPTY_IMPORTANT_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE);
yon_ubl_status_highlight_incorrect(window->RepositoryCombo);
return;
}
if (yon_char_is_empty(arch)){
yon_ubl_status_box_spawn(GTK_CONTAINER(window->StatusBox),EMPTY_IMPORTANT_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE);
yon_ubl_status_highlight_incorrect(window->ArchitectureCombo);
return;
}
const char *repo_sign = gtk_combo_box_get_active_id(GTK_COMBO_BOX(window->RepoSignCombo)); const char *repo_sign = gtk_combo_box_get_active_id(GTK_COMBO_BOX(window->RepoSignCombo));
const char *package_sign = gtk_combo_box_get_active_id(GTK_COMBO_BOX(window->PackageSignCombo)); const char *package_sign = gtk_combo_box_get_active_id(GTK_COMBO_BOX(window->PackageSignCombo));
GtkTreeIter iter; GtkTreeIter iter;
@ -169,6 +185,12 @@ void on_add_packages_accept(GtkWidget *self, dictionary *dict){
yon_char_parsed_add_or_create_if_exists(parsed, &size,path); yon_char_parsed_add_or_create_if_exists(parsed, &size,path);
} }
if (!size){
yon_ubl_status_box_spawn(GTK_CONTAINER(window->StatusBox),PACKAGES_REMOVE_ERROR_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE);
yon_ubl_status_highlight_incorrect(window->PackagesTree);
return;
}
char *packages = yon_char_parsed_to_string(parsed,size," "); char *packages = yon_char_parsed_to_string(parsed,size," ");
char *command = NULL; char *command = NULL;
if (repo_sign&&package_sign){ if (repo_sign&&package_sign){
@ -220,6 +242,11 @@ void yon_add_window_set_selected(main_window *widgets, repo_add_window *window){
storage = ((arch_struct*)storage_str)->storage_path; storage = ((arch_struct*)storage_str)->storage_path;
repo = ((arch_struct*)storage_str)->repo_name; repo = ((arch_struct*)storage_str)->repo_name;
arch = ((arch_struct*)storage_str)->name; arch = ((arch_struct*)storage_str)->name;
} else if (depth==1){
storage = ((repo_struct*)storage_str)->storage_path;
repo = ((arch_struct*)storage_str)->name;
} else if (depth == 0){
storage = storage_str->path;
} }
if (!yon_char_is_empty(storage)) gtk_combo_box_set_active_id(GTK_COMBO_BOX(window->StorageCombo),storage); if (!yon_char_is_empty(storage)) gtk_combo_box_set_active_id(GTK_COMBO_BOX(window->StorageCombo),storage);
while(gtk_events_pending()) gtk_main_iteration(); while(gtk_events_pending()) gtk_main_iteration();

@ -281,6 +281,11 @@ void yon_move_window_set_selected(main_window *widgets, repo_add_window *window)
storage = ((arch_struct*)storage_str)->storage_path; storage = ((arch_struct*)storage_str)->storage_path;
repo = ((arch_struct*)storage_str)->repo_name; repo = ((arch_struct*)storage_str)->repo_name;
arch = ((arch_struct*)storage_str)->name; arch = ((arch_struct*)storage_str)->name;
} else if (depth==1){
storage = ((repo_struct*)storage_str)->storage_path;
repo = ((arch_struct*)storage_str)->name;
} else if (depth == 0){
storage = storage_str->path;
} }
if (!yon_char_is_empty(storage)) gtk_combo_box_set_active_id(GTK_COMBO_BOX(window->MoveSourceStorageEntry),storage); if (!yon_char_is_empty(storage)) gtk_combo_box_set_active_id(GTK_COMBO_BOX(window->MoveSourceStorageEntry),storage);
while(gtk_events_pending()) gtk_main_iteration(); while(gtk_events_pending()) gtk_main_iteration();

@ -17,7 +17,22 @@ void on_remove_accept(GtkWidget *self, dictionary *dict){
const char *arch = (char*)gtk_combo_box_text_get_active_text(GTK_COMBO_BOX_TEXT(window->ArchitectureCombo)); const char *arch = (char*)gtk_combo_box_text_get_active_text(GTK_COMBO_BOX_TEXT(window->ArchitectureCombo));
const char *sign = (char*)gtk_combo_box_get_active_id(GTK_COMBO_BOX(window->RepoSignCombo)); const char *sign = (char*)gtk_combo_box_get_active_id(GTK_COMBO_BOX(window->RepoSignCombo));
if (!yon_char_is_empty(storage_path)){ if (yon_char_is_empty(storage_path)||yon_char_is_empty(repo)||yon_char_is_empty(arch)){
yon_ubl_status_box_spawn(GTK_CONTAINER(window->StatusBox),EMPTY_IMPORTANT_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE);
yon_ubl_status_highlight_incorrect(window->StorageCombo);
return;
}
if (yon_char_is_empty(repo)){
yon_ubl_status_box_spawn(GTK_CONTAINER(window->StatusBox),EMPTY_IMPORTANT_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE);
yon_ubl_status_highlight_incorrect(window->RepositoryCombo);
return;
}
if (yon_char_is_empty(arch)){
yon_ubl_status_box_spawn(GTK_CONTAINER(window->StatusBox),EMPTY_IMPORTANT_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE);
yon_ubl_status_highlight_incorrect(window->ArchitectureCombo);
return;
}
GtkTreeIter iter; GtkTreeIter iter;
GtkTreeModel *model = GTK_TREE_MODEL(window->PackagesList); GtkTreeModel *model = GTK_TREE_MODEL(window->PackagesList);
int size; int size;
@ -29,16 +44,18 @@ void on_remove_accept(GtkWidget *self, dictionary *dict){
char *filename = yon_char_divide(target,yon_char_find_last(target,'/')); char *filename = yon_char_divide(target,yon_char_find_last(target,'/'));
yon_char_parsed_add_or_create_if_exists(packages,&size,target); yon_char_parsed_add_or_create_if_exists(packages,&size,target);
} }
if (size){ if (!size){
yon_ubl_status_box_spawn(GTK_CONTAINER(window->StatusBox),PACKAGES_REMOVE_ERROR_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE);
yon_ubl_status_highlight_incorrect(window->PackagesTree);
return;
}
char *final = yon_char_parsed_to_string(packages,size," "); char *final = yon_char_parsed_to_string(packages,size," ");
char *command = remove_packages_command(storage_path,arch,repo,final,sign); char *command = remove_packages_command(storage_path,arch,repo,final,sign);
if (system(yon_debug_output("%s\n",command))){ if (system(yon_debug_output("%s\n",command))){
yon_ubl_status_box_render(PACKAGES_REMOVE_ERROR_LABEL,BACKGROUND_IMAGE_FAIL_TYPE); yon_ubl_status_box_render(PACKAGES_REMOVE_ERROR_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE);
} else { } else {
yon_ubl_status_box_render(PACKAGES_REMOVE_SUCCESS_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE); yon_ubl_status_box_render(PACKAGES_REMOVE_SUCCESS_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE);
} }
}
}
gtk_widget_destroy(window->MainWindow); gtk_widget_destroy(window->MainWindow);
free(window); free(window);
yon_interface_update(widgets); yon_interface_update(widgets);

@ -97,9 +97,7 @@ void on_storage_remove(GtkWidget *self, storage_config_window *window){
storage_struct *storage = g_hash_table_lookup(window->storages_copy,storage_target); storage_struct *storage = g_hash_table_lookup(window->storages_copy,storage_target);
if (storage){ if (storage){
const char *path = gtk_combo_box_get_active_id(GTK_COMBO_BOX(window->StoragePathCombo)); const char *path = gtk_combo_box_get_active_id(GTK_COMBO_BOX(window->StoragePathCombo));
if (!config((char*)path)){
yon_config_register((char*)path,STORAGE_command,"-"); yon_config_register((char*)path,STORAGE_command,"-");
}
yon_config_set_status((char*)path,-2); yon_config_set_status((char*)path,-2);
gtk_combo_box_text_remove(GTK_COMBO_BOX_TEXT(window->StoragePathCombo),gtk_combo_box_get_active(GTK_COMBO_BOX(window->StoragePathCombo))); gtk_combo_box_text_remove(GTK_COMBO_BOX_TEXT(window->StoragePathCombo),gtk_combo_box_get_active(GTK_COMBO_BOX(window->StoragePathCombo)));
gtk_combo_box_set_active(GTK_COMBO_BOX(window->StoragePathCombo),0); gtk_combo_box_set_active(GTK_COMBO_BOX(window->StoragePathCombo),0);
@ -183,13 +181,15 @@ void yon_storage_remove(char *key, storage_struct *storage,void*){
break; break;
} }
int size; int size;
if (!yon_char_is_empty(parameter)&&strcmp(parameter,"-")){
config_str parsed = yon_char_parse(parameter,&size,","); config_str parsed = yon_char_parse(parameter,&size,",");
for (int i=0;i<size;i++){ for (int i=0;i<size;i++){
char *sign = config(parsed[i]); char *sign = config(parsed[i]);
char *repo_name = parsed[i]+yon_char_find_last(parsed[i],'/')+1; char *repo_name = parsed[i]+yon_char_find_last(parsed[i],'/')+1;
char *command = create_storage_command(key,repo_name,sign); char *command = create_storage_command(key,repo_name,sign);
yon_launch(yon_debug_output("%s\n",command)); yon_launch(yon_debug_output("%s\n",command));
free(command); free(command);
}
} }
yon_storage_sturct_free_full(storage); yon_storage_sturct_free_full(storage);
} }

Loading…
Cancel
Save