projects
/
cinaest
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Movie list store & view: store prepared title + year markup and rating text
[cinaest]
/
src
/
movie-list-store.vala
diff --git
a/src/movie-list-store.vala
b/src/movie-list-store.vala
index
09d6c1d
..
852690f
100644
(file)
--- a/
src/movie-list-store.vala
+++ b/
src/movie-list-store.vala
@@
-25,22
+25,27
@@
public class MovieListStore : ListStore, TreeModel {
RATING,
POSTER,
MOVIE,
RATING,
POSTER,
MOVIE,
+ MARKUP,
N_COLUMNS
}
private GLib.Type[] types = {
typeof (string),
typeof (int),
N_COLUMNS
}
private GLib.Type[] types = {
typeof (string),
typeof (int),
- typeof (int),
+ typeof (string),
typeof (Gdk.Pixbuf),
typeof (Gdk.Pixbuf),
- typeof (Movie)
+ typeof (Movie),
+ typeof (string)
};
private GLib.Type[] base_type = {
};
private GLib.Type[] base_type = {
- typeof (Movie)
+ typeof (Movie),
+ typeof (string), // Markup: "Title (Year)"
+ typeof (string) // Rating
};
private Gdk.Pixbuf no_poster;
private MoviePoster.Factory poster_factory;
private MovieFilter filter;
public bool update_running { get; set; }
};
private Gdk.Pixbuf no_poster;
private MoviePoster.Factory poster_factory;
private MovieFilter filter;
public bool update_running { get; set; }
+ public string year_markup = "<span size=\"small\">[%d]</span>";
private Cancellable cancellable;
public signal void search_finished (int movies);
private Cancellable cancellable;
public signal void search_finished (int movies);
@@
-66,9
+71,17
@@
public class MovieListStore : ListStore, TreeModel {
public void add (Movie movie, out TreeIter iter) {
TreeIter iter1;
public void add (Movie movie, out TreeIter iter) {
TreeIter iter1;
+ var markup = new StringBuilder ();
+ markup.append (Markup.escape_text (movie.title));
+ if (movie.year > 0) {
+ markup.append (" ");
+ markup.append_printf (year_markup, movie.year);
+ }
append (out iter1);
append (out iter1);
- base.set (iter1, 0, movie);
+ base.set (iter1, 0, movie,
+ 1, markup.str,
+ 2, (movie.rating >= 0) ? "%d.%d".printf (movie.rating / 10, movie.rating % 10) : null);
movie.notify.connect (this.on_movie_changed);
movie.notify.connect (this.on_movie_changed);
@@
-230,11
+243,7
@@
public class MovieListStore : ListStore, TreeModel {
break;
case Columns.RATING:
break;
case Columns.RATING:
- if (movie != null) {
- value.set_int (movie.rating);
- } else {
- value.set_int (-1);
- }
+ base.get_value (iter, 2, out value);
break;
case Columns.POSTER:
break;
case Columns.POSTER:
@@
-248,6
+257,10
@@
public class MovieListStore : ListStore, TreeModel {
value.set_object (movie);
break;
value.set_object (movie);
break;
+ case Columns.MARKUP:
+ base.get_value (iter, 1, out value);
+ break;
+
default:
assert_not_reached ();
}
default:
assert_not_reached ();
}