+/* Retrieves the filter, sort and tny models of the folder view. If
+ any of these does not exist then it returns FALSE */
+static gboolean
+get_inner_models (ModestFolderView *self,
+ GtkTreeModel **filter_model,
+ GtkTreeModel **sort_model,
+ GtkTreeModel **tny_model)
+{
+ GtkTreeModel *s_model, *f_model, *t_model;
+
+ f_model = gtk_tree_view_get_model (GTK_TREE_VIEW (self));
+ if (!GTK_IS_TREE_MODEL_FILTER(f_model)) {
+ g_warning ("BUG: %s: not a valid filter model", __FUNCTION__);
+ return FALSE;
+ }
+
+ s_model = gtk_tree_model_filter_get_model (GTK_TREE_MODEL_FILTER (f_model));
+ if (!GTK_IS_TREE_MODEL_SORT(s_model)) {
+ g_warning ("BUG: %s: not a valid sort model", __FUNCTION__);
+ return FALSE;
+ }
+
+ t_model = gtk_tree_model_sort_get_model (GTK_TREE_MODEL_SORT (s_model));
+
+ /* Assign values */
+ if (filter_model)
+ *filter_model = f_model;
+ if (sort_model)
+ *sort_model = s_model;
+ if (tny_model)
+ *tny_model = t_model;
+
+ return TRUE;
+}
+