master #132

Merged
asmeron merged 8 commits from YanTheKaller/ubl-settings-repomanager:master into master 2 months ago

@ -38,7 +38,10 @@ void yon_repo_fill_archs(repo_struct *repo){
int size; int size;
config_str folders = yon_dir_get_contents(repo->path,&size); config_str folders = yon_dir_get_contents(repo->path,&size);
for (int i=0;i<size;i++){ for (int i=0;i<size;i++){
if (yon_file_is_directory(folders[i])&&(strcmp(folders[i],".")&&strcmp(folders[i],".."))){ char *full_path = yon_char_unite(repo->path,"/",folders[i],NULL);
if (yon_file_is_directory(full_path)&&
(strcmp(folders[i],".")&&
strcmp(folders[i],".."))){
arch_struct *arch = yon_arch_struct_new(); arch_struct *arch = yon_arch_struct_new();
arch->name = yon_char_new(folders[i]); arch->name = yon_char_new(folders[i]);
arch->path = yon_char_unite(repo->path,"/",arch->name,NULL); arch->path = yon_char_unite(repo->path,"/",arch->name,NULL);
@ -47,6 +50,7 @@ void yon_repo_fill_archs(repo_struct *repo){
yon_arch_fill_packages(arch); yon_arch_fill_packages(arch);
g_hash_table_insert(repo->archs,arch->name,arch); g_hash_table_insert(repo->archs,arch->name,arch);
} }
free(full_path);
} }
} }

@ -53,12 +53,12 @@ void on_storage_open(GtkWidget *self, storage_config_window *window){
int exist_size=0; int exist_size=0;
config_str exist_storages = (config_str)g_hash_table_get_keys_as_array(main_config.storages,&exist_size); config_str exist_storages = (config_str)g_hash_table_get_keys_as_array(main_config.storages,&exist_size);
for (int i=0;i<exist_size;i++){ for (int i=0;i<exist_size;i++){
printf("%s -- %s\n",filename,exist_storages[i]);
if (strstr(filename,exist_storages[i])){ if (strstr(filename,exist_storages[i])){
yon_ubl_status_box_spawn(GTK_CONTAINER(window->StatusBox),INSIDE_STORAGE_ERROR_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE); yon_ubl_status_box_spawn(GTK_CONTAINER(window->StatusBox),INSIDE_STORAGE_ERROR_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE);
return; return;
} }
} }
yon_char_parsed_free(exist_storages,exist_size);
storage_struct *storage = yon_storage_struct_new(); storage_struct *storage = yon_storage_struct_new();
storage->path=dialog->last_success_selection; storage->path=dialog->last_success_selection;
storage->name = yon_char_new(storage->path); storage->name = yon_char_new(storage->path);
@ -71,6 +71,7 @@ void on_storage_open(GtkWidget *self, storage_config_window *window){
gtk_combo_box_set_active_id(GTK_COMBO_BOX(window->StoragePathCombo),storage->path); gtk_combo_box_set_active_id(GTK_COMBO_BOX(window->StoragePathCombo),storage->path);
yon_config_register(storage->path,STORAGE_command,""); yon_config_register(storage->path,STORAGE_command,"");
yon_storage_open_add_repos(storage->path,window); yon_storage_open_add_repos(storage->path,window);
yon_storage_config_update(window);
} }
} }
@ -254,11 +255,13 @@ void on_storage_accept(GtkWidget *self, dictionary *dict){
for (int i=0;i<size;i++){ for (int i=0;i<size;i++){
int repos_size; int repos_size;
config_str repos = yon_char_parse(config(keys[i]),&repos_size,","); config_str repos = yon_char_parse(config(keys[i]),&repos_size,",");
if (repos_size){
qsort(repos,repos_size,sizeof(char*),yon_char_parsed_compare); qsort(repos,repos_size,sizeof(char*),yon_char_parsed_compare);
char *repos_string = yon_char_parsed_to_string(repos,repos_size,","); char *repos_string = yon_char_parsed_to_string(repos,repos_size,",");
yon_config_set(keys[i],repos_string); yon_config_set(keys[i],repos_string);
free(repos_string); free(repos_string);
yon_char_parsed_free(repos,repos_size); yon_char_parsed_free(repos,repos_size);
}
yon_storage_remove(keys[i],g_hash_table_lookup(window->storages_copy,keys[i]),NULL); yon_storage_remove(keys[i],g_hash_table_lookup(window->storages_copy,keys[i]),NULL);
} }
g_hash_table_remove_all(window->storages_copy); g_hash_table_remove_all(window->storages_copy);

@ -67,6 +67,7 @@ int yon_storages_load(main_window *widgets){
if (yon_char_is_empty(repos)) continue; if (yon_char_is_empty(repos)) continue;
int repos_size; int repos_size;
config_str repo_names = yon_char_parse(repos,&repos_size,","); config_str repo_names = yon_char_parse(repos,&repos_size,",");
qsort(repo_names,repos_size,sizeof(char*),yon_char_parsed_compare);
yon_storage_fill_repos(storage,repo_names,repos_size); yon_storage_fill_repos(storage,repo_names,repos_size);
yon_char_parsed_free(repo_names,repos_size); yon_char_parsed_free(repo_names,repos_size);
} }
@ -164,11 +165,8 @@ void yon_interface_update(main_window *widgets){
// } // }
void yon_sublist_build(char *key, storage_struct *storage, main_window *widgets){ // void yon_sublist_build(char *key, storage_struct *storage, main_window *widgets){
GtkTreeIter iter; // }
gtk_list_store_append(widgets->RepoFileList,&iter);
gtk_list_store_set(widgets->RepoFileList,&iter,1,storage->name,-1);
}
void yon_sublist_packages_build(char *key, char *file, main_window *widgets){ void yon_sublist_packages_build(char *key, char *file, main_window *widgets){
GtkTreeIter iter; GtkTreeIter iter;
@ -188,7 +186,14 @@ void on_main_tree_selection_changed(GtkWidget *, main_window *widgets){
gtk_tree_model_get(model,&iter,7,&data_struct,8,&data_type,-1); gtk_tree_model_get(model,&iter,7,&data_struct,8,&data_type,-1);
if (data_type!=YON_REPO_DATA_ARCH){ if (data_type!=YON_REPO_DATA_ARCH){
g_hash_table_foreach(data_struct->repos,(GHFunc)yon_sublist_build,widgets); int size;
config_str repos = (config_str)g_hash_table_get_keys_as_array(data_struct->repos,&size);
qsort(repos,size,sizeof(char*),yon_char_parsed_compare);
GtkTreeIter iter;
for (int i=0;i<size;i++){
gtk_list_store_append(widgets->RepoFileList,&iter);
gtk_list_store_set(widgets->RepoFileList,&iter,1,repos[i],-1);
}
} else { } else {
int size; int size;
config_str packages = yon_arch_struct_get_packages((arch_struct*)data_struct, &size); config_str packages = yon_arch_struct_get_packages((arch_struct*)data_struct, &size);

@ -398,7 +398,7 @@ void yon_repo_tree_build_repo(char *key, repo_struct *repo, struct repo_tree_bui
void yon_repo_tree_build_arch(char *key, arch_struct *arch, struct repo_tree_build *data); void yon_repo_tree_build_arch(char *key, arch_struct *arch, struct repo_tree_build *data);
void yon_interface_update(main_window *widgets); void yon_interface_update(main_window *widgets);
void yon_sublist_packages_build(char *key, char *file, main_window *widgets); void yon_sublist_packages_build(char *key, char *file, main_window *widgets);
void yon_sublist_build(char *key, storage_struct *storage, main_window *widgets); // void yon_sublist_build(char *key, storage_struct *storage, main_window *widgets);
void yon_storage_repo_block_destroy(storage_repo_block *block); void yon_storage_repo_block_destroy(storage_repo_block *block);
void yon_storage_hash_table_clone(GHashTable *source_hash, GHashTable *target_hash); void yon_storage_hash_table_clone(GHashTable *source_hash, GHashTable *target_hash);
void yon_storage_sturct_free_full(storage_struct *storage); void yon_storage_sturct_free_full(storage_struct *storage);

@ -2,6 +2,7 @@
margin:0px; margin:0px;
padding:0px; padding:0px;
} }
.noborder { .noborder {
border:none; border:none;
} }
@ -141,3 +142,8 @@ background:transparent;
treeview row:nth-child(odd) { background-color: #000000; } treeview row:nth-child(odd) { background-color: #000000; }
treeview row:nth-child(even) { background-color: #ffffff; } treeview row:nth-child(even) { background-color: #ffffff; }
button {
min-width: 26px;
min-height: 24px;
}
Loading…
Cancel
Save