예제 #1
0
static GomFilter *
substr_filter (const char *column,
               const char *text)
{
  GValue value = { 0, };
  GomFilter *filter;
  char *str;

  g_value_init (&value, G_TYPE_STRING);
  str = g_strdup_printf ("%%%s%%", text);
  g_value_set_string (&value, str);
  g_free (str);

  filter = gom_filter_new_like (BOOKMARKS_TYPE_RESOURCE, column, &value);
  g_value_unset (&value);

  return filter;
}
예제 #2
0
파일: test-gom-find.c 프로젝트: GNOME/gom
static void
migrate_cb (GObject      *object,
            GAsyncResult *result,
            gpointer      user_data)
{
   GomRepository *repository = (GomRepository *)object;
   GomAdapter *adapter;
   gboolean ret;
   GError *error = NULL;
   GomResource *resource;
   GomFilter *filter;
   GValue value = { 0, };
   char *url, *thumbnail_url;
   gboolean favourite;

   ret = gom_repository_migrate_finish(repository, result, &error);
   g_assert_no_error(error);
   g_assert(ret);

   /* Get the item containing "sherwood" */
   g_value_init(&value, G_TYPE_STRING);
   g_value_set_string(&value, "%sherwood%");
   filter = gom_filter_new_like(BOOKMARKS_TYPE_RESOURCE, "title", &value);
   g_value_unset(&value);
   resource = gom_repository_find_one_sync(repository,
                                           BOOKMARKS_TYPE_RESOURCE,
                                           filter,
                                           &error);
   g_assert_no_error(error);
   g_assert(resource);

   g_object_get(resource, "url", &url, NULL);
   g_assert_cmpstr(url, ==, "file:///home/hadess/.cache/totem/media/b91c194d5725c4586e583c4963233a3ae3c28ea3e2cc2019f903089911dd6d45");
   g_free(url);

   /* Modify the item */
   g_object_set(resource, "url", "file:///tmp/test", "thumbnail-url", "file:///tmp/test-thumbnail", "favourite", TRUE, NULL);
   ret = gom_resource_save_sync(resource, &error);
   g_assert_no_error(error);
   g_assert(ret);
   g_object_unref(resource);

   /* Fetch it again */
   resource = gom_repository_find_one_sync(repository,
                                           BOOKMARKS_TYPE_RESOURCE,
                                           filter,
                                           &error);
   g_assert_no_error(error);
   g_assert(resource);

   g_object_get(resource, "url", &url, "thumbnail-url", &thumbnail_url, "favourite", &favourite, NULL);
   g_assert_cmpstr(url, ==, "file:///tmp/test");
   g_assert_cmpstr(thumbnail_url, ==, "file:///tmp/test-thumbnail");
   g_assert(favourite);
   g_free(url);
   g_free(thumbnail_url);

   g_object_unref(filter);

   adapter = gom_repository_get_adapter(repository);
   gom_adapter_close_async(adapter, close_cb, user_data);
}