|
|
|
|
@ -33,6 +33,34 @@ void on_repo_removed(GtkWidget *self,storage_config_window *window){
|
|
|
|
|
// }
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void on_repo_sign_changed(GtkWidget *self, storage_config_window *window){
|
|
|
|
|
GList *list = gtk_container_get_children(GTK_CONTAINER(gtk_widget_get_parent(self)));
|
|
|
|
|
const char *sign = gtk_combo_box_get_active_id(GTK_COMBO_BOX(g_list_nth_data(list,2)));
|
|
|
|
|
char *target_repo = (char*)gtk_entry_get_text(GTK_ENTRY(g_list_nth_data(list,0)));
|
|
|
|
|
const char *id = gtk_combo_box_get_active_id(GTK_COMBO_BOX(window->StoragePathCombo));
|
|
|
|
|
if (!yon_char_is_empty(id)){
|
|
|
|
|
GtkTreeIter iter,itar;
|
|
|
|
|
int size;
|
|
|
|
|
gtk_tree_model_get_iter_from_string(GTK_TREE_MODEL(window->storages_copy),&iter,id);
|
|
|
|
|
char *storage_path;
|
|
|
|
|
gtk_tree_model_get(GTK_TREE_MODEL(window->storages_copy),&iter,3,&storage_path,-1);
|
|
|
|
|
config_str repos = yon_tree_store_get_all_at_level(window->storages_copy,&iter,&size,2,2);
|
|
|
|
|
int found = yon_char_parsed_check_exist(repos,size,target_repo);
|
|
|
|
|
if (found>-1){
|
|
|
|
|
char *child_id = yon_char_unite((char*)id,":",yon_char_from_int(found),NULL);
|
|
|
|
|
if (gtk_tree_model_get_iter_from_string(GTK_TREE_MODEL(window->storages_copy),&itar,child_id)){
|
|
|
|
|
if (!yon_char_is_empty(sign)){
|
|
|
|
|
gtk_tree_store_set(window->storages_copy,&itar,6,1,5,sign,-1);
|
|
|
|
|
if (!system(yon_sign_repo(storage_path,target_repo,sign))){
|
|
|
|
|
gtk_combo_box_set_active(GTK_COMBO_BOX((GtkWidget*)g_list_nth_data(list,2)),0);
|
|
|
|
|
}
|
|
|
|
|
}else
|
|
|
|
|
gtk_tree_store_set(window->storages_copy,&itar,6,-1,5,NULL,-1);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void yon_storage_config_update(storage_config_window *window){
|
|
|
|
|
GList *children = gtk_container_get_children(GTK_CONTAINER(window->ReposBox));
|
|
|
|
|
for (int i=0;i<g_list_length(children);i++){
|
|
|
|
|
@ -50,8 +78,11 @@ void yon_storage_config_update(storage_config_window *window){
|
|
|
|
|
GtkBuilder *builder = gtk_builder_new_from_resource(glade_path_repo_block);
|
|
|
|
|
GtkWidget *box = yon_gtk_builder_get_widget(builder,"MainBox");
|
|
|
|
|
gtk_box_pack_start(GTK_BOX(window->ReposBox),box,0,0,0);
|
|
|
|
|
yon_combo_box_text_set_signs(GTK_COMBO_BOX_TEXT(gtk_builder_get_object(builder,"SignatureCombo")));
|
|
|
|
|
gtk_combo_box_set_active(GTK_COMBO_BOX(gtk_builder_get_object(builder,"SignatureCombo")),0);
|
|
|
|
|
g_signal_connect(gtk_builder_get_object(builder,"SignatureButton"),"clicked",G_CALLBACK(on_repo_signed),window);
|
|
|
|
|
g_signal_connect(gtk_builder_get_object(builder,"RepoRemoveButton"),"clicked",G_CALLBACK(on_repo_removed),window);
|
|
|
|
|
g_signal_connect(gtk_builder_get_object(builder,"SignatureCombo"),"changed",G_CALLBACK(on_repo_sign_changed),window);
|
|
|
|
|
gtk_entry_set_text(GTK_ENTRY(gtk_builder_get_object(builder,"RepoNameEntry")),repo);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
@ -291,7 +322,7 @@ storage_config_window *yon_storage_config_window_new(){
|
|
|
|
|
window->AddEntry = yon_gtk_builder_get_widget(builder,"AddEntry");
|
|
|
|
|
window->AddRepoButton = yon_gtk_builder_get_widget(builder,"AddRepoButton");
|
|
|
|
|
window->TestTree = yon_gtk_builder_get_widget(builder,"TestTree");
|
|
|
|
|
window->storages_copy = gtk_tree_store_new(6,G_TYPE_STRING,G_TYPE_STRING,G_TYPE_STRING,G_TYPE_STRING,G_TYPE_BOOLEAN,G_TYPE_STRING);
|
|
|
|
|
window->storages_copy = gtk_tree_store_new(7,G_TYPE_STRING,G_TYPE_STRING,G_TYPE_STRING,G_TYPE_STRING,G_TYPE_BOOLEAN,G_TYPE_STRING,G_TYPE_INT);
|
|
|
|
|
yon_gtk_tree_store_copy_full(main_config.tree_store,window->storages_copy);
|
|
|
|
|
gtk_tree_view_set_model(GTK_TREE_VIEW(window->TestTree),GTK_TREE_MODEL(window->storages_copy));
|
|
|
|
|
g_signal_connect(G_OBJECT(window->CancelButton),"clicked",G_CALLBACK(on_subwindow_close),NULL);
|
|
|
|
|
@ -301,6 +332,7 @@ storage_config_window *yon_storage_config_window_new(){
|
|
|
|
|
g_signal_connect(G_OBJECT(window->DeleteButton),"clicked",G_CALLBACK(on_storage_remove),window);
|
|
|
|
|
g_signal_connect(G_OBJECT(window->AddRepoButton),"clicked",G_CALLBACK(on_repo_add),window);
|
|
|
|
|
g_signal_connect(G_OBJECT(window->StoragePathCombo),"changed",G_CALLBACK(on_storage_changed),window);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return window;
|
|
|
|
|
}
|
|
|
|
|
@ -350,7 +382,6 @@ config_str yon_tree_store_get_all_at_level(GtkTreeStore *target,GtkTreeIter *par
|
|
|
|
|
char *append=NULL;
|
|
|
|
|
gtk_tree_model_get(GTK_TREE_MODEL(target),&iter,column,&append,-1);
|
|
|
|
|
yon_char_parsed_add_or_create_if_exists(final,size,append);
|
|
|
|
|
free(append);
|
|
|
|
|
}
|
|
|
|
|
gtk_tree_path_free(path);
|
|
|
|
|
}
|
|
|
|
|
@ -567,13 +598,6 @@ void on_remove_package(GtkWidget *self, repo_add_window *window){
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void on_add_selection_changed(GtkWidget *self, repo_add_window *window){
|
|
|
|
|
gtk_tree_model_filter_refilter(GTK_TREE_MODEL_FILTER(window->storage_filter));
|
|
|
|
|
gtk_tree_model_filter_refilter(GTK_TREE_MODEL_FILTER(window->repo_filter));
|
|
|
|
|
gtk_tree_model_filter_refilter(GTK_TREE_MODEL_FILTER(window->arch_filter));
|
|
|
|
|
gtk_tree_model_filter_refilter(GTK_TREE_MODEL_FILTER(window->package_filter));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void on_add_window_tree_changed(GtkWidget *self, repo_add_window *window){
|
|
|
|
|
GtkTreeModel *model;
|
|
|
|
|
GtkTreeIter iter;
|
|
|
|
|
@ -613,10 +637,6 @@ repo_add_window *yon_repo_add_window_new(){
|
|
|
|
|
window->PackagesList = GTK_LIST_STORE(gtk_builder_get_object(builder,"PackagesList"));
|
|
|
|
|
window->tree_copy = gtk_tree_store_new(7,G_TYPE_STRING,G_TYPE_STRING,G_TYPE_STRING,G_TYPE_STRING,G_TYPE_BOOLEAN,G_TYPE_STRING,G_TYPE_INT);
|
|
|
|
|
yon_gtk_tree_store_copy_full(main_config.tree_store,window->tree_copy);
|
|
|
|
|
window->storage_filter = gtk_tree_model_filter_new(GTK_TREE_MODEL(window->tree_copy),NULL);
|
|
|
|
|
window->repo_filter=gtk_tree_model_filter_new(GTK_TREE_MODEL(window->tree_copy),NULL);
|
|
|
|
|
window->arch_filter=gtk_tree_model_filter_new(GTK_TREE_MODEL(window->tree_copy),NULL);
|
|
|
|
|
window->package_filter=gtk_tree_model_filter_new(GTK_TREE_MODEL(window->tree_copy),NULL);
|
|
|
|
|
gtk_tree_view_set_model(GTK_TREE_VIEW(window->TestTree),GTK_TREE_MODEL(window->tree_copy));
|
|
|
|
|
|
|
|
|
|
g_signal_connect(G_OBJECT(window->CancelButton),"clicked",G_CALLBACK(on_subwindow_close),NULL);
|
|
|
|
|
@ -642,6 +662,7 @@ void on_add_clicked(GtkWidget *self, main_window *widgets){
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
yon_sign_list_update();
|
|
|
|
|
yon_combo_box_text_set_signs(GTK_COMBO_BOX_TEXT(window->RepoSignCombo));
|
|
|
|
|
yon_combo_box_text_set_signs(GTK_COMBO_BOX_TEXT(window->PackageSignCombo));
|
|
|
|
|
|
|
|
|
|
@ -791,6 +812,7 @@ void on_move_clicked(GtkWidget *self, main_window *widgets){
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
yon_sign_list_update();
|
|
|
|
|
yon_combo_box_text_set_signs(GTK_COMBO_BOX_TEXT(window->RepoSignCombo));
|
|
|
|
|
yon_combo_box_text_set_signs(GTK_COMBO_BOX_TEXT(window->PackageSignCombo));
|
|
|
|
|
|
|
|
|
|
@ -862,7 +884,13 @@ void on_remove_accept(GtkWidget *self, repo_add_window *window){
|
|
|
|
|
yon_char_parsed_add_or_create_if_exists(packages,&size,target);
|
|
|
|
|
}
|
|
|
|
|
if (size){
|
|
|
|
|
char *command = yon_delete_packages_command(storage_path,arch,repo,yon_char_parsed_to_string(packages,size," "));
|
|
|
|
|
char *sign = gtk_combo_box_get_active_id(GTK_COMBO_BOX(window->RepoSignCombo));
|
|
|
|
|
char *command;
|
|
|
|
|
if (yon_char_is_empty(sign)){
|
|
|
|
|
command = yon_delete_packages_command(storage_path,arch,repo,yon_char_parsed_to_string(packages,size," "));
|
|
|
|
|
} else {
|
|
|
|
|
command = yon_delete_packages_sign_command(storage_path,arch,repo,yon_char_parsed_to_string(packages,size," "),sign);
|
|
|
|
|
}
|
|
|
|
|
yon_debug_output("%s\n",command);
|
|
|
|
|
system(command);
|
|
|
|
|
}
|
|
|
|
|
@ -881,8 +909,10 @@ void on_remove_clicked(GtkWidget *self, main_window *widgets){
|
|
|
|
|
gtk_combo_box_text_append(GTK_COMBO_BOX_TEXT(window->StorageCombo),path,current);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
yon_sign_list_update();
|
|
|
|
|
yon_combo_box_text_set_signs(GTK_COMBO_BOX_TEXT(window->RepoSignCombo));
|
|
|
|
|
yon_combo_box_text_set_signs(GTK_COMBO_BOX_TEXT(window->PackageSignCombo));
|
|
|
|
|
gtk_widget_hide(gtk_widget_get_parent(window->PackageSignCombo));
|
|
|
|
|
|
|
|
|
|
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);
|
|
|
|
|
@ -999,7 +1029,6 @@ void on_main_tree_selection_changed(GtkWidget *self, main_window *widgets){
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void yon_combo_box_text_set_signs(GtkComboBoxText *target){
|
|
|
|
|
yon_sign_list_update();
|
|
|
|
|
g_return_if_fail(GTK_IS_COMBO_BOX_TEXT(target));
|
|
|
|
|
gtk_combo_box_text_remove_all(target);
|
|
|
|
|
gtk_combo_box_text_append_text(target,DO_NOT_SIGN_LABEL);
|
|
|
|
|
|