|
|
|
@ -363,6 +363,7 @@ void on_tree_selection_changed(GtkWidget *self,main_window *widgets){
|
|
|
|
gtk_widget_set_sensitive(widgets->DeleteButton,1);
|
|
|
|
gtk_widget_set_sensitive(widgets->DeleteButton,1);
|
|
|
|
gtk_widget_set_sensitive(widgets->AddPackageButton,1);
|
|
|
|
gtk_widget_set_sensitive(widgets->AddPackageButton,1);
|
|
|
|
gtk_widget_set_sensitive(widgets->RemovePackageButton,0);
|
|
|
|
gtk_widget_set_sensitive(widgets->RemovePackageButton,0);
|
|
|
|
|
|
|
|
gtk_widget_set_sensitive(widgets->SignButton,1);
|
|
|
|
gtk_widget_set_visible(widgets->NameBox,1);
|
|
|
|
gtk_widget_set_visible(widgets->NameBox,1);
|
|
|
|
gtk_widget_set_visible(widgets->DependenceBox,0);
|
|
|
|
gtk_widget_set_visible(widgets->DependenceBox,0);
|
|
|
|
gtk_widget_set_visible(widgets->VersionBox,0);
|
|
|
|
gtk_widget_set_visible(widgets->VersionBox,0);
|
|
|
|
@ -375,6 +376,7 @@ void on_tree_selection_changed(GtkWidget *self,main_window *widgets){
|
|
|
|
gtk_widget_set_sensitive(widgets->DeleteButton,0);
|
|
|
|
gtk_widget_set_sensitive(widgets->DeleteButton,0);
|
|
|
|
gtk_widget_set_sensitive(widgets->AddPackageButton,1);
|
|
|
|
gtk_widget_set_sensitive(widgets->AddPackageButton,1);
|
|
|
|
gtk_widget_set_sensitive(widgets->RemovePackageButton,1);
|
|
|
|
gtk_widget_set_sensitive(widgets->RemovePackageButton,1);
|
|
|
|
|
|
|
|
gtk_widget_set_sensitive(widgets->SignButton,1);
|
|
|
|
gtk_widget_set_visible(widgets->NameBox,1);
|
|
|
|
gtk_widget_set_visible(widgets->NameBox,1);
|
|
|
|
gtk_widget_set_visible(widgets->DependenceBox,1);
|
|
|
|
gtk_widget_set_visible(widgets->DependenceBox,1);
|
|
|
|
gtk_widget_set_visible(widgets->VersionBox,1);
|
|
|
|
gtk_widget_set_visible(widgets->VersionBox,1);
|
|
|
|
@ -388,6 +390,7 @@ void on_tree_selection_changed(GtkWidget *self,main_window *widgets){
|
|
|
|
gtk_widget_set_sensitive(widgets->DeleteButton,0);
|
|
|
|
gtk_widget_set_sensitive(widgets->DeleteButton,0);
|
|
|
|
gtk_widget_set_sensitive(widgets->AddPackageButton,0);
|
|
|
|
gtk_widget_set_sensitive(widgets->AddPackageButton,0);
|
|
|
|
gtk_widget_set_sensitive(widgets->RemovePackageButton,0);
|
|
|
|
gtk_widget_set_sensitive(widgets->RemovePackageButton,0);
|
|
|
|
|
|
|
|
gtk_widget_set_sensitive(widgets->SignButton,0);
|
|
|
|
gtk_widget_set_visible(widgets->NameBox,0);
|
|
|
|
gtk_widget_set_visible(widgets->NameBox,0);
|
|
|
|
gtk_widget_set_visible(widgets->DependenceBox,0);
|
|
|
|
gtk_widget_set_visible(widgets->DependenceBox,0);
|
|
|
|
gtk_widget_set_visible(widgets->VersionBox,0);
|
|
|
|
gtk_widget_set_visible(widgets->VersionBox,0);
|
|
|
|
@ -405,7 +408,41 @@ void on_repo_add_new(GtkWidget *self, dictionary *dict){
|
|
|
|
name = window->path;
|
|
|
|
name = window->path;
|
|
|
|
if (!name||strcmp(name,"")!=0){
|
|
|
|
if (!name||strcmp(name,"")!=0){
|
|
|
|
GtkTreeIter *iter = yon_repo_append(widgets, name, YON_REPO_LINE_REPO_TYPE);
|
|
|
|
GtkTreeIter *iter = yon_repo_append(widgets, name, YON_REPO_LINE_REPO_TYPE);
|
|
|
|
gtk_tree_store_set(main_config.tree_store,iter,0,folder_added,2,window->path,3,1,-1);
|
|
|
|
struct dirent *de;
|
|
|
|
|
|
|
|
GtkTreeIter child;
|
|
|
|
|
|
|
|
char *reponame = yon_char_new(name);
|
|
|
|
|
|
|
|
yon_char_divide(reponame,yon_char_find_last(reponame,'/'));
|
|
|
|
|
|
|
|
char *searchpath = yon_char_unite(name,"/",reponame,"/x86_64/",NULL);
|
|
|
|
|
|
|
|
DIR *directory = opendir(searchpath);
|
|
|
|
|
|
|
|
if (directory){
|
|
|
|
|
|
|
|
char *found_packages = NULL;
|
|
|
|
|
|
|
|
while ((de = readdir(directory)))
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
if (strstr(de->d_name,"pkg.tar.")&&!strstr(de->d_name,".sig")){
|
|
|
|
|
|
|
|
char *filename = yon_char_unite(searchpath,"/",de->d_name,NULL);
|
|
|
|
|
|
|
|
FILE *file = popen(get_package_info_command(filename),"r");
|
|
|
|
|
|
|
|
char *cur_string=g_malloc0(sizeof(char)*4096);
|
|
|
|
|
|
|
|
char *packname=NULL, *packver=NULL, *packarch=NULL, *packdepends=NULL;
|
|
|
|
|
|
|
|
while (fgets(cur_string,4096,file)){
|
|
|
|
|
|
|
|
char *stringe = yon_char_divide_search(cur_string,"\n",-1);
|
|
|
|
|
|
|
|
char *p = yon_char_divide_search(stringe,":",-1);
|
|
|
|
|
|
|
|
if (strstr(p,"Name")) packname = yon_char_new(stringe);
|
|
|
|
|
|
|
|
else if (strstr(p,"Version")) packver = yon_char_new(stringe);
|
|
|
|
|
|
|
|
else if (strstr(p,"Architecture")) packarch = yon_char_new(stringe);
|
|
|
|
|
|
|
|
else if (strstr(p,"Depends On")) packdepends = yon_char_new(stringe);
|
|
|
|
|
|
|
|
else if (strstr(p,"Depends On")) packdepends = yon_char_new(stringe);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
gtk_tree_store_append(main_config.tree_store,&child,iter);
|
|
|
|
|
|
|
|
gtk_tree_store_set(main_config.tree_store,&child,0,document_no_edits,1,yon_char_unite(packname,"-",packver,"-",packarch,NULL),2,filename,3,0,9,packname,10,packver,11,packarch,12,packdepends,-1);
|
|
|
|
|
|
|
|
found_packages = yon_char_unite(found_packages ? yon_char_append(found_packages,",") : "",de->d_name,NULL);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
yon_window_config_add_custom_parameter(window->path,"repos",found_packages,YON_TYPE_STRING);
|
|
|
|
|
|
|
|
gtk_tree_store_set(main_config.tree_store,iter,0,folder_no_edits,2,window->path,3,0,9,reponame,-1);
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
gtk_tree_store_set(main_config.tree_store,iter,0,folder_added,2,window->path,3,1,9,reponame,-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 {
|
|
|
|
} else {
|
|
|
|
yon_ubl_status_box_render(EMPTY_NAME_LABEL,BACKGROUND_IMAGE_FAIL_TYPE);
|
|
|
|
yon_ubl_status_box_render(EMPTY_NAME_LABEL,BACKGROUND_IMAGE_FAIL_TYPE);
|
|
|
|
@ -539,19 +576,12 @@ void on_repo_configure_done(GtkWidget *self, dictionary *dict){
|
|
|
|
|
|
|
|
|
|
|
|
void on_repo_load_local(GtkWidget *self, main_window *widgets){
|
|
|
|
void on_repo_load_local(GtkWidget *self, main_window *widgets){
|
|
|
|
GtkFileFilter *file_filter = gtk_file_filter_new();
|
|
|
|
GtkFileFilter *file_filter = gtk_file_filter_new();
|
|
|
|
GtkWidget *chooser = gtk_file_chooser_dialog_new(LOAD_REPO_LABEL,NULL,GTK_FILE_CHOOSER_ACTION_OPEN,CANCEL_LABEL,GTK_RESPONSE_CANCEL,OPEN_LABEL,GTK_RESPONSE_ACCEPT,NULL);
|
|
|
|
GtkWidget *chooser = gtk_file_chooser_dialog_new(LOAD_REPO_LABEL,NULL,GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER,CANCEL_LABEL,GTK_RESPONSE_CANCEL,OPEN_LABEL,GTK_RESPONSE_ACCEPT,NULL);
|
|
|
|
gtk_file_filter_add_pattern(file_filter,"*db.tar.gz");
|
|
|
|
|
|
|
|
gtk_file_filter_set_name(file_filter, "*db.tar.gz");
|
|
|
|
|
|
|
|
gtk_file_chooser_add_filter(GTK_FILE_CHOOSER(chooser),file_filter);
|
|
|
|
|
|
|
|
gtk_window_set_icon_name(GTK_WINDOW(chooser),"com.ublinux.ubl-settings-repomanager");
|
|
|
|
gtk_window_set_icon_name(GTK_WINDOW(chooser),"com.ublinux.ubl-settings-repomanager");
|
|
|
|
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));
|
|
|
|
while (1){
|
|
|
|
|
|
|
|
char *ret = yon_char_divide_search(filename,"/",-1);
|
|
|
|
|
|
|
|
if (strcmp(ret,filename)==0) break;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
yon_repo_append(widgets,filename,YON_REPO_LINE_REPO_TYPE);
|
|
|
|
yon_repo_append(widgets,filename,YON_REPO_LINE_REPO_TYPE);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
on_close_subwindow(chooser);
|
|
|
|
on_close_subwindow(chooser);
|
|
|
|
@ -647,11 +677,17 @@ void yon_repo_remove(main_window *widgets){
|
|
|
|
} else yon_ubl_status_box_render(NOTHING_CHOSEN_LABEL,BACKGROUND_IMAGE_FAIL_TYPE);
|
|
|
|
} else yon_ubl_status_box_render(NOTHING_CHOSEN_LABEL,BACKGROUND_IMAGE_FAIL_TYPE);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
gboolean yon_check_file_pattern(GtkFileFilterInfo *info){
|
|
|
|
|
|
|
|
if (!strstr(info->filename,".sig")&&strstr(info->filename,".pkg.tar."))
|
|
|
|
|
|
|
|
return 1;
|
|
|
|
|
|
|
|
else return 0;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void yon_add_file(main_window *widgets){
|
|
|
|
void yon_add_file(main_window *widgets){
|
|
|
|
GtkWidget *chooser = gtk_file_chooser_dialog_new(ADD_PACKAGE_REPO_LABEL,NULL,GTK_FILE_CHOOSER_ACTION_OPEN,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_OPEN,CANCEL_LABEL,GTK_RESPONSE_CANCEL,OPEN_LABEL,GTK_RESPONSE_ACCEPT,NULL);
|
|
|
|
GtkFileFilter *file_filter = gtk_file_filter_new();
|
|
|
|
GtkFileFilter *file_filter = gtk_file_filter_new();
|
|
|
|
file_filter = gtk_file_filter_new();
|
|
|
|
file_filter = gtk_file_filter_new();
|
|
|
|
gtk_file_filter_add_pattern(file_filter,"*.pkg.tar.*");
|
|
|
|
gtk_file_filter_add_custom(file_filter,GTK_FILE_FILTER_FILENAME,(GtkFileFilterFunc)yon_check_file_pattern,NULL,NULL);
|
|
|
|
gtk_file_filter_set_name(file_filter,".pkg.tar.*");
|
|
|
|
gtk_file_filter_set_name(file_filter,".pkg.tar.*");
|
|
|
|
gtk_file_chooser_add_filter(GTK_FILE_CHOOSER(chooser),file_filter);
|
|
|
|
gtk_file_chooser_add_filter(GTK_FILE_CHOOSER(chooser),file_filter);
|
|
|
|
file_filter = gtk_file_filter_new();
|
|
|
|
file_filter = gtk_file_filter_new();
|
|
|
|
|