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;
config_str folders = yon_dir_get_contents(repo->path,&size);
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->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);
}
}

@ -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;i<exist_size;i++){
printf("%s -- %s\n",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);
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;i<size;i++){
int 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);
char *repos_string = yon_char_parsed_to_string(repos,repos_size,",");
yon_config_set(keys[i],repos_string);
free(repos_string);
yon_char_parsed_free(repos,repos_size);
}
yon_storage_remove(keys[i],g_hash_table_lookup(window->storages_copy,keys[i]),NULL);
}
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;
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;i<size;i++){
gtk_list_store_append(widgets->RepoFileList,&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);

@ -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);

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