static GtkWidget *users_details_email;
static GtkWidget *users_details_password;
static GtkWidget *users_details_password2;
static GtkWidget *users_details_email;
static GtkWidget *users_details_password;
static GtkWidget *users_details_password2;
static const char *users_who, *users_email, *users_rights, *users_password;
static const char *users_who, *users_email, *users_rights, *users_password;
* @param rowp Pointer to row number, incremented
* @param title Label for this row
* @param value Right bit (masked but not necessarily normalized)
* @param rowp Pointer to row number, incremented
* @param title Label for this row
* @param value Right bit (masked but not necessarily normalized)
GtkWidget *check = gtk_check_button_new();
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(check), !!value);
GtkWidget *check = gtk_check_button_new();
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(check), !!value);
- return users_detail_generic(table, rowp, title, check);
+ users_details_rights[leftmost_bit(value)] = check;
+ users_detail_generic(table, rowp, title, check);
* @param title Label for this row
* @param bits Rights bits (not masked or normalized)
* @param mask Mask for this group (must be 7.2^n)
* @param title Label for this row
* @param bits Rights bits (not masked or normalized)
* @param mask Mask for this group (must be 7.2^n)
GtkWidget *any = gtk_check_button_new_with_label("Any");
GtkWidget *mine = gtk_check_button_new_with_label("Own");
GtkWidget *random = gtk_check_button_new_with_label("Random");
GtkWidget *hbox = gtk_hbox_new(FALSE, 2);
GtkWidget *any = gtk_check_button_new_with_label("Any");
GtkWidget *mine = gtk_check_button_new_with_label("Own");
GtkWidget *random = gtk_check_button_new_with_label("Random");
GtkWidget *hbox = gtk_hbox_new(FALSE, 2);
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(any), !!(bits & 1));
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(mine), !!(bits & 2));
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(random), !!(bits & 4));
gtk_box_pack_start(GTK_BOX(hbox), any, FALSE, FALSE, 0);
gtk_box_pack_start(GTK_BOX(hbox), mine, FALSE, FALSE, 0);
gtk_box_pack_start(GTK_BOX(hbox), random, FALSE, FALSE, 0);
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(any), !!(bits & 1));
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(mine), !!(bits & 2));
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(random), !!(bits & 4));
gtk_box_pack_start(GTK_BOX(hbox), any, FALSE, FALSE, 0);
gtk_box_pack_start(GTK_BOX(hbox), mine, FALSE, FALSE, 0);
gtk_box_pack_start(GTK_BOX(hbox), random, FALSE, FALSE, 0);
users_detail_generic(table, rowp, title, hbox);
}
users_detail_generic(table, rowp, title, hbox);
}
parse_rights(rights, &r, 1);
users_add_right(table, &row, "Read operations", r & RIGHT_READ);
users_add_right(table, &row, "Play track", r & RIGHT_PLAY);
parse_rights(rights, &r, 1);
users_add_right(table, &row, "Read operations", r & RIGHT_READ);
users_add_right(table, &row, "Play track", r & RIGHT_PLAY);
- users_add_right_group(table, &row, "Move", r, RIGHT_MOVE__MASK, NULL);
- users_add_right_group(table, &row, "Remove", r, RIGHT_REMOVE__MASK, NULL);
- users_add_right_group(table, &row, "Scratch", r, RIGHT_SCRATCH__MASK, NULL);
+ users_add_right_group(table, &row, "Move", r, RIGHT_MOVE__MASK);
+ users_add_right_group(table, &row, "Remove", r, RIGHT_REMOVE__MASK);
+ users_add_right_group(table, &row, "Scratch", r, RIGHT_SCRATCH__MASK);
users_add_right(table, &row, "Set volume", r & RIGHT_VOLUME);
users_add_right(table, &row, "Admin operations", r & RIGHT_ADMIN);
users_add_right(table, &row, "Rescan", r & RIGHT_RESCAN);
users_add_right(table, &row, "Set volume", r & RIGHT_VOLUME);
users_add_right(table, &row, "Admin operations", r & RIGHT_ADMIN);
users_add_right(table, &row, "Rescan", r & RIGHT_RESCAN);
static void users_add(GtkButton attribute((unused)) *button,
gpointer attribute((unused)) userdata) {
static void users_add(GtkButton attribute((unused)) *button,
gpointer attribute((unused)) userdata) {