|
|
|
|
@ -411,6 +411,8 @@ void on_move_storage_changed(GtkWidget *self, repo_add_window *window){
|
|
|
|
|
void on_move_repo_changed(GtkWidget *self, repo_add_window *window){
|
|
|
|
|
GtkWidget *ArchCombo = NULL;
|
|
|
|
|
ArchCombo = self==window->MoveSourceRepoEntry?window->MoveSourceArchEntry:window->MoveTargetArchEntry;
|
|
|
|
|
|
|
|
|
|
yon_debug_output("%s\n","repo");
|
|
|
|
|
gtk_combo_box_text_remove_all(GTK_COMBO_BOX_TEXT(ArchCombo));
|
|
|
|
|
GtkTreeIter iter,itar;
|
|
|
|
|
char *id = (char*)gtk_combo_box_get_active_id(GTK_COMBO_BOX(self));
|
|
|
|
|
@ -422,21 +424,45 @@ void on_move_repo_changed(GtkWidget *self, repo_add_window *window){
|
|
|
|
|
char *child_id = gtk_tree_model_get_string_from_iter(GTK_TREE_MODEL(window->tree_copy),&itar);
|
|
|
|
|
gtk_combo_box_text_append(GTK_COMBO_BOX_TEXT(ArchCombo),child_id,target);
|
|
|
|
|
}
|
|
|
|
|
yon_debug_output("%s\n","repo 2");
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void on_move_arch_changed(GtkWidget *self, repo_add_window *window){
|
|
|
|
|
GtkWidget *TargetArchCombo = self==window->MoveTargetArchEntry?window->MoveSourceArchEntry:window->MoveTargetArchEntry;
|
|
|
|
|
GtkWidget *TargetRepoCombo = self==window->MoveTargetArchEntry?window->MoveSourceRepoEntry:window->MoveTargetRepoEntry;
|
|
|
|
|
if (gtk_combo_box_get_active(GTK_COMBO_BOX(self))>-1){
|
|
|
|
|
|
|
|
|
|
const char *current = gtk_combo_box_text_get_active_text(GTK_COMBO_BOX_TEXT(self));
|
|
|
|
|
const char *repo_id = gtk_combo_box_get_active_id(GTK_COMBO_BOX(TargetRepoCombo));
|
|
|
|
|
|
|
|
|
|
if (!yon_char_is_empty(current)&&!yon_char_is_empty(repo_id)){
|
|
|
|
|
|
|
|
|
|
GtkTreeIter iter, itar;
|
|
|
|
|
|
|
|
|
|
g_signal_handlers_block_by_func(G_OBJECT(TargetArchCombo),on_move_arch_changed,window);
|
|
|
|
|
if (yon_gtk_combo_box_text_find(TargetArchCombo,(char*)current)==-1){
|
|
|
|
|
gtk_tree_model_get_iter_from_string(GTK_TREE_MODEL(window->tree_copy),&iter,repo_id);
|
|
|
|
|
gtk_tree_store_append(window->tree_copy,&itar,&iter);
|
|
|
|
|
char *id = gtk_tree_model_get_string_from_iter(GTK_TREE_MODEL(window->tree_copy),&itar);
|
|
|
|
|
yon_debug_output("%s\n","arch");
|
|
|
|
|
gtk_combo_box_text_append(GTK_COMBO_BOX_TEXT(TargetArchCombo),id,current);
|
|
|
|
|
}
|
|
|
|
|
g_signal_handlers_unblock_by_func(G_OBJECT(TargetArchCombo),on_move_arch_changed,window);
|
|
|
|
|
gtk_widget_set_sensitive(window->MoveTargetArchEntry,0);
|
|
|
|
|
gtk_widget_set_sensitive(window->AddPackageButton,1);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void on_add_accept(GtkWidget *self, dictionary *dict){
|
|
|
|
|
repo_add_window *window = yon_dictionary_get_data(dict->first,repo_add_window*);
|
|
|
|
|
file_chooser_window *dialog = yon_dictionary_get_data(dict->first->next,file_chooser_window*);
|
|
|
|
|
char *id = (char*)gtk_combo_box_get_active_id(GTK_COMBO_BOX(window->ArchitectureCombo));
|
|
|
|
|
char *path;
|
|
|
|
|
char *path,*arch_name;
|
|
|
|
|
GtkTreeIter iter,itar,itor;
|
|
|
|
|
gtk_tree_model_get_iter_from_string(GTK_TREE_MODEL(window->tree_copy),&iter,id);
|
|
|
|
|
gtk_tree_model_get(GTK_TREE_MODEL(window->tree_copy),&iter,3,&path,-1);
|
|
|
|
|
gtk_tree_model_get(GTK_TREE_MODEL(window->tree_copy),&iter,2,&arch_name,3,&path,-1);
|
|
|
|
|
char *packages;
|
|
|
|
|
yon_window_config_get_parameter("package_info",path,&packages,YON_TYPE_STRING);
|
|
|
|
|
int size;
|
|
|
|
|
@ -452,8 +478,9 @@ void on_add_accept(GtkWidget *self, dictionary *dict){
|
|
|
|
|
char *repo_name;
|
|
|
|
|
gtk_tree_model_get(GTK_TREE_MODEL(window->tree_copy),&itor,3,&repo_name,-1);
|
|
|
|
|
char *repo_pack = yon_char_divide(repo_name,yon_char_find_last(repo_name,'/'));
|
|
|
|
|
yon_debug_output("%s\n",add_packages_command(repo_pack,repo_name,current));
|
|
|
|
|
if (!system(add_packages_command(repo_pack,repo_name,current))){
|
|
|
|
|
char *command = add_packages_command(repo_pack,arch_name,repo_name,current);
|
|
|
|
|
yon_debug_output("%s\n",command);
|
|
|
|
|
if (!system(command)){
|
|
|
|
|
gtk_list_store_append(window->PackagesList,&itar);
|
|
|
|
|
gtk_list_store_set(window->PackagesList,&itar,1,name,2,current,3,1,-1);
|
|
|
|
|
yon_char_parsed_add_or_create_if_exists(parsed,&size,name);
|
|
|
|
|
@ -482,20 +509,24 @@ void on_add_package(GtkWidget *self, repo_add_window *window){
|
|
|
|
|
|
|
|
|
|
void on_remove_package(GtkWidget *self, repo_add_window *window){
|
|
|
|
|
char *id = (char*)gtk_combo_box_get_active_id(GTK_COMBO_BOX(window->RepositoryCombo));
|
|
|
|
|
char *arch = (char*)gtk_combo_box_get_active_id(GTK_COMBO_BOX(window->StorageCombo));
|
|
|
|
|
char *storage = (char*)gtk_combo_box_get_active_id(GTK_COMBO_BOX(window->StorageCombo));
|
|
|
|
|
char *repo;
|
|
|
|
|
char *path;
|
|
|
|
|
GtkTreeModel *model;
|
|
|
|
|
GtkTreeIter iter,itar,itor;
|
|
|
|
|
gtk_tree_model_get_iter_from_string(GTK_TREE_MODEL(window->tree_copy),&itor,arch);
|
|
|
|
|
gtk_tree_model_get(GTK_TREE_MODEL(window->tree_copy),&itor,3,&arch,-1);
|
|
|
|
|
gtk_tree_model_get_iter_from_string(GTK_TREE_MODEL(window->tree_copy),&itor,storage);
|
|
|
|
|
gtk_tree_model_get(GTK_TREE_MODEL(window->tree_copy),&itor,3,&storage,-1);
|
|
|
|
|
|
|
|
|
|
gtk_tree_model_get_iter_from_string(GTK_TREE_MODEL(window->tree_copy),&iter,id);
|
|
|
|
|
gtk_tree_model_get(GTK_TREE_MODEL(window->tree_copy),&iter,2,&repo,3,&path,-1);
|
|
|
|
|
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(arch,repo,cur_name);
|
|
|
|
|
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);
|
|
|
|
|
@ -509,6 +540,16 @@ void on_add_selection_changed(GtkWidget *self, repo_add_window *window){
|
|
|
|
|
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;
|
|
|
|
|
if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(window->PackagesTree)),&model,&iter)){
|
|
|
|
|
gtk_widget_set_sensitive(window->RemoveButton,1);
|
|
|
|
|
} else {
|
|
|
|
|
gtk_widget_set_sensitive(window->RemoveButton,0);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
repo_add_window *yon_repo_add_window_new(){
|
|
|
|
|
repo_add_window *window = malloc(sizeof(repo_add_window));
|
|
|
|
|
GtkBuilder *builder = gtk_builder_new_from_resource(glade_path_repo_add);
|
|
|
|
|
@ -545,6 +586,7 @@ repo_add_window *yon_repo_add_window_new(){
|
|
|
|
|
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);
|
|
|
|
|
g_signal_connect(G_OBJECT(window->PackagesTree),"cursor-changed",G_CALLBACK(on_add_window_tree_changed),window);
|
|
|
|
|
|
|
|
|
|
window->added_packages_archs = NULL;
|
|
|
|
|
window->removed_packages_archs = NULL;
|
|
|
|
|
@ -657,7 +699,6 @@ void on_move_remove_package(GtkWidget *self, repo_add_window *window){
|
|
|
|
|
gtk_widget_set_sensitive(window->MoveSourceArchEntry,1);
|
|
|
|
|
|
|
|
|
|
gtk_widget_set_sensitive(window->MoveTargetRepoEntry,1);
|
|
|
|
|
gtk_widget_set_sensitive(window->MoveTargetArchEntry,1);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@ -675,6 +716,7 @@ void on_move_accept(GtkWidget *self, repo_add_window *window){
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if (size){
|
|
|
|
|
char *arch = gtk_combo_box_text_get_active_text(GTK_COMBO_BOX_TEXT(window->MoveSourceArchEntry));
|
|
|
|
|
yon_gtk_tree_iter_get_from_combo_box_id(GTK_COMBO_BOX(window->MoveSourceRepoEntry),GTK_TREE_MODEL(window->tree_copy),&iter);
|
|
|
|
|
yon_gtk_tree_iter_get_from_combo_box_id(GTK_COMBO_BOX(window->MoveTargetRepoEntry),GTK_TREE_MODEL(window->tree_copy),&itar);
|
|
|
|
|
char *source_path, *source_repo, *target_path, *target_repo;
|
|
|
|
|
@ -682,10 +724,11 @@ void on_move_accept(GtkWidget *self, repo_add_window *window){
|
|
|
|
|
gtk_tree_model_get(GTK_TREE_MODEL(window->tree_copy),&itar,3,&target_repo,-1);
|
|
|
|
|
source_path = yon_char_divide(source_repo,yon_char_find_last(source_repo,'/'));
|
|
|
|
|
target_path = yon_char_divide(target_repo,yon_char_find_last(target_repo,'/'));
|
|
|
|
|
char *command = yon_move_packages_command(source_path,source_repo, target_repo, yon_char_parsed_to_string(packages,size," "));
|
|
|
|
|
char *command = yon_move_packages_command(source_path,arch,source_repo, target_repo, yon_char_parsed_to_string(packages,size," "));
|
|
|
|
|
yon_debug_output("%s\n",command);
|
|
|
|
|
system(command);
|
|
|
|
|
}
|
|
|
|
|
on_subwindow_close(window->MainWindow);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void on_move_clicked(GtkWidget *self, main_window *widgets){
|
|
|
|
|
@ -720,8 +763,23 @@ void on_move_clicked(GtkWidget *self, main_window *widgets){
|
|
|
|
|
|
|
|
|
|
void on_remove_clicked(GtkWidget *self, main_window *widgets){
|
|
|
|
|
repo_add_window *window = yon_repo_add_window_new();
|
|
|
|
|
yon_gtk_window_setup(GTK_WINDOW(window->MainWindow),GTK_WINDOW(widgets->Window),TITLE_LABEL,icon_path,"remove-repo-window");
|
|
|
|
|
gtk_widget_hide(gtk_widget_get_parent(window->PackageSignCombo));
|
|
|
|
|
yon_gtk_window_setup(GTK_WINDOW(window->MainWindow),GTK_WINDOW(widgets->Window),TITLE_LABEL,icon_path,"add-repo-window");
|
|
|
|
|
GtkTreeIter iter;
|
|
|
|
|
for_iter (window->tree_copy,&iter){
|
|
|
|
|
char *current;
|
|
|
|
|
gtk_tree_model_get(GTK_TREE_MODEL(window->tree_copy),&iter,3,¤t,-1);
|
|
|
|
|
if (!yon_char_is_empty(current)){
|
|
|
|
|
char *path = gtk_tree_model_get_string_from_iter(GTK_TREE_MODEL(window->tree_copy),&iter);
|
|
|
|
|
gtk_combo_box_text_append(GTK_COMBO_BOX_TEXT(window->StorageCombo),path,current);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
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_add_target_package_selection_changed),window);
|
|
|
|
|
g_signal_connect(G_OBJECT(window->AddButton),"clicked",G_CALLBACK(on_subwindow_close),NULL);
|
|
|
|
|
g_signal_connect(G_OBJECT(window->AddPackageButton),"clicked",G_CALLBACK(on_add_package),window);
|
|
|
|
|
g_signal_connect(G_OBJECT(window->RemoveButton),"clicked",G_CALLBACK(on_remove_package),window);
|
|
|
|
|
gtk_widget_show(window->MainWindow);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|