diff --git a/mug/TODO b/mug/TODO index beed5a6b..4aa814b8 100644 --- a/mug/TODO +++ b/mug/TODO @@ -20,3 +20,8 @@ + +** TODO focus search bar at startup +** DONE focus first msg after query + CLOSED: [2010-11-02 Tue 22:44] +** TODO sorting for columns diff --git a/mug/mug-msg-list-view.c b/mug/mug-msg-list-view.c index 1ec55f23..291c32de 100644 --- a/mug/mug-msg-list-view.c +++ b/mug/mug-msg-list-view.c @@ -205,6 +205,20 @@ mug_msg_list_view_finalize (GObject *obj) G_OBJECT_CLASS(parent_class)->finalize (obj); } +void +mug_msg_list_view_move_first (MugMsgListView *self) +{ + GtkTreePath *path; + + g_return_val_if_fail (MUG_IS_MSG_LIST_VIEW(self), FALSE); + + path = gtk_tree_path_new_first (); + gtk_tree_view_set_cursor (GTK_TREE_VIEW(self), path, + NULL, FALSE); + + gtk_tree_path_free (path); +} + static gboolean msg_list_view_move (MugMsgListView *self, gboolean next) diff --git a/mug/mug-msg-list-view.h b/mug/mug-msg-list-view.h index 2e663d16..755cc5e9 100644 --- a/mug/mug-msg-list-view.h +++ b/mug/mug-msg-list-view.h @@ -56,6 +56,9 @@ GtkWidget* mug_msg_list_view_new (const char *xpath); int mug_msg_list_view_query (MugMsgListView *self, const char *query); + +void mug_msg_list_view_move_first (MugMsgListView *self); + gboolean mug_msg_list_view_move_prev (MugMsgListView *self); gboolean mug_msg_list_view_move_next (MugMsgListView *self); diff --git a/mug/mug.cc b/mug/mug.cc index 6cd09adb..67387127 100644 --- a/mug/mug.cc +++ b/mug/mug.cc @@ -36,6 +36,7 @@ struct _MugData { GtkWidget *mlist; GtkWidget *toolbar; GtkWidget *msgview; + GtkWidget *querybar; }; typedef struct _MugData MugData; @@ -150,6 +151,7 @@ on_query_changed (MugQueryBar *bar, const char* query, MugData *mugdata) (MUG_MSG_LIST_VIEW(mugdata->mlist))); gtk_statusbar_push (GTK_STATUSBAR(mugdata->statusbar), 0, msg); g_free (msg); + mug_msg_list_view_move_first (MUG_MSG_LIST_VIEW(mugdata->mlist)); } } @@ -199,7 +201,7 @@ static GtkWidget* mug_query_area (MugData *mugdata) { GtkWidget *queryarea; - GtkWidget *paned, *querybar; + GtkWidget *paned; GtkWidget *scrolled; gchar* xdir; @@ -225,13 +227,13 @@ mug_query_area (MugData *mugdata) mugdata->msgview); gtk_paned_add2 (GTK_PANED (paned), scrolled); - querybar = mug_querybar(); - g_signal_connect (G_OBJECT(querybar), "query_changed", + mugdata->querybar = mug_querybar(); + g_signal_connect (G_OBJECT(mugdata->querybar), "query_changed", G_CALLBACK(on_query_changed), mugdata); gtk_box_pack_start (GTK_BOX(queryarea), - querybar, FALSE, FALSE, 2); + mugdata->querybar, FALSE, FALSE, 2); gtk_box_pack_start (GTK_BOX(queryarea), paned, TRUE, TRUE, 2); @@ -267,7 +269,7 @@ mug_shell (MugData *mugdata) mugdata->toolbar = mug_toolbar(mugdata); gtk_box_pack_start (GTK_BOX(vbox), mugdata->toolbar, FALSE, FALSE, 2); gtk_box_pack_start (GTK_BOX(vbox), mug_main_area(mugdata), TRUE, TRUE, 2); - + mugdata->statusbar = mug_statusbar(); gtk_box_pack_start (GTK_BOX(vbox), mugdata->statusbar, FALSE, FALSE, 2); @@ -293,6 +295,7 @@ main (int argc, char *argv[]) G_CALLBACK(gtk_main_quit), NULL); gtk_widget_show (mugshell); + gtk_main (); return 0;