source = new CatalogSource ("Loaned", _("Loaned movies"), _("Movies loaned to friends"), sqlite, !("Loaned" in hidden_sources));
sources.append (source);
- source = new CatalogSource ("Watched", _("Watched movies"), _("Watched / rated movies"), sqlite, !("Watched" in hidden_sources));
+ source = new WatchedSource (sqlite, !("Watched" in hidden_sources));
sources.append (source);
source = new CatalogSource ("Watchlist", _("Watchlist"), _("Movies of interest"), sqlite, !("Watchlist" in hidden_sources));
class CatalogSource : MovieSource {
internal string table;
- private string name;
- private string description;
- private CatalogSqlite sqlite;
+ internal string name;
+ internal string description;
+ internal CatalogSqlite sqlite;
public CatalogSource (string _table, string _name, string _description, CatalogSqlite _sqlite, bool _active) {
GLib.Object (active: _active);
}
}
+class WatchedSource : CatalogSource {
+ public WatchedSource (CatalogSqlite _sqlite, bool _active) {
+ GLib.Object (active: _active);
+ table = "Watched";
+ name = _("Watched movies");
+ description = _("Watched / rated movies");
+ sqlite = _sqlite;
+ }
+
+ public override async int get_movies (MovieFilter filter, MovieSource.ReceiveMovieFunction callback, int limit, Cancellable? cancellable) {
+ int n = yield sqlite.query (table, filter, callback, limit, cancellable);
+ return n;
+ }
+
+ public override SourceFlags get_flags () {
+ return SourceFlags.EDITABLE | SourceFlags.RATING;
+ }
+}
+
[ModuleInit]
public Type register_plugin (TypeModule module) {
// types are registered automatically