static void photos_search_type_manager_init (PhotosSearchTypeManager *self) { PhotosSearchType *search_type; gchar *item_filter; gchar *all_filter; gchar *col_filter; gchar *gif_filter; gif_filter = g_strdup ("nie:mimeType(?urn) != 'image/gif'"); item_filter = g_strdup_printf ("(fn:contains (?type, 'nmm#Photo') && %s)", gif_filter); col_filter = g_strdup_printf ("(fn:contains (?type, 'nfo#DataContainer')" " && ?count > 0" " && (fn:starts-with (nao:identifier (?urn), '%s')" " || (?urn = nfo:image-category-screenshot)))", PHOTOS_QUERY_COLLECTIONS_IDENTIFIER); all_filter = g_strdup_printf ("(%s || %s)", col_filter, item_filter); search_type = photos_search_type_new_full (PHOTOS_SEARCH_TYPE_STOCK_ALL, _("All"), "?urn a rdfs:Resource. " "OPTIONAL {?item a nmm:Photo; nie:isPartOf ?urn}", all_filter); photos_base_manager_add_object (PHOTOS_BASE_MANAGER (self), G_OBJECT (search_type)); g_object_unref (search_type); search_type = photos_search_type_new_full (PHOTOS_SEARCH_TYPE_STOCK_COLLECTIONS, _("Albums"), "?urn a nfo:DataContainer. " "?item a nmm:Photo; nie:isPartOf ?urn.", col_filter); photos_base_manager_add_object (PHOTOS_BASE_MANAGER (self), G_OBJECT (search_type)); g_object_unref (search_type); search_type = photos_search_type_new_full (PHOTOS_SEARCH_TYPE_STOCK_FAVORITES, _("Favorites"), "?urn a nmm:Photo; nao:hasTag nao:predefined-tag-favorite. ", gif_filter); photos_base_manager_add_object (PHOTOS_BASE_MANAGER (self), G_OBJECT (search_type)); g_object_unref (search_type); search_type = photos_search_type_new_full (PHOTOS_SEARCH_TYPE_STOCK_PHOTOS, _("Photos"), "?urn a nmm:Photo", gif_filter); photos_base_manager_add_object (PHOTOS_BASE_MANAGER (self), G_OBJECT (search_type)); g_object_unref (search_type); photos_base_manager_set_active_object_by_id (PHOTOS_BASE_MANAGER (self), PHOTOS_SEARCH_TYPE_STOCK_PHOTOS); g_free (item_filter); g_free (all_filter); g_free (col_filter); g_free (gif_filter); }
static void photos_search_type_manager_init (PhotosSearchTypeManager *self) { PhotosSearchType *search_type; gchar *item_filter; gchar *all_filter; gchar *blacklisted_mime_types_filter; gchar *col_filter; gchar **strv; guint i; guint n_elements; n_elements = G_N_ELEMENTS (BLACKLISTED_MIME_TYPES); strv = (gchar **) g_malloc0_n (n_elements + 1, sizeof (gchar *)); for (i = 0; i < n_elements; i++) strv[i] = g_strdup_printf ("nie:mimeType(?urn) != '%s'", BLACKLISTED_MIME_TYPES[i]); blacklisted_mime_types_filter = g_strjoinv (" && ", strv); item_filter = g_strdup_printf ("(fn:contains (?type, 'nmm#Photo') && %s)", blacklisted_mime_types_filter); col_filter = g_strdup_printf ("(fn:contains (?type, 'nfo#DataContainer')" " && ?count > 0" " && (fn:starts-with (nao:identifier (?urn), '%s')" " || (?urn = nfo:image-category-screenshot)))", PHOTOS_QUERY_COLLECTIONS_IDENTIFIER); all_filter = g_strdup_printf ("(%s || %s)", col_filter, item_filter); search_type = photos_search_type_new_full (PHOTOS_SEARCH_TYPE_STOCK_ALL, _("All"), "?urn a rdfs:Resource. " "OPTIONAL {?item a nmm:Photo; nie:isPartOf ?urn}", all_filter); photos_base_manager_add_object (PHOTOS_BASE_MANAGER (self), G_OBJECT (search_type)); g_object_unref (search_type); search_type = photos_search_type_new_full (PHOTOS_SEARCH_TYPE_STOCK_COLLECTIONS, _("Albums"), "?urn a nfo:DataContainer. " "?item a nmm:Photo; nie:isPartOf ?urn.", col_filter); photos_base_manager_add_object (PHOTOS_BASE_MANAGER (self), G_OBJECT (search_type)); g_object_unref (search_type); search_type = photos_search_type_new_full (PHOTOS_SEARCH_TYPE_STOCK_FAVORITES, _("Favorites"), "?urn a nmm:Photo; nao:hasTag nao:predefined-tag-favorite. ", blacklisted_mime_types_filter); photos_base_manager_add_object (PHOTOS_BASE_MANAGER (self), G_OBJECT (search_type)); g_object_unref (search_type); search_type = photos_search_type_new_full (PHOTOS_SEARCH_TYPE_STOCK_PHOTOS, _("Photos"), "?urn a nmm:Photo", blacklisted_mime_types_filter); photos_base_manager_add_object (PHOTOS_BASE_MANAGER (self), G_OBJECT (search_type)); g_object_unref (search_type); photos_base_manager_set_active_object_by_id (PHOTOS_BASE_MANAGER (self), PHOTOS_SEARCH_TYPE_STOCK_ALL); g_free (item_filter); g_free (all_filter); g_free (blacklisted_mime_types_filter); g_free (col_filter); g_strfreev (strv); }