|
|
|
|
@ -622,43 +622,47 @@ void on_add_packages_accept(GtkWidget *self, dictionary *dict){
|
|
|
|
|
|
|
|
|
|
GtkTreeIter iter, itar;
|
|
|
|
|
char *storage;
|
|
|
|
|
yon_gtk_tree_iter_get_from_combo_box_id(GTK_COMBO_BOX(window->StorageCombo),GTK_TREE_MODEL(window->tree_copy),&itar);
|
|
|
|
|
gtk_tree_model_get(GTK_TREE_MODEL(window->tree_copy),&itar,3,&storage,-1);
|
|
|
|
|
const char *repo = gtk_combo_box_text_get_active_text(GTK_COMBO_BOX_TEXT(window->RepositoryCombo));
|
|
|
|
|
const char *arch = gtk_combo_box_text_get_active_text(GTK_COMBO_BOX_TEXT(window->ArchitectureCombo));
|
|
|
|
|
GtkTreeModel *model = GTK_TREE_MODEL(window->PackagesList);
|
|
|
|
|
int size=0;
|
|
|
|
|
config_str packages=NULL;
|
|
|
|
|
int valid = gtk_tree_model_get_iter_first(model,&iter);
|
|
|
|
|
for (;valid;valid=gtk_tree_model_iter_next(model,&iter)){
|
|
|
|
|
char *target;
|
|
|
|
|
gtk_tree_model_get(model,&iter,2,&target,-1);
|
|
|
|
|
yon_char_parsed_add_or_create_if_exists(packages,&size,target);
|
|
|
|
|
free(target);
|
|
|
|
|
}
|
|
|
|
|
if (size>0){
|
|
|
|
|
char *command = NULL;
|
|
|
|
|
int repo_sign = gtk_combo_box_get_active(GTK_COMBO_BOX(window->RepoSignCombo));
|
|
|
|
|
int pack_sign = gtk_combo_box_get_active(GTK_COMBO_BOX(window->PackageSignCombo));
|
|
|
|
|
if (repo_sign&&pack_sign){
|
|
|
|
|
command = add_packages_sign_command(storage,arch,repo,gtk_combo_box_get_active_id(GTK_COMBO_BOX(window->RepoSignCombo)),gtk_combo_box_get_active_id(GTK_COMBO_BOX(window->PackageSignCombo)),yon_char_parsed_to_string(packages,size," "));
|
|
|
|
|
} else if (repo_sign){
|
|
|
|
|
command = add_packages_repo_sign_command(storage,arch,repo,gtk_combo_box_get_active_id(GTK_COMBO_BOX(window->RepoSignCombo)),yon_char_parsed_to_string(packages,size," "));
|
|
|
|
|
} else if (pack_sign){
|
|
|
|
|
command = add_packages_package_sign_command(storage,arch,repo,gtk_combo_box_get_active_id(GTK_COMBO_BOX(window->PackageSignCombo)),yon_char_parsed_to_string(packages,size," "));
|
|
|
|
|
} else {
|
|
|
|
|
command = add_packages_command(storage,arch,repo,yon_char_parsed_to_string(packages,size," "));
|
|
|
|
|
if (yon_gtk_tree_iter_get_from_combo_box_id(GTK_COMBO_BOX(window->StorageCombo),GTK_TREE_MODEL(window->tree_copy),&itar)){
|
|
|
|
|
gtk_tree_model_get(GTK_TREE_MODEL(window->tree_copy),&itar,3,&storage,-1);
|
|
|
|
|
const char *repo = gtk_combo_box_text_get_active_text(GTK_COMBO_BOX_TEXT(window->RepositoryCombo));
|
|
|
|
|
const char *arch = gtk_combo_box_text_get_active_text(GTK_COMBO_BOX_TEXT(window->ArchitectureCombo));
|
|
|
|
|
GtkTreeModel *model = GTK_TREE_MODEL(window->PackagesList);
|
|
|
|
|
int size=0;
|
|
|
|
|
config_str packages=NULL;
|
|
|
|
|
int valid = gtk_tree_model_get_iter_first(model,&iter);
|
|
|
|
|
for (;valid;valid=gtk_tree_model_iter_next(model,&iter)){
|
|
|
|
|
char *target;
|
|
|
|
|
gtk_tree_model_get(model,&iter,2,&target,-1);
|
|
|
|
|
yon_char_parsed_add_or_create_if_exists(packages,&size,target);
|
|
|
|
|
free(target);
|
|
|
|
|
}
|
|
|
|
|
yon_debug_output("%s\n",command);
|
|
|
|
|
if (!system(command)){
|
|
|
|
|
gtk_tree_view_set_model(GTK_TREE_VIEW(widgets->ReposTree),NULL);
|
|
|
|
|
gtk_tree_store_clear(widgets->RepoList);
|
|
|
|
|
yon_gtk_tree_store_copy_full(window->tree_copy,widgets->RepoList);
|
|
|
|
|
gtk_tree_view_set_model(GTK_TREE_VIEW(widgets->ReposTree),GTK_TREE_MODEL(widgets->RepoList));
|
|
|
|
|
gtk_widget_destroy(window->MainWindow);
|
|
|
|
|
if (size>0){
|
|
|
|
|
char *command = NULL;
|
|
|
|
|
int repo_sign = gtk_combo_box_get_active(GTK_COMBO_BOX(window->RepoSignCombo));
|
|
|
|
|
int pack_sign = gtk_combo_box_get_active(GTK_COMBO_BOX(window->PackageSignCombo));
|
|
|
|
|
if (repo_sign&&pack_sign){
|
|
|
|
|
command = add_packages_sign_command(storage,arch,repo,gtk_combo_box_get_active_id(GTK_COMBO_BOX(window->RepoSignCombo)),gtk_combo_box_get_active_id(GTK_COMBO_BOX(window->PackageSignCombo)),yon_char_parsed_to_string(packages,size," "));
|
|
|
|
|
} else if (repo_sign){
|
|
|
|
|
command = add_packages_repo_sign_command(storage,arch,repo,gtk_combo_box_get_active_id(GTK_COMBO_BOX(window->RepoSignCombo)),yon_char_parsed_to_string(packages,size," "));
|
|
|
|
|
} else if (pack_sign){
|
|
|
|
|
command = add_packages_package_sign_command(storage,arch,repo,gtk_combo_box_get_active_id(GTK_COMBO_BOX(window->PackageSignCombo)),yon_char_parsed_to_string(packages,size," "));
|
|
|
|
|
} else {
|
|
|
|
|
command = add_packages_command(storage,arch,repo,yon_char_parsed_to_string(packages,size," "));
|
|
|
|
|
}
|
|
|
|
|
yon_debug_output("%s\n",command);
|
|
|
|
|
if (!system(command)){
|
|
|
|
|
gtk_tree_view_set_model(GTK_TREE_VIEW(widgets->ReposTree),NULL);
|
|
|
|
|
gtk_tree_store_clear(widgets->RepoList);
|
|
|
|
|
yon_gtk_tree_store_copy_full(window->tree_copy,widgets->RepoList);
|
|
|
|
|
gtk_tree_view_set_model(GTK_TREE_VIEW(widgets->ReposTree),GTK_TREE_MODEL(widgets->RepoList));
|
|
|
|
|
gtk_widget_destroy(window->MainWindow);
|
|
|
|
|
yon_ubl_status_box_render(PACKAGES_ADD_SUCCESS_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE);
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
|
|
yon_ubl_status_box_spawn(GTK_CONTAINER(window->StatusBox),NOTHING_TO_SAVE_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE);
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
yon_ubl_status_box_spawn(GTK_CONTAINER(window->StatusBox),NOTHING_TO_SAVE_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@ -873,9 +877,13 @@ void on_move_accept(GtkWidget *self, repo_add_window *window){
|
|
|
|
|
target_path = yon_char_divide(target_repo,yon_char_find_last(target_repo,'/'));
|
|
|
|
|
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);
|
|
|
|
|
if (!system(command)){
|
|
|
|
|
yon_ubl_status_box_render(PACKAGES_ADD_SUCCESS_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE);
|
|
|
|
|
on_subwindow_close(window->MainWindow);
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
yon_ubl_status_box_spawn(GTK_CONTAINER(window->StatusBox),NOTHING_TO_SAVE_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE);
|
|
|
|
|
}
|
|
|
|
|
on_subwindow_close(window->MainWindow);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void on_move_clicked(GtkWidget *self, main_window *widgets){
|
|
|
|
|
@ -978,9 +986,16 @@ void on_remove_accept(GtkWidget *self, repo_add_window *window){
|
|
|
|
|
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);
|
|
|
|
|
if (system(command)){
|
|
|
|
|
yon_ubl_status_box_spawn(GTK_CONTAINER(window->StatusBox),NOTHING_TO_SAVE_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE);
|
|
|
|
|
gtk_widget_destroy(window->MainWindow);
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
yon_ubl_status_box_spawn(GTK_CONTAINER(window->StatusBox),NOTHING_TO_SAVE_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE);
|
|
|
|
|
}
|
|
|
|
|
}else {
|
|
|
|
|
yon_ubl_status_box_spawn(GTK_CONTAINER(window->StatusBox),NOTHING_TO_SAVE_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void on_remove_clicked(GtkWidget *self, main_window *widgets){
|
|
|
|
|
@ -1311,9 +1326,6 @@ main_window *yon_main_window_complete(main_window *widgets){
|
|
|
|
|
g_signal_connect(G_OBJECT(widgets->RepoFileTree),"cursor-changed",G_CALLBACK(on_package_selection_changed),widgets);
|
|
|
|
|
yon_calendar_set_date_orientation(1);
|
|
|
|
|
gtk_window_set_title(GTK_WINDOW(widgets->Window),TITLE_LABEL);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* Widget registration for config monitoring | Регистрация виджетов для мониторинга конфига */
|
|
|
|
|
/* Localisation | Локализация */
|
|
|
|
|
@ -1340,9 +1352,7 @@ int main(int argc, char *argv[]){
|
|
|
|
|
char *path = yon_char_unite(yon_ubl_user_get_home_directory(),"/.config/",LocaleName,"/",LocaleName,".conf",NULL);
|
|
|
|
|
yon_window_config_load(path);
|
|
|
|
|
yon_config_load_update((main_window*)widgets);
|
|
|
|
|
if (getuid()!=0){
|
|
|
|
|
yon_ubl_status_box_render("",BACKGROUND_IMAGE_SUCCESS_TYPE);
|
|
|
|
|
}
|
|
|
|
|
yon_ubl_status_box_render(DATA_LOADED_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE);
|
|
|
|
|
gtk_main();
|
|
|
|
|
return 0;
|
|
|
|
|
}
|