diff --git a/source/ubl-settings-repomanager.c b/source/ubl-settings-repomanager.c index 91f2b10..a57e747 100644 --- a/source/ubl-settings-repomanager.c +++ b/source/ubl-settings-repomanager.c @@ -414,7 +414,7 @@ void on_add_target_repo_selection_changed(GtkWidget *target,repo_add_window *win void on_add_target_arch_selection_changed(GtkWidget *target,repo_add_window *window){ gtk_combo_box_text_remove_all(GTK_COMBO_BOX_TEXT(window->ArchitectureCombo)); char *path_str = (char*)gtk_combo_box_get_active_id(GTK_COMBO_BOX(window->RepositoryCombo)); - if (!yon_char_is_empty(path_str)){ + if (!yon_char_is_empty(path_str)){ GtkTreeIter iter, itar; GtkTreePath *path = gtk_tree_path_new_from_string(path_str); if (gtk_tree_model_get_iter(GTK_TREE_MODEL(window->tree_copy),&iter,path)){ @@ -430,7 +430,21 @@ void on_add_target_arch_selection_changed(GtkWidget *target,repo_add_window *win } } } - } + gtk_widget_set_sensitive(window->RepoSignCombo,1); + + } else { + gtk_widget_set_sensitive(window->RepoSignCombo,0); + + } +} + +void on_arch_chosen(GtkWidget *target,repo_add_window *window){ + char *path_str = (char*)gtk_combo_box_get_active_id(GTK_COMBO_BOX(window->ArchitectureCombo)); + if (!yon_char_is_empty(path_str)){ + gtk_widget_set_sensitive(window->PackageSignCombo,1); + } else { + gtk_widget_set_sensitive(window->PackageSignCombo,0); + } } void on_add_target_package_selection_changed(GtkWidget *target,repo_add_window *window){ @@ -522,6 +536,10 @@ void on_add_accept(GtkWidget *self, dictionary *dict){ if (yon_char_parsed_check_exist(parsed,size,current)==-1){ int name_size; config_str name = yon_config_load(yon_get_package_name_from_filename(current),&name_size); + if (name_size<=0){ + yon_ubl_status_box_spawn(GTK_CONTAINER(dialog->StatusBox),PACKAGE_NAME_ERROR_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE); + return; + } yon_char_remove_last_symbol(name[0],'\n'); if (name_size<=0){ yon_ubl_status_box_spawn(GTK_CONTAINER(dialog->StatusBox),PACKAGE_NAME_ERROR_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE); @@ -568,16 +586,7 @@ void on_remove_package(GtkWidget *self, repo_add_window *window){ gtk_tree_model_get_iter_from_string(GTK_TREE_MODEL(window->tree_copy),&iter,id); if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(window->PackagesTree)),&model,&itar)){ gtk_tree_model_get(GTK_TREE_MODEL(window->tree_copy),&iter,2,&repo,3,&path,-1); - char *temp = yon_char_divide(path,yon_char_find_last(path,'/')); - free(path); - path=temp; - free(yon_char_divide(path,yon_char_find_last(path,'/'))); - char *cur_name, *cur_path; - gtk_tree_model_get(GTK_TREE_MODEL(window->PackagesList),&itar,1,&cur_name,2,&cur_path,-1); - char *command = remove_packages_command(storage,path,repo,cur_name); - yon_debug_output("%s\n",command); - yon_launch(command); - on_add_target_package_selection_changed(window->ArchitectureCombo,window); + gtk_list_store_remove(window->PackagesList,&itar); } if (!gtk_tree_model_get_iter_first(GTK_TREE_MODEL(window->tree_copy),&iter)){ gtk_widget_set_sensitive(window->StorageCombo,1); @@ -726,6 +735,7 @@ void on_add_clicked(GtkWidget *self, main_window *widgets){ g_signal_connect(G_OBJECT(window->StorageCombo),"changed",G_CALLBACK(on_add_target_repo_selection_changed),window); g_signal_connect(G_OBJECT(window->RepositoryCombo),"changed",G_CALLBACK(on_add_target_arch_selection_changed),window); + g_signal_connect(G_OBJECT(window->ArchitectureCombo),"changed",G_CALLBACK(on_arch_chosen),window); g_signal_connect(G_OBJECT(window->ArchitectureCombo),"changed",G_CALLBACK(on_add_target_package_selection_changed),window); g_signal_connect(G_OBJECT(window->AddButton),"clicked",G_CALLBACK(on_add_packages_accept),dict); g_signal_connect(G_OBJECT(window->AddPackageButton),"clicked",G_CALLBACK(on_add_package),window); @@ -991,6 +1001,7 @@ void on_remove_clicked(GtkWidget *self, main_window *widgets){ gtk_widget_hide(gtk_widget_get_parent(window->PackageSignCombo)); + g_signal_connect(G_OBJECT(window->ArchitectureCombo),"changed",G_CALLBACK(on_arch_chosen),window); g_signal_connect(G_OBJECT(window->StorageCombo),"changed",G_CALLBACK(on_add_target_repo_selection_changed),window); g_signal_connect(G_OBJECT(window->RepositoryCombo),"changed",G_CALLBACK(on_add_target_arch_selection_changed),window); g_signal_connect(G_OBJECT(window->ArchitectureCombo),"changed",G_CALLBACK(on_remove_arch_selection_changed),window); @@ -1090,16 +1101,21 @@ void on_main_tree_selection_changed(GtkWidget *self, main_window *widgets){ char *packages; int size; config_str parsed = yon_file_ls(target,&size); - for (int i=0;iRepoFileList,&itar); - char *name = yon_char_new(parsed[i]); - char *temp = yon_char_divide_search(name,".",-1); - free(name); - name=temp; - gtk_list_store_set(widgets->RepoFileList,&itar,1,name,3,parsed[i],-1); - } + for (int i=0;iRepoFileList,&itar); + char *name = yon_char_unite(target,"/",parsed[i]); + config_str load = yon_config_load(yon_get_package_name_from_filename(name),&load_size); + yon_char_remove_last_symbol(load[i],'\n'); + char *temp = load[0]; + free(name); + name=temp; + gtk_list_store_set(widgets->RepoFileList,&itar,1,name,3,parsed[i],-1); + free(name); + yon_char_parsed_free(load,load_size); } + } } break; } diff --git a/ubl-settings-repomanager-add.glade b/ubl-settings-repomanager-add.glade index bd92d2c..68e8ec6 100644 --- a/ubl-settings-repomanager-add.glade +++ b/ubl-settings-repomanager-add.glade @@ -372,6 +372,7 @@ True + False False @@ -408,6 +409,7 @@ True + False False diff --git a/ubl-settings-repomanager-filechooser.glade b/ubl-settings-repomanager-filechooser.glade index 663b617..d5a5480 100644 --- a/ubl-settings-repomanager-filechooser.glade +++ b/ubl-settings-repomanager-filechooser.glade @@ -47,6 +47,7 @@ True False + True False diff --git a/ubl-settings-repomanager.glade b/ubl-settings-repomanager.glade index 68a06e5..ceb9c22 100644 --- a/ubl-settings-repomanager.glade +++ b/ubl-settings-repomanager.glade @@ -280,6 +280,7 @@ edit-find-symbolic False False + Pakcage search False