You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
61 lines
2.9 KiB
61 lines
2.9 KiB
#include "ubl-settings-repomanager.h"
|
|
|
|
|
|
void on_repo_signed(GtkWidget *self, storage_repo_block *block){
|
|
storage_config_window *window = g_object_get_data(G_OBJECT(self),"window");
|
|
const char *sign = gtk_combo_box_get_active_id(GTK_COMBO_BOX(block->SignatureCombo));
|
|
const char *storage_id = gtk_combo_box_get_active_id(GTK_COMBO_BOX(window->StoragePathCombo));
|
|
storage_struct *storage = g_hash_table_lookup(window->storages_copy,storage_id);
|
|
repo_struct *repo = g_hash_table_lookup(storage->repos,block->repo_name);
|
|
// yon_repo_struct_sign(storage,repo,sign);
|
|
yon_config_register(repo->path,STORAGE_command,(char*)sign);
|
|
if (!yon_char_is_empty(block->sign_request)) free(block->sign_request);
|
|
block->sign_request = yon_char_new(sign);
|
|
}
|
|
|
|
void on_repo_removed(GtkWidget *self,storage_repo_block *block){
|
|
storage_config_window *window = g_object_get_data(G_OBJECT(self),"window");
|
|
const char *storage_id = gtk_combo_box_get_active_id(GTK_COMBO_BOX(window->StoragePathCombo));
|
|
storage_struct *storage = g_hash_table_lookup(window->storages_copy,storage_id);
|
|
if (g_hash_table_lookup(storage->repos,block->repo_name)){
|
|
repo_struct *repo = g_hash_table_lookup(storage->repos,block->repo_name);
|
|
// yon_storage_struct_remove(storage,repo);
|
|
yon_config_remove_element(storage->path,repo->path,",");
|
|
g_hash_table_remove(storage->repos,block->repo_name);
|
|
gtk_widget_destroy(block->MainBox);
|
|
yon_storage_repo_block_destroy(block);
|
|
}
|
|
|
|
}
|
|
|
|
storage_repo_block *yon_storage_repo_block_new(){
|
|
storage_repo_block *block = malloc(sizeof(storage_repo_block));
|
|
|
|
GtkBuilder *builder = gtk_builder_new_from_resource(glade_path_repo_block);
|
|
block->MainBox = yon_gtk_builder_get_widget(builder,"MainBox");
|
|
block->SignatureCombo = yon_gtk_builder_get_widget(builder,"SignatureCombo");
|
|
block->RepoNameEntry = yon_gtk_builder_get_widget(builder,"RepoNameEntry");
|
|
block->RepoRemoveButton = yon_gtk_builder_get_widget(builder,"RepoRemoveButton");
|
|
|
|
block->repo_name=NULL;
|
|
block->storage_path=NULL;
|
|
block->sign_request=NULL;
|
|
|
|
g_object_set_data(G_OBJECT(block->MainBox),"repo_block",block);
|
|
g_object_set_data(G_OBJECT(block->SignatureCombo),"repo_block",block);
|
|
g_object_set_data(G_OBJECT(block->RepoRemoveButton),"repo_block",block);
|
|
|
|
|
|
yon_combo_box_text_set_signs(GTK_COMBO_BOX_TEXT(block->SignatureCombo));
|
|
gtk_combo_box_set_active(GTK_COMBO_BOX(block->SignatureCombo),0);
|
|
|
|
g_signal_connect(block->SignatureCombo,"changed",G_CALLBACK(on_repo_signed),block);
|
|
g_signal_connect(block->RepoRemoveButton,"clicked",G_CALLBACK(on_repo_removed),block);
|
|
return block;
|
|
}
|
|
|
|
void yon_storage_repo_block_destroy(storage_repo_block *block){
|
|
if (!yon_char_is_empty(block->repo_name)) free(block->repo_name);
|
|
if (!yon_char_is_empty(block->storage_path)) free(block->storage_path);
|
|
free(block);
|
|
} |