Changeset 3679
- Timestamp:
- 12/18/07 16:05:06 (5 years ago)
- Location:
- trunk/src/target/OM-2007.2/applications/openmoko-messages2
- Files:
-
- 8 edited
-
ChangeLog (modified) (1 diff)
-
src/sms-compose.c (modified) (1 diff)
-
src/sms-contacts.c (modified) (5 diffs)
-
src/sms-contacts.h (modified) (1 diff)
-
src/sms-main.c (modified) (2 diffs)
-
src/sms-notes.c (modified) (4 diffs)
-
src/sms-utils.c (modified) (4 diffs)
-
src/sms-utils.h (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/target/OM-2007.2/applications/openmoko-messages2/ChangeLog
r3678 r3679 1 2007-12-18 Chris Lord <chris@openedhand.com> 2 3 * src/sms-compose.c: (page_hidden): 4 * src/sms-contacts.c: (page_shown), (delete_clicked_cb), 5 (selection_changed_cb), (sms_contacts_update_delete_all), 6 (sms_contacts_page_new): 7 * src/sms-contacts.h: 8 * src/sms-main.c: (main): 9 * src/sms-notes.c: (page_shown), (row_inserted_cb), 10 (row_deleted_cb), (selection_changed_cb), (sms_notes_page_new): 11 * src/sms-utils.c: (sms_delete_selected_contact_messages), 12 (sms_contacts_note_count_update): 13 * src/sms-utils.h: 14 Set buttons insensitive when their actions are not valid 15 1 16 2007-12-18 Chris Lord <chris@openedhand.com> 2 17 -
trunk/src/target/OM-2007.2/applications/openmoko-messages2/src/sms-compose.c
r3678 r3679 109 109 gtk_tool_button_set_stock_id (GTK_TOOL_BUTTON (data->new_button), 110 110 MOKO_STOCK_SMS_NEW); 111 gtk_widget_set_sensitive (GTK_WIDGET (data->delete_button), TRUE);112 gtk_widget_set_sensitive (GTK_WIDGET (data->delete_all_button), TRUE);113 111 } 114 112 -
trunk/src/target/OM-2007.2/applications/openmoko-messages2/src/sms-contacts.c
r3675 r3679 32 32 static gboolean hidden = FALSE; 33 33 34 static void selection_changed_cb (GtkTreeSelection *selection, SmsData *data); 35 34 36 static void 35 37 page_shown (SmsData *data) 36 38 { 39 GtkTreeSelection *selection; 40 41 /* Update delete/delete-all buttons */ 42 sms_contacts_update_delete_all (data); 43 selection = gtk_tree_view_get_selection (data->contacts_treeview); 44 selection_changed_cb (selection, data); 37 45 } 38 46 … … 363 371 if (hidden) return; 364 372 365 sms_delete_selected_contact_messages (data); 373 if (sms_delete_selected_contact_messages (data)) { 374 gtk_widget_set_sensitive (GTK_WIDGET (data->delete_button), 375 FALSE); 376 } 366 377 } 367 378 … … 522 533 } 523 534 535 static void 536 selection_changed_cb (GtkTreeSelection *selection, SmsData *data) 537 { 538 GtkTreeModel *model; 539 gboolean sensitive; 540 GtkTreeIter iter; 541 gchar *detail; 542 543 if (!gtk_tree_selection_get_selected (selection, &model, &iter)) { 544 gtk_widget_set_sensitive (GTK_WIDGET ( 545 data->delete_button), FALSE); 546 return; 547 } 548 549 /* Not the nicest way to know if there are messages, but better than 550 * doing multiple look-ups on the hash-tables 551 */ 552 gtk_tree_model_get (model, &iter, COL_DETAIL, &detail, -1); 553 if (!detail) { 554 sensitive = FALSE; 555 } else { 556 sensitive = TRUE; 557 if (detail[0] == '0') { 558 const gchar *next_line = strchr (detail, '\n') + 1; 559 if ((!next_line) || (next_line[0] == '0')) 560 sensitive = FALSE; 561 } 562 g_free (detail); 563 } 564 565 gtk_widget_set_sensitive (GTK_WIDGET (data->delete_button), sensitive); 566 } 567 568 void 569 sms_contacts_update_delete_all (SmsData *data) 570 { 571 if (gtk_notebook_get_current_page (data->notebook) == SMS_PAGE_CONTACTS) 572 { 573 if (g_hash_table_size (data->note_count) > 0) { 574 gtk_widget_set_sensitive (GTK_WIDGET ( 575 data->delete_all_button), TRUE); 576 } else { 577 gtk_widget_set_sensitive (GTK_WIDGET ( 578 data->delete_all_button), FALSE); 579 } 580 } 581 } 582 524 583 GtkWidget * 525 584 sms_contacts_page_new (SmsData *data) … … 527 586 EBookQuery *qrys[(E_CONTACT_LAST_PHONE_ID-E_CONTACT_FIRST_PHONE_ID)+1]; 528 587 GtkWidget *contacts_combo, *scroll, *vbox; 588 GtkTreeSelection *selection; 529 589 GtkCellRenderer *renderer; 530 590 EBookQuery *tel_query; … … 636 696 gtk_tree_view_set_headers_visible ( 637 697 GTK_TREE_VIEW (data->contacts_treeview), FALSE); 698 selection = gtk_tree_view_get_selection (GTK_TREE_VIEW ( 699 data->contacts_treeview)); 700 gtk_tree_selection_set_mode (selection, GTK_SELECTION_BROWSE); 701 g_signal_connect (selection, "changed", 702 G_CALLBACK (selection_changed_cb), data); 638 703 639 704 /* Create renderer and column */ -
trunk/src/target/OM-2007.2/applications/openmoko-messages2/src/sms-contacts.h
r3650 r3679 34 34 35 35 GtkWidget *sms_contacts_page_new (SmsData *data); 36 void sms_contacts_update_delete_all (SmsData *data); 36 37 37 38 #endif -
trunk/src/target/OM-2007.2/applications/openmoko-messages2/src/sms-main.c
r3650 r3679 95 95 /*gtk_toolbar_insert (GTK_TOOLBAR (toolbar), 96 96 gtk_separator_tool_item_new (), 3);*/ 97 gtk_widget_set_sensitive (GTK_WIDGET (data.delete_all_button), FALSE); 97 98 98 99 /* Delete button */ … … 101 102 gtk_tool_item_set_expand (data.delete_button, TRUE); 102 103 gtk_toolbar_insert (GTK_TOOLBAR (toolbar), data.delete_button, 2); 104 gtk_widget_set_sensitive (GTK_WIDGET (data.delete_button), FALSE); 103 105 104 106 /* Create notebook */ -
trunk/src/target/OM-2007.2/applications/openmoko-messages2/src/sms-notes.c
r3677 r3679 142 142 gboolean found_match = FALSE; 143 143 EContact *contact = NULL; 144 145 gtk_widget_set_sensitive (GTK_WIDGET (data->delete_button), FALSE); 144 146 145 147 if (!open) return; … … 623 625 } 624 626 627 static void 628 row_inserted_cb (GtkTreeModel *model, GtkTreePath *path, GtkTreeIter *iter, 629 SmsData *data) 630 { 631 gtk_widget_set_sensitive (GTK_WIDGET (data->delete_all_button), TRUE); 632 } 633 634 static void 635 row_deleted_cb (GtkTreeModel *model, GtkTreePath *path, SmsData *data) 636 { 637 GtkTreeIter iter; 638 639 if (!gtk_tree_model_get_iter_first (model, &iter)) 640 gtk_widget_set_sensitive (GTK_WIDGET ( 641 data->delete_all_button), FALSE); 642 } 643 644 static void 645 selection_changed_cb (GtkTreeSelection *selection, SmsData *data) 646 { 647 GtkTreeModel *model; 648 GtkTreeIter iter; 649 650 if (!gtk_tree_selection_get_selected (selection, &model, &iter)) { 651 gtk_widget_set_sensitive (GTK_WIDGET ( 652 data->delete_button), FALSE); 653 } else { 654 gtk_widget_set_sensitive (GTK_WIDGET ( 655 data->delete_button), TRUE); 656 } 657 } 658 625 659 GtkWidget * 626 660 sms_notes_page_new (SmsData *data) … … 651 685 data->note_filter, (GtkTreeModelFilterVisibleFunc) 652 686 notes_visible_func, data, NULL); 687 g_signal_connect (data->note_filter, "row-inserted", 688 G_CALLBACK (row_inserted_cb), data); 689 g_signal_connect (data->note_filter, "row-deleted", 690 G_CALLBACK (row_deleted_cb), data); 653 691 654 692 /* Create a category-colour hash for the cell renderer */ … … 666 704 GTK_TREE_VIEW (data->notes_treeview), 0, "Messages", renderer, 667 705 (GtkTreeCellDataFunc)sms_notes_data_func, data, NULL); 706 g_signal_connect (gtk_tree_view_get_selection (GTK_TREE_VIEW ( 707 data->notes_treeview)), "changed", 708 G_CALLBACK (selection_changed_cb), data); 668 709 669 710 /* Create search bar */ -
trunk/src/target/OM-2007.2/applications/openmoko-messages2/src/sms-utils.c
r3675 r3679 62 62 } 63 63 64 void 64 gboolean 65 65 sms_delete_selected_contact_messages (SmsData *data) 66 66 { … … 80 80 if (gtk_dialog_run (GTK_DIALOG (dialog)) != GTK_RESPONSE_YES) { 81 81 gtk_widget_destroy (dialog); 82 return ;82 return FALSE; 83 83 } 84 84 … … 129 129 } 130 130 } 131 132 return TRUE; 131 133 } 132 134 … … 217 219 data->note_count_idle = 0; 218 220 221 /* Update the delete-all button if we're on the contacts page */ 222 sms_contacts_update_delete_all (data); 223 219 224 /* Change sort column so changing priorities doesn't break iterating 220 225 * through the model. -
trunk/src/target/OM-2007.2/applications/openmoko-messages2/src/sms-utils.h
r3675 r3679 27 27 GdkPixbuf *sms_contact_load_photo (EContact *contact); 28 28 gboolean sms_contacts_note_count_update (SmsData *data); 29 voidsms_delete_selected_contact_messages (SmsData *data);29 gboolean sms_delete_selected_contact_messages (SmsData *data); 30 30 31 31 #endif /* SMS_UTILS_H */
Note: See TracChangeset
for help on using the changeset viewer.
