|
Packit Service |
fb6fa5 |
/* Extensive GtkTreeModelFilter tests.
|
|
Packit Service |
fb6fa5 |
* Copyright (C) 2009 Kristian Rietveld <kris@gtk.org>
|
|
Packit Service |
fb6fa5 |
*
|
|
Packit Service |
fb6fa5 |
* This library is free software; you can redistribute it and/or
|
|
Packit Service |
fb6fa5 |
* modify it under the terms of the GNU Lesser General Public
|
|
Packit Service |
fb6fa5 |
* License as published by the Free Software Foundation; either
|
|
Packit Service |
fb6fa5 |
* version 2 of the License, or (at your option) any later version.
|
|
Packit Service |
fb6fa5 |
*
|
|
Packit Service |
fb6fa5 |
* This library is distributed in the hope that it will be useful,
|
|
Packit Service |
fb6fa5 |
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
Packit Service |
fb6fa5 |
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
Packit Service |
fb6fa5 |
* Lesser General Public License for more details.
|
|
Packit Service |
fb6fa5 |
*
|
|
Packit Service |
fb6fa5 |
* You should have received a copy of the GNU Lesser General Public
|
|
Packit Service |
fb6fa5 |
* License along with this library; if not, write to the
|
|
Packit Service |
fb6fa5 |
* Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
|
Packit Service |
fb6fa5 |
* Boston, MA 02111-1307, USA.
|
|
Packit Service |
fb6fa5 |
*/
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
#include <gtk/gtk.h>
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
/* Left to do:
|
|
Packit Service |
fb6fa5 |
* - Proper coverage checking to see if the unit tests cover
|
|
Packit Service |
fb6fa5 |
* all possible cases.
|
|
Packit Service |
fb6fa5 |
* - Verify if the ref counting is done properly for both the
|
|
Packit Service |
fb6fa5 |
* normal ref_count and the zero_ref_count. One way to test
|
|
Packit Service |
fb6fa5 |
* this area is by collapsing/expanding branches on the view
|
|
Packit Service |
fb6fa5 |
* that is connected to the filter model.
|
|
Packit Service |
fb6fa5 |
* - Check if the iterator stamp is incremented at the correct times.
|
|
Packit Service |
fb6fa5 |
*/
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
/*
|
|
Packit Service |
fb6fa5 |
* Model creation
|
|
Packit Service |
fb6fa5 |
*/
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
#define LEVEL_LENGTH 5
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
static void
|
|
Packit Service |
fb6fa5 |
create_tree_store_set_values (GtkTreeStore *store,
|
|
Packit Service |
fb6fa5 |
GtkTreeIter *iter,
|
|
Packit Service |
fb6fa5 |
gboolean visible)
|
|
Packit Service |
fb6fa5 |
{
|
|
Packit Service |
fb6fa5 |
GtkTreePath *path;
|
|
Packit Service |
fb6fa5 |
gchar *path_string;
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
path = gtk_tree_model_get_path (GTK_TREE_MODEL (store), iter);
|
|
Packit Service |
fb6fa5 |
path_string = gtk_tree_path_to_string (path);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
gtk_tree_store_set (store, iter,
|
|
Packit Service |
fb6fa5 |
0, path_string,
|
|
Packit Service |
fb6fa5 |
1, visible,
|
|
Packit Service |
fb6fa5 |
-1);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
gtk_tree_path_free (path);
|
|
Packit Service |
fb6fa5 |
g_free (path_string);
|
|
Packit Service |
fb6fa5 |
}
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
static void
|
|
Packit Service |
fb6fa5 |
create_tree_store_recurse (int depth,
|
|
Packit Service |
fb6fa5 |
GtkTreeStore *store,
|
|
Packit Service |
fb6fa5 |
GtkTreeIter *parent,
|
|
Packit Service |
fb6fa5 |
gboolean visible)
|
|
Packit Service |
fb6fa5 |
{
|
|
Packit Service |
fb6fa5 |
int i;
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
for (i = 0; i < LEVEL_LENGTH; i++)
|
|
Packit Service |
fb6fa5 |
{
|
|
Packit Service |
fb6fa5 |
GtkTreeIter iter;
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
gtk_tree_store_insert (store, &iter, parent, i);
|
|
Packit Service |
fb6fa5 |
create_tree_store_set_values (store, &iter, visible);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
if (depth > 0)
|
|
Packit Service |
fb6fa5 |
create_tree_store_recurse (depth - 1, store, &iter, visible);
|
|
Packit Service |
fb6fa5 |
}
|
|
Packit Service |
fb6fa5 |
}
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
static GtkTreeStore *
|
|
Packit Service |
fb6fa5 |
create_tree_store (int depth,
|
|
Packit Service |
fb6fa5 |
gboolean visible)
|
|
Packit Service |
fb6fa5 |
{
|
|
Packit Service |
fb6fa5 |
GtkTreeStore *store;
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
store = gtk_tree_store_new (2, G_TYPE_STRING, G_TYPE_BOOLEAN);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
create_tree_store_recurse (depth, store, NULL, visible);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
return store;
|
|
Packit Service |
fb6fa5 |
}
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
/*
|
|
Packit Service |
fb6fa5 |
* Signal monitor
|
|
Packit Service |
fb6fa5 |
*/
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
typedef enum
|
|
Packit Service |
fb6fa5 |
{
|
|
Packit Service |
fb6fa5 |
ROW_INSERTED,
|
|
Packit Service |
fb6fa5 |
ROW_DELETED,
|
|
Packit Service |
fb6fa5 |
ROW_CHANGED,
|
|
Packit Service |
fb6fa5 |
ROW_HAS_CHILD_TOGGLED,
|
|
Packit Service |
fb6fa5 |
ROWS_REORDERED,
|
|
Packit Service |
fb6fa5 |
LAST_SIGNAL
|
|
Packit Service |
fb6fa5 |
}
|
|
Packit Service |
fb6fa5 |
SignalName;
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
static const char *
|
|
Packit Service |
fb6fa5 |
signal_name_to_string (SignalName signal)
|
|
Packit Service |
fb6fa5 |
{
|
|
Packit Service |
fb6fa5 |
switch (signal)
|
|
Packit Service |
fb6fa5 |
{
|
|
Packit Service |
fb6fa5 |
case ROW_INSERTED:
|
|
Packit Service |
fb6fa5 |
return "row-inserted";
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
case ROW_DELETED:
|
|
Packit Service |
fb6fa5 |
return "row-deleted";
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
case ROW_CHANGED:
|
|
Packit Service |
fb6fa5 |
return "row-changed";
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
case ROW_HAS_CHILD_TOGGLED:
|
|
Packit Service |
fb6fa5 |
return "row-has-child-toggled";
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
case ROWS_REORDERED:
|
|
Packit Service |
fb6fa5 |
return "rows-reordered";
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
default:
|
|
Packit Service |
fb6fa5 |
/* Fall through */
|
|
Packit Service |
fb6fa5 |
break;
|
|
Packit Service |
fb6fa5 |
}
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
return "(unknown)";
|
|
Packit Service |
fb6fa5 |
}
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
typedef struct
|
|
Packit Service |
fb6fa5 |
{
|
|
Packit Service |
fb6fa5 |
SignalName signal;
|
|
Packit Service |
fb6fa5 |
GtkTreePath *path;
|
|
Packit Service |
fb6fa5 |
}
|
|
Packit Service |
fb6fa5 |
Signal;
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
static Signal *
|
|
Packit Service |
fb6fa5 |
signal_new (SignalName signal, GtkTreePath *path)
|
|
Packit Service |
fb6fa5 |
{
|
|
Packit Service |
fb6fa5 |
Signal *s;
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
s = g_new0 (Signal, 1);
|
|
Packit Service |
fb6fa5 |
s->signal = signal;
|
|
Packit Service |
fb6fa5 |
s->path = gtk_tree_path_copy (path);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
return s;
|
|
Packit Service |
fb6fa5 |
}
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
static void
|
|
Packit Service |
fb6fa5 |
signal_free (Signal *s)
|
|
Packit Service |
fb6fa5 |
{
|
|
Packit Service |
fb6fa5 |
if (s->path)
|
|
Packit Service |
fb6fa5 |
gtk_tree_path_free (s->path);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
g_free (s);
|
|
Packit Service |
fb6fa5 |
}
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
typedef struct
|
|
Packit Service |
fb6fa5 |
{
|
|
Packit Service |
fb6fa5 |
GQueue *queue;
|
|
Packit Service |
fb6fa5 |
GtkTreeModel *client;
|
|
Packit Service |
fb6fa5 |
guint signal_ids[LAST_SIGNAL];
|
|
Packit Service |
fb6fa5 |
}
|
|
Packit Service |
fb6fa5 |
SignalMonitor;
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
static void
|
|
Packit Service |
fb6fa5 |
signal_monitor_generic_handler (SignalMonitor *m,
|
|
Packit Service |
fb6fa5 |
SignalName signal,
|
|
Packit Service |
fb6fa5 |
GtkTreeModel *model,
|
|
Packit Service |
fb6fa5 |
GtkTreePath *path)
|
|
Packit Service |
fb6fa5 |
{
|
|
Packit Service |
fb6fa5 |
Signal *s;
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
if (g_queue_is_empty (m->queue))
|
|
Packit Service |
fb6fa5 |
{
|
|
Packit Service |
fb6fa5 |
g_error ("Signal queue empty\n");
|
|
Packit Service |
fb6fa5 |
g_assert_not_reached ();
|
|
Packit Service |
fb6fa5 |
}
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
if (m->client != model)
|
|
Packit Service |
fb6fa5 |
{
|
|
Packit Service |
fb6fa5 |
g_error ("Model mismatch; expected %p, got %p\n",
|
|
Packit Service |
fb6fa5 |
m->client, model);
|
|
Packit Service |
fb6fa5 |
g_assert_not_reached ();
|
|
Packit Service |
fb6fa5 |
}
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
s = g_queue_peek_tail (m->queue);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
#if 0
|
|
Packit Service |
fb6fa5 |
/* For debugging: output signals that are coming in. Leaks memory. */
|
|
Packit Service |
fb6fa5 |
g_print ("signal=%d path=%s\n", signal, gtk_tree_path_to_string (path));
|
|
Packit Service |
fb6fa5 |
#endif
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
if (s->signal != signal
|
|
Packit Service |
fb6fa5 |
|| gtk_tree_path_compare (s->path, path) != 0)
|
|
Packit Service |
fb6fa5 |
{
|
|
Packit Service |
fb6fa5 |
gchar *path_str, *s_path_str;
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
s_path_str = gtk_tree_path_to_string (s->path);
|
|
Packit Service |
fb6fa5 |
path_str = gtk_tree_path_to_string (path);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
g_error ("Signals don't match; expected signal %s path %s, got signal %s path %s\n",
|
|
Packit Service |
fb6fa5 |
signal_name_to_string (s->signal), s_path_str,
|
|
Packit Service |
fb6fa5 |
signal_name_to_string (signal), path_str);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
g_free (s_path_str);
|
|
Packit Service |
fb6fa5 |
g_free (path_str);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
g_assert_not_reached ();
|
|
Packit Service |
fb6fa5 |
}
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
s = g_queue_pop_tail (m->queue);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
signal_free (s);
|
|
Packit Service |
fb6fa5 |
}
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
static void
|
|
Packit Service |
fb6fa5 |
signal_monitor_row_inserted (GtkTreeModel *model,
|
|
Packit Service |
fb6fa5 |
GtkTreePath *path,
|
|
Packit Service |
fb6fa5 |
GtkTreeIter *iter,
|
|
Packit Service |
fb6fa5 |
gpointer data)
|
|
Packit Service |
fb6fa5 |
{
|
|
Packit Service |
fb6fa5 |
signal_monitor_generic_handler (data, ROW_INSERTED,
|
|
Packit Service |
fb6fa5 |
model, path);
|
|
Packit Service |
fb6fa5 |
}
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
static void
|
|
Packit Service |
fb6fa5 |
signal_monitor_row_deleted (GtkTreeModel *model,
|
|
Packit Service |
fb6fa5 |
GtkTreePath *path,
|
|
Packit Service |
fb6fa5 |
gpointer data)
|
|
Packit Service |
fb6fa5 |
{
|
|
Packit Service |
fb6fa5 |
signal_monitor_generic_handler (data, ROW_DELETED,
|
|
Packit Service |
fb6fa5 |
model, path);
|
|
Packit Service |
fb6fa5 |
}
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
static void
|
|
Packit Service |
fb6fa5 |
signal_monitor_row_changed (GtkTreeModel *model,
|
|
Packit Service |
fb6fa5 |
GtkTreePath *path,
|
|
Packit Service |
fb6fa5 |
GtkTreeIter *iter,
|
|
Packit Service |
fb6fa5 |
gpointer data)
|
|
Packit Service |
fb6fa5 |
{
|
|
Packit Service |
fb6fa5 |
signal_monitor_generic_handler (data, ROW_CHANGED,
|
|
Packit Service |
fb6fa5 |
model, path);
|
|
Packit Service |
fb6fa5 |
}
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
static void
|
|
Packit Service |
fb6fa5 |
signal_monitor_row_has_child_toggled (GtkTreeModel *model,
|
|
Packit Service |
fb6fa5 |
GtkTreePath *path,
|
|
Packit Service |
fb6fa5 |
GtkTreeIter *iter,
|
|
Packit Service |
fb6fa5 |
gpointer data)
|
|
Packit Service |
fb6fa5 |
{
|
|
Packit Service |
fb6fa5 |
signal_monitor_generic_handler (data, ROW_HAS_CHILD_TOGGLED,
|
|
Packit Service |
fb6fa5 |
model, path);
|
|
Packit Service |
fb6fa5 |
}
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
static void
|
|
Packit Service |
fb6fa5 |
signal_monitor_rows_reordered (GtkTreeModel *model,
|
|
Packit Service |
fb6fa5 |
GtkTreePath *path,
|
|
Packit Service |
fb6fa5 |
GtkTreeIter *iter,
|
|
Packit Service |
fb6fa5 |
gint *new_order,
|
|
Packit Service |
fb6fa5 |
gpointer data)
|
|
Packit Service |
fb6fa5 |
{
|
|
Packit Service |
fb6fa5 |
signal_monitor_generic_handler (data, ROWS_REORDERED,
|
|
Packit Service |
fb6fa5 |
model, path);
|
|
Packit Service |
fb6fa5 |
}
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
static SignalMonitor *
|
|
Packit Service |
fb6fa5 |
signal_monitor_new (GtkTreeModel *client)
|
|
Packit Service |
fb6fa5 |
{
|
|
Packit Service |
fb6fa5 |
SignalMonitor *m;
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
m = g_new0 (SignalMonitor, 1);
|
|
Packit Service |
fb6fa5 |
m->client = g_object_ref (client);
|
|
Packit Service |
fb6fa5 |
m->queue = g_queue_new ();
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
m->signal_ids[ROW_INSERTED] = g_signal_connect (client,
|
|
Packit Service |
fb6fa5 |
"row-inserted",
|
|
Packit Service |
fb6fa5 |
G_CALLBACK (signal_monitor_row_inserted),
|
|
Packit Service |
fb6fa5 |
m);
|
|
Packit Service |
fb6fa5 |
m->signal_ids[ROW_DELETED] = g_signal_connect (client,
|
|
Packit Service |
fb6fa5 |
"row-deleted",
|
|
Packit Service |
fb6fa5 |
G_CALLBACK (signal_monitor_row_deleted),
|
|
Packit Service |
fb6fa5 |
m);
|
|
Packit Service |
fb6fa5 |
m->signal_ids[ROW_CHANGED] = g_signal_connect (client,
|
|
Packit Service |
fb6fa5 |
"row-changed",
|
|
Packit Service |
fb6fa5 |
G_CALLBACK (signal_monitor_row_changed),
|
|
Packit Service |
fb6fa5 |
m);
|
|
Packit Service |
fb6fa5 |
m->signal_ids[ROW_HAS_CHILD_TOGGLED] = g_signal_connect (client,
|
|
Packit Service |
fb6fa5 |
"row-has-child-toggled",
|
|
Packit Service |
fb6fa5 |
G_CALLBACK (signal_monitor_row_has_child_toggled),
|
|
Packit Service |
fb6fa5 |
m);
|
|
Packit Service |
fb6fa5 |
m->signal_ids[ROWS_REORDERED] = g_signal_connect (client,
|
|
Packit Service |
fb6fa5 |
"rows-reordered",
|
|
Packit Service |
fb6fa5 |
G_CALLBACK (signal_monitor_rows_reordered),
|
|
Packit Service |
fb6fa5 |
m);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
return m;
|
|
Packit Service |
fb6fa5 |
}
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
static void
|
|
Packit Service |
fb6fa5 |
signal_monitor_free (SignalMonitor *m)
|
|
Packit Service |
fb6fa5 |
{
|
|
Packit Service |
fb6fa5 |
int i;
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
for (i = 0; i < LAST_SIGNAL; i++)
|
|
Packit Service |
fb6fa5 |
g_signal_handler_disconnect (m->client, m->signal_ids[i]);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
g_object_unref (m->client);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
if (m->queue)
|
|
Packit Service |
fb6fa5 |
g_queue_free (m->queue);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
g_free (m);
|
|
Packit Service |
fb6fa5 |
}
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
static void
|
|
Packit Service |
fb6fa5 |
signal_monitor_assert_is_empty (SignalMonitor *m)
|
|
Packit Service |
fb6fa5 |
{
|
|
Packit Service |
fb6fa5 |
g_assert (g_queue_is_empty (m->queue));
|
|
Packit Service |
fb6fa5 |
}
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
static void
|
|
Packit Service |
fb6fa5 |
signal_monitor_append_signal_path (SignalMonitor *m,
|
|
Packit Service |
fb6fa5 |
SignalName signal,
|
|
Packit Service |
fb6fa5 |
GtkTreePath *path)
|
|
Packit Service |
fb6fa5 |
{
|
|
Packit Service |
fb6fa5 |
Signal *s;
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
s = signal_new (signal, path);
|
|
Packit Service |
fb6fa5 |
g_queue_push_head (m->queue, s);
|
|
Packit Service |
fb6fa5 |
}
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
static void
|
|
Packit Service |
fb6fa5 |
signal_monitor_append_signal (SignalMonitor *m,
|
|
Packit Service |
fb6fa5 |
SignalName signal,
|
|
Packit Service |
fb6fa5 |
const gchar *path_string)
|
|
Packit Service |
fb6fa5 |
{
|
|
Packit Service |
fb6fa5 |
Signal *s;
|
|
Packit Service |
fb6fa5 |
GtkTreePath *path;
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
path = gtk_tree_path_new_from_string (path_string);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
s = signal_new (signal, path);
|
|
Packit Service |
fb6fa5 |
g_queue_push_head (m->queue, s);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
gtk_tree_path_free (path);
|
|
Packit Service |
fb6fa5 |
}
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
/*
|
|
Packit Service |
fb6fa5 |
* Fixture
|
|
Packit Service |
fb6fa5 |
*/
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
typedef struct
|
|
Packit Service |
fb6fa5 |
{
|
|
Packit Service |
fb6fa5 |
GtkWidget *tree_view;
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
GtkTreeStore *store;
|
|
Packit Service |
fb6fa5 |
GtkTreeModelFilter *filter;
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
SignalMonitor *monitor;
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
guint block_signals : 1;
|
|
Packit Service |
fb6fa5 |
} FilterTest;
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
static void
|
|
Packit Service |
fb6fa5 |
filter_test_store_signal (FilterTest *fixture)
|
|
Packit Service |
fb6fa5 |
{
|
|
Packit Service |
fb6fa5 |
if (fixture->block_signals)
|
|
Packit Service |
fb6fa5 |
g_signal_stop_emission_by_name (fixture->store, "row-changed");
|
|
Packit Service |
fb6fa5 |
}
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
static void
|
|
Packit Service |
fb6fa5 |
filter_test_setup_generic (FilterTest *fixture,
|
|
Packit Service |
fb6fa5 |
gconstpointer test_data,
|
|
Packit Service |
fb6fa5 |
int depth,
|
|
Packit Service |
fb6fa5 |
gboolean empty,
|
|
Packit Service |
fb6fa5 |
gboolean unfiltered)
|
|
Packit Service |
fb6fa5 |
{
|
|
Packit Service |
fb6fa5 |
const GtkTreePath *vroot = test_data;
|
|
Packit Service |
fb6fa5 |
GtkTreeModel *filter;
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
fixture->store = create_tree_store (depth, !empty);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
g_signal_connect_swapped (fixture->store, "row-changed",
|
|
Packit Service |
fb6fa5 |
G_CALLBACK (filter_test_store_signal), fixture);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
/* Please forgive me for casting const away. */
|
|
Packit Service |
fb6fa5 |
filter = gtk_tree_model_filter_new (GTK_TREE_MODEL (fixture->store),
|
|
Packit Service |
fb6fa5 |
(GtkTreePath *)vroot);
|
|
Packit Service |
fb6fa5 |
fixture->filter = GTK_TREE_MODEL_FILTER (filter);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
if (!unfiltered)
|
|
Packit Service |
fb6fa5 |
gtk_tree_model_filter_set_visible_column (fixture->filter, 1);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
/* We need a tree view that's listening to get ref counting from that
|
|
Packit Service |
fb6fa5 |
* side.
|
|
Packit Service |
fb6fa5 |
*/
|
|
Packit Service |
fb6fa5 |
fixture->tree_view = gtk_tree_view_new_with_model (filter);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
fixture->monitor = signal_monitor_new (filter);
|
|
Packit Service |
fb6fa5 |
}
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
static void
|
|
Packit Service |
fb6fa5 |
filter_test_setup (FilterTest *fixture,
|
|
Packit Service |
fb6fa5 |
gconstpointer test_data)
|
|
Packit Service |
fb6fa5 |
{
|
|
Packit Service |
fb6fa5 |
filter_test_setup_generic (fixture, test_data, 3, FALSE, FALSE);
|
|
Packit Service |
fb6fa5 |
}
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
static void
|
|
Packit Service |
fb6fa5 |
filter_test_setup_empty (FilterTest *fixture,
|
|
Packit Service |
fb6fa5 |
gconstpointer test_data)
|
|
Packit Service |
fb6fa5 |
{
|
|
Packit Service |
fb6fa5 |
filter_test_setup_generic (fixture, test_data, 3, TRUE, FALSE);
|
|
Packit Service |
fb6fa5 |
}
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
static void
|
|
Packit Service |
fb6fa5 |
filter_test_setup_unfiltered (FilterTest *fixture,
|
|
Packit Service |
fb6fa5 |
gconstpointer test_data)
|
|
Packit Service |
fb6fa5 |
{
|
|
Packit Service |
fb6fa5 |
filter_test_setup_generic (fixture, test_data, 3, FALSE, TRUE);
|
|
Packit Service |
fb6fa5 |
}
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
static void
|
|
Packit Service |
fb6fa5 |
filter_test_setup_empty_unfiltered (FilterTest *fixture,
|
|
Packit Service |
fb6fa5 |
gconstpointer test_data)
|
|
Packit Service |
fb6fa5 |
{
|
|
Packit Service |
fb6fa5 |
filter_test_setup_generic (fixture, test_data, 3, TRUE, TRUE);
|
|
Packit Service |
fb6fa5 |
}
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
static GtkTreePath *
|
|
Packit Service |
fb6fa5 |
strip_virtual_root (GtkTreePath *path,
|
|
Packit Service |
fb6fa5 |
GtkTreePath *root_path)
|
|
Packit Service |
fb6fa5 |
{
|
|
Packit Service |
fb6fa5 |
GtkTreePath *real_path;
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
if (root_path)
|
|
Packit Service |
fb6fa5 |
{
|
|
Packit Service |
fb6fa5 |
int j;
|
|
Packit Service |
fb6fa5 |
int depth = gtk_tree_path_get_depth (path);
|
|
Packit Service |
fb6fa5 |
int root_depth = gtk_tree_path_get_depth (root_path);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
real_path = gtk_tree_path_new ();
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
for (j = 0; j < depth - root_depth; j++)
|
|
Packit Service |
fb6fa5 |
gtk_tree_path_append_index (real_path,
|
|
Packit Service |
fb6fa5 |
gtk_tree_path_get_indices (path)[root_depth + j]);
|
|
Packit Service |
fb6fa5 |
}
|
|
Packit Service |
fb6fa5 |
else
|
|
Packit Service |
fb6fa5 |
real_path = gtk_tree_path_copy (path);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
return real_path;
|
|
Packit Service |
fb6fa5 |
}
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
static void
|
|
Packit Service |
fb6fa5 |
filter_test_append_refilter_signals_recurse (FilterTest *fixture,
|
|
Packit Service |
fb6fa5 |
GtkTreePath *store_path,
|
|
Packit Service |
fb6fa5 |
GtkTreePath *filter_path,
|
|
Packit Service |
fb6fa5 |
int depth,
|
|
Packit Service |
fb6fa5 |
GtkTreePath *root_path)
|
|
Packit Service |
fb6fa5 |
{
|
|
Packit Service |
fb6fa5 |
int i;
|
|
Packit Service |
fb6fa5 |
int rows_deleted = 0;
|
|
Packit Service |
fb6fa5 |
GtkTreeIter iter;
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
gtk_tree_path_down (store_path);
|
|
Packit Service |
fb6fa5 |
gtk_tree_path_down (filter_path);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
gtk_tree_model_get_iter (GTK_TREE_MODEL (fixture->store),
|
|
Packit Service |
fb6fa5 |
&iter, store_path);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
for (i = 0; i < LEVEL_LENGTH; i++)
|
|
Packit Service |
fb6fa5 |
{
|
|
Packit Service |
fb6fa5 |
gboolean visible;
|
|
Packit Service |
fb6fa5 |
GtkTreePath *real_path;
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
gtk_tree_model_get (GTK_TREE_MODEL (fixture->store), &iter,
|
|
Packit Service |
fb6fa5 |
1, &visible,
|
|
Packit Service |
fb6fa5 |
-1);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
if (root_path &&
|
|
Packit Service |
fb6fa5 |
(!gtk_tree_path_is_descendant (store_path, root_path)
|
|
Packit Service |
fb6fa5 |
|| !gtk_tree_path_compare (store_path, root_path)))
|
|
Packit Service |
fb6fa5 |
{
|
|
Packit Service |
fb6fa5 |
if (!gtk_tree_path_compare (store_path, root_path))
|
|
Packit Service |
fb6fa5 |
{
|
|
Packit Service |
fb6fa5 |
if (depth > 1
|
|
Packit Service |
fb6fa5 |
&& gtk_tree_model_iter_has_child (GTK_TREE_MODEL (fixture->store),
|
|
Packit Service |
fb6fa5 |
&iter))
|
|
Packit Service |
fb6fa5 |
{
|
|
Packit Service |
fb6fa5 |
GtkTreePath *store_copy;
|
|
Packit Service |
fb6fa5 |
GtkTreePath *filter_copy;
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
store_copy = gtk_tree_path_copy (store_path);
|
|
Packit Service |
fb6fa5 |
filter_copy = gtk_tree_path_copy (filter_path);
|
|
Packit Service |
fb6fa5 |
filter_test_append_refilter_signals_recurse (fixture,
|
|
Packit Service |
fb6fa5 |
store_copy,
|
|
Packit Service |
fb6fa5 |
filter_copy,
|
|
Packit Service |
fb6fa5 |
depth - 1,
|
|
Packit Service |
fb6fa5 |
root_path);
|
|
Packit Service |
fb6fa5 |
gtk_tree_path_free (store_copy);
|
|
Packit Service |
fb6fa5 |
gtk_tree_path_free (filter_copy);
|
|
Packit Service |
fb6fa5 |
}
|
|
Packit Service |
fb6fa5 |
}
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
gtk_tree_path_next (store_path);
|
|
Packit Service |
fb6fa5 |
gtk_tree_model_iter_next (GTK_TREE_MODEL (fixture->store), &iter);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
if (visible)
|
|
Packit Service |
fb6fa5 |
gtk_tree_path_next (filter_path);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
continue;
|
|
Packit Service |
fb6fa5 |
}
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
real_path = strip_virtual_root (filter_path, root_path);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
if (visible)
|
|
Packit Service |
fb6fa5 |
{
|
|
Packit Service |
fb6fa5 |
/* This row will be inserted */
|
|
Packit Service |
fb6fa5 |
signal_monitor_append_signal_path (fixture->monitor, ROW_CHANGED,
|
|
Packit Service |
fb6fa5 |
real_path);
|
|
Packit Service |
fb6fa5 |
signal_monitor_append_signal_path (fixture->monitor,
|
|
Packit Service |
fb6fa5 |
ROW_HAS_CHILD_TOGGLED,
|
|
Packit Service |
fb6fa5 |
real_path);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
if (depth > 1
|
|
Packit Service |
fb6fa5 |
&& gtk_tree_model_iter_has_child (GTK_TREE_MODEL (fixture->store),
|
|
Packit Service |
fb6fa5 |
&iter))
|
|
Packit Service |
fb6fa5 |
{
|
|
Packit Service |
fb6fa5 |
GtkTreePath *store_copy;
|
|
Packit Service |
fb6fa5 |
GtkTreePath *filter_copy;
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
store_copy = gtk_tree_path_copy (store_path);
|
|
Packit Service |
fb6fa5 |
filter_copy = gtk_tree_path_copy (filter_path);
|
|
Packit Service |
fb6fa5 |
filter_test_append_refilter_signals_recurse (fixture,
|
|
Packit Service |
fb6fa5 |
store_copy,
|
|
Packit Service |
fb6fa5 |
filter_copy,
|
|
Packit Service |
fb6fa5 |
depth - 1,
|
|
Packit Service |
fb6fa5 |
root_path);
|
|
Packit Service |
fb6fa5 |
gtk_tree_path_free (store_copy);
|
|
Packit Service |
fb6fa5 |
gtk_tree_path_free (filter_copy);
|
|
Packit Service |
fb6fa5 |
}
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
gtk_tree_path_next (filter_path);
|
|
Packit Service |
fb6fa5 |
}
|
|
Packit Service |
fb6fa5 |
else
|
|
Packit Service |
fb6fa5 |
{
|
|
Packit Service |
fb6fa5 |
/* This row will be deleted */
|
|
Packit Service |
fb6fa5 |
rows_deleted++;
|
|
Packit Service |
fb6fa5 |
signal_monitor_append_signal_path (fixture->monitor, ROW_DELETED,
|
|
Packit Service |
fb6fa5 |
real_path);
|
|
Packit Service |
fb6fa5 |
}
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
gtk_tree_path_free (real_path);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
gtk_tree_path_next (store_path);
|
|
Packit Service |
fb6fa5 |
gtk_tree_model_iter_next (GTK_TREE_MODEL (fixture->store), &iter);
|
|
Packit Service |
fb6fa5 |
}
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
if (rows_deleted == LEVEL_LENGTH
|
|
Packit Service |
fb6fa5 |
&& gtk_tree_path_get_depth (filter_path) > 1)
|
|
Packit Service |
fb6fa5 |
{
|
|
Packit Service |
fb6fa5 |
GtkTreePath *real_path;
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
gtk_tree_path_up (store_path);
|
|
Packit Service |
fb6fa5 |
gtk_tree_path_up (filter_path);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
/* A row-has-child-toggled will be emitted on the parent */
|
|
Packit Service |
fb6fa5 |
if (!root_path
|
|
Packit Service |
fb6fa5 |
|| (root_path
|
|
Packit Service |
fb6fa5 |
&& gtk_tree_path_is_descendant (store_path, root_path)
|
|
Packit Service |
fb6fa5 |
&& gtk_tree_path_compare (store_path, root_path)))
|
|
Packit Service |
fb6fa5 |
{
|
|
Packit Service |
fb6fa5 |
real_path = strip_virtual_root (filter_path, root_path);
|
|
Packit Service |
fb6fa5 |
signal_monitor_append_signal_path (fixture->monitor,
|
|
Packit Service |
fb6fa5 |
ROW_HAS_CHILD_TOGGLED,
|
|
Packit Service |
fb6fa5 |
real_path);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
gtk_tree_path_free (real_path);
|
|
Packit Service |
fb6fa5 |
}
|
|
Packit Service |
fb6fa5 |
}
|
|
Packit Service |
fb6fa5 |
}
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
static void
|
|
Packit Service |
fb6fa5 |
filter_test_append_refilter_signals (FilterTest *fixture,
|
|
Packit Service |
fb6fa5 |
int depth)
|
|
Packit Service |
fb6fa5 |
{
|
|
Packit Service |
fb6fa5 |
/* A special function that walks the tree store like the
|
|
Packit Service |
fb6fa5 |
* model validation functions below.
|
|
Packit Service |
fb6fa5 |
*/
|
|
Packit Service |
fb6fa5 |
GtkTreePath *path;
|
|
Packit Service |
fb6fa5 |
GtkTreePath *filter_path;
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
path = gtk_tree_path_new ();
|
|
Packit Service |
fb6fa5 |
filter_path = gtk_tree_path_new ();
|
|
Packit Service |
fb6fa5 |
filter_test_append_refilter_signals_recurse (fixture,
|
|
Packit Service |
fb6fa5 |
path,
|
|
Packit Service |
fb6fa5 |
filter_path,
|
|
Packit Service |
fb6fa5 |
depth,
|
|
Packit Service |
fb6fa5 |
NULL);
|
|
Packit Service |
fb6fa5 |
gtk_tree_path_free (path);
|
|
Packit Service |
fb6fa5 |
gtk_tree_path_free (filter_path);
|
|
Packit Service |
fb6fa5 |
}
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
static void
|
|
Packit Service |
fb6fa5 |
filter_test_append_refilter_signals_with_vroot (FilterTest *fixture,
|
|
Packit Service |
fb6fa5 |
int depth,
|
|
Packit Service |
fb6fa5 |
GtkTreePath *root_path)
|
|
Packit Service |
fb6fa5 |
{
|
|
Packit Service |
fb6fa5 |
/* A special function that walks the tree store like the
|
|
Packit Service |
fb6fa5 |
* model validation functions below.
|
|
Packit Service |
fb6fa5 |
*/
|
|
Packit Service |
fb6fa5 |
GtkTreePath *path;
|
|
Packit Service |
fb6fa5 |
GtkTreePath *filter_path;
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
path = gtk_tree_path_new ();
|
|
Packit Service |
fb6fa5 |
filter_path = gtk_tree_path_new ();
|
|
Packit Service |
fb6fa5 |
filter_test_append_refilter_signals_recurse (fixture,
|
|
Packit Service |
fb6fa5 |
path,
|
|
Packit Service |
fb6fa5 |
filter_path,
|
|
Packit Service |
fb6fa5 |
depth,
|
|
Packit Service |
fb6fa5 |
root_path);
|
|
Packit Service |
fb6fa5 |
gtk_tree_path_free (path);
|
|
Packit Service |
fb6fa5 |
gtk_tree_path_free (filter_path);
|
|
Packit Service |
fb6fa5 |
}
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
static void
|
|
Packit Service |
fb6fa5 |
filter_test_enable_filter (FilterTest *fixture)
|
|
Packit Service |
fb6fa5 |
{
|
|
Packit Service |
fb6fa5 |
gtk_tree_model_filter_set_visible_column (fixture->filter, 1);
|
|
Packit Service |
fb6fa5 |
gtk_tree_model_filter_refilter (fixture->filter);
|
|
Packit Service |
fb6fa5 |
}
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
static void
|
|
Packit Service |
fb6fa5 |
filter_test_block_signals (FilterTest *fixture)
|
|
Packit Service |
fb6fa5 |
{
|
|
Packit Service |
fb6fa5 |
fixture->block_signals = TRUE;
|
|
Packit Service |
fb6fa5 |
}
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
static void
|
|
Packit Service |
fb6fa5 |
filter_test_unblock_signals (FilterTest *fixture)
|
|
Packit Service |
fb6fa5 |
{
|
|
Packit Service |
fb6fa5 |
fixture->block_signals = FALSE;
|
|
Packit Service |
fb6fa5 |
}
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
static void
|
|
Packit Service |
fb6fa5 |
filter_test_teardown (FilterTest *fixture,
|
|
Packit Service |
fb6fa5 |
gconstpointer test_data)
|
|
Packit Service |
fb6fa5 |
{
|
|
Packit Service |
fb6fa5 |
signal_monitor_free (fixture->monitor);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
g_object_unref (fixture->filter);
|
|
Packit Service |
fb6fa5 |
g_object_unref (fixture->store);
|
|
Packit Service |
fb6fa5 |
}
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
/*
|
|
Packit Service |
fb6fa5 |
* Model structure validation
|
|
Packit Service |
fb6fa5 |
*/
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
static void
|
|
Packit Service |
fb6fa5 |
check_filter_model_recurse (FilterTest *fixture,
|
|
Packit Service |
fb6fa5 |
GtkTreePath *store_parent_path,
|
|
Packit Service |
fb6fa5 |
GtkTreePath *filter_parent_path)
|
|
Packit Service |
fb6fa5 |
{
|
|
Packit Service |
fb6fa5 |
int i;
|
|
Packit Service |
fb6fa5 |
GtkTreeIter store_iter;
|
|
Packit Service |
fb6fa5 |
GtkTreeIter filter_iter;
|
|
Packit Service |
fb6fa5 |
gboolean store_has_next, filter_has_next;
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
gtk_tree_path_down (store_parent_path);
|
|
Packit Service |
fb6fa5 |
gtk_tree_path_down (filter_parent_path);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
store_has_next = gtk_tree_model_get_iter (GTK_TREE_MODEL (fixture->store),
|
|
Packit Service |
fb6fa5 |
&store_iter, store_parent_path);
|
|
Packit Service |
fb6fa5 |
filter_has_next = gtk_tree_model_get_iter (GTK_TREE_MODEL (fixture->filter),
|
|
Packit Service |
fb6fa5 |
&filter_iter, filter_parent_path);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
for (i = 0; i < LEVEL_LENGTH; i++)
|
|
Packit Service |
fb6fa5 |
{
|
|
Packit Service |
fb6fa5 |
gboolean visible;
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
g_return_if_fail (store_has_next == TRUE);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
gtk_tree_model_get (GTK_TREE_MODEL (fixture->store),
|
|
Packit Service |
fb6fa5 |
&store_iter,
|
|
Packit Service |
fb6fa5 |
1, &visible,
|
|
Packit Service |
fb6fa5 |
-1);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
if (visible)
|
|
Packit Service |
fb6fa5 |
{
|
|
Packit Service |
fb6fa5 |
GtkTreePath *tmp;
|
|
Packit Service |
fb6fa5 |
gchar *filter_str, *store_str;
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
g_return_if_fail (filter_has_next == TRUE);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
/* Verify path */
|
|
Packit Service |
fb6fa5 |
tmp = gtk_tree_model_get_path (GTK_TREE_MODEL (fixture->filter),
|
|
Packit Service |
fb6fa5 |
&filter_iter);
|
|
Packit Service |
fb6fa5 |
g_return_if_fail (gtk_tree_path_compare (tmp, filter_parent_path) == 0);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
/* Verify model content */
|
|
Packit Service |
fb6fa5 |
gtk_tree_model_get (GTK_TREE_MODEL (fixture->store),
|
|
Packit Service |
fb6fa5 |
&store_iter,
|
|
Packit Service |
fb6fa5 |
0, &store_str,
|
|
Packit Service |
fb6fa5 |
-1);
|
|
Packit Service |
fb6fa5 |
gtk_tree_model_get (GTK_TREE_MODEL (fixture->filter),
|
|
Packit Service |
fb6fa5 |
&filter_iter,
|
|
Packit Service |
fb6fa5 |
0, &filter_str,
|
|
Packit Service |
fb6fa5 |
-1);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
g_return_if_fail (g_strcmp0 (store_str, filter_str) == 0);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
g_free (store_str);
|
|
Packit Service |
fb6fa5 |
g_free (filter_str);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
if (gtk_tree_model_iter_has_child (GTK_TREE_MODEL (fixture->filter),
|
|
Packit Service |
fb6fa5 |
&filter_iter))
|
|
Packit Service |
fb6fa5 |
{
|
|
Packit Service |
fb6fa5 |
g_return_if_fail (gtk_tree_model_iter_has_child (GTK_TREE_MODEL (fixture->store), &store_iter));
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
check_filter_model_recurse (fixture,
|
|
Packit Service |
fb6fa5 |
gtk_tree_path_copy (store_parent_path),
|
|
Packit Service |
fb6fa5 |
tmp);
|
|
Packit Service |
fb6fa5 |
}
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
gtk_tree_path_next (filter_parent_path);
|
|
Packit Service |
fb6fa5 |
filter_has_next = gtk_tree_model_iter_next (GTK_TREE_MODEL (fixture->filter), &filter_iter);
|
|
Packit Service |
fb6fa5 |
}
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
gtk_tree_path_next (store_parent_path);
|
|
Packit Service |
fb6fa5 |
store_has_next = gtk_tree_model_iter_next (GTK_TREE_MODEL (fixture->store), &store_iter);
|
|
Packit Service |
fb6fa5 |
}
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
/* Both models should have no more content! */
|
|
Packit Service |
fb6fa5 |
g_return_if_fail (store_has_next == FALSE);
|
|
Packit Service |
fb6fa5 |
g_return_if_fail (filter_has_next == FALSE);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
gtk_tree_path_free (store_parent_path);
|
|
Packit Service |
fb6fa5 |
gtk_tree_path_free (filter_parent_path);
|
|
Packit Service |
fb6fa5 |
}
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
static void
|
|
Packit Service |
fb6fa5 |
check_filter_model (FilterTest *fixture)
|
|
Packit Service |
fb6fa5 |
{
|
|
Packit Service |
fb6fa5 |
GtkTreePath *path;
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
if (fixture->monitor)
|
|
Packit Service |
fb6fa5 |
signal_monitor_assert_is_empty (fixture->monitor);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
path = gtk_tree_path_new ();
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
check_filter_model_recurse (fixture, path, gtk_tree_path_copy (path));
|
|
Packit Service |
fb6fa5 |
}
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
static void
|
|
Packit Service |
fb6fa5 |
check_filter_model_with_root (FilterTest *fixture,
|
|
Packit Service |
fb6fa5 |
GtkTreePath *path)
|
|
Packit Service |
fb6fa5 |
{
|
|
Packit Service |
fb6fa5 |
if (fixture->monitor)
|
|
Packit Service |
fb6fa5 |
signal_monitor_assert_is_empty (fixture->monitor);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
check_filter_model_recurse (fixture,
|
|
Packit Service |
fb6fa5 |
gtk_tree_path_copy (path),
|
|
Packit Service |
fb6fa5 |
gtk_tree_path_new ());
|
|
Packit Service |
fb6fa5 |
}
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
/* Helpers */
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
static void
|
|
Packit Service |
fb6fa5 |
check_level_length (GtkTreeModelFilter *filter,
|
|
Packit Service |
fb6fa5 |
const gchar *level,
|
|
Packit Service |
fb6fa5 |
const int length)
|
|
Packit Service |
fb6fa5 |
{
|
|
Packit Service |
fb6fa5 |
if (!level)
|
|
Packit Service |
fb6fa5 |
{
|
|
Packit Service |
fb6fa5 |
int l = gtk_tree_model_iter_n_children (GTK_TREE_MODEL (filter), NULL);
|
|
Packit Service |
fb6fa5 |
g_return_if_fail (l == length);
|
|
Packit Service |
fb6fa5 |
}
|
|
Packit Service |
fb6fa5 |
else
|
|
Packit Service |
fb6fa5 |
{
|
|
Packit Service |
fb6fa5 |
int l;
|
|
Packit Service |
fb6fa5 |
gboolean retrieved_iter = FALSE;
|
|
Packit Service |
fb6fa5 |
GtkTreeIter iter;
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
retrieved_iter = gtk_tree_model_get_iter_from_string (GTK_TREE_MODEL (filter),
|
|
Packit Service |
fb6fa5 |
&iter, level);
|
|
Packit Service |
fb6fa5 |
g_return_if_fail (retrieved_iter);
|
|
Packit Service |
fb6fa5 |
l = gtk_tree_model_iter_n_children (GTK_TREE_MODEL (filter), &iter);
|
|
Packit Service |
fb6fa5 |
g_return_if_fail (l == length);
|
|
Packit Service |
fb6fa5 |
}
|
|
Packit Service |
fb6fa5 |
}
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
static void
|
|
Packit Service |
fb6fa5 |
set_path_visibility (FilterTest *fixture,
|
|
Packit Service |
fb6fa5 |
const gchar *path,
|
|
Packit Service |
fb6fa5 |
gboolean visible)
|
|
Packit Service |
fb6fa5 |
{
|
|
Packit Service |
fb6fa5 |
GtkTreeIter store_iter;
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
gtk_tree_model_get_iter_from_string (GTK_TREE_MODEL (fixture->store),
|
|
Packit Service |
fb6fa5 |
&store_iter, path);
|
|
Packit Service |
fb6fa5 |
gtk_tree_store_set (fixture->store, &store_iter,
|
|
Packit Service |
fb6fa5 |
1, visible,
|
|
Packit Service |
fb6fa5 |
-1);
|
|
Packit Service |
fb6fa5 |
}
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
#if 0
|
|
Packit Service |
fb6fa5 |
static void
|
|
Packit Service |
fb6fa5 |
insert_path_with_visibility (FilterTest *fixture,
|
|
Packit Service |
fb6fa5 |
const gchar *path_string,
|
|
Packit Service |
fb6fa5 |
gboolean visible)
|
|
Packit Service |
fb6fa5 |
{
|
|
Packit Service |
fb6fa5 |
int position;
|
|
Packit Service |
fb6fa5 |
GtkTreePath *path;
|
|
Packit Service |
fb6fa5 |
GtkTreeIter parent, iter;
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
path = gtk_tree_path_new_from_string (path_string);
|
|
Packit Service |
fb6fa5 |
position = gtk_tree_path_get_indices (path)[gtk_tree_path_get_depth (path)];
|
|
Packit Service |
fb6fa5 |
gtk_tree_path_up (path);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
if (gtk_tree_model_get_iter (GTK_TREE_MODEL (fixture->store), &parent, path))
|
|
Packit Service |
fb6fa5 |
{
|
|
Packit Service |
fb6fa5 |
gtk_tree_store_insert (fixture->store, &iter, &parent, position);
|
|
Packit Service |
fb6fa5 |
create_tree_store_set_values (fixture->store, &iter, visible);
|
|
Packit Service |
fb6fa5 |
}
|
|
Packit Service |
fb6fa5 |
gtk_tree_path_free (path);
|
|
Packit Service |
fb6fa5 |
}
|
|
Packit Service |
fb6fa5 |
#endif
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
/*
|
|
Packit Service |
fb6fa5 |
* The actual tests.
|
|
Packit Service |
fb6fa5 |
*/
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
static void
|
|
Packit Service |
fb6fa5 |
verify_test_suite (FilterTest *fixture,
|
|
Packit Service |
fb6fa5 |
gconstpointer user_data)
|
|
Packit Service |
fb6fa5 |
{
|
|
Packit Service |
fb6fa5 |
check_filter_model (fixture);
|
|
Packit Service |
fb6fa5 |
}
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
static void
|
|
Packit Service |
fb6fa5 |
verify_test_suite_vroot (FilterTest *fixture,
|
|
Packit Service |
fb6fa5 |
gconstpointer user_data)
|
|
Packit Service |
fb6fa5 |
{
|
|
Packit Service |
fb6fa5 |
check_filter_model_with_root (fixture, (GtkTreePath *)user_data);
|
|
Packit Service |
fb6fa5 |
}
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
static void
|
|
Packit Service |
fb6fa5 |
filled_hide_root_level (FilterTest *fixture,
|
|
Packit Service |
fb6fa5 |
gconstpointer user_data)
|
|
Packit Service |
fb6fa5 |
{
|
|
Packit Service |
fb6fa5 |
signal_monitor_append_signal (fixture->monitor, ROW_DELETED, "2");
|
|
Packit Service |
fb6fa5 |
set_path_visibility (fixture, "2", FALSE);
|
|
Packit Service |
fb6fa5 |
check_filter_model (fixture);
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture->filter, NULL, LEVEL_LENGTH - 1);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
signal_monitor_append_signal (fixture->monitor, ROW_DELETED, "0");
|
|
Packit Service |
fb6fa5 |
set_path_visibility (fixture, "0", FALSE);
|
|
Packit Service |
fb6fa5 |
check_filter_model (fixture);
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture->filter, NULL, LEVEL_LENGTH - 2);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
signal_monitor_append_signal (fixture->monitor, ROW_DELETED, "2");
|
|
Packit Service |
fb6fa5 |
set_path_visibility (fixture, "4", FALSE);
|
|
Packit Service |
fb6fa5 |
check_filter_model (fixture);
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture->filter, NULL, LEVEL_LENGTH - 3);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
/* Hide remaining */
|
|
Packit Service |
fb6fa5 |
signal_monitor_append_signal (fixture->monitor, ROW_DELETED, "0");
|
|
Packit Service |
fb6fa5 |
signal_monitor_append_signal (fixture->monitor, ROW_DELETED, "0");
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
set_path_visibility (fixture, "1", FALSE);
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture->filter, NULL, LEVEL_LENGTH - 4);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
set_path_visibility (fixture, "3", FALSE);
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture->filter, NULL, LEVEL_LENGTH - 5);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
check_filter_model (fixture);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
/* Show some */
|
|
Packit Service |
fb6fa5 |
signal_monitor_append_signal (fixture->monitor, ROW_INSERTED, "0");
|
|
Packit Service |
fb6fa5 |
signal_monitor_append_signal (fixture->monitor, ROW_HAS_CHILD_TOGGLED, "0");
|
|
Packit Service |
fb6fa5 |
signal_monitor_append_signal (fixture->monitor, ROW_INSERTED, "1");
|
|
Packit Service |
fb6fa5 |
signal_monitor_append_signal (fixture->monitor, ROW_HAS_CHILD_TOGGLED, "1");
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
set_path_visibility (fixture, "1", TRUE);
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture->filter, NULL, LEVEL_LENGTH - 4);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
set_path_visibility (fixture, "3", TRUE);
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture->filter, NULL, LEVEL_LENGTH - 3);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
check_filter_model (fixture);
|
|
Packit Service |
fb6fa5 |
}
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
static void
|
|
Packit Service |
fb6fa5 |
filled_hide_child_levels (FilterTest *fixture,
|
|
Packit Service |
fb6fa5 |
gconstpointer user_data)
|
|
Packit Service |
fb6fa5 |
{
|
|
Packit Service |
fb6fa5 |
signal_monitor_append_signal (fixture->monitor, ROW_DELETED, "0:2");
|
|
Packit Service |
fb6fa5 |
set_path_visibility (fixture, "0:2", FALSE);
|
|
Packit Service |
fb6fa5 |
check_filter_model (fixture);
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture->filter, NULL, LEVEL_LENGTH);
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture->filter, "0", LEVEL_LENGTH - 1);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
signal_monitor_append_signal (fixture->monitor, ROW_DELETED, "0:3");
|
|
Packit Service |
fb6fa5 |
set_path_visibility (fixture, "0:4", FALSE);
|
|
Packit Service |
fb6fa5 |
check_filter_model (fixture);
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture->filter, NULL, LEVEL_LENGTH);
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture->filter, "0", LEVEL_LENGTH - 2);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
set_path_visibility (fixture, "0:4:3", FALSE);
|
|
Packit Service |
fb6fa5 |
check_filter_model (fixture);
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture->filter, NULL, LEVEL_LENGTH);
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture->filter, "0", LEVEL_LENGTH - 2);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
set_path_visibility (fixture, "0:4:0", FALSE);
|
|
Packit Service |
fb6fa5 |
set_path_visibility (fixture, "0:4:1", FALSE);
|
|
Packit Service |
fb6fa5 |
set_path_visibility (fixture, "0:4:2", FALSE);
|
|
Packit Service |
fb6fa5 |
set_path_visibility (fixture, "0:4:4", FALSE);
|
|
Packit Service |
fb6fa5 |
check_filter_model (fixture);
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture->filter, NULL, LEVEL_LENGTH);
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture->filter, "0", LEVEL_LENGTH - 2);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
/* Since "0:2" is hidden, "0:4" must be "0:3" in the filter model */
|
|
Packit Service |
fb6fa5 |
signal_monitor_append_signal (fixture->monitor, ROW_INSERTED, "0:3");
|
|
Packit Service |
fb6fa5 |
/* FIXME: Actually, the filter model should not be emitted the
|
|
Packit Service |
fb6fa5 |
* row-has-child-toggled signal here. *However* an extraneous emission
|
|
Packit Service |
fb6fa5 |
* of this signal does not hurt and is allowed.
|
|
Packit Service |
fb6fa5 |
*/
|
|
Packit Service |
fb6fa5 |
signal_monitor_append_signal (fixture->monitor, ROW_HAS_CHILD_TOGGLED, "0:3");
|
|
Packit Service |
fb6fa5 |
set_path_visibility (fixture, "0:4", TRUE);
|
|
Packit Service |
fb6fa5 |
check_filter_model (fixture);
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture->filter, "0:3", 0);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
signal_monitor_append_signal (fixture->monitor, ROW_INSERTED, "0:2");
|
|
Packit Service |
fb6fa5 |
signal_monitor_append_signal (fixture->monitor, ROW_HAS_CHILD_TOGGLED, "0:2");
|
|
Packit Service |
fb6fa5 |
set_path_visibility (fixture, "0:2", TRUE);
|
|
Packit Service |
fb6fa5 |
check_filter_model (fixture);
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture->filter, "0:2", LEVEL_LENGTH);
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture->filter, "0:3", LEVEL_LENGTH);
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture->filter, "0:4", 0);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
signal_monitor_append_signal (fixture->monitor, ROW_INSERTED, "0:4:0");
|
|
Packit Service |
fb6fa5 |
/* Once 0:4:0 got inserted, 0:4 became a parent */
|
|
Packit Service |
fb6fa5 |
signal_monitor_append_signal (fixture->monitor, ROW_HAS_CHILD_TOGGLED, "0:4");
|
|
Packit Service |
fb6fa5 |
signal_monitor_append_signal (fixture->monitor, ROW_HAS_CHILD_TOGGLED, "0:4:0");
|
|
Packit Service |
fb6fa5 |
signal_monitor_append_signal (fixture->monitor, ROW_INSERTED, "0:4:1");
|
|
Packit Service |
fb6fa5 |
signal_monitor_append_signal (fixture->monitor, ROW_HAS_CHILD_TOGGLED, "0:4:1");
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
set_path_visibility (fixture, "0:4:2", TRUE);
|
|
Packit Service |
fb6fa5 |
set_path_visibility (fixture, "0:4:4", TRUE);
|
|
Packit Service |
fb6fa5 |
signal_monitor_assert_is_empty (fixture->monitor);
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture->filter, "0:4", 2);
|
|
Packit Service |
fb6fa5 |
}
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
static void
|
|
Packit Service |
fb6fa5 |
filled_vroot_hide_root_level (FilterTest *fixture,
|
|
Packit Service |
fb6fa5 |
gconstpointer user_data)
|
|
Packit Service |
fb6fa5 |
{
|
|
Packit Service |
fb6fa5 |
GtkTreePath *path = (GtkTreePath *)user_data;
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
/* These changes do not affect the filter's root level */
|
|
Packit Service |
fb6fa5 |
set_path_visibility (fixture, "0", FALSE);
|
|
Packit Service |
fb6fa5 |
check_filter_model_with_root (fixture, path);
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture->filter, NULL, LEVEL_LENGTH);
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture->filter, "0", LEVEL_LENGTH);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
set_path_visibility (fixture, "4", FALSE);
|
|
Packit Service |
fb6fa5 |
check_filter_model_with_root (fixture, path);
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture->filter, NULL, LEVEL_LENGTH);
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture->filter, "0", LEVEL_LENGTH);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
/* Even though we set the virtual root parent node to FALSE,
|
|
Packit Service |
fb6fa5 |
* the virtual root contents remain.
|
|
Packit Service |
fb6fa5 |
*/
|
|
Packit Service |
fb6fa5 |
set_path_visibility (fixture, "2", FALSE);
|
|
Packit Service |
fb6fa5 |
check_filter_model_with_root (fixture, path);
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture->filter, NULL, LEVEL_LENGTH);
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture->filter, "0", LEVEL_LENGTH);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
/* No change */
|
|
Packit Service |
fb6fa5 |
set_path_visibility (fixture, "1", FALSE);
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture->filter, NULL, LEVEL_LENGTH);
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture->filter, "0", LEVEL_LENGTH);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
set_path_visibility (fixture, "3", FALSE);
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture->filter, NULL, LEVEL_LENGTH);
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture->filter, "0", LEVEL_LENGTH);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
check_filter_model_with_root (fixture, path);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
/* Show some */
|
|
Packit Service |
fb6fa5 |
set_path_visibility (fixture, "2", TRUE);
|
|
Packit Service |
fb6fa5 |
check_filter_model_with_root (fixture, path);
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture->filter, NULL, LEVEL_LENGTH);
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture->filter, "0", LEVEL_LENGTH);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
set_path_visibility (fixture, "1", TRUE);
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture->filter, NULL, LEVEL_LENGTH);
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture->filter, "0", LEVEL_LENGTH);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
set_path_visibility (fixture, "3", TRUE);
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture->filter, NULL, LEVEL_LENGTH);
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture->filter, "0", LEVEL_LENGTH);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
check_filter_model_with_root (fixture, path);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
/* Now test changes in the virtual root level */
|
|
Packit Service |
fb6fa5 |
signal_monitor_append_signal (fixture->monitor, ROW_DELETED, "2");
|
|
Packit Service |
fb6fa5 |
set_path_visibility (fixture, "2:2", FALSE);
|
|
Packit Service |
fb6fa5 |
check_filter_model_with_root (fixture, path);
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture->filter, NULL, LEVEL_LENGTH - 1);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
signal_monitor_append_signal (fixture->monitor, ROW_DELETED, "3");
|
|
Packit Service |
fb6fa5 |
set_path_visibility (fixture, "2:4", FALSE);
|
|
Packit Service |
fb6fa5 |
check_filter_model_with_root (fixture, path);
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture->filter, NULL, LEVEL_LENGTH - 2);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
set_path_visibility (fixture, "1:4", FALSE);
|
|
Packit Service |
fb6fa5 |
check_filter_model_with_root (fixture, path);
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture->filter, NULL, LEVEL_LENGTH - 2);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
signal_monitor_append_signal (fixture->monitor, ROW_INSERTED, "3");
|
|
Packit Service |
fb6fa5 |
signal_monitor_append_signal (fixture->monitor, ROW_HAS_CHILD_TOGGLED, "3");
|
|
Packit Service |
fb6fa5 |
set_path_visibility (fixture, "2:4", TRUE);
|
|
Packit Service |
fb6fa5 |
check_filter_model_with_root (fixture, path);
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture->filter, NULL, LEVEL_LENGTH - 1);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
set_path_visibility (fixture, "2", FALSE);
|
|
Packit Service |
fb6fa5 |
check_filter_model_with_root (fixture, path);
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture->filter, NULL, LEVEL_LENGTH - 1);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
signal_monitor_append_signal (fixture->monitor, ROW_DELETED, "0");
|
|
Packit Service |
fb6fa5 |
signal_monitor_append_signal (fixture->monitor, ROW_DELETED, "0");
|
|
Packit Service |
fb6fa5 |
signal_monitor_append_signal (fixture->monitor, ROW_DELETED, "0");
|
|
Packit Service |
fb6fa5 |
signal_monitor_append_signal (fixture->monitor, ROW_DELETED, "0");
|
|
Packit Service |
fb6fa5 |
set_path_visibility (fixture, "2:0", FALSE);
|
|
Packit Service |
fb6fa5 |
set_path_visibility (fixture, "2:1", FALSE);
|
|
Packit Service |
fb6fa5 |
set_path_visibility (fixture, "2:2", FALSE);
|
|
Packit Service |
fb6fa5 |
set_path_visibility (fixture, "2:3", FALSE);
|
|
Packit Service |
fb6fa5 |
set_path_visibility (fixture, "2:4", FALSE);
|
|
Packit Service |
fb6fa5 |
check_filter_model_with_root (fixture, path);
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture->filter, NULL, 0);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
set_path_visibility (fixture, "2", TRUE);
|
|
Packit Service |
fb6fa5 |
check_filter_model_with_root (fixture, path);
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture->filter, NULL, 0);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
set_path_visibility (fixture, "1:4", FALSE);
|
|
Packit Service |
fb6fa5 |
check_filter_model_with_root (fixture, path);
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture->filter, NULL, 0);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
signal_monitor_append_signal (fixture->monitor, ROW_INSERTED, "0");
|
|
Packit Service |
fb6fa5 |
signal_monitor_append_signal (fixture->monitor, ROW_HAS_CHILD_TOGGLED, "0");
|
|
Packit Service |
fb6fa5 |
set_path_visibility (fixture, "2:4", TRUE);
|
|
Packit Service |
fb6fa5 |
check_filter_model_with_root (fixture, path);
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture->filter, NULL, LEVEL_LENGTH - 4);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
signal_monitor_append_signal (fixture->monitor, ROW_DELETED, "0");
|
|
Packit Service |
fb6fa5 |
set_path_visibility (fixture, "2:4", FALSE);
|
|
Packit Service |
fb6fa5 |
check_filter_model_with_root (fixture, path);
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture->filter, NULL, 0);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
set_path_visibility (fixture, "2", FALSE);
|
|
Packit Service |
fb6fa5 |
check_filter_model_with_root (fixture, path);
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture->filter, NULL, 0);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
signal_monitor_append_signal (fixture->monitor, ROW_INSERTED, "0");
|
|
Packit Service |
fb6fa5 |
signal_monitor_append_signal (fixture->monitor, ROW_HAS_CHILD_TOGGLED, "0");
|
|
Packit Service |
fb6fa5 |
signal_monitor_append_signal (fixture->monitor, ROW_INSERTED, "1");
|
|
Packit Service |
fb6fa5 |
signal_monitor_append_signal (fixture->monitor, ROW_HAS_CHILD_TOGGLED, "1");
|
|
Packit Service |
fb6fa5 |
signal_monitor_append_signal (fixture->monitor, ROW_INSERTED, "2");
|
|
Packit Service |
fb6fa5 |
signal_monitor_append_signal (fixture->monitor, ROW_HAS_CHILD_TOGGLED, "2");
|
|
Packit Service |
fb6fa5 |
set_path_visibility (fixture, "2:0", TRUE);
|
|
Packit Service |
fb6fa5 |
set_path_visibility (fixture, "2:1", TRUE);
|
|
Packit Service |
fb6fa5 |
set_path_visibility (fixture, "2:2", TRUE);
|
|
Packit Service |
fb6fa5 |
check_filter_model_with_root (fixture, path);
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture->filter, NULL, LEVEL_LENGTH - 2);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
set_path_visibility (fixture, "2", TRUE);
|
|
Packit Service |
fb6fa5 |
check_filter_model_with_root (fixture, path);
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture->filter, NULL, LEVEL_LENGTH - 2);
|
|
Packit Service |
fb6fa5 |
}
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
static void
|
|
Packit Service |
fb6fa5 |
filled_vroot_hide_child_levels (FilterTest *fixture,
|
|
Packit Service |
fb6fa5 |
gconstpointer user_data)
|
|
Packit Service |
fb6fa5 |
{
|
|
Packit Service |
fb6fa5 |
GtkTreePath *path = (GtkTreePath *)user_data;
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
signal_monitor_append_signal (fixture->monitor, ROW_DELETED, "0:2");
|
|
Packit Service |
fb6fa5 |
set_path_visibility (fixture, "2:0:2", FALSE);
|
|
Packit Service |
fb6fa5 |
check_filter_model_with_root (fixture, path);
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture->filter, NULL, LEVEL_LENGTH);
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture->filter, "0", LEVEL_LENGTH - 1);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
signal_monitor_append_signal (fixture->monitor, ROW_DELETED, "0:3");
|
|
Packit Service |
fb6fa5 |
set_path_visibility (fixture, "2:0:4", FALSE);
|
|
Packit Service |
fb6fa5 |
check_filter_model_with_root (fixture, path);
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture->filter, NULL, LEVEL_LENGTH);
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture->filter, "0", LEVEL_LENGTH - 2);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
set_path_visibility (fixture, "2:0:4:3", FALSE);
|
|
Packit Service |
fb6fa5 |
check_filter_model_with_root (fixture, path);
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture->filter, NULL, LEVEL_LENGTH);
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture->filter, "0", LEVEL_LENGTH - 2);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
set_path_visibility (fixture, "2:0:4:0", FALSE);
|
|
Packit Service |
fb6fa5 |
set_path_visibility (fixture, "2:0:4:1", FALSE);
|
|
Packit Service |
fb6fa5 |
set_path_visibility (fixture, "2:0:4:2", FALSE);
|
|
Packit Service |
fb6fa5 |
set_path_visibility (fixture, "2:0:4:4", FALSE);
|
|
Packit Service |
fb6fa5 |
check_filter_model_with_root (fixture, path);
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture->filter, NULL, LEVEL_LENGTH);
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture->filter, "0", LEVEL_LENGTH - 2);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
/* Since "0:2" is hidden, "0:4" must be "0:3" in the filter model */
|
|
Packit Service |
fb6fa5 |
signal_monitor_append_signal (fixture->monitor, ROW_INSERTED, "0:3");
|
|
Packit Service |
fb6fa5 |
/* FIXME: Actually, the filter model should not be emitted the
|
|
Packit Service |
fb6fa5 |
* row-has-child-toggled signal here. *However* an extraneous emission
|
|
Packit Service |
fb6fa5 |
* of this signal does not hurt and is allowed.
|
|
Packit Service |
fb6fa5 |
*/
|
|
Packit Service |
fb6fa5 |
signal_monitor_append_signal (fixture->monitor, ROW_HAS_CHILD_TOGGLED, "0:3");
|
|
Packit Service |
fb6fa5 |
set_path_visibility (fixture, "2:0:4", TRUE);
|
|
Packit Service |
fb6fa5 |
check_filter_model_with_root (fixture, path);
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture->filter, "0:3", 0);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
signal_monitor_append_signal (fixture->monitor, ROW_INSERTED, "0:2");
|
|
Packit Service |
fb6fa5 |
signal_monitor_append_signal (fixture->monitor, ROW_HAS_CHILD_TOGGLED, "0:2");
|
|
Packit Service |
fb6fa5 |
set_path_visibility (fixture, "2:0:2", TRUE);
|
|
Packit Service |
fb6fa5 |
check_filter_model_with_root (fixture, path);
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture->filter, "0:2", LEVEL_LENGTH);
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture->filter, "0:3", LEVEL_LENGTH);
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture->filter, "0:4", 0);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
/* FIXME: Inconsistency! For the non-vroot case we also receive two
|
|
Packit Service |
fb6fa5 |
* row-has-child-toggled signals here.
|
|
Packit Service |
fb6fa5 |
*/
|
|
Packit Service |
fb6fa5 |
signal_monitor_append_signal (fixture->monitor, ROW_INSERTED, "0:4:0");
|
|
Packit Service |
fb6fa5 |
/* Once 0:4:0 got inserted, 0:4 became a parent */
|
|
Packit Service |
fb6fa5 |
signal_monitor_append_signal (fixture->monitor, ROW_HAS_CHILD_TOGGLED, "0:4");
|
|
Packit Service |
fb6fa5 |
signal_monitor_append_signal (fixture->monitor, ROW_INSERTED, "0:4:1");
|
|
Packit Service |
fb6fa5 |
set_path_visibility (fixture, "2:0:4:2", TRUE);
|
|
Packit Service |
fb6fa5 |
set_path_visibility (fixture, "2:0:4:4", TRUE);
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture->filter, "0:4", 2);
|
|
Packit Service |
fb6fa5 |
}
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
static void
|
|
Packit Service |
fb6fa5 |
empty_show_nodes (FilterTest *fixture,
|
|
Packit Service |
fb6fa5 |
gconstpointer user_data)
|
|
Packit Service |
fb6fa5 |
{
|
|
Packit Service |
fb6fa5 |
check_filter_model (fixture);
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture->filter, NULL, 0);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
signal_monitor_append_signal (fixture->monitor, ROW_INSERTED, "0");
|
|
Packit Service |
fb6fa5 |
signal_monitor_append_signal (fixture->monitor, ROW_HAS_CHILD_TOGGLED, "0");
|
|
Packit Service |
fb6fa5 |
set_path_visibility (fixture, "3", TRUE);
|
|
Packit Service |
fb6fa5 |
check_filter_model (fixture);
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture->filter, NULL, 1);
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture->filter, "0", 0);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
set_path_visibility (fixture, "3:2:2", TRUE);
|
|
Packit Service |
fb6fa5 |
check_filter_model (fixture);
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture->filter, NULL, 1);
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture->filter, "0", 0);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
signal_monitor_append_signal (fixture->monitor, ROW_INSERTED, "0:0");
|
|
Packit Service |
fb6fa5 |
signal_monitor_append_signal (fixture->monitor, ROW_HAS_CHILD_TOGGLED, "0");
|
|
Packit Service |
fb6fa5 |
signal_monitor_append_signal (fixture->monitor, ROW_HAS_CHILD_TOGGLED, "0:0");
|
|
Packit Service |
fb6fa5 |
set_path_visibility (fixture, "3:2", TRUE);
|
|
Packit Service |
fb6fa5 |
check_filter_model (fixture);
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture->filter, NULL, 1);
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture->filter, "0", 1);
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture->filter, "0:0", 1);
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture->filter, "0:0:0", 0);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
signal_monitor_append_signal (fixture->monitor, ROW_DELETED, "0");
|
|
Packit Service |
fb6fa5 |
set_path_visibility (fixture, "3", FALSE);
|
|
Packit Service |
fb6fa5 |
check_filter_model (fixture);
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture->filter, NULL, 0);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
signal_monitor_append_signal (fixture->monitor, ROW_INSERTED, "0");
|
|
Packit Service |
fb6fa5 |
signal_monitor_append_signal (fixture->monitor, ROW_HAS_CHILD_TOGGLED, "0");
|
|
Packit Service |
fb6fa5 |
set_path_visibility (fixture, "3:2:1", TRUE);
|
|
Packit Service |
fb6fa5 |
set_path_visibility (fixture, "3", TRUE);
|
|
Packit Service |
fb6fa5 |
check_filter_model (fixture);
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture->filter, NULL, 1);
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture->filter, "0", 1);
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture->filter, "0:0", 2);
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture->filter, "0:0:0", 0);
|
|
Packit Service |
fb6fa5 |
}
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
static void
|
|
Packit Service |
fb6fa5 |
empty_show_multiple_nodes (FilterTest *fixture,
|
|
Packit Service |
fb6fa5 |
gconstpointer user_data)
|
|
Packit Service |
fb6fa5 |
{
|
|
Packit Service |
fb6fa5 |
GtkTreeIter iter;
|
|
Packit Service |
fb6fa5 |
GtkTreePath *changed_path;
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
check_filter_model (fixture);
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture->filter, NULL, 0);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
signal_monitor_append_signal (fixture->monitor, ROW_INSERTED, "0");
|
|
Packit Service |
fb6fa5 |
signal_monitor_append_signal (fixture->monitor, ROW_HAS_CHILD_TOGGLED, "0");
|
|
Packit Service |
fb6fa5 |
signal_monitor_append_signal (fixture->monitor, ROW_INSERTED, "1");
|
|
Packit Service |
fb6fa5 |
signal_monitor_append_signal (fixture->monitor, ROW_HAS_CHILD_TOGGLED, "1");
|
|
Packit Service |
fb6fa5 |
signal_monitor_append_signal (fixture->monitor, ROW_CHANGED, "1");
|
|
Packit Service |
fb6fa5 |
signal_monitor_append_signal (fixture->monitor, ROW_HAS_CHILD_TOGGLED, "1");
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
/* We simulate a change in visible func condition with this. The
|
|
Packit Service |
fb6fa5 |
* visibility state of multiple nodes changes at once, we emit row-changed
|
|
Packit Service |
fb6fa5 |
* for these nodes (and others) after that.
|
|
Packit Service |
fb6fa5 |
*/
|
|
Packit Service |
fb6fa5 |
filter_test_block_signals (fixture);
|
|
Packit Service |
fb6fa5 |
set_path_visibility (fixture, "3", TRUE);
|
|
Packit Service |
fb6fa5 |
set_path_visibility (fixture, "4", TRUE);
|
|
Packit Service |
fb6fa5 |
filter_test_unblock_signals (fixture);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
changed_path = gtk_tree_path_new ();
|
|
Packit Service |
fb6fa5 |
gtk_tree_path_append_index (changed_path, 2);
|
|
Packit Service |
fb6fa5 |
gtk_tree_model_get_iter (GTK_TREE_MODEL (fixture->store),
|
|
Packit Service |
fb6fa5 |
&iter, changed_path);
|
|
Packit Service |
fb6fa5 |
gtk_tree_model_row_changed (GTK_TREE_MODEL (fixture->store),
|
|
Packit Service |
fb6fa5 |
changed_path, &iter);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
gtk_tree_path_next (changed_path);
|
|
Packit Service |
fb6fa5 |
gtk_tree_model_iter_next (GTK_TREE_MODEL (fixture->store), &iter);
|
|
Packit Service |
fb6fa5 |
gtk_tree_model_row_changed (GTK_TREE_MODEL (fixture->store),
|
|
Packit Service |
fb6fa5 |
changed_path, &iter);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
gtk_tree_path_next (changed_path);
|
|
Packit Service |
fb6fa5 |
gtk_tree_model_iter_next (GTK_TREE_MODEL (fixture->store), &iter);
|
|
Packit Service |
fb6fa5 |
gtk_tree_model_row_changed (GTK_TREE_MODEL (fixture->store),
|
|
Packit Service |
fb6fa5 |
changed_path, &iter);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
gtk_tree_path_free (changed_path);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
check_filter_model (fixture);
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture->filter, NULL, 2);
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture->filter, "0", 0);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
set_path_visibility (fixture, "3:2:2", TRUE);
|
|
Packit Service |
fb6fa5 |
check_filter_model (fixture);
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture->filter, NULL, 2);
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture->filter, "0", 0);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
signal_monitor_append_signal (fixture->monitor, ROW_INSERTED, "0:0");
|
|
Packit Service |
fb6fa5 |
signal_monitor_append_signal (fixture->monitor, ROW_HAS_CHILD_TOGGLED, "0");
|
|
Packit Service |
fb6fa5 |
signal_monitor_append_signal (fixture->monitor, ROW_HAS_CHILD_TOGGLED, "0:0");
|
|
Packit Service |
fb6fa5 |
set_path_visibility (fixture, "3:2", TRUE);
|
|
Packit Service |
fb6fa5 |
check_filter_model (fixture);
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture->filter, NULL, 2);
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture->filter, "0", 1);
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture->filter, "0:0", 1);
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture->filter, "0:0:0", 0);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
signal_monitor_append_signal (fixture->monitor, ROW_DELETED, "0");
|
|
Packit Service |
fb6fa5 |
set_path_visibility (fixture, "3", FALSE);
|
|
Packit Service |
fb6fa5 |
check_filter_model (fixture);
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture->filter, NULL, 1);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
signal_monitor_append_signal (fixture->monitor, ROW_INSERTED, "0");
|
|
Packit Service |
fb6fa5 |
signal_monitor_append_signal (fixture->monitor, ROW_HAS_CHILD_TOGGLED, "0");
|
|
Packit Service |
fb6fa5 |
set_path_visibility (fixture, "3:2:1", TRUE);
|
|
Packit Service |
fb6fa5 |
set_path_visibility (fixture, "3", TRUE);
|
|
Packit Service |
fb6fa5 |
check_filter_model (fixture);
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture->filter, NULL, 2);
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture->filter, "0", 1);
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture->filter, "0:0", 2);
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture->filter, "0:0:0", 0);
|
|
Packit Service |
fb6fa5 |
}
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
static void
|
|
Packit Service |
fb6fa5 |
empty_vroot_show_nodes (FilterTest *fixture,
|
|
Packit Service |
fb6fa5 |
gconstpointer user_data)
|
|
Packit Service |
fb6fa5 |
{
|
|
Packit Service |
fb6fa5 |
GtkTreePath *path = (GtkTreePath *)user_data;
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
check_filter_model_with_root (fixture, path);
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture->filter, NULL, 0);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
set_path_visibility (fixture, "2", TRUE);
|
|
Packit Service |
fb6fa5 |
check_filter_model_with_root (fixture, path);
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture->filter, NULL, 0);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
set_path_visibility (fixture, "2:2:2", TRUE);
|
|
Packit Service |
fb6fa5 |
check_filter_model_with_root (fixture, path);
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture->filter, NULL, 0);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
signal_monitor_append_signal (fixture->monitor, ROW_INSERTED, "0");
|
|
Packit Service |
fb6fa5 |
signal_monitor_append_signal (fixture->monitor, ROW_HAS_CHILD_TOGGLED, "0");
|
|
Packit Service |
fb6fa5 |
set_path_visibility (fixture, "2:2", TRUE);
|
|
Packit Service |
fb6fa5 |
check_filter_model_with_root (fixture, path);
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture->filter, NULL, 1);
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture->filter, "0", 1);
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture->filter, "0:0", 0);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
set_path_visibility (fixture, "3", TRUE);
|
|
Packit Service |
fb6fa5 |
check_filter_model_with_root (fixture, path);
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture->filter, NULL, 1);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
signal_monitor_append_signal (fixture->monitor, ROW_DELETED, "0");
|
|
Packit Service |
fb6fa5 |
set_path_visibility (fixture, "2:2", FALSE);
|
|
Packit Service |
fb6fa5 |
check_filter_model_with_root (fixture, path);
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture->filter, NULL, 0);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
signal_monitor_append_signal (fixture->monitor, ROW_INSERTED, "0");
|
|
Packit Service |
fb6fa5 |
signal_monitor_append_signal (fixture->monitor, ROW_HAS_CHILD_TOGGLED, "0");
|
|
Packit Service |
fb6fa5 |
set_path_visibility (fixture, "2:2:1", TRUE);
|
|
Packit Service |
fb6fa5 |
set_path_visibility (fixture, "2:2", TRUE);
|
|
Packit Service |
fb6fa5 |
check_filter_model_with_root (fixture, path);
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture->filter, NULL, 1);
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture->filter, "0", 2);
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture->filter, "0:1", 0);
|
|
Packit Service |
fb6fa5 |
}
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
static void
|
|
Packit Service |
fb6fa5 |
empty_vroot_show_multiple_nodes (FilterTest *fixture,
|
|
Packit Service |
fb6fa5 |
gconstpointer user_data)
|
|
Packit Service |
fb6fa5 |
{
|
|
Packit Service |
fb6fa5 |
GtkTreeIter iter;
|
|
Packit Service |
fb6fa5 |
GtkTreePath *changed_path;
|
|
Packit Service |
fb6fa5 |
GtkTreePath *path = (GtkTreePath *)user_data;
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
check_filter_model_with_root (fixture, path);
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture->filter, NULL, 0);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
/* We simulate a change in visible func condition with this. The
|
|
Packit Service |
fb6fa5 |
* visibility state of multiple nodes changes at once, we emit row-changed
|
|
Packit Service |
fb6fa5 |
* for these nodes (and others) after that.
|
|
Packit Service |
fb6fa5 |
*/
|
|
Packit Service |
fb6fa5 |
filter_test_block_signals (fixture);
|
|
Packit Service |
fb6fa5 |
set_path_visibility (fixture, "2", TRUE);
|
|
Packit Service |
fb6fa5 |
set_path_visibility (fixture, "3", TRUE);
|
|
Packit Service |
fb6fa5 |
filter_test_unblock_signals (fixture);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
changed_path = gtk_tree_path_new ();
|
|
Packit Service |
fb6fa5 |
gtk_tree_path_append_index (changed_path, 1);
|
|
Packit Service |
fb6fa5 |
gtk_tree_model_get_iter (GTK_TREE_MODEL (fixture->store),
|
|
Packit Service |
fb6fa5 |
&iter, changed_path);
|
|
Packit Service |
fb6fa5 |
gtk_tree_model_row_changed (GTK_TREE_MODEL (fixture->store),
|
|
Packit Service |
fb6fa5 |
changed_path, &iter);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
gtk_tree_path_next (changed_path);
|
|
Packit Service |
fb6fa5 |
gtk_tree_model_iter_next (GTK_TREE_MODEL (fixture->store), &iter);
|
|
Packit Service |
fb6fa5 |
gtk_tree_model_row_changed (GTK_TREE_MODEL (fixture->store),
|
|
Packit Service |
fb6fa5 |
changed_path, &iter);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
gtk_tree_path_next (changed_path);
|
|
Packit Service |
fb6fa5 |
gtk_tree_model_iter_next (GTK_TREE_MODEL (fixture->store), &iter);
|
|
Packit Service |
fb6fa5 |
gtk_tree_model_row_changed (GTK_TREE_MODEL (fixture->store),
|
|
Packit Service |
fb6fa5 |
changed_path, &iter);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
gtk_tree_path_next (changed_path);
|
|
Packit Service |
fb6fa5 |
gtk_tree_model_iter_next (GTK_TREE_MODEL (fixture->store), &iter);
|
|
Packit Service |
fb6fa5 |
gtk_tree_model_row_changed (GTK_TREE_MODEL (fixture->store),
|
|
Packit Service |
fb6fa5 |
changed_path, &iter);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
gtk_tree_path_free (changed_path);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
check_filter_model_with_root (fixture, path);
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture->filter, NULL, 0);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
set_path_visibility (fixture, "2:2:2", TRUE);
|
|
Packit Service |
fb6fa5 |
check_filter_model_with_root (fixture, path);
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture->filter, NULL, 0);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
signal_monitor_append_signal (fixture->monitor, ROW_INSERTED, "0");
|
|
Packit Service |
fb6fa5 |
signal_monitor_append_signal (fixture->monitor, ROW_HAS_CHILD_TOGGLED, "0");
|
|
Packit Service |
fb6fa5 |
signal_monitor_append_signal (fixture->monitor, ROW_INSERTED, "1");
|
|
Packit Service |
fb6fa5 |
signal_monitor_append_signal (fixture->monitor, ROW_HAS_CHILD_TOGGLED, "1");
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
/* Again, we simulate a call to refilter */
|
|
Packit Service |
fb6fa5 |
filter_test_block_signals (fixture);
|
|
Packit Service |
fb6fa5 |
set_path_visibility (fixture, "2:2", TRUE);
|
|
Packit Service |
fb6fa5 |
set_path_visibility (fixture, "2:3", TRUE);
|
|
Packit Service |
fb6fa5 |
filter_test_unblock_signals (fixture);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
changed_path = gtk_tree_path_new ();
|
|
Packit Service |
fb6fa5 |
gtk_tree_path_append_index (changed_path, 2);
|
|
Packit Service |
fb6fa5 |
gtk_tree_path_append_index (changed_path, 1);
|
|
Packit Service |
fb6fa5 |
gtk_tree_model_get_iter (GTK_TREE_MODEL (fixture->store),
|
|
Packit Service |
fb6fa5 |
&iter, changed_path);
|
|
Packit Service |
fb6fa5 |
gtk_tree_model_row_changed (GTK_TREE_MODEL (fixture->store),
|
|
Packit Service |
fb6fa5 |
changed_path, &iter);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
gtk_tree_path_next (changed_path);
|
|
Packit Service |
fb6fa5 |
gtk_tree_model_iter_next (GTK_TREE_MODEL (fixture->store), &iter);
|
|
Packit Service |
fb6fa5 |
gtk_tree_model_row_changed (GTK_TREE_MODEL (fixture->store),
|
|
Packit Service |
fb6fa5 |
changed_path, &iter);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
gtk_tree_path_next (changed_path);
|
|
Packit Service |
fb6fa5 |
gtk_tree_model_iter_next (GTK_TREE_MODEL (fixture->store), &iter);
|
|
Packit Service |
fb6fa5 |
gtk_tree_model_row_changed (GTK_TREE_MODEL (fixture->store),
|
|
Packit Service |
fb6fa5 |
changed_path, &iter);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
gtk_tree_path_next (changed_path);
|
|
Packit Service |
fb6fa5 |
gtk_tree_model_iter_next (GTK_TREE_MODEL (fixture->store), &iter);
|
|
Packit Service |
fb6fa5 |
gtk_tree_model_row_changed (GTK_TREE_MODEL (fixture->store),
|
|
Packit Service |
fb6fa5 |
changed_path, &iter);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
gtk_tree_path_free (changed_path);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
check_filter_model_with_root (fixture, path);
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture->filter, NULL, 2);
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture->filter, "0", 1);
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture->filter, "0:0", 0);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
set_path_visibility (fixture, "3", TRUE);
|
|
Packit Service |
fb6fa5 |
check_filter_model_with_root (fixture, path);
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture->filter, NULL, 2);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
signal_monitor_append_signal (fixture->monitor, ROW_DELETED, "0");
|
|
Packit Service |
fb6fa5 |
set_path_visibility (fixture, "2:2", FALSE);
|
|
Packit Service |
fb6fa5 |
check_filter_model_with_root (fixture, path);
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture->filter, NULL, 1);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
signal_monitor_append_signal (fixture->monitor, ROW_INSERTED, "0");
|
|
Packit Service |
fb6fa5 |
signal_monitor_append_signal (fixture->monitor, ROW_HAS_CHILD_TOGGLED, "0");
|
|
Packit Service |
fb6fa5 |
set_path_visibility (fixture, "2:2:1", TRUE);
|
|
Packit Service |
fb6fa5 |
set_path_visibility (fixture, "2:2", TRUE);
|
|
Packit Service |
fb6fa5 |
check_filter_model_with_root (fixture, path);
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture->filter, NULL, 2);
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture->filter, "0", 2);
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture->filter, "0:1", 0);
|
|
Packit Service |
fb6fa5 |
}
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
static void
|
|
Packit Service |
fb6fa5 |
unfiltered_hide_single (FilterTest *fixture,
|
|
Packit Service |
fb6fa5 |
gconstpointer user_data)
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
{
|
|
Packit Service |
fb6fa5 |
signal_monitor_append_signal (fixture->monitor, ROW_CHANGED, "2");
|
|
Packit Service |
fb6fa5 |
signal_monitor_append_signal (fixture->monitor, ROW_HAS_CHILD_TOGGLED, "2");
|
|
Packit Service |
fb6fa5 |
set_path_visibility (fixture, "2", FALSE);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
signal_monitor_assert_is_empty (fixture->monitor);
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture->filter, NULL, LEVEL_LENGTH);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
/* The view only shows the root level, so the filter model only has
|
|
Packit Service |
fb6fa5 |
* the first two levels cached.
|
|
Packit Service |
fb6fa5 |
*/
|
|
Packit Service |
fb6fa5 |
filter_test_append_refilter_signals (fixture, 2);
|
|
Packit Service |
fb6fa5 |
filter_test_enable_filter (fixture);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
check_filter_model (fixture);
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture->filter, NULL, LEVEL_LENGTH - 1);
|
|
Packit Service |
fb6fa5 |
}
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
static void
|
|
Packit Service |
fb6fa5 |
unfiltered_hide_single_child (FilterTest *fixture,
|
|
Packit Service |
fb6fa5 |
gconstpointer user_data)
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
{
|
|
Packit Service |
fb6fa5 |
signal_monitor_append_signal (fixture->monitor, ROW_CHANGED, "2:2");
|
|
Packit Service |
fb6fa5 |
signal_monitor_append_signal (fixture->monitor, ROW_HAS_CHILD_TOGGLED, "2:2");
|
|
Packit Service |
fb6fa5 |
set_path_visibility (fixture, "2:2", FALSE);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
signal_monitor_assert_is_empty (fixture->monitor);
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture->filter, NULL, LEVEL_LENGTH);
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture->filter, "2", LEVEL_LENGTH);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
/* The view only shows the root level, so the filter model only has
|
|
Packit Service |
fb6fa5 |
* the first two levels cached.
|
|
Packit Service |
fb6fa5 |
*/
|
|
Packit Service |
fb6fa5 |
filter_test_append_refilter_signals (fixture, 2);
|
|
Packit Service |
fb6fa5 |
filter_test_enable_filter (fixture);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
check_filter_model (fixture);
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture->filter, NULL, LEVEL_LENGTH);
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture->filter, "2", LEVEL_LENGTH - 1);
|
|
Packit Service |
fb6fa5 |
}
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
static void
|
|
Packit Service |
fb6fa5 |
unfiltered_hide_single_multi_level (FilterTest *fixture,
|
|
Packit Service |
fb6fa5 |
gconstpointer user_data)
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
{
|
|
Packit Service |
fb6fa5 |
/* This row is not shown, so its signal is not propagated */
|
|
Packit Service |
fb6fa5 |
set_path_visibility (fixture, "2:2:2", FALSE);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
signal_monitor_append_signal (fixture->monitor, ROW_CHANGED, "2:2");
|
|
Packit Service |
fb6fa5 |
signal_monitor_append_signal (fixture->monitor, ROW_HAS_CHILD_TOGGLED, "2:2");
|
|
Packit Service |
fb6fa5 |
set_path_visibility (fixture, "2:2", FALSE);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
signal_monitor_assert_is_empty (fixture->monitor);
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture->filter, NULL, LEVEL_LENGTH);
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture->filter, "2", LEVEL_LENGTH);
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture->filter, "2:2", LEVEL_LENGTH);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
/* The view only shows the root level, so the filter model only has
|
|
Packit Service |
fb6fa5 |
* the first two levels cached.
|
|
Packit Service |
fb6fa5 |
*/
|
|
Packit Service |
fb6fa5 |
filter_test_append_refilter_signals (fixture, 2);
|
|
Packit Service |
fb6fa5 |
filter_test_enable_filter (fixture);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
check_filter_model (fixture);
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture->filter, NULL, LEVEL_LENGTH);
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture->filter, "2", LEVEL_LENGTH - 1);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
signal_monitor_append_signal (fixture->monitor, ROW_INSERTED, "2:2");
|
|
Packit Service |
fb6fa5 |
signal_monitor_append_signal (fixture->monitor, ROW_HAS_CHILD_TOGGLED, "2:2");
|
|
Packit Service |
fb6fa5 |
set_path_visibility (fixture, "2:2", TRUE);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
check_filter_model (fixture);
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture->filter, NULL, LEVEL_LENGTH);
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture->filter, "2", LEVEL_LENGTH);
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture->filter, "2:2", LEVEL_LENGTH - 1);
|
|
Packit Service |
fb6fa5 |
}
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
static void
|
|
Packit Service |
fb6fa5 |
unfiltered_vroot_hide_single (FilterTest *fixture,
|
|
Packit Service |
fb6fa5 |
gconstpointer user_data)
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
{
|
|
Packit Service |
fb6fa5 |
GtkTreePath *path = (GtkTreePath *)user_data;
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
signal_monitor_append_signal (fixture->monitor, ROW_CHANGED, "2");
|
|
Packit Service |
fb6fa5 |
signal_monitor_append_signal (fixture->monitor, ROW_HAS_CHILD_TOGGLED, "2");
|
|
Packit Service |
fb6fa5 |
set_path_visibility (fixture, "2:2", FALSE);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
signal_monitor_assert_is_empty (fixture->monitor);
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture->filter, NULL, LEVEL_LENGTH);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
/* The view only shows the root level, so the filter model only has
|
|
Packit Service |
fb6fa5 |
* the first two levels cached. (We add an additional level to
|
|
Packit Service |
fb6fa5 |
* take the virtual root into account).
|
|
Packit Service |
fb6fa5 |
*/
|
|
Packit Service |
fb6fa5 |
filter_test_append_refilter_signals_with_vroot (fixture, 3, path);
|
|
Packit Service |
fb6fa5 |
filter_test_enable_filter (fixture);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
check_filter_model_with_root (fixture, path);
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture->filter, NULL, LEVEL_LENGTH - 1);
|
|
Packit Service |
fb6fa5 |
}
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
static void
|
|
Packit Service |
fb6fa5 |
unfiltered_vroot_hide_single_child (FilterTest *fixture,
|
|
Packit Service |
fb6fa5 |
gconstpointer user_data)
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
{
|
|
Packit Service |
fb6fa5 |
GtkTreePath *path = (GtkTreePath *)user_data;
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
signal_monitor_append_signal (fixture->monitor, ROW_CHANGED, "2:2");
|
|
Packit Service |
fb6fa5 |
signal_monitor_append_signal (fixture->monitor, ROW_HAS_CHILD_TOGGLED, "2:2");
|
|
Packit Service |
fb6fa5 |
set_path_visibility (fixture, "2:2:2", FALSE);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
signal_monitor_assert_is_empty (fixture->monitor);
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture->filter, NULL, LEVEL_LENGTH);
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture->filter, "2", LEVEL_LENGTH);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
/* The view only shows the root level, so the filter model only has
|
|
Packit Service |
fb6fa5 |
* the first two levels cached. (We add an additional level to take
|
|
Packit Service |
fb6fa5 |
* the virtual root into account).
|
|
Packit Service |
fb6fa5 |
*/
|
|
Packit Service |
fb6fa5 |
filter_test_append_refilter_signals_with_vroot (fixture, 3, path);
|
|
Packit Service |
fb6fa5 |
filter_test_enable_filter (fixture);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
check_filter_model_with_root (fixture, path);
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture->filter, NULL, LEVEL_LENGTH);
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture->filter, "2", LEVEL_LENGTH - 1);
|
|
Packit Service |
fb6fa5 |
}
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
static void
|
|
Packit Service |
fb6fa5 |
unfiltered_vroot_hide_single_multi_level (FilterTest *fixture,
|
|
Packit Service |
fb6fa5 |
gconstpointer user_data)
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
{
|
|
Packit Service |
fb6fa5 |
GtkTreePath *path = (GtkTreePath *)user_data;
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
/* This row is not shown, so its signal is not propagated */
|
|
Packit Service |
fb6fa5 |
set_path_visibility (fixture, "2:2:2:2", FALSE);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
signal_monitor_append_signal (fixture->monitor, ROW_CHANGED, "2:2");
|
|
Packit Service |
fb6fa5 |
signal_monitor_append_signal (fixture->monitor, ROW_HAS_CHILD_TOGGLED, "2:2");
|
|
Packit Service |
fb6fa5 |
set_path_visibility (fixture, "2:2:2", FALSE);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
signal_monitor_assert_is_empty (fixture->monitor);
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture->filter, NULL, LEVEL_LENGTH);
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture->filter, "2", LEVEL_LENGTH);
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture->filter, "2:2", LEVEL_LENGTH);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
/* The view only shows the root level, so the filter model only has
|
|
Packit Service |
fb6fa5 |
* the first two levels cached.
|
|
Packit Service |
fb6fa5 |
*/
|
|
Packit Service |
fb6fa5 |
filter_test_append_refilter_signals_with_vroot (fixture, 3, path);
|
|
Packit Service |
fb6fa5 |
filter_test_enable_filter (fixture);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
check_filter_model_with_root (fixture, path);
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture->filter, NULL, LEVEL_LENGTH);
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture->filter, "2", LEVEL_LENGTH - 1);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
signal_monitor_append_signal (fixture->monitor, ROW_INSERTED, "2:2");
|
|
Packit Service |
fb6fa5 |
signal_monitor_append_signal (fixture->monitor, ROW_HAS_CHILD_TOGGLED, "2:2");
|
|
Packit Service |
fb6fa5 |
set_path_visibility (fixture, "2:2:2", TRUE);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
check_filter_model_with_root (fixture, path);
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture->filter, NULL, LEVEL_LENGTH);
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture->filter, "2", LEVEL_LENGTH);
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture->filter, "2:2", LEVEL_LENGTH - 1);
|
|
Packit Service |
fb6fa5 |
}
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
static void
|
|
Packit Service |
fb6fa5 |
unfiltered_show_single (FilterTest *fixture,
|
|
Packit Service |
fb6fa5 |
gconstpointer user_data)
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
{
|
|
Packit Service |
fb6fa5 |
signal_monitor_append_signal (fixture->monitor, ROW_CHANGED, "2");
|
|
Packit Service |
fb6fa5 |
signal_monitor_append_signal (fixture->monitor, ROW_HAS_CHILD_TOGGLED, "2");
|
|
Packit Service |
fb6fa5 |
set_path_visibility (fixture, "2", TRUE);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
signal_monitor_assert_is_empty (fixture->monitor);
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture->filter, NULL, LEVEL_LENGTH);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
/* The view only shows the root level, so the filter model only has
|
|
Packit Service |
fb6fa5 |
* the first two levels cached.
|
|
Packit Service |
fb6fa5 |
*/
|
|
Packit Service |
fb6fa5 |
filter_test_append_refilter_signals (fixture, 2);
|
|
Packit Service |
fb6fa5 |
filter_test_enable_filter (fixture);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
check_filter_model (fixture);
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture->filter, NULL, 1);
|
|
Packit Service |
fb6fa5 |
}
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
static void
|
|
Packit Service |
fb6fa5 |
unfiltered_show_single_child (FilterTest *fixture,
|
|
Packit Service |
fb6fa5 |
gconstpointer user_data)
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
{
|
|
Packit Service |
fb6fa5 |
signal_monitor_append_signal (fixture->monitor, ROW_CHANGED, "2:2");
|
|
Packit Service |
fb6fa5 |
signal_monitor_append_signal (fixture->monitor, ROW_HAS_CHILD_TOGGLED, "2:2");
|
|
Packit Service |
fb6fa5 |
set_path_visibility (fixture, "2:2", TRUE);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
signal_monitor_assert_is_empty (fixture->monitor);
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture->filter, NULL, LEVEL_LENGTH);
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture->filter, "2", LEVEL_LENGTH);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
/* The view only shows the root level, so the filter model only has
|
|
Packit Service |
fb6fa5 |
* the first two levels cached.
|
|
Packit Service |
fb6fa5 |
*/
|
|
Packit Service |
fb6fa5 |
filter_test_append_refilter_signals (fixture, 3);
|
|
Packit Service |
fb6fa5 |
filter_test_enable_filter (fixture);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
check_filter_model (fixture);
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture->filter, NULL, 0);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
/* From here we are filtered, "2" in the real model is "0" in the filter
|
|
Packit Service |
fb6fa5 |
* model.
|
|
Packit Service |
fb6fa5 |
*/
|
|
Packit Service |
fb6fa5 |
signal_monitor_append_signal (fixture->monitor, ROW_INSERTED, "0");
|
|
Packit Service |
fb6fa5 |
signal_monitor_append_signal (fixture->monitor, ROW_HAS_CHILD_TOGGLED, "0");
|
|
Packit Service |
fb6fa5 |
set_path_visibility (fixture, "2", TRUE);
|
|
Packit Service |
fb6fa5 |
signal_monitor_assert_is_empty (fixture->monitor);
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture->filter, NULL, 1);
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture->filter, "0", 1);
|
|
Packit Service |
fb6fa5 |
}
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
static void
|
|
Packit Service |
fb6fa5 |
unfiltered_show_single_multi_level (FilterTest *fixture,
|
|
Packit Service |
fb6fa5 |
gconstpointer user_data)
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
{
|
|
Packit Service |
fb6fa5 |
/* The view is not showing this row (collapsed state), so it is not
|
|
Packit Service |
fb6fa5 |
* referenced. The signal should not go through.
|
|
Packit Service |
fb6fa5 |
*/
|
|
Packit Service |
fb6fa5 |
set_path_visibility (fixture, "2:2:2", TRUE);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
signal_monitor_append_signal (fixture->monitor, ROW_CHANGED, "2:2");
|
|
Packit Service |
fb6fa5 |
signal_monitor_append_signal (fixture->monitor, ROW_HAS_CHILD_TOGGLED, "2:2");
|
|
Packit Service |
fb6fa5 |
set_path_visibility (fixture, "2:2", TRUE);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
signal_monitor_assert_is_empty (fixture->monitor);
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture->filter, NULL, LEVEL_LENGTH);
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture->filter, "2", LEVEL_LENGTH);
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture->filter, "2:2", LEVEL_LENGTH);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
/* The view only shows the root level, so the filter model only has
|
|
Packit Service |
fb6fa5 |
* the first two levels cached.
|
|
Packit Service |
fb6fa5 |
*/
|
|
Packit Service |
fb6fa5 |
filter_test_append_refilter_signals (fixture, 3);
|
|
Packit Service |
fb6fa5 |
filter_test_enable_filter (fixture);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
check_filter_model (fixture);
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture->filter, NULL, 0);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
/* From here we are filtered, "2" in the real model is "0" in the filter
|
|
Packit Service |
fb6fa5 |
* model.
|
|
Packit Service |
fb6fa5 |
*/
|
|
Packit Service |
fb6fa5 |
signal_monitor_append_signal (fixture->monitor, ROW_INSERTED, "0");
|
|
Packit Service |
fb6fa5 |
signal_monitor_append_signal (fixture->monitor, ROW_HAS_CHILD_TOGGLED, "0");
|
|
Packit Service |
fb6fa5 |
set_path_visibility (fixture, "2", TRUE);
|
|
Packit Service |
fb6fa5 |
check_filter_model (fixture);
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture->filter, NULL, 1);
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture->filter, "0", 1);
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture->filter, "0:0", 1);
|
|
Packit Service |
fb6fa5 |
}
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
static void
|
|
Packit Service |
fb6fa5 |
unfiltered_vroot_show_single (FilterTest *fixture,
|
|
Packit Service |
fb6fa5 |
gconstpointer user_data)
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
{
|
|
Packit Service |
fb6fa5 |
GtkTreePath *path = (GtkTreePath *)user_data;
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
signal_monitor_append_signal (fixture->monitor, ROW_CHANGED, "2");
|
|
Packit Service |
fb6fa5 |
signal_monitor_append_signal (fixture->monitor, ROW_HAS_CHILD_TOGGLED, "2");
|
|
Packit Service |
fb6fa5 |
set_path_visibility (fixture, "2:2", TRUE);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
signal_monitor_assert_is_empty (fixture->monitor);
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture->filter, NULL, LEVEL_LENGTH);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
/* The view only shows the root level, so the filter model only has
|
|
Packit Service |
fb6fa5 |
* the first two levels cached.
|
|
Packit Service |
fb6fa5 |
*/
|
|
Packit Service |
fb6fa5 |
filter_test_append_refilter_signals_with_vroot (fixture, 3, path);
|
|
Packit Service |
fb6fa5 |
filter_test_enable_filter (fixture);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
check_filter_model_with_root (fixture, path);
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture->filter, NULL, 1);
|
|
Packit Service |
fb6fa5 |
}
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
static void
|
|
Packit Service |
fb6fa5 |
unfiltered_vroot_show_single_child (FilterTest *fixture,
|
|
Packit Service |
fb6fa5 |
gconstpointer user_data)
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
{
|
|
Packit Service |
fb6fa5 |
GtkTreePath *path = (GtkTreePath *)user_data;
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
signal_monitor_append_signal (fixture->monitor, ROW_CHANGED, "2:2");
|
|
Packit Service |
fb6fa5 |
signal_monitor_append_signal (fixture->monitor, ROW_HAS_CHILD_TOGGLED, "2:2");
|
|
Packit Service |
fb6fa5 |
set_path_visibility (fixture, "2:2:2", TRUE);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
signal_monitor_assert_is_empty (fixture->monitor);
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture->filter, NULL, LEVEL_LENGTH);
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture->filter, "2", LEVEL_LENGTH);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
/* The view only shows the root level, so the filter model only has
|
|
Packit Service |
fb6fa5 |
* the first two levels cached.
|
|
Packit Service |
fb6fa5 |
*/
|
|
Packit Service |
fb6fa5 |
filter_test_append_refilter_signals_with_vroot (fixture, 2, path);
|
|
Packit Service |
fb6fa5 |
filter_test_enable_filter (fixture);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
check_filter_model_with_root (fixture, path);
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture->filter, NULL, 0);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
/* From here we are filtered, "2" in the real model is "0" in the filter
|
|
Packit Service |
fb6fa5 |
* model.
|
|
Packit Service |
fb6fa5 |
*/
|
|
Packit Service |
fb6fa5 |
signal_monitor_append_signal (fixture->monitor, ROW_INSERTED, "0");
|
|
Packit Service |
fb6fa5 |
signal_monitor_append_signal (fixture->monitor, ROW_HAS_CHILD_TOGGLED, "0");
|
|
Packit Service |
fb6fa5 |
set_path_visibility (fixture, "2:2", TRUE);
|
|
Packit Service |
fb6fa5 |
signal_monitor_assert_is_empty (fixture->monitor);
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture->filter, NULL, 1);
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture->filter, "0", 1);
|
|
Packit Service |
fb6fa5 |
}
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
static void
|
|
Packit Service |
fb6fa5 |
unfiltered_vroot_show_single_multi_level (FilterTest *fixture,
|
|
Packit Service |
fb6fa5 |
gconstpointer user_data)
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
{
|
|
Packit Service |
fb6fa5 |
GtkTreePath *path = (GtkTreePath *)user_data;
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
/* The view is not showing this row (collapsed state), so it is not
|
|
Packit Service |
fb6fa5 |
* referenced. The signal should not go through.
|
|
Packit Service |
fb6fa5 |
*/
|
|
Packit Service |
fb6fa5 |
set_path_visibility (fixture, "2:2:2:2", TRUE);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
signal_monitor_append_signal (fixture->monitor, ROW_CHANGED, "2:2");
|
|
Packit Service |
fb6fa5 |
signal_monitor_append_signal (fixture->monitor, ROW_HAS_CHILD_TOGGLED, "2:2");
|
|
Packit Service |
fb6fa5 |
set_path_visibility (fixture, "2:2:2", TRUE);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
signal_monitor_assert_is_empty (fixture->monitor);
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture->filter, NULL, LEVEL_LENGTH);
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture->filter, "2", LEVEL_LENGTH);
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture->filter, "2:2", LEVEL_LENGTH);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
/* The view only shows the root level, so the filter model only has
|
|
Packit Service |
fb6fa5 |
* the first two levels cached.
|
|
Packit Service |
fb6fa5 |
*/
|
|
Packit Service |
fb6fa5 |
filter_test_append_refilter_signals_with_vroot (fixture, 4, path);
|
|
Packit Service |
fb6fa5 |
filter_test_enable_filter (fixture);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
check_filter_model_with_root (fixture, path);
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture->filter, NULL, 0);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
/* From here we are filtered, "2" in the real model is "0" in the filter
|
|
Packit Service |
fb6fa5 |
* model.
|
|
Packit Service |
fb6fa5 |
*/
|
|
Packit Service |
fb6fa5 |
signal_monitor_append_signal (fixture->monitor, ROW_INSERTED, "0");
|
|
Packit Service |
fb6fa5 |
signal_monitor_append_signal (fixture->monitor, ROW_HAS_CHILD_TOGGLED, "0");
|
|
Packit Service |
fb6fa5 |
set_path_visibility (fixture, "2:2", TRUE);
|
|
Packit Service |
fb6fa5 |
check_filter_model_with_root (fixture, path);
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture->filter, NULL, 1);
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture->filter, "0", 1);
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture->filter, "0:0", 1);
|
|
Packit Service |
fb6fa5 |
}
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
static gboolean
|
|
Packit Service |
fb6fa5 |
specific_path_dependent_filter_func (GtkTreeModel *model,
|
|
Packit Service |
fb6fa5 |
GtkTreeIter *iter,
|
|
Packit Service |
fb6fa5 |
gpointer data)
|
|
Packit Service |
fb6fa5 |
{
|
|
Packit Service |
fb6fa5 |
GtkTreePath *path;
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
path = gtk_tree_model_get_path (model, iter);
|
|
Packit Service |
fb6fa5 |
if (gtk_tree_path_get_indices (path)[0] < 4)
|
|
Packit Service |
fb6fa5 |
return FALSE;
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
return TRUE;
|
|
Packit Service |
fb6fa5 |
}
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
static void
|
|
Packit Service |
fb6fa5 |
specific_path_dependent_filter (void)
|
|
Packit Service |
fb6fa5 |
{
|
|
Packit Service |
fb6fa5 |
int i;
|
|
Packit Service |
fb6fa5 |
GtkTreeIter iter;
|
|
Packit Service |
fb6fa5 |
GtkListStore *list;
|
|
Packit Service |
fb6fa5 |
GtkTreeModel *sort;
|
|
Packit Service |
fb6fa5 |
GtkTreeModel *filter;
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
list = gtk_list_store_new (1, G_TYPE_INT);
|
|
Packit Service |
fb6fa5 |
gtk_list_store_insert_with_values (list, &iter, 0, 0, 1, -1);
|
|
Packit Service |
fb6fa5 |
gtk_list_store_insert_with_values (list, &iter, 1, 0, 2, -1);
|
|
Packit Service |
fb6fa5 |
gtk_list_store_insert_with_values (list, &iter, 2, 0, 3, -1);
|
|
Packit Service |
fb6fa5 |
gtk_list_store_insert_with_values (list, &iter, 3, 0, 4, -1);
|
|
Packit Service |
fb6fa5 |
gtk_list_store_insert_with_values (list, &iter, 4, 0, 5, -1);
|
|
Packit Service |
fb6fa5 |
gtk_list_store_insert_with_values (list, &iter, 5, 0, 6, -1);
|
|
Packit Service |
fb6fa5 |
gtk_list_store_insert_with_values (list, &iter, 6, 0, 7, -1);
|
|
Packit Service |
fb6fa5 |
gtk_list_store_insert_with_values (list, &iter, 7, 0, 8, -1);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
sort = gtk_tree_model_sort_new_with_model (GTK_TREE_MODEL (list));
|
|
Packit Service |
fb6fa5 |
filter = gtk_tree_model_filter_new (GTK_TREE_MODEL (sort), NULL);
|
|
Packit Service |
fb6fa5 |
gtk_tree_model_filter_set_visible_func (GTK_TREE_MODEL_FILTER (filter),
|
|
Packit Service |
fb6fa5 |
specific_path_dependent_filter_func,
|
|
Packit Service |
fb6fa5 |
NULL, NULL);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
gtk_tree_sortable_set_sort_column_id (GTK_TREE_SORTABLE (sort), 0,
|
|
Packit Service |
fb6fa5 |
GTK_SORT_DESCENDING);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
for (i = 0; i < 4; i++)
|
|
Packit Service |
fb6fa5 |
{
|
|
Packit Service |
fb6fa5 |
if (gtk_tree_model_iter_nth_child (GTK_TREE_MODEL (list), &iter,
|
|
Packit Service |
fb6fa5 |
NULL, 1))
|
|
Packit Service |
fb6fa5 |
gtk_list_store_remove (list, &iter);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
if (gtk_tree_model_iter_nth_child (GTK_TREE_MODEL (list), &iter,
|
|
Packit Service |
fb6fa5 |
NULL, 2))
|
|
Packit Service |
fb6fa5 |
gtk_list_store_remove (list, &iter);
|
|
Packit Service |
fb6fa5 |
}
|
|
Packit Service |
fb6fa5 |
}
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
static gboolean
|
|
Packit Service |
fb6fa5 |
specific_append_after_collapse_visible_func (GtkTreeModel *model,
|
|
Packit Service |
fb6fa5 |
GtkTreeIter *iter,
|
|
Packit Service |
fb6fa5 |
gpointer data)
|
|
Packit Service |
fb6fa5 |
{
|
|
Packit Service |
fb6fa5 |
gint number;
|
|
Packit Service |
fb6fa5 |
gboolean hide_negative_numbers;
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
gtk_tree_model_get (model, iter, 1, &number, -1);
|
|
Packit Service |
fb6fa5 |
hide_negative_numbers = GPOINTER_TO_INT (g_object_get_data (data, "private-hide-negative-numbers"));
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
return (number >= 0 || !hide_negative_numbers);
|
|
Packit Service |
fb6fa5 |
}
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
static void
|
|
Packit Service |
fb6fa5 |
specific_append_after_collapse (void)
|
|
Packit Service |
fb6fa5 |
{
|
|
Packit Service |
fb6fa5 |
/* This test is based on one of the test cases I found in my
|
|
Packit Service |
fb6fa5 |
* old test cases directory. I unfortunately do not have a record
|
|
Packit Service |
fb6fa5 |
* from who this test case originated. -Kris.
|
|
Packit Service |
fb6fa5 |
*
|
|
Packit Service |
fb6fa5 |
* General idea:
|
|
Packit Service |
fb6fa5 |
* - Construct tree.
|
|
Packit Service |
fb6fa5 |
* - Show tree, expand, collapse.
|
|
Packit Service |
fb6fa5 |
* - Add a row.
|
|
Packit Service |
fb6fa5 |
*/
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
GtkTreeIter iter;
|
|
Packit Service |
fb6fa5 |
GtkTreeIter child_iter;
|
|
Packit Service |
fb6fa5 |
GtkTreeIter child_iter2;
|
|
Packit Service |
fb6fa5 |
GtkTreePath *append_path;
|
|
Packit Service |
fb6fa5 |
GtkTreeStore *store;
|
|
Packit Service |
fb6fa5 |
GtkTreeModel *filter;
|
|
Packit Service |
fb6fa5 |
GtkTreeModel *sort;
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
GtkWidget *window;
|
|
Packit Service |
fb6fa5 |
GtkWidget *tree_view;
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
store = gtk_tree_store_new (2, G_TYPE_STRING, G_TYPE_INT);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
filter = gtk_tree_model_filter_new (GTK_TREE_MODEL (store), NULL);
|
|
Packit Service |
fb6fa5 |
g_object_set_data (G_OBJECT (filter), "private-hide-negative-numbers",
|
|
Packit Service |
fb6fa5 |
GINT_TO_POINTER (FALSE));
|
|
Packit Service |
fb6fa5 |
gtk_tree_model_filter_set_visible_func (GTK_TREE_MODEL_FILTER (filter),
|
|
Packit Service |
fb6fa5 |
specific_append_after_collapse_visible_func,
|
|
Packit Service |
fb6fa5 |
filter, NULL);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
sort = gtk_tree_model_sort_new_with_model (filter);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
|
|
Packit Service |
fb6fa5 |
tree_view = gtk_tree_view_new_with_model (sort);
|
|
Packit Service |
fb6fa5 |
gtk_container_add (GTK_CONTAINER (window), tree_view);
|
|
Packit Service |
fb6fa5 |
gtk_widget_realize (tree_view);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
while (gtk_events_pending ())
|
|
Packit Service |
fb6fa5 |
gtk_main_iteration ();
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
gtk_tree_store_prepend (store, &iter, NULL);
|
|
Packit Service |
fb6fa5 |
gtk_tree_store_set (store, &iter,
|
|
Packit Service |
fb6fa5 |
0, "hallo", 1, 1, -1);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
gtk_tree_store_append (store, &child_iter, &iter);
|
|
Packit Service |
fb6fa5 |
gtk_tree_store_set (store, &child_iter,
|
|
Packit Service |
fb6fa5 |
0, "toemaar", 1, 1, -1);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
gtk_tree_store_append (store, &child_iter2, &child_iter);
|
|
Packit Service |
fb6fa5 |
gtk_tree_store_set (store, &child_iter2,
|
|
Packit Service |
fb6fa5 |
0, "very deep", 1, 1, -1);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
append_path = gtk_tree_model_get_path (GTK_TREE_MODEL (store), &child_iter2);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
gtk_tree_store_append (store, &child_iter, &iter);
|
|
Packit Service |
fb6fa5 |
gtk_tree_store_set (store, &child_iter,
|
|
Packit Service |
fb6fa5 |
0, "sja", 1, 1, -1);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
gtk_tree_store_append (store, &child_iter, &iter);
|
|
Packit Service |
fb6fa5 |
gtk_tree_store_set (store, &child_iter,
|
|
Packit Service |
fb6fa5 |
0, "some word", 1, -1, -1);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
/* Expand and collapse the tree */
|
|
Packit Service |
fb6fa5 |
gtk_tree_view_expand_all (GTK_TREE_VIEW (tree_view));
|
|
Packit Service |
fb6fa5 |
while (gtk_events_pending ())
|
|
Packit Service |
fb6fa5 |
gtk_main_iteration ();
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
gtk_tree_view_collapse_all (GTK_TREE_VIEW (tree_view));
|
|
Packit Service |
fb6fa5 |
while (gtk_events_pending ())
|
|
Packit Service |
fb6fa5 |
gtk_main_iteration ();
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
/* Add another it */
|
|
Packit Service |
fb6fa5 |
g_object_set_data (G_OBJECT (filter), "private-hide-negative-numbers",
|
|
Packit Service |
fb6fa5 |
GINT_TO_POINTER (TRUE));
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
if (gtk_tree_model_get_iter (GTK_TREE_MODEL (store), &iter, append_path))
|
|
Packit Service |
fb6fa5 |
{
|
|
Packit Service |
fb6fa5 |
gtk_tree_store_append (store, &child_iter, &iter);
|
|
Packit Service |
fb6fa5 |
gtk_tree_store_set (store, &child_iter,
|
|
Packit Service |
fb6fa5 |
0, "new new new !!", 1, 1, -1);
|
|
Packit Service |
fb6fa5 |
}
|
|
Packit Service |
fb6fa5 |
gtk_tree_path_free (append_path);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
/* Expand */
|
|
Packit Service |
fb6fa5 |
gtk_tree_view_expand_all (GTK_TREE_VIEW (tree_view));
|
|
Packit Service |
fb6fa5 |
while (gtk_events_pending ())
|
|
Packit Service |
fb6fa5 |
gtk_main_iteration ();
|
|
Packit Service |
fb6fa5 |
}
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
static gint
|
|
Packit Service |
fb6fa5 |
specific_sort_filter_remove_node_compare_func (GtkTreeModel *model,
|
|
Packit Service |
fb6fa5 |
GtkTreeIter *iter1,
|
|
Packit Service |
fb6fa5 |
GtkTreeIter *iter2,
|
|
Packit Service |
fb6fa5 |
gpointer data)
|
|
Packit Service |
fb6fa5 |
{
|
|
Packit Service |
fb6fa5 |
return -1;
|
|
Packit Service |
fb6fa5 |
}
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
static gboolean
|
|
Packit Service |
fb6fa5 |
specific_sort_filter_remove_node_visible_func (GtkTreeModel *model,
|
|
Packit Service |
fb6fa5 |
GtkTreeIter *iter,
|
|
Packit Service |
fb6fa5 |
gpointer data)
|
|
Packit Service |
fb6fa5 |
{
|
|
Packit Service |
fb6fa5 |
char *item = NULL;
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
/* Do reference the model */
|
|
Packit Service |
fb6fa5 |
gtk_tree_model_get (model, iter, 0, &item, -1);
|
|
Packit Service |
fb6fa5 |
g_free (item);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
return FALSE;
|
|
Packit Service |
fb6fa5 |
}
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
static void
|
|
Packit Service |
fb6fa5 |
specific_sort_filter_remove_node (void)
|
|
Packit Service |
fb6fa5 |
{
|
|
Packit Service |
fb6fa5 |
/* This test is based on one of the test cases I found in my
|
|
Packit Service |
fb6fa5 |
* old test cases directory. I unfortunately do not have a record
|
|
Packit Service |
fb6fa5 |
* from who this test case originated. -Kris.
|
|
Packit Service |
fb6fa5 |
*
|
|
Packit Service |
fb6fa5 |
* General idea:
|
|
Packit Service |
fb6fa5 |
* - Create tree store, sort, filter models. The sort model has
|
|
Packit Service |
fb6fa5 |
* a default sort func that is enabled, filter model a visible func
|
|
Packit Service |
fb6fa5 |
* that defaults to returning FALSE.
|
|
Packit Service |
fb6fa5 |
* - Remove a node from the tree store.
|
|
Packit Service |
fb6fa5 |
*/
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
GtkTreeIter iter;
|
|
Packit Service |
fb6fa5 |
GtkTreeStore *store;
|
|
Packit Service |
fb6fa5 |
GtkTreeModel *filter;
|
|
Packit Service |
fb6fa5 |
GtkTreeModel *sort;
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
GtkWidget *window;
|
|
Packit Service |
fb6fa5 |
GtkWidget *tree_view;
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
store = gtk_tree_store_new (1, G_TYPE_STRING);
|
|
Packit Service |
fb6fa5 |
gtk_tree_store_append (store, &iter, NULL);
|
|
Packit Service |
fb6fa5 |
gtk_tree_store_set (store, &iter, 0, "Hello1", -1);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
gtk_tree_store_append (store, &iter, NULL);
|
|
Packit Service |
fb6fa5 |
gtk_tree_store_set (store, &iter, 0, "Hello2", -1);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
sort = gtk_tree_model_sort_new_with_model (GTK_TREE_MODEL (store));
|
|
Packit Service |
fb6fa5 |
gtk_tree_sortable_set_default_sort_func (GTK_TREE_SORTABLE (sort),
|
|
Packit Service |
fb6fa5 |
specific_sort_filter_remove_node_compare_func, NULL, NULL);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
filter = gtk_tree_model_filter_new (sort, NULL);
|
|
Packit Service |
fb6fa5 |
gtk_tree_model_filter_set_visible_func (GTK_TREE_MODEL_FILTER (filter),
|
|
Packit Service |
fb6fa5 |
specific_sort_filter_remove_node_visible_func,
|
|
Packit Service |
fb6fa5 |
filter, NULL);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
|
|
Packit Service |
fb6fa5 |
tree_view = gtk_tree_view_new_with_model (filter);
|
|
Packit Service |
fb6fa5 |
gtk_container_add (GTK_CONTAINER (window), tree_view);
|
|
Packit Service |
fb6fa5 |
gtk_widget_realize (tree_view);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
while (gtk_events_pending ())
|
|
Packit Service |
fb6fa5 |
gtk_main_iteration ();
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
/* Remove a node */
|
|
Packit Service |
fb6fa5 |
gtk_tree_model_get_iter_first (GTK_TREE_MODEL (store), &iter);
|
|
Packit Service |
fb6fa5 |
gtk_tree_model_iter_next (GTK_TREE_MODEL (store), &iter);
|
|
Packit Service |
fb6fa5 |
gtk_tree_store_remove (store, &iter);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
while (gtk_events_pending ())
|
|
Packit Service |
fb6fa5 |
gtk_main_iteration ();
|
|
Packit Service |
fb6fa5 |
}
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
static void
|
|
Packit Service |
fb6fa5 |
specific_sort_filter_remove_root (void)
|
|
Packit Service |
fb6fa5 |
{
|
|
Packit Service |
fb6fa5 |
/* This test is based on one of the test cases I found in my
|
|
Packit Service |
fb6fa5 |
* old test cases directory. I unfortunately do not have a record
|
|
Packit Service |
fb6fa5 |
* from who this test case originated. -Kris.
|
|
Packit Service |
fb6fa5 |
*/
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
GtkTreeModel *model, *sort, *filter;
|
|
Packit Service |
fb6fa5 |
GtkTreeIter root, mid, leaf;
|
|
Packit Service |
fb6fa5 |
GtkTreePath *path;
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
model = GTK_TREE_MODEL (gtk_tree_store_new (1, G_TYPE_INT));
|
|
Packit Service |
fb6fa5 |
gtk_tree_store_append (GTK_TREE_STORE (model), &root, NULL);
|
|
Packit Service |
fb6fa5 |
gtk_tree_store_append (GTK_TREE_STORE (model), &mid, &root);
|
|
Packit Service |
fb6fa5 |
gtk_tree_store_append (GTK_TREE_STORE (model), &leaf, &mid);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
path = gtk_tree_model_get_path (model, &mid);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
sort = gtk_tree_model_sort_new_with_model (model);
|
|
Packit Service |
fb6fa5 |
filter = gtk_tree_model_filter_new (sort, path);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
gtk_tree_store_remove (GTK_TREE_STORE (model), &root);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
g_object_unref (filter);
|
|
Packit Service |
fb6fa5 |
g_object_unref (sort);
|
|
Packit Service |
fb6fa5 |
g_object_unref (model);
|
|
Packit Service |
fb6fa5 |
}
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
static void
|
|
Packit Service |
fb6fa5 |
specific_root_mixed_visibility (void)
|
|
Packit Service |
fb6fa5 |
{
|
|
Packit Service |
fb6fa5 |
int i;
|
|
Packit Service |
fb6fa5 |
GtkTreeModel *filter;
|
|
Packit Service |
fb6fa5 |
/* A bit nasty, apologies */
|
|
Packit Service |
fb6fa5 |
FilterTest fixture;
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
fixture.store = gtk_tree_store_new (2, G_TYPE_STRING, G_TYPE_BOOLEAN);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
for (i = 0; i < LEVEL_LENGTH; i++)
|
|
Packit Service |
fb6fa5 |
{
|
|
Packit Service |
fb6fa5 |
GtkTreeIter iter;
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
gtk_tree_store_insert (fixture.store, &iter, NULL, i);
|
|
Packit Service |
fb6fa5 |
if (i % 2 == 0)
|
|
Packit Service |
fb6fa5 |
create_tree_store_set_values (fixture.store, &iter, TRUE);
|
|
Packit Service |
fb6fa5 |
else
|
|
Packit Service |
fb6fa5 |
create_tree_store_set_values (fixture.store, &iter, FALSE);
|
|
Packit Service |
fb6fa5 |
}
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
filter = gtk_tree_model_filter_new (GTK_TREE_MODEL (fixture.store), NULL);
|
|
Packit Service |
fb6fa5 |
fixture.filter = GTK_TREE_MODEL_FILTER (filter);
|
|
Packit Service |
fb6fa5 |
fixture.monitor = NULL;
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
gtk_tree_model_filter_set_visible_column (fixture.filter, 1);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
/* In order to trigger the potential bug, we should not access
|
|
Packit Service |
fb6fa5 |
* the filter model here (so don't call the check functions).
|
|
Packit Service |
fb6fa5 |
*/
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
/* Change visibility of an odd row to TRUE */
|
|
Packit Service |
fb6fa5 |
set_path_visibility (&fixture, "3", TRUE);
|
|
Packit Service |
fb6fa5 |
check_filter_model (&fixture);
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture.filter, NULL, 4);
|
|
Packit Service |
fb6fa5 |
}
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
static gboolean
|
|
Packit Service |
fb6fa5 |
specific_has_child_filter_filter_func (GtkTreeModel *model,
|
|
Packit Service |
fb6fa5 |
GtkTreeIter *iter,
|
|
Packit Service |
fb6fa5 |
gpointer data)
|
|
Packit Service |
fb6fa5 |
{
|
|
Packit Service |
fb6fa5 |
return gtk_tree_model_iter_has_child (model, iter);
|
|
Packit Service |
fb6fa5 |
}
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
static void
|
|
Packit Service |
fb6fa5 |
specific_has_child_filter (void)
|
|
Packit Service |
fb6fa5 |
{
|
|
Packit Service |
fb6fa5 |
GtkTreeModel *filter;
|
|
Packit Service |
fb6fa5 |
GtkTreeIter iter, root;
|
|
Packit Service |
fb6fa5 |
/* A bit nasty, apologies */
|
|
Packit Service |
fb6fa5 |
FilterTest fixture;
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
fixture.store = gtk_tree_store_new (2, G_TYPE_STRING, G_TYPE_BOOLEAN);
|
|
Packit Service |
fb6fa5 |
filter = gtk_tree_model_filter_new (GTK_TREE_MODEL (fixture.store), NULL);
|
|
Packit Service |
fb6fa5 |
fixture.filter = GTK_TREE_MODEL_FILTER (filter);
|
|
Packit Service |
fb6fa5 |
fixture.monitor = NULL;
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
/* We will filter on parent state using a filter function. We will
|
|
Packit Service |
fb6fa5 |
* manually keep the boolean column in sync, so that we can use
|
|
Packit Service |
fb6fa5 |
* check_filter_model() to check the consistency of the model.
|
|
Packit Service |
fb6fa5 |
*/
|
|
Packit Service |
fb6fa5 |
/* FIXME: We need a check_filter_model() that is not tied to LEVEL_LENGTH
|
|
Packit Service |
fb6fa5 |
* to be able to check the structure here. We keep the calls to
|
|
Packit Service |
fb6fa5 |
* check_filter_model() commented out until then.
|
|
Packit Service |
fb6fa5 |
*/
|
|
Packit Service |
fb6fa5 |
gtk_tree_model_filter_set_visible_func (fixture.filter,
|
|
Packit Service |
fb6fa5 |
specific_has_child_filter_filter_func,
|
|
Packit Service |
fb6fa5 |
NULL, NULL);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
gtk_tree_store_append (fixture.store, &root, NULL);
|
|
Packit Service |
fb6fa5 |
create_tree_store_set_values (fixture.store, &root, FALSE);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
/* check_filter_model (&fixture); */
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture.filter, NULL, 0);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
gtk_tree_store_append (fixture.store, &iter, &root);
|
|
Packit Service |
fb6fa5 |
create_tree_store_set_values (fixture.store, &iter, TRUE);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
/* Parent must now be visible. Do the level length check first,
|
|
Packit Service |
fb6fa5 |
* to avoid modifying the child model triggering a row-changed to
|
|
Packit Service |
fb6fa5 |
* the filter model.
|
|
Packit Service |
fb6fa5 |
*/
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture.filter, NULL, 1);
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture.filter, "0", 0);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
set_path_visibility (&fixture, "0", TRUE);
|
|
Packit Service |
fb6fa5 |
/* check_filter_model (&fixture); */
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
gtk_tree_store_append (fixture.store, &root, NULL);
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture.filter, NULL, 1);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
gtk_tree_store_append (fixture.store, &iter, &root);
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture.filter, NULL, 2);
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture.filter, "1", 0);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
create_tree_store_set_values (fixture.store, &root, TRUE);
|
|
Packit Service |
fb6fa5 |
create_tree_store_set_values (fixture.store, &iter, TRUE);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
/* check_filter_model (&fixture); */
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
gtk_tree_store_append (fixture.store, &iter, &root);
|
|
Packit Service |
fb6fa5 |
create_tree_store_set_values (fixture.store, &iter, TRUE);
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture.filter, NULL, 2);
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture.filter, "0", 0);
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture.filter, "1", 0);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
/* Now remove one of the remaining child rows */
|
|
Packit Service |
fb6fa5 |
gtk_tree_model_get_iter_from_string (GTK_TREE_MODEL (fixture.store),
|
|
Packit Service |
fb6fa5 |
&iter, "0:0");
|
|
Packit Service |
fb6fa5 |
gtk_tree_store_remove (fixture.store, &iter);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture.filter, NULL, 1);
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture.filter, "0", 0);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
set_path_visibility (&fixture, "0", FALSE);
|
|
Packit Service |
fb6fa5 |
/* check_filter_model (&fixture); */
|
|
Packit Service |
fb6fa5 |
}
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
static gboolean
|
|
Packit Service |
fb6fa5 |
specific_root_has_child_filter_filter_func (GtkTreeModel *model,
|
|
Packit Service |
fb6fa5 |
GtkTreeIter *iter,
|
|
Packit Service |
fb6fa5 |
gpointer data)
|
|
Packit Service |
fb6fa5 |
{
|
|
Packit Service |
fb6fa5 |
int depth;
|
|
Packit Service |
fb6fa5 |
GtkTreePath *path;
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
path = gtk_tree_model_get_path (model, iter);
|
|
Packit Service |
fb6fa5 |
depth = gtk_tree_path_get_depth (path);
|
|
Packit Service |
fb6fa5 |
gtk_tree_path_free (path);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
if (depth > 1)
|
|
Packit Service |
fb6fa5 |
return TRUE;
|
|
Packit Service |
fb6fa5 |
/* else */
|
|
Packit Service |
fb6fa5 |
return gtk_tree_model_iter_has_child (model, iter);
|
|
Packit Service |
fb6fa5 |
}
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
static void
|
|
Packit Service |
fb6fa5 |
specific_root_has_child_filter (void)
|
|
Packit Service |
fb6fa5 |
{
|
|
Packit Service |
fb6fa5 |
GtkTreeModel *filter;
|
|
Packit Service |
fb6fa5 |
GtkTreeIter iter, root;
|
|
Packit Service |
fb6fa5 |
/* A bit nasty, apologies */
|
|
Packit Service |
fb6fa5 |
FilterTest fixture;
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
/* This is a variation on the above test case wherein the has-child
|
|
Packit Service |
fb6fa5 |
* check for visibility only applies to root level nodes.
|
|
Packit Service |
fb6fa5 |
*/
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
fixture.store = gtk_tree_store_new (2, G_TYPE_STRING, G_TYPE_BOOLEAN);
|
|
Packit Service |
fb6fa5 |
filter = gtk_tree_model_filter_new (GTK_TREE_MODEL (fixture.store), NULL);
|
|
Packit Service |
fb6fa5 |
fixture.filter = GTK_TREE_MODEL_FILTER (filter);
|
|
Packit Service |
fb6fa5 |
fixture.monitor = NULL;
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
/* We will filter on parent state using a filter function. We will
|
|
Packit Service |
fb6fa5 |
* manually keep the boolean column in sync, so that we can use
|
|
Packit Service |
fb6fa5 |
* check_filter_model() to check the consistency of the model.
|
|
Packit Service |
fb6fa5 |
*/
|
|
Packit Service |
fb6fa5 |
/* FIXME: We need a check_filter_model() that is not tied to LEVEL_LENGTH
|
|
Packit Service |
fb6fa5 |
* to be able to check the structure here. We keep the calls to
|
|
Packit Service |
fb6fa5 |
* check_filter_model() commented out until then.
|
|
Packit Service |
fb6fa5 |
*/
|
|
Packit Service |
fb6fa5 |
gtk_tree_model_filter_set_visible_func (fixture.filter,
|
|
Packit Service |
fb6fa5 |
specific_root_has_child_filter_filter_func,
|
|
Packit Service |
fb6fa5 |
NULL, NULL);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
gtk_tree_store_append (fixture.store, &root, NULL);
|
|
Packit Service |
fb6fa5 |
create_tree_store_set_values (fixture.store, &root, FALSE);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
/* check_filter_model (&fixture); */
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture.filter, NULL, 0);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
gtk_tree_store_append (fixture.store, &iter, &root);
|
|
Packit Service |
fb6fa5 |
create_tree_store_set_values (fixture.store, &iter, TRUE);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
/* Parent must now be visible. Do the level length check first,
|
|
Packit Service |
fb6fa5 |
* to avoid modifying the child model triggering a row-changed to
|
|
Packit Service |
fb6fa5 |
* the filter model.
|
|
Packit Service |
fb6fa5 |
*/
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture.filter, NULL, 1);
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture.filter, "0", 1);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
set_path_visibility (&fixture, "0", TRUE);
|
|
Packit Service |
fb6fa5 |
/* check_filter_model (&fixture); */
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
gtk_tree_store_append (fixture.store, &root, NULL);
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture.filter, NULL, 1);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
gtk_tree_store_append (fixture.store, &iter, &root);
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture.filter, NULL, 2);
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture.filter, "1", 1);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
create_tree_store_set_values (fixture.store, &root, TRUE);
|
|
Packit Service |
fb6fa5 |
create_tree_store_set_values (fixture.store, &iter, TRUE);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
/* check_filter_model (&fixture); */
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
gtk_tree_store_append (fixture.store, &iter, &root);
|
|
Packit Service |
fb6fa5 |
create_tree_store_set_values (fixture.store, &iter, TRUE);
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture.filter, NULL, 2);
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture.filter, "0", 1);
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture.filter, "1", 2);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
/* Now remove one of the remaining child rows */
|
|
Packit Service |
fb6fa5 |
gtk_tree_model_get_iter_from_string (GTK_TREE_MODEL (fixture.store),
|
|
Packit Service |
fb6fa5 |
&iter, "0:0");
|
|
Packit Service |
fb6fa5 |
gtk_tree_store_remove (fixture.store, &iter);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture.filter, NULL, 1);
|
|
Packit Service |
fb6fa5 |
check_level_length (fixture.filter, "0", 2);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
set_path_visibility (&fixture, "0", FALSE);
|
|
Packit Service |
fb6fa5 |
/* check_filter_model (&fixture); */
|
|
Packit Service |
fb6fa5 |
}
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
static void
|
|
Packit Service |
fb6fa5 |
specific_filter_add_child (void)
|
|
Packit Service |
fb6fa5 |
{
|
|
Packit Service |
fb6fa5 |
/* This test is based on one of the test cases I found in my
|
|
Packit Service |
fb6fa5 |
* old test cases directory. I unfortunately do not have a record
|
|
Packit Service |
fb6fa5 |
* from who this test case originated. -Kris.
|
|
Packit Service |
fb6fa5 |
*/
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
GtkTreeIter iter;
|
|
Packit Service |
fb6fa5 |
GtkTreeIter iter_first;
|
|
Packit Service |
fb6fa5 |
GtkTreeIter child;
|
|
Packit Service |
fb6fa5 |
GtkTreeStore *store;
|
|
Packit Service |
fb6fa5 |
GtkTreeModel *filter;
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
store = gtk_tree_store_new (1, G_TYPE_STRING);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
gtk_tree_store_append (store, &iter_first, NULL);
|
|
Packit Service |
fb6fa5 |
gtk_tree_store_set (store, &iter_first, 0, "Hello", -1);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
gtk_tree_store_append (store, &iter, NULL);
|
|
Packit Service |
fb6fa5 |
gtk_tree_store_set (store, &iter, 0, "Hello", -1);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
gtk_tree_store_append (store, &iter, NULL);
|
|
Packit Service |
fb6fa5 |
gtk_tree_store_set (store, &iter, 0, "Hello", -1);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
gtk_tree_store_append (store, &iter, NULL);
|
|
Packit Service |
fb6fa5 |
gtk_tree_store_set (store, &iter, 0, "Hello", -1);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
filter = gtk_tree_model_filter_new (GTK_TREE_MODEL (store), NULL);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
gtk_tree_store_set (store, &iter, 0, "Hello", -1);
|
|
Packit Service |
fb6fa5 |
gtk_tree_store_append (store, &child, &iter_first);
|
|
Packit Service |
fb6fa5 |
gtk_tree_store_set (store, &child, 0, "Hello", -1);
|
|
Packit Service |
fb6fa5 |
}
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
static void
|
|
Packit Service |
fb6fa5 |
specific_list_store_clear (void)
|
|
Packit Service |
fb6fa5 |
{
|
|
Packit Service |
fb6fa5 |
GtkTreeIter iter;
|
|
Packit Service |
fb6fa5 |
GtkListStore *list;
|
|
Packit Service |
fb6fa5 |
GtkTreeModel *filter;
|
|
Packit Service |
fb6fa5 |
GtkWidget *view;
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
list = gtk_list_store_new (1, G_TYPE_INT);
|
|
Packit Service |
fb6fa5 |
gtk_list_store_insert_with_values (list, &iter, 0, 0, 1, -1);
|
|
Packit Service |
fb6fa5 |
gtk_list_store_insert_with_values (list, &iter, 1, 0, 2, -1);
|
|
Packit Service |
fb6fa5 |
gtk_list_store_insert_with_values (list, &iter, 2, 0, 3, -1);
|
|
Packit Service |
fb6fa5 |
gtk_list_store_insert_with_values (list, &iter, 3, 0, 4, -1);
|
|
Packit Service |
fb6fa5 |
gtk_list_store_insert_with_values (list, &iter, 4, 0, 5, -1);
|
|
Packit Service |
fb6fa5 |
gtk_list_store_insert_with_values (list, &iter, 5, 0, 6, -1);
|
|
Packit Service |
fb6fa5 |
gtk_list_store_insert_with_values (list, &iter, 6, 0, 7, -1);
|
|
Packit Service |
fb6fa5 |
gtk_list_store_insert_with_values (list, &iter, 7, 0, 8, -1);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
filter = gtk_tree_model_filter_new (GTK_TREE_MODEL (list), NULL);
|
|
Packit Service |
fb6fa5 |
view = gtk_tree_view_new_with_model (filter);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
gtk_list_store_clear (list);
|
|
Packit Service |
fb6fa5 |
}
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
static void
|
|
Packit Service |
fb6fa5 |
specific_bug_300089 (void)
|
|
Packit Service |
fb6fa5 |
{
|
|
Packit Service |
fb6fa5 |
/* Test case for GNOME Bugzilla bug 300089. Written by
|
|
Packit Service |
fb6fa5 |
* Matthias Clasen.
|
|
Packit Service |
fb6fa5 |
*/
|
|
Packit Service |
fb6fa5 |
GtkTreeModel *sort_model, *child_model;
|
|
Packit Service |
fb6fa5 |
GtkTreePath *path;
|
|
Packit Service |
fb6fa5 |
GtkTreeIter iter, iter2, sort_iter;
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
child_model = GTK_TREE_MODEL (gtk_tree_store_new (1, G_TYPE_STRING));
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
gtk_tree_store_append (GTK_TREE_STORE (child_model), &iter, NULL);
|
|
Packit Service |
fb6fa5 |
gtk_tree_store_set (GTK_TREE_STORE (child_model), &iter, 0, "A", -1);
|
|
Packit Service |
fb6fa5 |
gtk_tree_store_append (GTK_TREE_STORE (child_model), &iter, NULL);
|
|
Packit Service |
fb6fa5 |
gtk_tree_store_set (GTK_TREE_STORE (child_model), &iter, 0, "B", -1);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
gtk_tree_store_append (GTK_TREE_STORE (child_model), &iter2, &iter);
|
|
Packit Service |
fb6fa5 |
gtk_tree_store_set (GTK_TREE_STORE (child_model), &iter2, 0, "D", -1);
|
|
Packit Service |
fb6fa5 |
gtk_tree_store_append (GTK_TREE_STORE (child_model), &iter2, &iter);
|
|
Packit Service |
fb6fa5 |
gtk_tree_store_set (GTK_TREE_STORE (child_model), &iter2, 0, "E", -1);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
gtk_tree_store_append (GTK_TREE_STORE (child_model), &iter, NULL);
|
|
Packit Service |
fb6fa5 |
gtk_tree_store_set (GTK_TREE_STORE (child_model), &iter, 0, "C", -1);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
sort_model = GTK_TREE_MODEL (gtk_tree_model_sort_new_with_model (child_model));
|
|
Packit Service |
fb6fa5 |
gtk_tree_sortable_set_sort_column_id (GTK_TREE_SORTABLE (sort_model),
|
|
Packit Service |
fb6fa5 |
0, GTK_SORT_ASCENDING);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
path = gtk_tree_path_new_from_indices (1, 1, -1);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
/* make sure a level is constructed */
|
|
Packit Service |
fb6fa5 |
gtk_tree_model_get_iter (sort_model, &sort_iter, path);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
/* change the "E" row in a way that causes it to change position */
|
|
Packit Service |
fb6fa5 |
gtk_tree_model_get_iter (child_model, &iter, path);
|
|
Packit Service |
fb6fa5 |
gtk_tree_store_set (GTK_TREE_STORE (child_model), &iter, 0, "A", -1);
|
|
Packit Service |
fb6fa5 |
}
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
static int
|
|
Packit Service |
fb6fa5 |
specific_bug_301558_sort_func (GtkTreeModel *model,
|
|
Packit Service |
fb6fa5 |
GtkTreeIter *a,
|
|
Packit Service |
fb6fa5 |
GtkTreeIter *b,
|
|
Packit Service |
fb6fa5 |
gpointer data)
|
|
Packit Service |
fb6fa5 |
{
|
|
Packit Service |
fb6fa5 |
int i, j;
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
gtk_tree_model_get (model, a, 0, &i, -1);
|
|
Packit Service |
fb6fa5 |
gtk_tree_model_get (model, b, 0, &j, -1);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
return j - i;
|
|
Packit Service |
fb6fa5 |
}
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
static void
|
|
Packit Service |
fb6fa5 |
specific_bug_301558 (void)
|
|
Packit Service |
fb6fa5 |
{
|
|
Packit Service |
fb6fa5 |
/* Test case for GNOME Bugzilla bug 301558 provided by
|
|
Packit Service |
fb6fa5 |
* Markku Vire.
|
|
Packit Service |
fb6fa5 |
*/
|
|
Packit Service |
fb6fa5 |
GtkTreeStore *tree;
|
|
Packit Service |
fb6fa5 |
GtkTreeModel *filter;
|
|
Packit Service |
fb6fa5 |
GtkTreeModel *sort;
|
|
Packit Service |
fb6fa5 |
GtkTreeIter root, iter, iter2;
|
|
Packit Service |
fb6fa5 |
GtkWidget *view;
|
|
Packit Service |
fb6fa5 |
int i;
|
|
Packit Service |
fb6fa5 |
gboolean add;
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
tree = gtk_tree_store_new (2, G_TYPE_INT, G_TYPE_BOOLEAN);
|
|
Packit Service |
fb6fa5 |
gtk_tree_store_append (tree, &iter, NULL);
|
|
Packit Service |
fb6fa5 |
gtk_tree_store_set (tree, &iter, 0, 123, 1, TRUE, -1);
|
|
Packit Service |
fb6fa5 |
gtk_tree_store_append (tree, &iter2, &iter);
|
|
Packit Service |
fb6fa5 |
gtk_tree_store_set (tree, &iter2, 0, 73, 1, TRUE, -1);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
sort = gtk_tree_model_sort_new_with_model (GTK_TREE_MODEL (tree));
|
|
Packit Service |
fb6fa5 |
gtk_tree_sortable_set_default_sort_func (GTK_TREE_SORTABLE (sort),
|
|
Packit Service |
fb6fa5 |
specific_bug_301558_sort_func,
|
|
Packit Service |
fb6fa5 |
NULL, NULL);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
filter = gtk_tree_model_filter_new (sort, NULL);
|
|
Packit Service |
fb6fa5 |
gtk_tree_model_filter_set_visible_column (GTK_TREE_MODEL_FILTER (filter), 1);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
view = gtk_tree_view_new_with_model (filter);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
while (gtk_events_pending ())
|
|
Packit Service |
fb6fa5 |
gtk_main_iteration ();
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
add = TRUE;
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
for (i = 0; i < 10; i++)
|
|
Packit Service |
fb6fa5 |
{
|
|
Packit Service |
fb6fa5 |
if (!gtk_tree_model_get_iter_first (GTK_TREE_MODEL (tree), &root))
|
|
Packit Service |
fb6fa5 |
g_assert_not_reached ();
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
if (add)
|
|
Packit Service |
fb6fa5 |
{
|
|
Packit Service |
fb6fa5 |
gtk_tree_store_append (tree, &iter, &root);
|
|
Packit Service |
fb6fa5 |
gtk_tree_store_set (tree, &iter, 0, 456, 1, TRUE, -1);
|
|
Packit Service |
fb6fa5 |
}
|
|
Packit Service |
fb6fa5 |
else
|
|
Packit Service |
fb6fa5 |
{
|
|
Packit Service |
fb6fa5 |
int n;
|
|
Packit Service |
fb6fa5 |
n = gtk_tree_model_iter_n_children (GTK_TREE_MODEL (tree), &root);
|
|
Packit Service |
fb6fa5 |
gtk_tree_model_iter_nth_child (GTK_TREE_MODEL (tree), &iter,
|
|
Packit Service |
fb6fa5 |
&root, n - 1);
|
|
Packit Service |
fb6fa5 |
gtk_tree_store_remove (tree, &iter);
|
|
Packit Service |
fb6fa5 |
}
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
add = !add;
|
|
Packit Service |
fb6fa5 |
}
|
|
Packit Service |
fb6fa5 |
}
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
static gboolean
|
|
Packit Service |
fb6fa5 |
specific_bug_311955_filter_func (GtkTreeModel *model,
|
|
Packit Service |
fb6fa5 |
GtkTreeIter *iter,
|
|
Packit Service |
fb6fa5 |
gpointer data)
|
|
Packit Service |
fb6fa5 |
{
|
|
Packit Service |
fb6fa5 |
int value;
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
gtk_tree_model_get (model, iter, 0, &value, -1);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
return (value != 0);
|
|
Packit Service |
fb6fa5 |
}
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
static void
|
|
Packit Service |
fb6fa5 |
specific_bug_311955 (void)
|
|
Packit Service |
fb6fa5 |
{
|
|
Packit Service |
fb6fa5 |
/* This is a test case for GNOME Bugzilla bug 311955. It was written
|
|
Packit Service |
fb6fa5 |
* by Markku Vire.
|
|
Packit Service |
fb6fa5 |
*/
|
|
Packit Service |
fb6fa5 |
GtkTreeIter iter, child, root;
|
|
Packit Service |
fb6fa5 |
GtkTreeStore *store;
|
|
Packit Service |
fb6fa5 |
GtkTreeModel *sort;
|
|
Packit Service |
fb6fa5 |
GtkTreeModel *filter;
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
GtkWidget *window;
|
|
Packit Service |
fb6fa5 |
GtkWidget *tree_view;
|
|
Packit Service |
fb6fa5 |
int i;
|
|
Packit Service |
fb6fa5 |
int n;
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
store = gtk_tree_store_new (1, G_TYPE_INT);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
gtk_tree_store_append (store, &root, NULL);
|
|
Packit Service |
fb6fa5 |
gtk_tree_store_set (store, &root, 0, 33, -1);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
gtk_tree_store_append (store, &iter, &root);
|
|
Packit Service |
fb6fa5 |
gtk_tree_store_set (store, &iter, 0, 50, -1);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
gtk_tree_store_append (store, &iter, NULL);
|
|
Packit Service |
fb6fa5 |
gtk_tree_store_set (store, &iter, 0, 22, -1);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
sort = gtk_tree_model_sort_new_with_model (GTK_TREE_MODEL (store));
|
|
Packit Service |
fb6fa5 |
filter = gtk_tree_model_filter_new (sort, NULL);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
gtk_tree_model_filter_set_visible_func (GTK_TREE_MODEL_FILTER (filter),
|
|
Packit Service |
fb6fa5 |
specific_bug_311955_filter_func,
|
|
Packit Service |
fb6fa5 |
NULL, NULL);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
|
|
Packit Service |
fb6fa5 |
tree_view = gtk_tree_view_new_with_model (filter);
|
|
Packit Service |
fb6fa5 |
g_object_unref (store);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
gtk_tree_view_expand_all (GTK_TREE_VIEW (tree_view));
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
while (gtk_events_pending ())
|
|
Packit Service |
fb6fa5 |
gtk_main_iteration ();
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
/* Fill model */
|
|
Packit Service |
fb6fa5 |
for (i = 0; i < 4; i++)
|
|
Packit Service |
fb6fa5 |
{
|
|
Packit Service |
fb6fa5 |
gtk_tree_model_get_iter_first (GTK_TREE_MODEL (store), &root);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
gtk_tree_store_append (store, &iter, &root);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
if (i < 3)
|
|
Packit Service |
fb6fa5 |
gtk_tree_store_set (store, &iter, 0, i, -1);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
if (i % 2 == 0)
|
|
Packit Service |
fb6fa5 |
{
|
|
Packit Service |
fb6fa5 |
gtk_tree_store_append (store, &child, &iter);
|
|
Packit Service |
fb6fa5 |
gtk_tree_store_set (store, &child, 0, 10, -1);
|
|
Packit Service |
fb6fa5 |
}
|
|
Packit Service |
fb6fa5 |
}
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
while (gtk_events_pending ())
|
|
Packit Service |
fb6fa5 |
gtk_main_iteration ();
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
/* Remove bottommost child from the tree. */
|
|
Packit Service |
fb6fa5 |
gtk_tree_model_get_iter_first (GTK_TREE_MODEL (store), &root);
|
|
Packit Service |
fb6fa5 |
n = gtk_tree_model_iter_n_children (GTK_TREE_MODEL (store), &root);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
if (gtk_tree_model_iter_nth_child (GTK_TREE_MODEL (store), &iter, &root, n - 2))
|
|
Packit Service |
fb6fa5 |
{
|
|
Packit Service |
fb6fa5 |
if (gtk_tree_model_iter_children (GTK_TREE_MODEL (store), &child, &iter))
|
|
Packit Service |
fb6fa5 |
gtk_tree_store_remove (store, &child);
|
|
Packit Service |
fb6fa5 |
}
|
|
Packit Service |
fb6fa5 |
else
|
|
Packit Service |
fb6fa5 |
g_assert_not_reached ();
|
|
Packit Service |
fb6fa5 |
}
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
static void
|
|
Packit Service |
fb6fa5 |
specific_bug_346800 (void)
|
|
Packit Service |
fb6fa5 |
{
|
|
Packit Service |
fb6fa5 |
/* This is a test case for GNOME Bugzilla bug 346800. It was written
|
|
Packit Service |
fb6fa5 |
* by Jonathan Matthew.
|
|
Packit Service |
fb6fa5 |
*/
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
GtkTreeIter node_iters[50];
|
|
Packit Service |
fb6fa5 |
GtkTreeIter child_iters[50];
|
|
Packit Service |
fb6fa5 |
GtkTreeModel *model;
|
|
Packit Service |
fb6fa5 |
GtkTreeModelFilter *filter;
|
|
Packit Service |
fb6fa5 |
GtkTreeStore *store;
|
|
Packit Service |
fb6fa5 |
GType *columns;
|
|
Packit Service |
fb6fa5 |
int i;
|
|
Packit Service |
fb6fa5 |
int items = 50;
|
|
Packit Service |
fb6fa5 |
columns = g_new (GType, 2);
|
|
Packit Service |
fb6fa5 |
columns[0] = G_TYPE_STRING;
|
|
Packit Service |
fb6fa5 |
columns[1] = G_TYPE_BOOLEAN;
|
|
Packit Service |
fb6fa5 |
store = gtk_tree_store_newv (2, columns);
|
|
Packit Service |
fb6fa5 |
model = GTK_TREE_MODEL (store);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
filter = GTK_TREE_MODEL_FILTER (gtk_tree_model_filter_new (model, NULL));
|
|
Packit Service |
fb6fa5 |
gtk_tree_model_filter_set_visible_column (filter, 1);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
for (i=0; i
|
|
Packit Service |
fb6fa5 |
{
|
|
Packit Service |
fb6fa5 |
/* allocate random amounts of junk, otherwise the filter model's arrays can expand without moving */
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
g_malloc (138);
|
|
Packit Service |
fb6fa5 |
gtk_tree_store_append (store, &node_iters[i], NULL);
|
|
Packit Service |
fb6fa5 |
gtk_tree_store_set (store, &node_iters[i],
|
|
Packit Service |
fb6fa5 |
0, "something",
|
|
Packit Service |
fb6fa5 |
1, ((i%6) == 0) ? FALSE : TRUE,
|
|
Packit Service |
fb6fa5 |
-1);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
g_malloc (47);
|
|
Packit Service |
fb6fa5 |
gtk_tree_store_append (store, &child_iters[i], &node_iters[i]);
|
|
Packit Service |
fb6fa5 |
gtk_tree_store_set (store, &child_iters[i],
|
|
Packit Service |
fb6fa5 |
0, "something else",
|
|
Packit Service |
fb6fa5 |
1, FALSE,
|
|
Packit Service |
fb6fa5 |
-1);
|
|
Packit Service |
fb6fa5 |
gtk_tree_model_filter_refilter (filter);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
if (i > 6)
|
|
Packit Service |
fb6fa5 |
{
|
|
Packit Service |
fb6fa5 |
gtk_tree_store_set (GTK_TREE_STORE (model), &child_iters[i-1], 1,
|
|
Packit Service |
fb6fa5 |
(i & 1) ? TRUE : FALSE, -1);
|
|
Packit Service |
fb6fa5 |
gtk_tree_model_filter_refilter (filter);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
gtk_tree_store_set (GTK_TREE_STORE (model), &child_iters[i-2], 1,
|
|
Packit Service |
fb6fa5 |
(i & 1) ? FALSE: TRUE, -1);
|
|
Packit Service |
fb6fa5 |
gtk_tree_model_filter_refilter (filter);
|
|
Packit Service |
fb6fa5 |
}
|
|
Packit Service |
fb6fa5 |
}
|
|
Packit Service |
fb6fa5 |
}
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
static void
|
|
Packit Service |
fb6fa5 |
specific_bug_364946 (void)
|
|
Packit Service |
fb6fa5 |
{
|
|
Packit Service |
fb6fa5 |
/* This is a test case for GNOME Bugzilla bug 364946. It was written
|
|
Packit Service |
fb6fa5 |
* by Andreas Koehler.
|
|
Packit Service |
fb6fa5 |
*/
|
|
Packit Service |
fb6fa5 |
GtkTreeStore *store;
|
|
Packit Service |
fb6fa5 |
GtkTreeIter a, aa, aaa, aab, iter;
|
|
Packit Service |
fb6fa5 |
GtkTreeModel *s_model;
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
store = gtk_tree_store_new (1, G_TYPE_STRING);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
gtk_tree_store_append (store, &a, NULL);
|
|
Packit Service |
fb6fa5 |
gtk_tree_store_set (store, &a, 0, "0", -1);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
gtk_tree_store_append (store, &aa, &a);
|
|
Packit Service |
fb6fa5 |
gtk_tree_store_set (store, &aa, 0, "0:0", -1);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
gtk_tree_store_append (store, &aaa, &aa);
|
|
Packit Service |
fb6fa5 |
gtk_tree_store_set (store, &aaa, 0, "0:0:0", -1);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
gtk_tree_store_append (store, &aab, &aa);
|
|
Packit Service |
fb6fa5 |
gtk_tree_store_set (store, &aab, 0, "0:0:1", -1);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
s_model = gtk_tree_model_sort_new_with_model (GTK_TREE_MODEL (store));
|
|
Packit Service |
fb6fa5 |
gtk_tree_sortable_set_sort_column_id (GTK_TREE_SORTABLE (s_model), 0,
|
|
Packit Service |
fb6fa5 |
GTK_SORT_ASCENDING);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
gtk_tree_model_get_iter_from_string (s_model, &iter, "0:0:0");
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
gtk_tree_store_set (store, &aaa, 0, "0:0:0", -1);
|
|
Packit Service |
fb6fa5 |
gtk_tree_store_remove (store, &aaa;;
|
|
Packit Service |
fb6fa5 |
gtk_tree_store_remove (store, &aab;;
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
gtk_tree_model_sort_clear_cache (GTK_TREE_MODEL_SORT (s_model));
|
|
Packit Service |
fb6fa5 |
}
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
static gboolean
|
|
Packit Service |
fb6fa5 |
specific_bug_464173_visible_func (GtkTreeModel *model,
|
|
Packit Service |
fb6fa5 |
GtkTreeIter *iter,
|
|
Packit Service |
fb6fa5 |
gpointer data)
|
|
Packit Service |
fb6fa5 |
{
|
|
Packit Service |
fb6fa5 |
gboolean *visible = (gboolean *)data;
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
return *visible;
|
|
Packit Service |
fb6fa5 |
}
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
static void
|
|
Packit Service |
fb6fa5 |
specific_bug_464173 (void)
|
|
Packit Service |
fb6fa5 |
{
|
|
Packit Service |
fb6fa5 |
/* Test case for GNOME Bugzilla bug 464173, test case written
|
|
Packit Service |
fb6fa5 |
* by Andreas Koehler.
|
|
Packit Service |
fb6fa5 |
*/
|
|
Packit Service |
fb6fa5 |
GtkTreeStore *model;
|
|
Packit Service |
fb6fa5 |
GtkTreeModelFilter *f_model;
|
|
Packit Service |
fb6fa5 |
GtkTreeIter iter1, iter2;
|
|
Packit Service |
fb6fa5 |
GtkWidget *view;
|
|
Packit Service |
fb6fa5 |
gboolean visible = TRUE;
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
model = gtk_tree_store_new (1, G_TYPE_STRING);
|
|
Packit Service |
fb6fa5 |
gtk_tree_store_append (model, &iter1, NULL);
|
|
Packit Service |
fb6fa5 |
gtk_tree_store_set (model, &iter1, 0, "Foo", -1);
|
|
Packit Service |
fb6fa5 |
gtk_tree_store_append (model, &iter2, &iter1);
|
|
Packit Service |
fb6fa5 |
gtk_tree_store_set (model, &iter2, 0, "Bar", -1);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
f_model = GTK_TREE_MODEL_FILTER (gtk_tree_model_filter_new (GTK_TREE_MODEL(model), NULL));
|
|
Packit Service |
fb6fa5 |
gtk_tree_model_filter_set_visible_func (f_model,
|
|
Packit Service |
fb6fa5 |
specific_bug_464173_visible_func,
|
|
Packit Service |
fb6fa5 |
&visible, NULL);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
view = gtk_tree_view_new_with_model (GTK_TREE_MODEL (f_model));
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
visible = FALSE;
|
|
Packit Service |
fb6fa5 |
gtk_tree_model_filter_refilter (f_model);
|
|
Packit Service |
fb6fa5 |
}
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
static gboolean
|
|
Packit Service |
fb6fa5 |
specific_bug_540201_filter_func (GtkTreeModel *model,
|
|
Packit Service |
fb6fa5 |
GtkTreeIter *iter,
|
|
Packit Service |
fb6fa5 |
gpointer data)
|
|
Packit Service |
fb6fa5 |
{
|
|
Packit Service |
fb6fa5 |
gboolean has_children;
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
has_children = gtk_tree_model_iter_has_child (model, iter);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
return has_children;
|
|
Packit Service |
fb6fa5 |
}
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
static void
|
|
Packit Service |
fb6fa5 |
specific_bug_540201 (void)
|
|
Packit Service |
fb6fa5 |
{
|
|
Packit Service |
fb6fa5 |
/* Test case for GNOME Bugzilla bug 540201, steps provided by
|
|
Packit Service |
fb6fa5 |
* Charles Day.
|
|
Packit Service |
fb6fa5 |
*/
|
|
Packit Service |
fb6fa5 |
GtkTreeIter iter, root;
|
|
Packit Service |
fb6fa5 |
GtkTreeStore *store;
|
|
Packit Service |
fb6fa5 |
GtkTreeModel *filter;
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
GtkWidget *tree_view;
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
store = gtk_tree_store_new (1, G_TYPE_INT);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
gtk_tree_store_append (store, &root, NULL);
|
|
Packit Service |
fb6fa5 |
gtk_tree_store_set (store, &root, 0, 33, -1);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
filter = gtk_tree_model_filter_new (GTK_TREE_MODEL (store), NULL);
|
|
Packit Service |
fb6fa5 |
tree_view = gtk_tree_view_new_with_model (filter);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
gtk_tree_model_filter_set_visible_func (GTK_TREE_MODEL_FILTER (filter),
|
|
Packit Service |
fb6fa5 |
specific_bug_540201_filter_func,
|
|
Packit Service |
fb6fa5 |
NULL, NULL);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
gtk_tree_store_append (store, &iter, &root);
|
|
Packit Service |
fb6fa5 |
gtk_tree_store_set (store, &iter, 0, 50, -1);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
gtk_tree_store_append (store, &iter, &root);
|
|
Packit Service |
fb6fa5 |
gtk_tree_store_set (store, &iter, 0, 22, -1);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
gtk_tree_store_append (store, &root, NULL);
|
|
Packit Service |
fb6fa5 |
gtk_tree_store_set (store, &root, 0, 33, -1);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
gtk_tree_store_append (store, &iter, &root);
|
|
Packit Service |
fb6fa5 |
gtk_tree_store_set (store, &iter, 0, 22, -1);
|
|
Packit Service |
fb6fa5 |
}
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
static gboolean
|
|
Packit Service |
fb6fa5 |
specific_bug_549287_visible_func (GtkTreeModel *model,
|
|
Packit Service |
fb6fa5 |
GtkTreeIter *iter,
|
|
Packit Service |
fb6fa5 |
gpointer data)
|
|
Packit Service |
fb6fa5 |
{
|
|
Packit Service |
fb6fa5 |
gboolean result = FALSE;
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
result = gtk_tree_model_iter_has_child (model, iter);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
return result;
|
|
Packit Service |
fb6fa5 |
}
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
static void
|
|
Packit Service |
fb6fa5 |
specific_bug_549287 (void)
|
|
Packit Service |
fb6fa5 |
{
|
|
Packit Service |
fb6fa5 |
/* Test case for GNOME Bugzilla bug 529287, provided by Julient Puydt */
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
int i;
|
|
Packit Service |
fb6fa5 |
GtkTreeStore *store;
|
|
Packit Service |
fb6fa5 |
GtkTreeModel *filtered;
|
|
Packit Service |
fb6fa5 |
GtkWidget *view;
|
|
Packit Service |
fb6fa5 |
GtkTreeIter iter;
|
|
Packit Service |
fb6fa5 |
GtkTreeIter *swap, *parent, *child;
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
store = gtk_tree_store_new (1, G_TYPE_STRING);
|
|
Packit Service |
fb6fa5 |
filtered = gtk_tree_model_filter_new (GTK_TREE_MODEL (store), NULL);
|
|
Packit Service |
fb6fa5 |
gtk_tree_model_filter_set_visible_func (GTK_TREE_MODEL_FILTER (filtered),
|
|
Packit Service |
fb6fa5 |
specific_bug_549287_visible_func,
|
|
Packit Service |
fb6fa5 |
NULL, NULL);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
view = gtk_tree_view_new_with_model (filtered);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
for (i = 0; i < 4; i++)
|
|
Packit Service |
fb6fa5 |
{
|
|
Packit Service |
fb6fa5 |
if (gtk_tree_model_get_iter_first (GTK_TREE_MODEL (store), &iter))
|
|
Packit Service |
fb6fa5 |
{
|
|
Packit Service |
fb6fa5 |
parent = gtk_tree_iter_copy (&iter);
|
|
Packit Service |
fb6fa5 |
child = gtk_tree_iter_copy (&iter);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
while (gtk_tree_model_iter_nth_child (GTK_TREE_MODEL (store),
|
|
Packit Service |
fb6fa5 |
child, parent, 0))
|
|
Packit Service |
fb6fa5 |
{
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
swap = parent;
|
|
Packit Service |
fb6fa5 |
parent = child;
|
|
Packit Service |
fb6fa5 |
child = swap;
|
|
Packit Service |
fb6fa5 |
}
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
gtk_tree_store_append (store, child, parent);
|
|
Packit Service |
fb6fa5 |
gtk_tree_store_set (store, child,
|
|
Packit Service |
fb6fa5 |
0, "Something",
|
|
Packit Service |
fb6fa5 |
-1);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
gtk_tree_iter_free (parent);
|
|
Packit Service |
fb6fa5 |
gtk_tree_iter_free (child);
|
|
Packit Service |
fb6fa5 |
}
|
|
Packit Service |
fb6fa5 |
else
|
|
Packit Service |
fb6fa5 |
{
|
|
Packit Service |
fb6fa5 |
gtk_tree_store_append (store, &iter, NULL);
|
|
Packit Service |
fb6fa5 |
gtk_tree_store_set (store, &iter,
|
|
Packit Service |
fb6fa5 |
0, "Something",
|
|
Packit Service |
fb6fa5 |
-1);
|
|
Packit Service |
fb6fa5 |
}
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
/* since we inserted something, we changed the visibility conditions: */
|
|
Packit Service |
fb6fa5 |
gtk_tree_model_filter_refilter (GTK_TREE_MODEL_FILTER (filtered));
|
|
Packit Service |
fb6fa5 |
}
|
|
Packit Service |
fb6fa5 |
}
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
/* main */
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
int
|
|
Packit Service |
fb6fa5 |
main (int argc,
|
|
Packit Service |
fb6fa5 |
char **argv)
|
|
Packit Service |
fb6fa5 |
{
|
|
Packit Service |
fb6fa5 |
gtk_test_init (&argc, &argv, NULL);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
g_test_add ("/FilterModel/self/verify-test-suite",
|
|
Packit Service |
fb6fa5 |
FilterTest, NULL,
|
|
Packit Service |
fb6fa5 |
filter_test_setup,
|
|
Packit Service |
fb6fa5 |
verify_test_suite,
|
|
Packit Service |
fb6fa5 |
filter_test_teardown);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
g_test_add ("/FilterModel/self/verify-test-suite/vroot/depth-1",
|
|
Packit Service |
fb6fa5 |
FilterTest, gtk_tree_path_new_from_indices (2, -1),
|
|
Packit Service |
fb6fa5 |
filter_test_setup,
|
|
Packit Service |
fb6fa5 |
verify_test_suite_vroot,
|
|
Packit Service |
fb6fa5 |
filter_test_teardown);
|
|
Packit Service |
fb6fa5 |
g_test_add ("/FilterModel/self/verify-test-suite/vroot/depth-2",
|
|
Packit Service |
fb6fa5 |
FilterTest, gtk_tree_path_new_from_indices (2, 3, -1),
|
|
Packit Service |
fb6fa5 |
filter_test_setup,
|
|
Packit Service |
fb6fa5 |
verify_test_suite_vroot,
|
|
Packit Service |
fb6fa5 |
filter_test_teardown);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
g_test_add ("/FilterModel/filled/hide-root-level",
|
|
Packit Service |
fb6fa5 |
FilterTest, NULL,
|
|
Packit Service |
fb6fa5 |
filter_test_setup,
|
|
Packit Service |
fb6fa5 |
filled_hide_root_level,
|
|
Packit Service |
fb6fa5 |
filter_test_teardown);
|
|
Packit Service |
fb6fa5 |
g_test_add ("/FilterModel/filled/hide-child-levels",
|
|
Packit Service |
fb6fa5 |
FilterTest, NULL,
|
|
Packit Service |
fb6fa5 |
filter_test_setup,
|
|
Packit Service |
fb6fa5 |
filled_hide_child_levels,
|
|
Packit Service |
fb6fa5 |
filter_test_teardown);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
g_test_add ("/FilterModel/filled/hide-root-level/vroot",
|
|
Packit Service |
fb6fa5 |
FilterTest, gtk_tree_path_new_from_indices (2, -1),
|
|
Packit Service |
fb6fa5 |
filter_test_setup,
|
|
Packit Service |
fb6fa5 |
filled_vroot_hide_root_level,
|
|
Packit Service |
fb6fa5 |
filter_test_teardown);
|
|
Packit Service |
fb6fa5 |
g_test_add ("/FilterModel/filled/hide-child-levels/vroot",
|
|
Packit Service |
fb6fa5 |
FilterTest, gtk_tree_path_new_from_indices (2, -1),
|
|
Packit Service |
fb6fa5 |
filter_test_setup,
|
|
Packit Service |
fb6fa5 |
filled_vroot_hide_child_levels,
|
|
Packit Service |
fb6fa5 |
filter_test_teardown);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
g_test_add ("/FilterModel/empty/show-nodes",
|
|
Packit Service |
fb6fa5 |
FilterTest, NULL,
|
|
Packit Service |
fb6fa5 |
filter_test_setup_empty,
|
|
Packit Service |
fb6fa5 |
empty_show_nodes,
|
|
Packit Service |
fb6fa5 |
filter_test_teardown);
|
|
Packit Service |
fb6fa5 |
g_test_add ("/FilterModel/empty/show-multiple-nodes",
|
|
Packit Service |
fb6fa5 |
FilterTest, NULL,
|
|
Packit Service |
fb6fa5 |
filter_test_setup_empty,
|
|
Packit Service |
fb6fa5 |
empty_show_multiple_nodes,
|
|
Packit Service |
fb6fa5 |
filter_test_teardown);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
g_test_add ("/FilterModel/empty/show-nodes/vroot",
|
|
Packit Service |
fb6fa5 |
FilterTest, gtk_tree_path_new_from_indices (2, -1),
|
|
Packit Service |
fb6fa5 |
filter_test_setup_empty,
|
|
Packit Service |
fb6fa5 |
empty_vroot_show_nodes,
|
|
Packit Service |
fb6fa5 |
filter_test_teardown);
|
|
Packit Service |
fb6fa5 |
g_test_add ("/FilterModel/empty/show-multiple-nodes/vroot",
|
|
Packit Service |
fb6fa5 |
FilterTest, gtk_tree_path_new_from_indices (2, -1),
|
|
Packit Service |
fb6fa5 |
filter_test_setup_empty,
|
|
Packit Service |
fb6fa5 |
empty_vroot_show_multiple_nodes,
|
|
Packit Service |
fb6fa5 |
filter_test_teardown);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
g_test_add ("/FilterModel/unfiltered/hide-single",
|
|
Packit Service |
fb6fa5 |
FilterTest, NULL,
|
|
Packit Service |
fb6fa5 |
filter_test_setup_unfiltered,
|
|
Packit Service |
fb6fa5 |
unfiltered_hide_single,
|
|
Packit Service |
fb6fa5 |
filter_test_teardown);
|
|
Packit Service |
fb6fa5 |
g_test_add ("/FilterModel/unfiltered/hide-single-child",
|
|
Packit Service |
fb6fa5 |
FilterTest, NULL,
|
|
Packit Service |
fb6fa5 |
filter_test_setup_unfiltered,
|
|
Packit Service |
fb6fa5 |
unfiltered_hide_single_child,
|
|
Packit Service |
fb6fa5 |
filter_test_teardown);
|
|
Packit Service |
fb6fa5 |
g_test_add ("/FilterModel/unfiltered/hide-single-multi-level",
|
|
Packit Service |
fb6fa5 |
FilterTest, NULL,
|
|
Packit Service |
fb6fa5 |
filter_test_setup_unfiltered,
|
|
Packit Service |
fb6fa5 |
unfiltered_hide_single_multi_level,
|
|
Packit Service |
fb6fa5 |
filter_test_teardown);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
g_test_add ("/FilterModel/unfiltered/hide-single/vroot",
|
|
Packit Service |
fb6fa5 |
FilterTest, gtk_tree_path_new_from_indices (2, -1),
|
|
Packit Service |
fb6fa5 |
filter_test_setup_unfiltered,
|
|
Packit Service |
fb6fa5 |
unfiltered_vroot_hide_single,
|
|
Packit Service |
fb6fa5 |
filter_test_teardown);
|
|
Packit Service |
fb6fa5 |
g_test_add ("/FilterModel/unfiltered/hide-single-child/vroot",
|
|
Packit Service |
fb6fa5 |
FilterTest, gtk_tree_path_new_from_indices (2, -1),
|
|
Packit Service |
fb6fa5 |
filter_test_setup_unfiltered,
|
|
Packit Service |
fb6fa5 |
unfiltered_vroot_hide_single_child,
|
|
Packit Service |
fb6fa5 |
filter_test_teardown);
|
|
Packit Service |
fb6fa5 |
g_test_add ("/FilterModel/unfiltered/hide-single-multi-level/vroot",
|
|
Packit Service |
fb6fa5 |
FilterTest, gtk_tree_path_new_from_indices (2, -1),
|
|
Packit Service |
fb6fa5 |
filter_test_setup_unfiltered,
|
|
Packit Service |
fb6fa5 |
unfiltered_vroot_hide_single_multi_level,
|
|
Packit Service |
fb6fa5 |
filter_test_teardown);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
g_test_add ("/FilterModel/unfiltered/show-single",
|
|
Packit Service |
fb6fa5 |
FilterTest, NULL,
|
|
Packit Service |
fb6fa5 |
filter_test_setup_empty_unfiltered,
|
|
Packit Service |
fb6fa5 |
unfiltered_show_single,
|
|
Packit Service |
fb6fa5 |
filter_test_teardown);
|
|
Packit Service |
fb6fa5 |
g_test_add ("/FilterModel/unfiltered/show-single-child",
|
|
Packit Service |
fb6fa5 |
FilterTest, NULL,
|
|
Packit Service |
fb6fa5 |
filter_test_setup_empty_unfiltered,
|
|
Packit Service |
fb6fa5 |
unfiltered_show_single_child,
|
|
Packit Service |
fb6fa5 |
filter_test_teardown);
|
|
Packit Service |
fb6fa5 |
g_test_add ("/FilterModel/unfiltered/show-single-multi-level",
|
|
Packit Service |
fb6fa5 |
FilterTest, NULL,
|
|
Packit Service |
fb6fa5 |
filter_test_setup_empty_unfiltered,
|
|
Packit Service |
fb6fa5 |
unfiltered_show_single_multi_level,
|
|
Packit Service |
fb6fa5 |
filter_test_teardown);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
g_test_add ("/FilterModel/unfiltered/show-single/vroot",
|
|
Packit Service |
fb6fa5 |
FilterTest, gtk_tree_path_new_from_indices (2, -1),
|
|
Packit Service |
fb6fa5 |
filter_test_setup_empty_unfiltered,
|
|
Packit Service |
fb6fa5 |
unfiltered_vroot_show_single,
|
|
Packit Service |
fb6fa5 |
filter_test_teardown);
|
|
Packit Service |
fb6fa5 |
g_test_add ("/FilterModel/unfiltered/show-single-child/vroot",
|
|
Packit Service |
fb6fa5 |
FilterTest, gtk_tree_path_new_from_indices (2, -1),
|
|
Packit Service |
fb6fa5 |
filter_test_setup_empty_unfiltered,
|
|
Packit Service |
fb6fa5 |
unfiltered_vroot_show_single_child,
|
|
Packit Service |
fb6fa5 |
filter_test_teardown);
|
|
Packit Service |
fb6fa5 |
g_test_add ("/FilterModel/unfiltered/show-single-multi-level/vroot",
|
|
Packit Service |
fb6fa5 |
FilterTest, gtk_tree_path_new_from_indices (2, -1),
|
|
Packit Service |
fb6fa5 |
filter_test_setup_empty_unfiltered,
|
|
Packit Service |
fb6fa5 |
unfiltered_vroot_show_single_multi_level,
|
|
Packit Service |
fb6fa5 |
filter_test_teardown);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
g_test_add_func ("/FilterModel/specific/path-dependent-filter",
|
|
Packit Service |
fb6fa5 |
specific_path_dependent_filter);
|
|
Packit Service |
fb6fa5 |
g_test_add_func ("/FilterModel/specific/append-after-collapse",
|
|
Packit Service |
fb6fa5 |
specific_append_after_collapse);
|
|
Packit Service |
fb6fa5 |
g_test_add_func ("/FilterModel/specific/sort-filter-remove-node",
|
|
Packit Service |
fb6fa5 |
specific_sort_filter_remove_node);
|
|
Packit Service |
fb6fa5 |
g_test_add_func ("/FilterModel/specific/sort-filter-remove-root",
|
|
Packit Service |
fb6fa5 |
specific_sort_filter_remove_root);
|
|
Packit Service |
fb6fa5 |
g_test_add_func ("/FilterModel/specific/root-mixed-visibility",
|
|
Packit Service |
fb6fa5 |
specific_root_mixed_visibility);
|
|
Packit Service |
fb6fa5 |
g_test_add_func ("/FilterModel/specific/has-child-filter",
|
|
Packit Service |
fb6fa5 |
specific_has_child_filter);
|
|
Packit Service |
fb6fa5 |
g_test_add_func ("/FilterModel/specific/root-has-child-filter",
|
|
Packit Service |
fb6fa5 |
specific_root_has_child_filter);
|
|
Packit Service |
fb6fa5 |
g_test_add_func ("/FilterModel/specific/filter-add-child",
|
|
Packit Service |
fb6fa5 |
specific_filter_add_child);
|
|
Packit Service |
fb6fa5 |
g_test_add_func ("/FilterModel/specific/list-store-clear",
|
|
Packit Service |
fb6fa5 |
specific_list_store_clear);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
g_test_add_func ("/FilterModel/specific/bug-300089",
|
|
Packit Service |
fb6fa5 |
specific_bug_300089);
|
|
Packit Service |
fb6fa5 |
g_test_add_func ("/FilterModel/specific/bug-301558",
|
|
Packit Service |
fb6fa5 |
specific_bug_301558);
|
|
Packit Service |
fb6fa5 |
g_test_add_func ("/FilterModel/specific/bug-311955",
|
|
Packit Service |
fb6fa5 |
specific_bug_311955);
|
|
Packit Service |
fb6fa5 |
g_test_add_func ("/FilterModel/specific/bug-346800",
|
|
Packit Service |
fb6fa5 |
specific_bug_346800);
|
|
Packit Service |
fb6fa5 |
g_test_add_func ("/FilterModel/specific/bug-364946",
|
|
Packit Service |
fb6fa5 |
specific_bug_364946);
|
|
Packit Service |
fb6fa5 |
g_test_add_func ("/FilterModel/specific/bug-464173",
|
|
Packit Service |
fb6fa5 |
specific_bug_464173);
|
|
Packit Service |
fb6fa5 |
g_test_add_func ("/FilterModel/specific/bug-540201",
|
|
Packit Service |
fb6fa5 |
specific_bug_540201);
|
|
Packit Service |
fb6fa5 |
g_test_add_func ("/FilterModel/specific/bug-549287",
|
|
Packit Service |
fb6fa5 |
specific_bug_549287);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
return g_test_run ();
|
|
Packit Service |
fb6fa5 |
}
|