diff --git a/source/ubl-settings-repomanager-data-structs.c b/source/ubl-settings-repomanager-data-structs.c index 5bd68d0..8b71619 100644 --- a/source/ubl-settings-repomanager-data-structs.c +++ b/source/ubl-settings-repomanager-data-structs.c @@ -38,7 +38,10 @@ void yon_repo_fill_archs(repo_struct *repo){ int size; config_str folders = yon_dir_get_contents(repo->path,&size); for (int i=0;ipath,"/",folders[i],NULL); + if (yon_file_is_directory(full_path)&& + (strcmp(folders[i],".")&& + strcmp(folders[i],".."))){ arch_struct *arch = yon_arch_struct_new(); arch->name = yon_char_new(folders[i]); 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); g_hash_table_insert(repo->archs,arch->name,arch); } + free(full_path); } } diff --git a/source/ubl-settings-repomanager-storage-window.c b/source/ubl-settings-repomanager-storage-window.c index 50cbdfa..394400c 100644 --- a/source/ubl-settings-repomanager-storage-window.c +++ b/source/ubl-settings-repomanager-storage-window.c @@ -53,12 +53,12 @@ void on_storage_open(GtkWidget *self, storage_config_window *window){ int exist_size=0; config_str exist_storages = (config_str)g_hash_table_get_keys_as_array(main_config.storages,&exist_size); for (int i=0;iStatusBox),INSIDE_STORAGE_ERROR_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE); return; } } - yon_char_parsed_free(exist_storages,exist_size); storage_struct *storage = yon_storage_struct_new(); storage->path=dialog->last_success_selection; 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); yon_config_register(storage->path,STORAGE_command,""); 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;istorages_copy,keys[i]),NULL); } g_hash_table_remove_all(window->storages_copy); diff --git a/source/ubl-settings-repomanager.c b/source/ubl-settings-repomanager.c index 79ddb33..347ffc7 100644 --- a/source/ubl-settings-repomanager.c +++ b/source/ubl-settings-repomanager.c @@ -67,6 +67,7 @@ int yon_storages_load(main_window *widgets){ if (yon_char_is_empty(repos)) continue; int 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_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){ - GtkTreeIter iter; - gtk_list_store_append(widgets->RepoFileList,&iter); - gtk_list_store_set(widgets->RepoFileList,&iter,1,storage->name,-1); -} +// void yon_sublist_build(char *key, storage_struct *storage, main_window *widgets){ +// } void yon_sublist_packages_build(char *key, char *file, main_window *widgets){ 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); 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;iRepoFileList,&iter); + gtk_list_store_set(widgets->RepoFileList,&iter,1,repos[i],-1); + } } else { int size; config_str packages = yon_arch_struct_get_packages((arch_struct*)data_struct, &size); diff --git a/source/ubl-settings-repomanager.h b/source/ubl-settings-repomanager.h index 5289534..f3f92e2 100644 --- a/source/ubl-settings-repomanager.h +++ b/source/ubl-settings-repomanager.h @@ -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_interface_update(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_hash_table_clone(GHashTable *source_hash, GHashTable *target_hash); void yon_storage_sturct_free_full(storage_struct *storage); diff --git a/ubl-settings-repomanager.css b/ubl-settings-repomanager.css index af0b6cc..efff214 100644 --- a/ubl-settings-repomanager.css +++ b/ubl-settings-repomanager.css @@ -2,6 +2,7 @@ margin:0px; padding:0px; } + .noborder { border:none; } @@ -140,4 +141,9 @@ background:transparent; treeview row:nth-child(odd) { background-color: #000000; } -treeview row:nth-child(even) { background-color: #ffffff; } \ No newline at end of file +treeview row:nth-child(even) { background-color: #ffffff; } + +button { + min-width: 26px; + min-height: 24px; +} \ No newline at end of file