/* GOTO */
- { "GotoPrevious", MODEST_STOCK_PREV, N_("Previous"), NULL, N_("Go to previous message"), NULL },
+ { "GotoPrevious", MODEST_STOCK_PREV, N_("Previous"), NULL, N_("Go to previous message"), G_CALLBACK (modest_ui_actions_on_prev) },
{ "GotoNext", MODEST_STOCK_NEXT, N_("Next"), NULL, N_("Go to next message"), G_CALLBACK (modest_ui_actions_on_next) },
/* OPTIONS */
device = tny_account_store_get_device
(TNY_ACCOUNT_STORE(modest_runtime_get_account_store()));
- online = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(priv->online_toggle));
+ online = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (priv->online_toggle));
if (online)
tny_device_force_online (device);
g_signal_connect (G_OBJECT(device), "connection_changed",
G_CALLBACK(on_connection_changed), self);
g_signal_connect (G_OBJECT(priv->online_toggle), "toggled",
- G_CALLBACK(on_online_toggle_toggled), NULL);
+ G_CALLBACK(on_online_toggle_toggled), self);
/* window */
g_signal_connect (G_OBJECT(self), "destroy", G_CALLBACK(on_destroy), NULL);
gtk_paned_add2 (GTK_PANED(priv->msg_paned), GTK_WIDGET(self->msg_preview));
gtk_widget_show (GTK_WIDGET(self->header_view));
-
+
/* status bar / progress */
status_hbox = gtk_hbox_new (FALSE, 0);
gtk_box_pack_start (GTK_BOX(status_hbox), priv->folder_info_label, FALSE,FALSE, 6);
modest_header_view_select_next (main_window->header_view);
}
+void
+modest_ui_actions_on_prev (GtkWidget *widget,
+ ModestMainWindow *main_window)
+{
+ g_return_if_fail (MODEST_IS_MAIN_WINDOW(main_window));
+
+ if (main_window->header_view)
+ modest_header_view_select_prev (main_window->header_view);
+}
+
+
void
modest_ui_actions_toggle_view (GtkWidget *widget, ModestMainWindow *main_window)
{
void modest_ui_actions_on_next (GtkWidget *widget, ModestMainWindow *main_window);
+void modest_ui_actions_on_prev (GtkWidget *widget, ModestMainWindow *main_window);
+
void modest_ui_actions_toggle_view (GtkWidget *widget, ModestMainWindow *main_window);
/* Widget actions */
priv = MODEST_HEADER_VIEW_GET_PRIVATE(self);
modest_header_view_set_style (self, style);
-
- if (!modest_header_view_set_folder (self, NULL)) {
- g_printerr ("modest: could not set the folder\n");
- g_object_unref (obj);
- return NULL;
- }
+ modest_header_view_set_folder (self, NULL);
gtk_tree_view_columns_autosize (GTK_TREE_VIEW(obj));
gtk_tree_view_set_fixed_height_mode (GTK_TREE_VIEW(obj),TRUE);
sel = gtk_tree_view_get_selection (GTK_TREE_VIEW (self));
if (sel) {
gtk_tree_selection_get_selected (sel, &model, &iter);
- gtk_tree_model_iter_next (model, &iter);
- gtk_tree_selection_select_iter (sel, &iter);
+ if (gtk_tree_model_iter_next (model, &iter))
+ gtk_tree_selection_select_iter (sel, &iter);
}
}
+
+void
+modest_header_view_select_prev (ModestHeaderView *self)
+{
+ GtkTreeSelection *sel;
+ GtkTreeIter iter;
+ GtkTreeModel *model;
+ GtkTreePath *path;
+
+ sel = gtk_tree_view_get_selection (GTK_TREE_VIEW (self));
+ if (sel) {
+ gtk_tree_selection_get_selected (sel, &model, &iter);
+ path = gtk_tree_model_get_path (model, &iter);
+
+ /* Move path up */
+ if (gtk_tree_path_prev (path)) {
+ gtk_tree_model_get_iter (model, &iter, path);
+
+ /* Select the new one */
+ gtk_tree_selection_select_iter (sel, &iter);
+ }
+ gtk_tree_path_free (path);
+ }
+}
+
GList*
modest_header_view_get_columns (ModestHeaderView *self)
{
ModestHeaderViewPrivate *priv;
GError *error = NULL;
- if (cancelled)
+ if (cancelled) {
+ GtkTreeSelection *selection;
+
+ selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (user_data));
+ gtk_tree_selection_unselect_all (selection);
return;
+ }
self = MODEST_HEADER_VIEW(user_data);
priv = MODEST_HEADER_VIEW_GET_PRIVATE(self);
}
-gboolean
+void
modest_header_view_set_folder (ModestHeaderView *self, TnyFolder *folder)
{
ModestHeaderViewPrivate *priv;
priv->folder = folder;
- if (folder)
+ if (folder) {
tny_folder_refresh_async (folder,
on_refresh_folder,
on_refresh_folder_status_update,
self);
- /* no message selected */
- g_signal_emit (G_OBJECT(self), signals[HEADER_SELECTED_SIGNAL], 0,
- NULL);
- return TRUE;
+ /* no message selected */
+ g_signal_emit (G_OBJECT(self), signals[HEADER_SELECTED_SIGNAL], 0,
+ NULL);
+ }
}
static gboolean
* @folder: a TnyFolder object
*
* set the folder for this ModestHeaderView
- *
- * Returns: TRUE if it succeeded, FALSE otherwise
*/
-gboolean modest_header_view_set_folder (ModestHeaderView *self,
+void modest_header_view_set_folder (ModestHeaderView *self,
TnyFolder *folder);
/**
**/
void modest_header_view_select_next (ModestHeaderView *self);
+/**
+ * modest_header_view_select_prev:
+ * @self: a #ModestHeaderView
+ *
+ * Selects the previous header of the current selected one
+ **/
+void modest_header_view_select_prev (ModestHeaderView *self);
+
/* PROTECTED method. It's useful when we want to force a given
selection to reload a msg. For example if we have selected a header