Banshee.Sources.DatabaseSource.CreateFiltersFor C# (CSharp) Method

CreateFiltersFor() protected method

protected CreateFiltersFor ( DatabaseSource src ) : IEnumerable
src DatabaseSource
return IEnumerable
        protected virtual IEnumerable<IFilterListModel> CreateFiltersFor (DatabaseSource src)
        {
            if (!HasArtistAlbum) {
                yield break;
            }

            DatabaseArtistListModel artist_model = new DatabaseArtistListModel (src, src.DatabaseTrackModel, ServiceManager.DbConnection, src.UniqueId);
            DatabaseAlbumListModel album_model = new DatabaseAlbumListModel (src, src.DatabaseTrackModel, ServiceManager.DbConnection, src.UniqueId);
            DatabaseQueryFilterModel<string> genre_model = new DatabaseQueryFilterModel<string> (src, src.DatabaseTrackModel, ServiceManager.DbConnection,
                        Catalog.GetString ("All Genres ({0})"), src.UniqueId, BansheeQuery.GenreField, "Genre");

            if (this == src) {
                this.artist_model = artist_model;
                this.album_model = album_model;
                this.genre_model = genre_model;
            }

            yield return artist_model;
            yield return album_model;
            yield return genre_model;
        }

Usage Example

Exemplo n.º 1
0
        private void DatabaseSourceInitialize()
        {
            InitializeTrackModel();

            current_filters_schema = CreateSchema <string[]> ("current_filters");

            DatabaseSource filter_src = Parent as DatabaseSource ?? this;

            foreach (IFilterListModel filter in filter_src.CreateFiltersFor(this))
            {
                AvailableFilters.Add(filter);
                DefaultFilters.Add(filter);
            }

            reload_limiter = new RateLimiter(RateLimitedReload);
        }