Added quick move and remove buttons to RMB menu

pull/41/head
parent 15cf9da4d4
commit affff17bc8

@ -1035,7 +1035,7 @@ void on_move_accept(GtkWidget *self, dictionary *dict){
}
}
void on_move_clicked(GtkWidget *self, main_window *widgets){
repo_add_window *on_move_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),MOVE_PACKAGES_TITLE_LABEL,icon_path,"move-repo-window");
gtk_label_set_text(GTK_LABEL(window->HeadLabel),MOVE_PACKAGES_TITLE_LABEL);
@ -1108,6 +1108,7 @@ void on_move_clicked(GtkWidget *self, main_window *widgets){
gtk_combo_box_set_active_id(GTK_COMBO_BOX(window->MoveSourceArchEntry),arc);
}
gtk_widget_show(window->MainWindow);
return window;
}
void on_remove_add_package(GtkWidget *self, repo_add_window *window){
@ -1202,7 +1203,7 @@ void on_remove_accept(GtkWidget *self, dictionary *dict){
gtk_widget_destroy(window->MainWindow);
}
void on_remove_clicked(GtkWidget *self, main_window *widgets){
repo_add_window *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),REMOVE_PACKAGES_TITLE_LABEL,icon_path,"add-repo-window");
gtk_label_set_text(GTK_LABEL(window->HeadLabel),REMOVE_PACKAGES_TITLE_LABEL);
@ -1237,6 +1238,7 @@ void on_remove_clicked(GtkWidget *self, main_window *widgets){
g_signal_connect(G_OBJECT(window->RepositoryCombo),"changed",G_CALLBACK(on_repo_sign_load),window);
yon_add_window_set_selected(widgets,window);
gtk_widget_show(window->MainWindow);
return window;
}
/* setup functions */
@ -1723,6 +1725,51 @@ int yon_tree_is_selected(void *widget){
return 0;
}
void on_rmb_move(GtkWidget *self, main_window *widgets){
repo_add_window *window = on_move_clicked(NULL,widgets);
GtkTreeModel *model;
GtkTreeIter iter;
char *path;
gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->ReposTree)),&model,&iter);
gtk_tree_model_get(model,&iter,3,&path,-1);
GList *list = gtk_tree_selection_get_selected_rows(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->RepoFileTree)),&model);
for (int i=0;i<g_list_length(list);i++){
GtkTreeIter itar;
char *filename, *name;
gtk_tree_model_get_iter(model,&iter,g_list_nth_data(list,i));
gtk_tree_model_get(model,&iter,1,&name,2,&filename,-1);
char *full_path = yon_char_unite(path,"/",filename,NULL);
gtk_list_store_append(window->PackagesList,&itar);
gtk_list_store_set(window->PackagesList,&itar,1,name,2,full_path,-1);
free(full_path);
free(filename);
free(name);
}
}
void on_rmb_remove(GtkWidget *self, main_window *widgets){
repo_add_window *window = on_remove_clicked(NULL,widgets);
GtkTreeModel *model;
GtkTreeIter iter;
char *path;
gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->ReposTree)),&model,&iter);
gtk_tree_model_get(model,&iter,3,&path,-1);
GList *list = gtk_tree_selection_get_selected_rows(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->RepoFileTree)),&model);
for (int i=0;i<g_list_length(list);i++){
GtkTreeIter itar;
char *filename, *name;
gtk_tree_model_get_iter(model,&iter,g_list_nth_data(list,i));
gtk_tree_model_get(model,&iter,1,&name,2,&filename,-1);
char *full_path = yon_char_unite(path,"/",filename,NULL);
gtk_list_store_append(window->PackagesList,&itar);
gtk_list_store_set(window->PackagesList,&itar,1,name,2,full_path,-1);
free(full_path);
free(filename);
free(name);
}
}
main_window *yon_main_window_complete(main_window *widgets){
widgets = yon_remalloc(widgets,sizeof(main_window));
GtkBuilder *builder = gtk_builder_new_from_resource(glade_path);
@ -1762,7 +1809,11 @@ main_window *yon_main_window_complete(main_window *widgets){
}
main_config.tree_store = widgets->RepoList;
rmb_menu_window *rmb = yon_rmb_menu_setup(widgets->RepoFileTree, yon_tree_is_selected,widgets,SIGN_LABEL,lib_key_icon_name,G_CALLBACK(on_packages_sign),widgets,NULL);
rmb_menu_window *rmb = yon_rmb_menu_setup(widgets->RepoFileTree, yon_tree_is_selected,widgets,
SIGN_LABEL,lib_key_icon_name,G_CALLBACK(on_packages_sign),widgets,
MOVE_PACKAGES_TITLE_LABEL,move_icon,G_CALLBACK(on_rmb_move),widgets,
REMOVE_PACKAGES_TITLE_LABEL,remove_icon,G_CALLBACK(on_rmb_remove),widgets,
NULL);
g_signal_connect(G_OBJECT(widgets->DBConfigurationButton),"clicked",G_CALLBACK(on_storage_configure_clicked),widgets);
g_signal_connect(G_OBJECT(widgets->AddButton),"clicked",G_CALLBACK(on_add_clicked),widgets);

@ -38,6 +38,9 @@
#define document_deleted "com.ublinux.ubl-settings-repomanager.key-red-symbolic"
#define document_added "com.ublinux.ubl-settings-repomanager.key-green-symbolic"
#define move_icon "com.ublinux.libublsettingsui-gtk3.arrows-left-right-symbolic"
#define remove_icon "com.ublinux.libublsettingsui-gtk3.trash-symbolic"
#define LocalePath "/usr/share/locale"
#define LocaleName "ubl-settings-repomanager"
@ -61,7 +64,7 @@ typedef char* string;
#define create_storage_command(path,name) yon_char_unite("repo-manager add -r '",name,"' -d '", path,"'",NULL)
#define add_packages_command(path,arch,name,packages_path) yon_char_unite("repo-manager add -f -r '",name,"' -a '",arch,"' -d '", path,"' ",packages_path,NULL)
#define add_packages_sign_command(path,arch,name,repo_sign,pack_sign,packages_path) yon_char_unite("repo-manager add -f -r '",name,"' -a '",arch,"' -d '", path,"' -S '",repo_sign,"' -s '",pack_sign,"' ",packages_path,NULL)
#define add_packages_package_sign_command(path,arch,name,sign,packages_path) yon_char_unite("repo-manager add -f -r '",name,"' -a '",arch,"' -d '", path,"' -S '",sign,"' ",packages_path,NULL)
#define add_packages_package_sign_command(path,arch,name,sign,packages_path) yon_char_unite("repo-manager add -f -r '",name,"' -a '",arch,"' -d '", path,"' -s '",sign,"' ",packages_path,NULL)
#define add_packages_repo_sign_command(path,arch,name,sign,packages_path) yon_char_unite("repo-manager add -f -r '",name,"' -a '",arch,"' -d '", path,"' -S '",sign,"' ",packages_path,NULL)
#define remove_packages_command(path,arch,name,packages_path) yon_char_unite("repo-manager remove -r '",name,"' -a '",arch,"' -d '", path,"' ",packages_path,NULL)
@ -84,7 +87,7 @@ typedef char* string;
#define get_gpg_keys_command yon_char_unite(yon_ubl_check_root()==1 ? yon_char_unite("su - ",yon_ubl_root_user_get()," -c \"gpg --list-signatures\"",NULL):"gpg --list-signatures"," | grep '^sig 3' | cut -d' ' -f10,11,13- | sort -u |sed -e 's/[0-9]*-[0-9]*-[0-9]* //g'",NULL)
#define yon_sign_package(storage,repo,arch,target,sign) yon_char_unite("repo-manager add -r '",repo,"' -a '",arch,"' -d '", storage,"' -S '",sign,"' ",target,NULL)
#define yon_sign_package(storage,repo,arch,target,sign) yon_char_unite("repo-manager add -r '",repo,"' -a '",arch,"' -d '", storage,"' -s '",sign,"' ",target,NULL)
#define yon_sign_repo(storage,repo,sign) yon_char_unite("repo-manager add -f -r '",repo,"' -d '", storage,"' --sign-repo='",sign,"'",NULL)
#define get_package_info_command(filename) yon_char_unite("pacman -Q --info --file ",filename," 2>/dev/null|sed -e 's/ */ /g' -e 's/ : /: /g' -e 's/\\n/ /g' -e 's/^ /\\t/g'",NULL)

Loading…
Cancel
Save