| 201 |
201 |
| 202 if (gtk_tree_selection_get_selected(selection, NULL, &iter)) { |
202 if (gtk_tree_selection_get_selected(selection, NULL, &iter)) { |
| 203 val.g_type = 0; |
203 val.g_type = 0; |
| 204 gtk_tree_model_get_value(GTK_TREE_MODEL(grl->model), &iter, ROOM_COLUMN, &val); |
204 gtk_tree_model_get_value(GTK_TREE_MODEL(grl->model), &iter, ROOM_COLUMN, &val); |
| 205 room = g_value_get_pointer(&val); |
205 room = g_value_get_pointer(&val); |
| 206 if (!room || !(purple_roomlist_room_get_type(room) & PURPLE_ROOMLIST_ROOMTYPE_ROOM)) { |
206 if (!room || !(purple_roomlist_room_get_room_type(room) & PURPLE_ROOMLIST_ROOMTYPE_ROOM)) { |
| 207 gtk_widget_set_sensitive(dialog->join_button, FALSE); |
207 gtk_widget_set_sensitive(dialog->join_button, FALSE); |
| 208 gtk_widget_set_sensitive(dialog->add_button, FALSE); |
208 gtk_widget_set_sensitive(dialog->add_button, FALSE); |
| 209 return; |
209 return; |
| 210 } |
210 } |
| 211 |
211 |
| 281 |
281 |
| 282 gtk_tree_model_get_iter(GTK_TREE_MODEL(grl->model), &iter, path); |
282 gtk_tree_model_get_iter(GTK_TREE_MODEL(grl->model), &iter, path); |
| 283 val.g_type = 0; |
283 val.g_type = 0; |
| 284 gtk_tree_model_get_value(GTK_TREE_MODEL(grl->model), &iter, ROOM_COLUMN, &val); |
284 gtk_tree_model_get_value(GTK_TREE_MODEL(grl->model), &iter, ROOM_COLUMN, &val); |
| 285 room = g_value_get_pointer(&val); |
285 room = g_value_get_pointer(&val); |
| 286 if (!room || !(purple_roomlist_room_get_type(room) & PURPLE_ROOMLIST_ROOMTYPE_ROOM)) |
286 if (!room || !(purple_roomlist_room_get_room_type(room) & PURPLE_ROOMLIST_ROOMTYPE_ROOM)) |
| 287 return; |
287 return; |
| 288 |
288 |
| 289 info.list = list; |
289 info.list = list; |
| 290 info.room = room; |
290 info.room = room; |
| 291 |
291 |
| 312 gtk_tree_path_free(path); |
312 gtk_tree_path_free(path); |
| 313 val.g_type = 0; |
313 val.g_type = 0; |
| 314 gtk_tree_model_get_value (GTK_TREE_MODEL(grl->model), &iter, ROOM_COLUMN, &val); |
314 gtk_tree_model_get_value (GTK_TREE_MODEL(grl->model), &iter, ROOM_COLUMN, &val); |
| 315 room = g_value_get_pointer(&val); |
315 room = g_value_get_pointer(&val); |
| 316 |
316 |
| 317 if (!room || !(purple_roomlist_room_get_type(room) & PURPLE_ROOMLIST_ROOMTYPE_ROOM)) |
317 if (!room || !(purple_roomlist_room_get_room_type(room) & PURPLE_ROOMLIST_ROOMTYPE_ROOM)) |
| 318 return FALSE; |
318 return FALSE; |
| 319 |
319 |
| 320 info.list = list; |
320 info.list = list; |
| 321 info.room = room; |
321 info.room = room; |
| 322 |
322 |
| 451 |
451 |
| 452 val.g_type = 0; |
452 val.g_type = 0; |
| 453 gtk_tree_model_get_value(GTK_TREE_MODEL(grl->model), &iter, ROOM_COLUMN, &val); |
453 gtk_tree_model_get_value(GTK_TREE_MODEL(grl->model), &iter, ROOM_COLUMN, &val); |
| 454 room = g_value_get_pointer(&val); |
454 room = g_value_get_pointer(&val); |
| 455 |
455 |
| 456 if (!room || !(purple_roomlist_room_get_type(room) & PURPLE_ROOMLIST_ROOMTYPE_ROOM)) |
456 if (!room || !(purple_roomlist_room_get_room_type(room) & PURPLE_ROOMLIST_ROOMTYPE_ROOM)) |
| 457 return FALSE; |
457 return FALSE; |
| 458 |
458 |
| 459 tooltip_text = g_string_new(""); |
459 tooltip_text = g_string_new(""); |
| 460 gtk_tree_model_get(GTK_TREE_MODEL(grl->model), &iter, NAME_COLUMN, &name, -1); |
460 gtk_tree_model_get(GTK_TREE_MODEL(grl->model), &iter, NAME_COLUMN, &name, -1); |
| 461 |
461 |
| 467 PurpleRoomlistField *f = k->data; |
467 PurpleRoomlistField *f = k->data; |
| 468 gchar *label; |
468 gchar *label; |
| 469 if (purple_roomlist_field_get_hidden(f)) |
469 if (purple_roomlist_field_get_hidden(f)) |
| 470 continue; |
470 continue; |
| 471 label = g_markup_escape_text(purple_roomlist_field_get_label(f), -1); |
471 label = g_markup_escape_text(purple_roomlist_field_get_label(f), -1); |
| 472 switch (purple_roomlist_field_get_type(f)) { |
472 switch (purple_roomlist_field_get_field_type(f)) { |
| 473 case PURPLE_ROOMLIST_FIELD_BOOL: |
473 case PURPLE_ROOMLIST_FIELD_BOOL: |
| 474 g_string_append_printf(tooltip_text, "%s<b>%s:</b> %s", first ? "" : "\n", label, l->data ? "True" : "False"); |
474 g_string_append_printf(tooltip_text, "%s<b>%s:</b> %s", first ? "" : "\n", label, l->data ? "True" : "False"); |
| 475 break; |
475 break; |
| 476 case PURPLE_ROOMLIST_FIELD_INT: |
476 case PURPLE_ROOMLIST_FIELD_INT: |
| 477 g_string_append_printf(tooltip_text, "%s<b>%s:</b> %d", first ? "" : "\n", label, GPOINTER_TO_INT(l->data)); |
477 g_string_append_printf(tooltip_text, "%s<b>%s:</b> %d", first ? "" : "\n", label, GPOINTER_TO_INT(l->data)); |
| 752 types[ROOM_COLUMN] = G_TYPE_POINTER; |
752 types[ROOM_COLUMN] = G_TYPE_POINTER; |
| 753 |
753 |
| 754 for (j = NUM_OF_COLUMNS, l = fields; l; l = l->next, j++) { |
754 for (j = NUM_OF_COLUMNS, l = fields; l; l = l->next, j++) { |
| 755 PurpleRoomlistField *f = l->data; |
755 PurpleRoomlistField *f = l->data; |
| 756 |
756 |
| 757 switch (purple_roomlist_field_get_type(f)) { |
757 switch (purple_roomlist_field_get_field_type(f)) { |
| 758 case PURPLE_ROOMLIST_FIELD_BOOL: |
758 case PURPLE_ROOMLIST_FIELD_BOOL: |
| 759 types[j] = G_TYPE_BOOLEAN; |
759 types[j] = G_TYPE_BOOLEAN; |
| 760 break; |
760 break; |
| 761 case PURPLE_ROOMLIST_FIELD_INT: |
761 case PURPLE_ROOMLIST_FIELD_INT: |
| 762 types[j] = G_TYPE_INT; |
762 types[j] = G_TYPE_INT; |
| 806 gtk_tree_view_column_set_sizing(GTK_TREE_VIEW_COLUMN(column), |
806 gtk_tree_view_column_set_sizing(GTK_TREE_VIEW_COLUMN(column), |
| 807 GTK_TREE_VIEW_COLUMN_GROW_ONLY); |
807 GTK_TREE_VIEW_COLUMN_GROW_ONLY); |
| 808 gtk_tree_view_column_set_resizable(GTK_TREE_VIEW_COLUMN(column), TRUE); |
808 gtk_tree_view_column_set_resizable(GTK_TREE_VIEW_COLUMN(column), TRUE); |
| 809 gtk_tree_view_column_set_sort_column_id(GTK_TREE_VIEW_COLUMN(column), j); |
809 gtk_tree_view_column_set_sort_column_id(GTK_TREE_VIEW_COLUMN(column), j); |
| 810 gtk_tree_view_column_set_reorderable(GTK_TREE_VIEW_COLUMN(column), TRUE); |
810 gtk_tree_view_column_set_reorderable(GTK_TREE_VIEW_COLUMN(column), TRUE); |
| 811 if (purple_roomlist_field_get_type(f) == PURPLE_ROOMLIST_FIELD_INT) { |
811 if (purple_roomlist_field_get_field_type(f) == PURPLE_ROOMLIST_FIELD_INT) { |
| 812 gtk_tree_view_column_set_cell_data_func(column, renderer, int_cell_data_func, |
812 gtk_tree_view_column_set_cell_data_func(column, renderer, int_cell_data_func, |
| 813 GINT_TO_POINTER(j), NULL); |
813 GINT_TO_POINTER(j), NULL); |
| 814 gtk_tree_sortable_set_sort_func(GTK_TREE_SORTABLE(model), j, int_sort_func, |
814 gtk_tree_sortable_set_sort_func(GTK_TREE_SORTABLE(model), j, int_sort_func, |
| 815 GINT_TO_POINTER(j), NULL); |
815 GINT_TO_POINTER(j), NULL); |
| 816 } |
816 } |
| 894 if (append) |
894 if (append) |
| 895 gtk_tree_store_append(rl->model, &iter, (parentrr ? &parent : NULL)); |
895 gtk_tree_store_append(rl->model, &iter, (parentrr ? &parent : NULL)); |
| 896 else |
896 else |
| 897 iter = child; |
897 iter = child; |
| 898 |
898 |
| 899 if (purple_roomlist_room_get_type(room) & PURPLE_ROOMLIST_ROOMTYPE_CATEGORY) |
899 if (purple_roomlist_room_get_room_type(room) & PURPLE_ROOMLIST_ROOMTYPE_CATEGORY) |
| 900 gtk_tree_store_append(rl->model, &child, &iter); |
900 gtk_tree_store_append(rl->model, &child, &iter); |
| 901 |
901 |
| 902 path = gtk_tree_model_get_path(GTK_TREE_MODEL(rl->model), &iter); |
902 path = gtk_tree_model_get_path(GTK_TREE_MODEL(rl->model), &iter); |
| 903 |
903 |
| 904 if (purple_roomlist_room_get_type(room) & PURPLE_ROOMLIST_ROOMTYPE_CATEGORY) { |
904 if (purple_roomlist_room_get_room_type(room) & PURPLE_ROOMLIST_ROOMTYPE_CATEGORY) { |
| 905 rr = gtk_tree_row_reference_new(GTK_TREE_MODEL(rl->model), path); |
905 rr = gtk_tree_row_reference_new(GTK_TREE_MODEL(rl->model), path); |
| 906 g_hash_table_insert(rl->cats, room, rr); |
906 g_hash_table_insert(rl->cats, room, rr); |
| 907 } |
907 } |
| 908 |
908 |
| 909 gtk_tree_path_free(path); |
909 gtk_tree_path_free(path); |