From ec507c6949edc8e019d30ca0135289b13c1626d5 Mon Sep 17 00:00:00 2001 From: Ivan Yarcev Date: Mon, 30 Sep 2024 17:08:55 +0600 Subject: [PATCH] Changed sort of group choosement window --- source/ubl-settings-usergroups.c | 19 +++++++++++++------ ubl-settings-usergroups-group.glade | 14 +++++++++++++- 2 files changed, 26 insertions(+), 7 deletions(-) diff --git a/source/ubl-settings-usergroups.c b/source/ubl-settings-usergroups.c index c6fafa0..b3c0d91 100644 --- a/source/ubl-settings-usergroups.c +++ b/source/ubl-settings-usergroups.c @@ -874,6 +874,7 @@ void on_groups_clicked(GtkWidget *self, GtkEntry *output_target){ } free(groupname); } + gtk_tree_view_column_set_title(gtk_tree_view_get_column(GTK_TREE_VIEW(window->GroupsTree),1),GID_LABEL); gtk_tree_view_column_set_visible(gtk_tree_view_get_column(GTK_TREE_VIEW(window->GroupsTree),0),0); gtk_tree_selection_set_mode(gtk_tree_view_get_selection(GTK_TREE_VIEW(window->GroupsTree)),GTK_SELECTION_SINGLE); const char *current_group=gtk_entry_get_text(output_target); @@ -941,6 +942,7 @@ void on_groups_multiple_save(GtkWidget *self, dictionary *dict){ void on_groups_multiple_clicked(GtkWidget *self, GtkEntry *output_target){ ubl_settings_usergroups_group_window *window = yon_ubl_settings_usergroups_group_new(0); + gtk_tree_view_column_set_title(gtk_tree_view_get_column(GTK_TREE_VIEW(window->GroupsTree),1),GID_LABEL); gtk_window_set_title(GTK_WINDOW(window->GroupsWindow),ADDITIONAL_GROUPS_TITLE_LABEL); gtk_label_set_text(GTK_LABEL(window->HeaderLabel),ADDITIONAL_GROUPS_TITLE_LABEL); GtkTreeIter iter, itar,itor; @@ -1266,6 +1268,7 @@ void on_user_choose(GtkWidget *self, GtkEntry *target){ ubl_settings_usergroups_group_window *window = yon_ubl_settings_usergroups_group_new(1); gtk_label_set_text(GTK_LABEL(window->HeaderLabel),GROUP_USERS_TITLE_LABEL); gtk_label_set_text(GTK_LABEL(window->HeaderLabel),GROUP_USERS_TITLE_LABEL); + gtk_tree_view_column_set_title(gtk_tree_view_get_column(GTK_TREE_VIEW(window->GroupsTree),1),UID_LABEL); gtk_tree_view_column_set_title(GTK_TREE_VIEW_COLUMN(window->GroupColumn),USERS_LABEL); GtkTreeIter iter, itar,itor; char *output = (char*)gtk_entry_get_text(target); @@ -1539,8 +1542,8 @@ ubl_settings_usergroups_group_window *yon_ubl_settings_usergroups_group_new(int window->HeaderLabel=yon_gtk_builder_get_widget(builder,"HeaderLabel"); window->StatusCell = GTK_CELL_RENDERER(gtk_builder_get_object(builder,"StatusCell")); window->GroupColumn = GTK_TREE_VIEW_COLUMN(gtk_builder_get_object(builder,"GroupColumn")); - window->list = gtk_list_store_new(2,G_TYPE_BOOLEAN,G_TYPE_STRING); - gtk_tree_sortable_set_sort_column_id(GTK_TREE_SORTABLE(window->list),1,GTK_SORT_ASCENDING); + window->list = gtk_list_store_new(3,G_TYPE_BOOLEAN,G_TYPE_STRING,G_TYPE_INT); + gtk_tree_sortable_set_sort_column_id(GTK_TREE_SORTABLE(window->list),2,GTK_SORT_ASCENDING); yon_window_config_custom_window_setup(GTK_WINDOW(window->GroupsWindow),"GroupWindow"); gtk_window_set_title(GTK_WINDOW(window->GroupsWindow),GROUPS_TITLE_LABEL); @@ -1556,10 +1559,13 @@ ubl_settings_usergroups_group_window *yon_ubl_settings_usergroups_group_new(int current_size = main_config.groups_size; } for (int i=0;ilist,&iter); - gtk_list_store_set(window->list,&iter,0,0,1,group_name,-1); + int parsed_size=0; + config_str parsed = yon_char_parse(current[i],&parsed_size,":"); + if (parsed_size>2&&!yon_char_is_empty(parsed[2])){ + gtk_list_store_append(window->list,&iter); + gtk_list_store_set(window->list,&iter,0,0,1,parsed[0],2,atoi(parsed[2]),-1); + } + if (parsed_size) yon_char_parsed_free(parsed,parsed_size); } gtk_tree_view_set_model(GTK_TREE_VIEW(window->GroupsTree),GTK_TREE_MODEL(window->list)); @@ -1592,6 +1598,7 @@ void on_standard_groups_open(GtkWidget *self, main_window *widgets){ ubl_settings_usergroups_group_window *window = yon_ubl_settings_usergroups_group_new(0); gtk_window_set_title(GTK_WINDOW(window->GroupsWindow),DEFAULT_GROUPS_TITLE_LABEL); gtk_label_set_text(GTK_LABEL(window->HeaderLabel),DEFAULT_GROUPS_TITLE_LABEL); + gtk_tree_view_column_set_title(gtk_tree_view_get_column(GTK_TREE_VIEW(window->GroupsTree),1),GID_LABEL); GtkTreeIter iter, itar,itor; int valid = gtk_tree_model_get_iter_first(GTK_TREE_MODEL(main_config.groups_list),&iter); for (;valid;valid=gtk_tree_model_iter_next(GTK_TREE_MODEL(main_config.groups_list),&iter)){ diff --git a/ubl-settings-usergroups-group.glade b/ubl-settings-usergroups-group.glade index d9599dc..f66823f 100644 --- a/ubl-settings-usergroups-group.glade +++ b/ubl-settings-usergroups-group.glade @@ -58,10 +58,22 @@ + + + ID + True + 2 + + + + 2 + + + + Group - True descending 1