* Now the folder view remembers its last selected folder and shows it when the application is launched
* Commented some debug code
* Removed an unneeded call to update_model
pmo-trunk-r1986
conf = modest_runtime_get_conf ();
- modest_widget_memory_restore (conf, G_OBJECT(self),
+ modest_widget_memory_restore (conf, G_OBJECT(self),
MODEST_CONF_MAIN_WINDOW_KEY);
- modest_widget_memory_restore (conf, G_OBJECT(priv->main_paned),
- MODEST_CONF_MAIN_PANED_KEY);
modest_widget_memory_restore (conf, G_OBJECT(priv->header_view),
MODEST_CONF_HEADER_VIEW_KEY);
+ modest_widget_memory_restore (conf, G_OBJECT(priv->main_paned),
+ MODEST_CONF_MAIN_PANED_KEY);
+ modest_widget_memory_restore (conf, G_OBJECT(priv->folder_view),
+ MODEST_CONF_FOLDER_VIEW_KEY);
}
MODEST_CONF_MAIN_PANED_KEY);
modest_widget_memory_save (conf, G_OBJECT(priv->header_view),
MODEST_CONF_HEADER_VIEW_KEY);
+ modest_widget_memory_save (conf, G_OBJECT(priv->folder_view),
+ MODEST_CONF_FOLDER_VIEW_KEY);
}
static void
action = gtk_ui_manager_get_action (parent_priv->ui_manager, "/ToolBar/ToolbarToggleView");
priv->style = style;
-
switch (style) {
case MODEST_MAIN_WINDOW_STYLE_SIMPLE:
/* Remove main paned */
* We do that in modest_tny_account_new_for_local_folders() instead. */
if (account_data->uri) {
tny_account_set_url_string (TNY_ACCOUNT(tny_account), account_data->uri);
- g_message ("DEBUG: %s: local account-url:\n %s", __FUNCTION__, account_data->uri);
+/* g_message ("DEBUG: %s: local account-url:\n %s", __FUNCTION__, account_data->uri); */
}
else {
/* Set camel-specific options: */
/* FIXME: for debugging */
url = tny_account_get_url_string (TNY_ACCOUNT(tny_account));
- g_message ("modest: %s:\n account-url: %s", __FUNCTION__, url);
+/* g_message ("modest: %s:\n account-url: %s", __FUNCTION__, url); */
g_free (url);
/***********************/
{
gchar *key;
const gchar* account_id;
+ GtkTreeSelection *selection;
+ GtkTreeModel *model;
+ GtkTreeIter iter;
- /* Restore the visible account */
+ /* Save the visible account */
key = _modest_widget_memory_get_keyname (name, "visible_server_account_id");
account_id = modest_folder_view_get_account_id_of_visible_server_account (folder_view);
if (account_id)
modest_conf_set_string (conf, key, account_id, NULL);
+ g_free (key);
+ /* Save the last selected folder */
+ key = _modest_widget_memory_get_keyname (name, "last_selected_path");
+ selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (folder_view));
+ if (gtk_tree_selection_get_selected (selection, &model, &iter)) {
+ gchar *str;
+ GtkTreePath *path = gtk_tree_model_get_path (model, &iter);
+ str = gtk_tree_path_to_string (path);
+ modest_conf_set_string (conf, key, str, NULL);
+ g_free (str);
+ gtk_tree_path_free (path);
+ }
g_free (key);
+
return TRUE;
}
ModestFolderView *folder_view,
const gchar *name)
{
- gchar *key, *account_id;
+ gchar *key, *account_id, *str;
/* Restore the visible account */
key = _modest_widget_memory_get_keyname (name, "visible_server_account_id");
g_free (key);
+ /* Restore the last selected folder. Check first that the model is not NULL */
+ if (gtk_tree_view_get_model (GTK_TREE_VIEW (folder_view))) {
+ key = _modest_widget_memory_get_keyname (name, "last_selected_path");
+ if (modest_conf_key_exists (conf, key, NULL)) {
+ GtkTreePath *path;
+ GtkTreeSelection *selection;
+
+ selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (folder_view));
+ str = modest_conf_get_string (conf, key, NULL);
+ path = gtk_tree_path_new_from_string ((const gchar *) str);
+ gtk_tree_view_expand_to_path (GTK_TREE_VIEW (folder_view), path);
+ gtk_tree_selection_select_path (selection, path);
+ g_free (str);
+ gtk_tree_path_free (path);
+ }
+ g_free (key);
+ }
+
return TRUE;
}
gulong changed_signal;
gulong accounts_reloaded_signal;
- GtkTreeSelection *cur_selection;
TnyFolderStoreQuery *query;
guint timer_expander;
/* Setup drag and drop */
setup_drag_and_drop (GTK_TREE_VIEW(obj));
- /* Restore conf */
- modest_widget_memory_restore (conf, G_OBJECT (obj), MODEST_CONF_FOLDER_VIEW_KEY);
-
/* Connect signals */
g_signal_connect (G_OBJECT (obj),
"key-press-event",
g_signal_connect (G_OBJECT(account_store), "accounts_reloaded",
G_CALLBACK (on_accounts_reloaded), self);
- if (!update_model (MODEST_FOLDER_VIEW (self),
- MODEST_TNY_ACCOUNT_STORE (priv->account_store)))
- g_printerr ("modest: failed to update model\n");
-
g_object_unref (G_OBJECT (device));
}
on_accounts_reloaded (TnyAccountStore *account_store,
gpointer user_data)
{
+ ModestConf *conf = modest_runtime_get_conf ();
+
+ modest_widget_memory_save (conf, G_OBJECT (user_data), MODEST_CONF_FOLDER_VIEW_KEY);
update_model (MODEST_FOLDER_VIEW (user_data),
MODEST_TNY_ACCOUNT_STORE(account_store));
+ modest_widget_memory_restore (conf, G_OBJECT (user_data), MODEST_CONF_FOLDER_VIEW_KEY);
}
void
update_model (ModestFolderView *self, ModestTnyAccountStore *account_store)
{
ModestFolderViewPrivate *priv;
-
GtkTreeModel *model;
g_return_val_if_fail (account_store, FALSE);
g_return_if_fail (user_data);
priv = MODEST_FOLDER_VIEW_GET_PRIVATE(user_data);
- priv->cur_selection = sel;
-
+
/* folder was _un_selected if true */
if (!gtk_tree_selection_get_selected (sel, &model, &iter)) {
if (priv->cur_folder_store)
const gchar *account_id)
{
ModestFolderViewPrivate *priv;
- ModestConf *conf;
GtkTreeModel *model;
g_return_if_fail (self);
g_free (priv->visible_account_id);
priv->visible_account_id = g_strdup (account_id);
- /* Save preferences */
- conf = modest_runtime_get_conf ();
- modest_widget_memory_save (conf, G_OBJECT (self), MODEST_CONF_FOLDER_VIEW_KEY);
-
/* Refilter */
model = gtk_tree_view_get_model (GTK_TREE_VIEW (self));
if (GTK_IS_TREE_MODEL_FILTER (model))