void cb_selectentry(GtkEntry *entry, gpointer data) { GtkTreeView *treeview = GTK_TREE_VIEW(data); GtkTreeModel *model = gtk_tree_view_get_model(treeview); GSList *iterator; USER *user; const gchar *select_filter; select_filter = gtk_entry_get_text(entry); select_user(select_filter, &sel_list); g_object_ref(model); gtk_tree_view_set_model(treeview, NULL); gtk_list_store_clear(GTK_LIST_STORE(model)); /* USER 实体在什么地方释放?我没有释放,model清除会不会自动释放实体 */ for (iterator=sel_list; iterator; iterator= iterator->next) { user = iterator->data; __add_user_model__(model, user); } if (sel_list != NULL) { g_slist_free(sel_list); sel_list = NULL; } gtk_tree_view_set_model(treeview, model); g_object_unref(model); }
int main(int argc, char *argv[]) { //add_user("root\n","qwe\n"); //add_user("guest\n","ewq\n"); //add_user("user\n","asd\n"); //write_user("user.vx"); get_user("user.conf"); char *nnn=select_user("guest"); printf("%s\n", nnn); return(0); };
void cb_authentry(GtkEntry *entry, gpointer data) { GtkTreeView *treeview = GTK_TREE_VIEW(data); GtkTreeModel *model = gtk_tree_view_get_model(treeview); GtkTreeIter iter; GSList *iterator; USER *user; const gchar *select_filter; gchar *u_auth_val = authinfo[2]; gchar *m_auth_val = authinfo[2]; gchar *o_auth_val = authinfo[2]; gchar *a_auth_val = authinfo[2]; gchar *t_auth_val = authinfo[2]; select_filter = gtk_entry_get_text(entry); select_user(select_filter, &sel_list); g_object_ref(model); gtk_tree_view_set_model(treeview, NULL); gtk_list_store_clear(GTK_LIST_STORE(model)); /* USER 实体在什么地方释放?我没有释放,model清除会不会自动释放实体 */ for (iterator=sel_list; iterator; iterator= iterator->next) { user = iterator->data; g_return_if_fail(user!=NULL); if ((user->authority & U_S_AUTH) == U_S_AUTH) u_auth_val = authinfo[0]; if ((user->authority & U_U_AUTH) == U_U_AUTH) u_auth_val = authinfo[1]; if ((user->authority & U_N_AUTH) == U_N_AUTH) u_auth_val = authinfo[2]; if ((user->authority & M_S_AUTH) == M_S_AUTH) m_auth_val = authinfo[0]; if ((user->authority & M_U_AUTH) == M_U_AUTH) m_auth_val = authinfo[1]; if ((user->authority & M_N_AUTH) == M_N_AUTH) m_auth_val = authinfo[2]; if ((user->authority & O_S_AUTH) == O_S_AUTH) o_auth_val = authinfo[0]; if ((user->authority & O_U_AUTH) == O_U_AUTH) o_auth_val = authinfo[1]; if ((user->authority & O_N_AUTH) == O_N_AUTH) o_auth_val = authinfo[2]; if ((user->authority & A_S_AUTH) == A_S_AUTH) a_auth_val = authinfo[0]; if ((user->authority & A_U_AUTH) == A_U_AUTH) a_auth_val = authinfo[1]; if ((user->authority & A_N_AUTH) == A_N_AUTH) a_auth_val = authinfo[2]; if ((user->authority & T_S_AUTH) == T_S_AUTH) t_auth_val = authinfo[0]; if ((user->authority & T_U_AUTH) == T_U_AUTH) t_auth_val = authinfo[1]; if ((user->authority & T_N_AUTH) == T_N_AUTH) t_auth_val = authinfo[2]; gtk_list_store_append(GTK_LIST_STORE(model), &iter); gtk_list_store_set(GTK_LIST_STORE(model), &iter, COLUMN_AUTH_UID, user->uid, COLUMN_AUTH_NAME, user->name, COLUMN_AUTH_U, u_auth_val, COLUMN_AUTH_M, m_auth_val, COLUMN_AUTH_O, o_auth_val, COLUMN_AUTH_A, a_auth_val, COLUMN_AUTH_T, t_auth_val, -1); } if (sel_list != NULL) { g_slist_free(sel_list); sel_list = NULL; } gtk_tree_view_set_model(treeview, model); g_object_unref(model); }