|
|
|
@ -98,6 +98,34 @@ void on_about(){
|
|
|
|
gtk_widget_show(window);
|
|
|
|
gtk_widget_show(window);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void on_save(){
|
|
|
|
|
|
|
|
char *command = "ubl-settings-repo-back";
|
|
|
|
|
|
|
|
char *remove_flagged = " ";
|
|
|
|
|
|
|
|
char *add_flagged = " ";
|
|
|
|
|
|
|
|
char *origin_flagged = NULL;
|
|
|
|
|
|
|
|
GtkTreeIter iter, childIter;
|
|
|
|
|
|
|
|
int valid = gtk_tree_model_get_iter_first(GTK_TREE_MODEL(main_config.tree_store),&iter);
|
|
|
|
|
|
|
|
for (;valid;valid=gtk_tree_model_iter_next(GTK_TREE_MODEL(main_config.tree_store),&iter)){
|
|
|
|
|
|
|
|
char *path=NULL;
|
|
|
|
|
|
|
|
char *name = NULL;
|
|
|
|
|
|
|
|
char *remove_flagged = " ";
|
|
|
|
|
|
|
|
char *add_flagged = " ";
|
|
|
|
|
|
|
|
gtk_tree_model_get(GTK_TREE_MODEL(main_config.tree_store),&iter,3,&path,1,&name,-1);
|
|
|
|
|
|
|
|
origin_flagged = yon_char_unite(path,"/",name,".db.tar.gz",NULL);
|
|
|
|
|
|
|
|
if (strstr(origin_flagged," ")) origin_flagged = yon_char_unite("\"",origin_flagged,"\"",NULL);
|
|
|
|
|
|
|
|
int valid_child=gtk_tree_model_iter_children(GTK_TREE_MODEL(main_config.tree_store),&childIter,&iter);
|
|
|
|
|
|
|
|
for (;valid_child;valid_child=gtk_tree_model_iter_next(GTK_TREE_MODEL(main_config.tree_store),&childIter)){
|
|
|
|
|
|
|
|
path=NULL;
|
|
|
|
|
|
|
|
int status = 0,deleted = 0;
|
|
|
|
|
|
|
|
gtk_tree_model_get(GTK_TREE_MODEL(main_config.tree_store),&childIter,3,&path,4,&status,5,&deleted,-1);
|
|
|
|
|
|
|
|
if (status==-1) { remove_flagged = yon_char_unite(remove_flagged," --package-remove ",path,NULL); gtk_tree_store_remove(main_config.tree_store,&childIter);}
|
|
|
|
|
|
|
|
else if (status == 1&&deleted==0) add_flagged = yon_char_unite(add_flagged," --package-add ",path,NULL);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
command = yon_char_unite(command," -o ",origin_flagged,"/",name,".db.tar.gz",remove_flagged,add_flagged,NULL);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
printf("%s\n",command);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void on_tree_selection_changed(GtkWidget *self,main_window *widgets){
|
|
|
|
void on_tree_selection_changed(GtkWidget *self,main_window *widgets){
|
|
|
|
GtkTreeModel *model = GTK_TREE_MODEL(main_config.tree_store);
|
|
|
|
GtkTreeModel *model = GTK_TREE_MODEL(main_config.tree_store);
|
|
|
|
@ -131,6 +159,7 @@ int yon_add_branches(GtkTreeModel* model, GtkTreePath* path, GtkTreeIter* iter,
|
|
|
|
void on_repo_add_new(GtkWidget *self, dictionary *dict){
|
|
|
|
void on_repo_add_new(GtkWidget *self, dictionary *dict){
|
|
|
|
main_window *widgets = yon_dictionary_get_data(dict->first,main_window*);
|
|
|
|
main_window *widgets = yon_dictionary_get_data(dict->first,main_window*);
|
|
|
|
repo_create_window *window = yon_dictionary_get_data(dict->first->next,repo_create_window*);
|
|
|
|
repo_create_window *window = yon_dictionary_get_data(dict->first->next,repo_create_window*);
|
|
|
|
|
|
|
|
if (!window->path){ yon_ubl_status_box_render(CHOOSE_PATH_LABEL,BACKGROUND_IMAGE_FAIL_TYPE); return;}
|
|
|
|
char *name = yon_char_new((char*)gtk_entry_get_text(GTK_ENTRY(window->NameEntry)));
|
|
|
|
char *name = yon_char_new((char*)gtk_entry_get_text(GTK_ENTRY(window->NameEntry)));
|
|
|
|
if (!name||strcmp(name,"")!=0){
|
|
|
|
if (!name||strcmp(name,"")!=0){
|
|
|
|
on_close_subwindow(self);
|
|
|
|
on_close_subwindow(self);
|
|
|
|
@ -157,13 +186,14 @@ void on_branch_add(GtkCellRendererText *self, char*path,char *new_text, repo_cre
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void on_choose_repo_folder(repo_create_window *window){
|
|
|
|
void on_choose_repo_folder(GtkWidget *self,repo_create_window *window){
|
|
|
|
GtkWidget *chooser = gtk_file_chooser_dialog_new(ADD_PACKAGE_REPO_LABEL,NULL,GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER,CANCEL_LABEL,GTK_RESPONSE_CANCEL,OPEN_LABEL,GTK_RESPONSE_ACCEPT,NULL);
|
|
|
|
GtkWidget *chooser = gtk_file_chooser_dialog_new(ADD_PACKAGE_REPO_LABEL,NULL,GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER,CANCEL_LABEL,GTK_RESPONSE_CANCEL,OPEN_LABEL,GTK_RESPONSE_ACCEPT,NULL);
|
|
|
|
int res = gtk_dialog_run(GTK_DIALOG(chooser));
|
|
|
|
int res = gtk_dialog_run(GTK_DIALOG(chooser));
|
|
|
|
if (res==GTK_RESPONSE_ACCEPT){
|
|
|
|
if (res==GTK_RESPONSE_ACCEPT){
|
|
|
|
|
|
|
|
|
|
|
|
char *filename = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(chooser));
|
|
|
|
char *filename = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(chooser));
|
|
|
|
window->path=filename;
|
|
|
|
window->path=yon_char_new(filename);
|
|
|
|
|
|
|
|
gtk_label_set_text(GTK_LABEL(window->PathLabel),window->path);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
on_close_subwindow(chooser);
|
|
|
|
on_close_subwindow(chooser);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
@ -179,6 +209,8 @@ void on_repo_new (GtkWidget *self, main_window *widgets){
|
|
|
|
window->repoChooseFolderButton=yon_gtk_builder_get_widget(builder,"repoChooseFolderButton");
|
|
|
|
window->repoChooseFolderButton=yon_gtk_builder_get_widget(builder,"repoChooseFolderButton");
|
|
|
|
window->BranchCell=GTK_CELL_RENDERER(gtk_builder_get_object(builder,"branchTextCell"));
|
|
|
|
window->BranchCell=GTK_CELL_RENDERER(gtk_builder_get_object(builder,"branchTextCell"));
|
|
|
|
window->BranchesListStore=GTK_LIST_STORE(gtk_builder_get_object(builder,"curRepoEditList"));
|
|
|
|
window->BranchesListStore=GTK_LIST_STORE(gtk_builder_get_object(builder,"curRepoEditList"));
|
|
|
|
|
|
|
|
window->PathLabel=yon_gtk_builder_get_widget(builder,"repoPathLabel");
|
|
|
|
|
|
|
|
window->path=NULL;
|
|
|
|
gtk_widget_show(window->Window);
|
|
|
|
gtk_widget_show(window->Window);
|
|
|
|
GtkTreeIter iter;
|
|
|
|
GtkTreeIter iter;
|
|
|
|
gtk_list_store_append(window->BranchesListStore,&iter);
|
|
|
|
gtk_list_store_append(window->BranchesListStore,&iter);
|
|
|
|
@ -265,6 +297,7 @@ GtkTreeIter *yon_repo_append(main_window *widgets, char *name, YON_REPO_LINE_TYP
|
|
|
|
GdkPixbuf *icon = NULL;
|
|
|
|
GdkPixbuf *icon = NULL;
|
|
|
|
GtkIconTheme *theme = gtk_icon_theme_get_default();
|
|
|
|
GtkIconTheme *theme = gtk_icon_theme_get_default();
|
|
|
|
char *name_short = yon_char_new(name);
|
|
|
|
char *name_short = yon_char_new(name);
|
|
|
|
|
|
|
|
gboolean fls = 0;
|
|
|
|
while(1){
|
|
|
|
while(1){
|
|
|
|
yon_char_divide_search(name_short,"/",-1);
|
|
|
|
yon_char_divide_search(name_short,"/",-1);
|
|
|
|
if (!strstr(name_short,"/")) break;
|
|
|
|
if (!strstr(name_short,"/")) break;
|
|
|
|
@ -274,7 +307,7 @@ GtkTreeIter *yon_repo_append(main_window *widgets, char *name, YON_REPO_LINE_TYP
|
|
|
|
if (type==YON_REPO_LINE_REPO_TYPE){
|
|
|
|
if (type==YON_REPO_LINE_REPO_TYPE){
|
|
|
|
icon = gtk_icon_theme_load_icon_for_scale(theme,"folder-symbolic",16,1,GTK_ICON_LOOKUP_FORCE_SIZE,NULL);
|
|
|
|
icon = gtk_icon_theme_load_icon_for_scale(theme,"folder-symbolic",16,1,GTK_ICON_LOOKUP_FORCE_SIZE,NULL);
|
|
|
|
gtk_tree_store_append(main_config.tree_store,&iter,NULL);
|
|
|
|
gtk_tree_store_append(main_config.tree_store,&iter,NULL);
|
|
|
|
gtk_tree_store_set(main_config.tree_store,&iter,0, "folder-symbolic", 1, name_short,3,name,-1);
|
|
|
|
gtk_tree_store_set(main_config.tree_store,&iter,0, "folder-symbolic", 1, name_short,3,name,4,1,5,fls,-1);
|
|
|
|
retIter = gtk_tree_iter_copy(&iter);
|
|
|
|
retIter = gtk_tree_iter_copy(&iter);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
else if (type==YON_REPO_LINE_FILE_TYPE){
|
|
|
|
else if (type==YON_REPO_LINE_FILE_TYPE){
|
|
|
|
@ -283,12 +316,12 @@ GtkTreeIter *yon_repo_append(main_window *widgets, char *name, YON_REPO_LINE_TYP
|
|
|
|
if (gtk_tree_model_iter_parent(model,&branch,&parentIter)){
|
|
|
|
if (gtk_tree_model_iter_parent(model,&branch,&parentIter)){
|
|
|
|
GtkTreeIter repo;
|
|
|
|
GtkTreeIter repo;
|
|
|
|
gtk_tree_store_append(main_config.tree_store,&iter,&branch);
|
|
|
|
gtk_tree_store_append(main_config.tree_store,&iter,&branch);
|
|
|
|
gtk_tree_store_set(main_config.tree_store,&iter,0, "com.ublinux.ubl-settings-repomanager.document-symbolic", 1, name_short,3,name,-1);
|
|
|
|
gtk_tree_store_set(main_config.tree_store,&iter,0, "com.ublinux.ubl-settings-repomanager.document-symbolic", 1, name_short,3,name,4,1,5,fls,-1);
|
|
|
|
retIter = gtk_tree_iter_copy(&branch);
|
|
|
|
retIter = gtk_tree_iter_copy(&branch);
|
|
|
|
|
|
|
|
|
|
|
|
} else {
|
|
|
|
} else {
|
|
|
|
gtk_tree_store_append(main_config.tree_store,&iter,&parentIter);
|
|
|
|
gtk_tree_store_append(main_config.tree_store,&iter,&parentIter);
|
|
|
|
gtk_tree_store_set(main_config.tree_store,&iter,0, "com.ublinux.ubl-settings-repomanager.document-symbolic", 1, name_short,3,name,-1);
|
|
|
|
gtk_tree_store_set(main_config.tree_store,&iter,0, "com.ublinux.ubl-settings-repomanager.document-symbolic", 1, name_short,3,name,4,1,5,fls,-1);
|
|
|
|
retIter = gtk_tree_iter_copy(&iter);
|
|
|
|
retIter = gtk_tree_iter_copy(&iter);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
yon_ubl_status_box_render(OPERATION_DONE_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE);
|
|
|
|
yon_ubl_status_box_render(OPERATION_DONE_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE);
|
|
|
|
@ -298,7 +331,7 @@ GtkTreeIter *yon_repo_append(main_window *widgets, char *name, YON_REPO_LINE_TYP
|
|
|
|
else if (type==YON_REPO_LINE_REPO_TYPE){
|
|
|
|
else if (type==YON_REPO_LINE_REPO_TYPE){
|
|
|
|
icon = gtk_icon_theme_load_icon_for_scale(theme,"folder-symbolic",16,1,GTK_ICON_LOOKUP_FORCE_SIZE,NULL);
|
|
|
|
icon = gtk_icon_theme_load_icon_for_scale(theme,"folder-symbolic",16,1,GTK_ICON_LOOKUP_FORCE_SIZE,NULL);
|
|
|
|
gtk_tree_store_append(main_config.tree_store,&iter,NULL);
|
|
|
|
gtk_tree_store_append(main_config.tree_store,&iter,NULL);
|
|
|
|
gtk_tree_store_set(main_config.tree_store,&iter,0, "folder-symbolic", 1, name_short,3,name,-1);
|
|
|
|
gtk_tree_store_set(main_config.tree_store,&iter,0, "folder-symbolic", 1, name_short,3,name,4,1,5,fls,-1);
|
|
|
|
retIter = gtk_tree_iter_copy(&iter);
|
|
|
|
retIter = gtk_tree_iter_copy(&iter);
|
|
|
|
gtk_tree_selection_select_iter(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->RepoTree)),&iter);
|
|
|
|
gtk_tree_selection_select_iter(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->RepoTree)),&iter);
|
|
|
|
} else {
|
|
|
|
} else {
|
|
|
|
@ -313,7 +346,12 @@ void yon_repo_remove_package(main_window *widgets){
|
|
|
|
if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->RepoTree)),&model,&iter)){
|
|
|
|
if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->RepoTree)),&model,&iter)){
|
|
|
|
GtkTreeIter iterparent;
|
|
|
|
GtkTreeIter iterparent;
|
|
|
|
if (gtk_tree_model_iter_parent(model,&iterparent,&iter)){
|
|
|
|
if (gtk_tree_model_iter_parent(model,&iterparent,&iter)){
|
|
|
|
gtk_tree_store_remove(main_config.tree_store,&iter);
|
|
|
|
// gtk_tree_store_remove(main_config.tree_store,&iter);
|
|
|
|
|
|
|
|
int status = 0;
|
|
|
|
|
|
|
|
gtk_tree_model_get(GTK_TREE_MODEL(main_config.tree_store),&iter,4,&status,-1);
|
|
|
|
|
|
|
|
if (status != 1)
|
|
|
|
|
|
|
|
gtk_tree_store_set(main_config.tree_store,&iter,4,-1,-1);
|
|
|
|
|
|
|
|
gtk_tree_store_set(main_config.tree_store,&iter,5,1,-1);
|
|
|
|
yon_ubl_status_box_render(OPERATION_DONE_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE);
|
|
|
|
yon_ubl_status_box_render(OPERATION_DONE_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE);
|
|
|
|
}else yon_ubl_status_box_render(CHOOSE_PACK_LABEL,BACKGROUND_IMAGE_FAIL_TYPE);
|
|
|
|
}else yon_ubl_status_box_render(CHOOSE_PACK_LABEL,BACKGROUND_IMAGE_FAIL_TYPE);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
@ -475,6 +513,7 @@ main_window *setup_window(){
|
|
|
|
g_signal_connect(G_OBJECT(widgets->DeleteButton),"clicked",G_CALLBACK(on_repo_remove),widgets);
|
|
|
|
g_signal_connect(G_OBJECT(widgets->DeleteButton),"clicked",G_CALLBACK(on_repo_remove),widgets);
|
|
|
|
g_signal_connect(G_OBJECT(widgets->LoadFromLocalButton),"clicked",G_CALLBACK(on_repo_load_local),widgets);
|
|
|
|
g_signal_connect(G_OBJECT(widgets->LoadFromLocalButton),"clicked",G_CALLBACK(on_repo_load_local),widgets);
|
|
|
|
g_signal_connect(G_OBJECT(widgets->ConfigureButton),"clicked",G_CALLBACK(on_repo_configure),widgets);
|
|
|
|
g_signal_connect(G_OBJECT(widgets->ConfigureButton),"clicked",G_CALLBACK(on_repo_configure),widgets);
|
|
|
|
|
|
|
|
g_signal_connect(G_OBJECT(widgets->SaveButton),"clicked",G_CALLBACK(on_save),widgets);
|
|
|
|
|
|
|
|
|
|
|
|
/* Localisation | Локализация */
|
|
|
|
/* Localisation | Локализация */
|
|
|
|
gtk_widget_show(widgets->Window);
|
|
|
|
gtk_widget_show(widgets->Window);
|
|
|
|
|