Changeset 40

Show
Ignore:
Timestamp:
11/05/07 00:08:24
Author:
pvanhoof
Message:
        • Implemented From-combobox in TMutMsgCreator
Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/ChangeLog

    r39 r40  
    44        * Implemented simple versions for tmut_msg_creator_set_reply_msg and 
    55        tmut_msg_creator_set_forward_msg 
     6        * Implemented From-combobox in TMutMsgCreator 
    67 
    782007-11-02  Philip Van Hoof  <pvanhoof@gnome.org> 
  • trunk/src/tmut-folder-view.c

    r35 r40  
    346346 
    347347        if (!canceled && !err) { 
    348                 TnyMsgView *view = tmut_msg_view_new (); 
     348                TnyMsgView *view = tmut_msg_view_new (priv->account_store); 
    349349                tny_msg_view_set_msg (view, msg); 
    350350                gtk_widget_show (GTK_WIDGET (view)); 
  • trunk/src/tmut-menu-view.c

    r35 r40  
    2626#include "tmut-menu-view.h" 
    2727#include "tmut-folder-view.h" 
     28#include "tmut-msg-creator.h" 
    2829#include "tmut-folder-selector.h" 
    2930#include "tmut-shell-window.h" 
     
    317318void tmut_menu_view_on_new_msg_activated (GObject *sender, TMutMenuView *self) 
    318319{ 
    319  
    320 g_print ("new msg\n"); 
     320        TMutMsgCreator *view = tmut_msg_creator_new (); 
     321        TMutMenuViewPriv *priv = TMUT_MENU_VIEW_GET_PRIVATE (self); 
     322 
     323        if (priv->account_store) 
     324                tny_account_store_view_set_account_store (TNY_ACCOUNT_STORE_VIEW (view), priv->account_store); 
     325 
     326        gtk_widget_show (GTK_WIDGET (view)); 
     327        tmut_shell_window_set_child ( 
     328                tmut_shell_child_get_window (TMUT_SHELL_CHILD (self)),  
     329                TMUT_SHELL_CHILD (view), NULL); 
    321330 
    322331        return; 
  • trunk/src/tmut-msg-creator.c

    r39 r40  
    3131#include <tny-simple-list.h> 
    3232 
     33#include <tny-gtk-account-list-model.h> 
     34 
    3335static GObjectClass *parent_class = NULL; 
    3436 
     
    3739struct _TMutMsgCreatorPriv { 
    3840        TMutShellWindow *shell; 
    39         GtkWidget *subject_entry; 
    40         GtkWidget *to_entry
    41         GtkWidget *message_textview
    42         GtkWidget *send_button
     41        GtkEntry *subject_entry, *to_entry; 
     42        GtkTextView *message_textview
     43        GtkButton *send_button
     44        GtkComboBox *accounts_combo
    4345}; 
    4446 
     
    5052{ 
    5153        TMutMsgCreatorPriv *priv = TMUT_MSG_CREATOR_GET_PRIVATE (user_data); 
    52  
    53 g_print ("SEND\n"); 
     54        GtkTreeIter iter; 
     55        TnyAccount *account = NULL; 
     56        GtkTreeModel *model = gtk_combo_box_get_model (priv->accounts_combo); 
     57 
     58        if (gtk_combo_box_get_active_iter (priv->accounts_combo, &iter))  
     59        { 
     60                gtk_tree_model_get (model, &iter,  
     61                        TNY_GTK_ACCOUNT_LIST_MODEL_INSTANCE_COLUMN,  
     62                        &account, -1); 
     63                if (account) { 
     64 
     65                        g_print ("SEND on %s\n", tny_account_get_name (account)); 
     66 
     67                        g_object_unref (account); 
     68                } 
     69        } 
    5470 
    5571        return; 
     
    149165{ 
    150166        TMutMsgCreatorPriv *priv = TMUT_MSG_CREATOR_GET_PRIVATE (self); 
    151         GtkTextBuffer *text_buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (priv->message_textview)); 
     167        GtkTextBuffer *text_buffer = gtk_text_view_get_buffer (priv->message_textview); 
    152168        TnyHeader *header = tny_msg_get_header (msg); 
    153169        GString *str; 
     
    179195{ 
    180196        TMutMsgCreatorPriv *priv = TMUT_MSG_CREATOR_GET_PRIVATE (self); 
    181         GtkTextBuffer *text_buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (priv->message_textview)); 
     197        GtkTextBuffer *text_buffer = gtk_text_view_get_buffer (priv->message_textview); 
    182198        TnyHeader *header = tny_msg_get_header (msg); 
    183199        GString *str; 
     
    197213                g_string_free (str, TRUE); 
    198214        } 
     215 
     216        return; 
     217} 
     218 
     219 
     220static void 
     221tmut_msg_creator_set_account_store (TnyAccountStoreView *self, TnyAccountStore *account_store) 
     222{ 
     223        TMutMsgCreatorPriv *priv = TMUT_MSG_CREATOR_GET_PRIVATE (self); 
     224        TnyList *accounts = TNY_LIST (tny_gtk_account_list_model_new ()); 
     225 
     226        tny_account_store_get_accounts (account_store, accounts, 
     227                TNY_ACCOUNT_STORE_TRANSPORT_ACCOUNTS); 
     228 
     229        gtk_combo_box_set_model (priv->accounts_combo, GTK_TREE_MODEL (accounts)); 
     230        gtk_combo_box_set_active (priv->accounts_combo, 0); 
    199231 
    200232        return; 
     
    226258        GtkWidget *label2; 
    227259        GtkWidget *scrolledwindow1; 
     260        GtkCellRenderer *renderer; 
     261        GtkTreeViewColumn *column; 
    228262 
    229263        vbox1 = GTK_WIDGET (instance); 
    230264 
    231         table1 = gtk_table_new (2, 2, FALSE); 
     265        table1 = gtk_table_new (3, 2, FALSE); 
    232266        gtk_widget_show (table1); 
    233267        gtk_box_pack_start (GTK_BOX (vbox1), table1, FALSE, TRUE, 0); 
    234268        gtk_table_set_col_spacings (GTK_TABLE (table1), 2); 
    235269 
    236         label1 = gtk_label_new (_("<b>To</b>")); 
     270        label1 = gtk_label_new (_("<b>From</b>")); 
    237271        gtk_widget_show (label1); 
    238272        gtk_table_attach (GTK_TABLE (table1), label1, 0, 1, 0, 1, 
     
    242276        gtk_misc_set_alignment (GTK_MISC (label1), 0, 0.5); 
    243277 
     278        label1 = gtk_label_new (_("<b>To</b>")); 
     279        gtk_widget_show (label1); 
     280        gtk_table_attach (GTK_TABLE (table1), label1, 0, 1, 1, 2, 
     281                        (GtkAttachOptions) (GTK_FILL), 
     282                        (GtkAttachOptions) (0), 0, 0); 
     283        gtk_label_set_use_markup (GTK_LABEL (label1), TRUE); 
     284        gtk_misc_set_alignment (GTK_MISC (label1), 0, 0.5); 
     285 
    244286        label2 = gtk_label_new (_("<b>Subject</b>")); 
    245287        gtk_widget_show (label2); 
    246         gtk_table_attach (GTK_TABLE (table1), label2, 0, 1, 1, 2
     288        gtk_table_attach (GTK_TABLE (table1), label2, 0, 1, 2, 3
    247289                        (GtkAttachOptions) (GTK_FILL), 
    248290                        (GtkAttachOptions) (0), 0, 0); 
     
    250292        gtk_misc_set_alignment (GTK_MISC (label2), 0, 0.5); 
    251293 
    252         priv->subject_entry = gtk_entry_new (); 
    253         gtk_widget_show (priv->subject_entry); 
    254         gtk_table_attach (GTK_TABLE (table1), priv->subject_entry, 1, 2, 0, 1, 
     294        priv->accounts_combo = GTK_COMBO_BOX (gtk_combo_box_new ()); 
     295        gtk_widget_show (GTK_WIDGET (priv->accounts_combo)); 
     296 
     297        renderer = gtk_cell_renderer_text_new(); 
     298        gtk_cell_layout_pack_start(GTK_CELL_LAYOUT (priv->accounts_combo), renderer, TRUE); 
     299        gtk_cell_layout_set_attributes(GTK_CELL_LAYOUT (priv->accounts_combo), renderer,  
     300                "text", TNY_GTK_ACCOUNT_LIST_MODEL_NAME_COLUMN, NULL); 
     301 
     302        gtk_table_attach (GTK_TABLE (table1), GTK_WIDGET (priv->accounts_combo),  
     303                        1, 2, 0, 1, 
    255304                        (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), 
    256305                        (GtkAttachOptions) (0), 0, 0); 
    257306 
    258         priv->to_entry = gtk_entry_new (); 
    259         gtk_widget_show (priv->to_entry); 
    260         gtk_table_attach (GTK_TABLE (table1), priv->to_entry, 1, 2, 1, 2, 
     307        priv->subject_entry = GTK_ENTRY (gtk_entry_new ()); 
     308        gtk_widget_show (GTK_WIDGET (priv->subject_entry)); 
     309        gtk_table_attach (GTK_TABLE (table1), GTK_WIDGET (priv->subject_entry),  
     310                        1, 2, 1, 2, 
     311                        (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), 
     312                        (GtkAttachOptions) (0), 0, 0); 
     313 
     314        priv->to_entry = GTK_ENTRY (gtk_entry_new ()); 
     315        gtk_widget_show (GTK_WIDGET (priv->to_entry)); 
     316        gtk_table_attach (GTK_TABLE (table1), GTK_WIDGET (priv->to_entry),  
     317                        1, 2, 2, 3, 
    261318                        (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), 
    262319                        (GtkAttachOptions) (0), 0, 0); 
     
    267324        gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (scrolledwindow1), GTK_SHADOW_IN); 
    268325 
    269         priv->message_textview = gtk_text_view_new (); 
    270         gtk_widget_show (priv->message_textview); 
    271         gtk_container_add (GTK_CONTAINER (scrolledwindow1), priv->message_textview); 
    272  
    273         priv->send_button = gtk_button_new_with_mnemonic (_("Send")); 
    274         gtk_widget_show (priv->send_button); 
    275         gtk_box_pack_start (GTK_BOX (vbox1), priv->send_button, FALSE, FALSE, 0); 
     326        priv->message_textview = GTK_TEXT_VIEW (gtk_text_view_new ()); 
     327        gtk_widget_show (GTK_WIDGET (priv->message_textview)); 
     328        gtk_container_add (GTK_CONTAINER (scrolledwindow1), GTK_WIDGET (priv->message_textview)); 
     329 
     330        priv->send_button = GTK_BUTTON (gtk_button_new_with_mnemonic (_("Send"))); 
     331        gtk_widget_show (GTK_WIDGET (priv->send_button)); 
     332        gtk_box_pack_start (GTK_BOX (vbox1), GTK_WIDGET (priv->send_button),  
     333                FALSE, FALSE, 0); 
    276334 
    277335        g_signal_connect (G_OBJECT (priv->send_button), "clicked", 
     
    286344{ 
    287345        (*parent_class->finalize) (object); 
     346 
     347        return; 
     348} 
     349 
     350static void 
     351tny_account_store_view_init (gpointer g, gpointer iface_data) 
     352{ 
     353        TnyAccountStoreViewIface *klass = (TnyAccountStoreViewIface *)g; 
     354 
     355        klass->set_account_store_func = tmut_msg_creator_set_account_store; 
    288356 
    289357        return; 
     
    352420                }; 
    353421 
     422                static const GInterfaceInfo tny_account_store_view_info =  
     423                { 
     424                  (GInterfaceInitFunc) tny_account_store_view_init, /* interface_init */ 
     425                  NULL,         /* interface_finalize */ 
     426                  NULL          /* interface_data */ 
     427                }; 
     428 
    354429                static const GInterfaceInfo tmut_shell_child_info =  
    355430                { 
     
    363438                        &info, 0); 
    364439 
     440                g_type_add_interface_static (type, TNY_TYPE_ACCOUNT_STORE_VIEW,  
     441                        &tny_account_store_view_info); 
     442 
    365443                g_type_add_interface_static (type, TMUT_TYPE_SHELL_CHILD,  
    366444                        &tmut_shell_child_info); 
  • trunk/src/tmut-msg-creator.h

    r39 r40  
    2727#include <tny-msg.h> 
    2828#include <tmut-shell-child.h> 
     29 
     30#include <tny-account.h> 
     31#include <tny-account-store-view.h> 
    2932 
    3033G_BEGIN_DECLS 
  • trunk/src/tmut-msg-view.c

    r39 r40  
    4141        TnyMsgView *msg_view; 
    4242        GtkScrolledWindow *sw; 
     43        TnyAccountStore *account_store; 
    4344}; 
    4445 
     
    5556        TnyMsg *msg = tny_msg_view_get_msg (priv->msg_view); 
    5657        TMutMsgCreator *view = tmut_msg_creator_new (); 
     58 
     59        if (priv->account_store) 
     60                tny_account_store_view_set_account_store (TNY_ACCOUNT_STORE_VIEW (view), priv->account_store); 
    5761 
    5862        tmut_msg_creator_set_reply_msg (view, msg); 
     
    7579        TnyMsg *msg = tny_msg_view_get_msg (priv->msg_view); 
    7680        TMutMsgCreator *view = tmut_msg_creator_new (); 
     81 
     82        if (priv->account_store) 
     83                tny_account_store_view_set_account_store (TNY_ACCOUNT_STORE_VIEW (view), priv->account_store); 
    7784 
    7885        tmut_msg_creator_set_forward_msg (view, msg); 
     
    226233 **/ 
    227234TnyMsgView* 
    228 tmut_msg_view_new (void
     235tmut_msg_view_new (TnyAccountStore *account_store
    229236{ 
    230237        TMutMsgView *self = g_object_new (TMUT_TYPE_MSG_VIEW, NULL); 
     238        TMutMsgViewPriv *priv = TMUT_MSG_VIEW_GET_PRIVATE (self); 
     239 
     240        if (account_store) 
     241                priv->account_store = TNY_ACCOUNT_STORE (g_object_ref (account_store)); 
    231242 
    232243        return TNY_MSG_VIEW (self); 
     
    239250        TMutMsgViewPriv *priv = TMUT_MSG_VIEW_GET_PRIVATE (instance); 
    240251 
     252        priv->account_store = NULL; 
    241253        priv->msg_view = NULL; 
    242254        priv->sw = GTK_SCROLLED_WINDOW (gtk_scrolled_window_new (NULL, NULL)); 
     
    259271tmut_msg_view_finalize (GObject *object) 
    260272{ 
     273        TMutMsgViewPriv *priv = TMUT_MSG_VIEW_GET_PRIVATE (object); 
     274 
     275        if (priv->account_store) 
     276                g_object_unref (priv->account_store); 
     277 
    261278        (*parent_class->finalize) (object); 
    262279 
  • trunk/src/tmut-msg-view.h

    r21 r40  
    5858 
    5959GType tmut_msg_view_get_type (void); 
    60 TnyMsgView* tmut_msg_view_new (void); 
     60TnyMsgView* tmut_msg_view_new (TnyAccountStore *account_store); 
    6161 
    6262void tmut_msg_view_set_view (TMutMsgView *self, TnyMsgView *view); 
  • trunk/src/tmut-platform-factory.c

    r34 r40  
    118118tmut_platform_factory_new_msg_view (TnyPlatformFactory *self) 
    119119{ 
    120         return tmut_msg_view_new (); 
     120        return tmut_msg_view_new (NULL); 
    121121} 
    122122