bool VideoFilterSettings::matches_filter(const VideoMetadata &mdata) const { bool matches = true; //textfilter if (!textfilter.isEmpty()) { matches = false; matches = matches || mdata.GetTitle().contains(textfilter, Qt::CaseInsensitive); matches = matches || mdata.GetSubtitle().contains(textfilter, Qt::CaseInsensitive); matches = matches || mdata.GetPlot().contains(textfilter, Qt::CaseInsensitive); } //search for season with optionally episode nr. if (matches && season != -1) { matches = season == mdata.GetSeason(); matches = matches && (episode == -1 || episode == mdata.GetEpisode()); } if (matches && insertdate.isValid()) { matches = mdata.GetInsertdate().isValid() && mdata.GetInsertdate() >= insertdate; } if (matches && genre != kGenreFilterAll) { matches = false; const VideoMetadata::genre_list &gl = mdata.GetGenres(); for (VideoMetadata::genre_list::const_iterator p = gl.begin(); p != gl.end(); ++p) { if ((matches = p->first == genre)) { break; } } } if (matches && country != kCountryFilterAll) { matches = false; const VideoMetadata::country_list &cl = mdata.GetCountries(); for (VideoMetadata::country_list::const_iterator p = cl.begin(); p != cl.end(); ++p) { if ((matches = p->first == country)) { break; } } } if (matches && cast != kCastFilterAll) { const VideoMetadata::cast_list &cl = mdata.GetCast(); if (cast == kCastFilterUnknown && cl.size() == 0) { matches = true; } else { matches = false; for (VideoMetadata::cast_list::const_iterator p = cl.begin(); p != cl.end(); ++p) { if ((matches = p->first == cast)) { break; } } } } if (matches && category != kCategoryFilterAll) { matches = category == mdata.GetCategoryID(); } if (matches && year != kYearFilterAll) { if (year == kYearFilterUnknown) { matches = (mdata.GetYear() == 0) || (mdata.GetYear() == VIDEO_YEAR_DEFAULT); } else { matches = year == mdata.GetYear(); } } if (matches && runtime != kRuntimeFilterAll) { if (runtime == kRuntimeFilterUnknown) { matches = mdata.GetLength() == 0; } else { matches = runtime == (mdata.GetLength() / 30); } } if (matches && userrating != kUserRatingFilterAll) { matches = mdata.GetUserRating() >= userrating; } if (matches && browse != kBrowseFilterAll) { matches = mdata.GetBrowse() == browse; } if (matches && watched != kWatchedFilterAll) { matches = mdata.GetWatched() == watched; } if (matches && m_inetref != kInetRefFilterAll) { matches = mdata.GetInetRef() == VIDEO_INETREF_DEFAULT; } if (matches && m_coverfile != kCoverFileFilterAll) { matches = IsDefaultCoverFile(mdata.GetCoverFile()); } if (matches && m_parental_level) { matches = (mdata.GetShowLevel() != ParentalLevel::plNone) && (mdata.GetShowLevel() <= m_parental_level); } return matches; }
QString GetDisplayCountries(const VideoMetadata &item) { QStringList ret; CopySecond(item.GetCountries(), ret); return ret.join(", "); }