static gboolean
get_is_recent_filtered (GtkRecentFilter *filter,
			GtkRecentInfo   *info)
{
  GtkRecentFilterInfo filter_info;
  GtkRecentFilterFlags needed;
  gboolean retval;

  g_assert (info != NULL);
  
  needed = gtk_recent_filter_get_needed (filter);
  
  filter_info.contains = GTK_RECENT_FILTER_URI | GTK_RECENT_FILTER_MIME_TYPE;
  
  filter_info.uri = gtk_recent_info_get_uri (info);
  filter_info.mime_type = gtk_recent_info_get_mime_type (info);
  
  if (needed & GTK_RECENT_FILTER_DISPLAY_NAME)
    {
      filter_info.display_name = gtk_recent_info_get_display_name (info);
      filter_info.contains |= GTK_RECENT_FILTER_DISPLAY_NAME;
    }
  else
    filter_info.uri = NULL;
  
  if (needed & GTK_RECENT_FILTER_APPLICATION)
    {
      filter_info.applications = (const gchar **) gtk_recent_info_get_applications (info, NULL);
      filter_info.contains |= GTK_RECENT_FILTER_APPLICATION;
    }
  else
    filter_info.applications = NULL;

  if (needed & GTK_RECENT_FILTER_GROUP)
    {
      filter_info.groups = (const gchar **) gtk_recent_info_get_groups (info, NULL);
      filter_info.contains |= GTK_RECENT_FILTER_GROUP;
    }
  else
    filter_info.groups = NULL;

  if (needed & GTK_RECENT_FILTER_AGE)
    {
      filter_info.age = gtk_recent_info_get_age (info);
      filter_info.contains |= GTK_RECENT_FILTER_AGE;
    }
  else
    filter_info.age = -1;
  
  retval = gtk_recent_filter_filter (filter, &filter_info);
  
  /* these we own */
  if (filter_info.applications)
    g_strfreev ((gchar **) filter_info.applications);
  if (filter_info.groups)
    g_strfreev ((gchar **) filter_info.groups);
  
  return !retval;
}
Esempio n. 2
0
static void
populate_filter_info (GtkRecentInfo        *info,
                      GtkRecentFilterInfo  *filter_info,
                      GtkRecentFilterFlags  needed)
{
    filter_info->uri = gtk_recent_info_get_uri (info);
    filter_info->mime_type = gtk_recent_info_get_mime_type (info);

    filter_info->contains = GTK_RECENT_FILTER_URI | GTK_RECENT_FILTER_MIME_TYPE;

    if (needed & GTK_RECENT_FILTER_DISPLAY_NAME)
    {
        filter_info->display_name = gtk_recent_info_get_display_name (info);
        filter_info->contains |= GTK_RECENT_FILTER_DISPLAY_NAME;
    }
    else
    {
        filter_info->uri = NULL;
    }

    if (needed & GTK_RECENT_FILTER_APPLICATION)
    {
        filter_info->applications = (const gchar **) gtk_recent_info_get_applications (info, NULL);
        filter_info->contains |= GTK_RECENT_FILTER_APPLICATION;
    }
    else
    {
        filter_info->applications = NULL;
    }

    if (needed & GTK_RECENT_FILTER_GROUP)
    {
        filter_info->groups = (const gchar **) gtk_recent_info_get_groups (info, NULL);
        filter_info->contains |= GTK_RECENT_FILTER_GROUP;
    }
    else
    {
        filter_info->groups = NULL;
    }

    if (needed & GTK_RECENT_FILTER_AGE)
    {
        filter_info->age = gtk_recent_info_get_age (info);
        filter_info->contains |= GTK_RECENT_FILTER_AGE;
    }
    else
    {
        filter_info->age = -1;
    }
}
Esempio n. 3
0
static VALUE
rg_age(VALUE self)
{
    return INT2NUM(gtk_recent_info_get_age(_SELF(self)));
}