public MovieSource source {
set {
- if (value.get_editable ()) {
+ if (SourceFlags.EDITABLE in value.get_flags ()) {
delete_movies.show ();
} else {
delete_movies.hide ();
movie.notify.disconnect (this.on_movie_changed);
base.remove (iter);
- if (source.get_editable ()) {
+ if (SourceFlags.EDITABLE in source.get_flags ()) {
source.delete_movie (movie);
}
}
public bool get_editable () {
- return source.get_editable ();
+ return (SourceFlags.EDITABLE in source.get_flags ());
}
public bool get_iter_from_movie (out TreeIter iter, Movie movie_a) {
filter = new MovieFilter ();
menu.filter = filter;
filter.title = "";
+ if (SourceFlags.ONLINE in source.get_flags ()) {
+ no_movies.hide ();
+ search_bar_visible = true;
+ search_bar.show ();
+ search_field.grab_focus ();
+ return;
+ }
if (store.start_search (filter)) {
no_movies.hide ();
} else {
public abstract unowned string get_name ();
}
+public enum SourceFlags {
+ EDITABLE = 1,
+ ONLINE = 2,
+}
+
public abstract class MovieSource : Object {
public abstract bool active { get; set construct; }
public abstract unowned string get_description ();
- public abstract bool get_editable ();
+ public abstract SourceFlags get_flags ();
}
public class MovieAction : Object {
return description;
}
- public override bool get_editable () {
- return true;
+ public override SourceFlags get_flags () {
+ return SourceFlags.EDITABLE;
}
}
return description;
}
- public override bool get_editable () {
- return false;
+ public override SourceFlags get_flags () {
+ return SourceFlags.ONLINE;
}
}
return _("Movies on IMDb");
}
- public override bool get_editable () {
- return false;
+ public override SourceFlags get_flags () {
+ return 0;
}
}
return description;
}
- public override bool get_editable () {
- return false;
+ public override SourceFlags get_flags () {
+ return SourceFlags.ONLINE;
}
}