public MovieEditor(iMetaLibrary.Metadata.MovieMeta Meta) { this.Build (); this.Meta = Meta; #region setup the actors datagrid store = new NodeStore(typeof(ActorNode)); CellRendererText nameRender = new CellRendererText(){ Editable = true, }; nameRender.Edited += delegate(object o, EditedArgs args) { // update the text ActorNode node = (ActorNode)store.GetNode(new Gtk.TreePath(args.Path)); node.Name = args.NewText; }; nvActors.AppendColumn("Name", nameRender, "text", 0); CellRendererText roleRender = new CellRendererText(){ Editable = true, }; roleRender.Edited += delegate(object o, EditedArgs args) { // update the text ActorNode node = (ActorNode)store.GetNode(new Gtk.TreePath(args.Path)); node.Role = args.NewText; }; nvActors.AppendColumn("Role", roleRender, "text", 1); nvActors.NodeStore = store; btnActorsRemove.Clicked += delegate { ActorNode node = nvActors.NodeSelection.SelectedNode as ActorNode; if(node != null) store.RemoveNode(node); }; btnActorsAdd.Clicked += delegate { var node = new ActorNode(); store.AddNode(node); nvActors.NodeSelection.SelectNode(node); int _n = 0; var enumerator = store.GetEnumerator(); while(enumerator.MoveNext()) _n++; nvActors.ScrollToCell(new TreePath(new int[] {_n-1}), null, false, 0, 0); }; #endregion if(Meta.Actors != null){ foreach(var actor in Meta.Actors) store.AddNode(new ActorNode() { Name = actor.Key, Role = actor.Value}); } txtTitle.Text = Meta.Title ?? ""; txtSortTitle.Text = Meta.SortTitle ?? ""; txtSet.Text = Meta.Set ?? ""; txtTagline.Text = Meta.TagLine ?? ""; txtGenres.Text = String.Join(", ", Meta.Genres ?? new string[] {}); txtDirectors.Text = String.Join(", ", Meta.Directors ?? new string[] {}); txtWriters.Text = String.Join(", ", Meta.Writers ?? new string[] {}); txtTrailer.Text = Meta.Trailer ?? ""; txtImdbId.Text = Meta.Id ?? ""; txtMpaa.Text = Meta.Mpaa ?? ""; txtReleaseDate.Text = Meta.ReleaseDate > new DateTime(1850, 1,1) ? Meta.ReleaseDate.ToString("yyyy-MM-dd") : ""; txtPlot.Buffer.Text = Meta.Plot ?? ""; numRuntime.Value = Meta.Runtime / 60; // convert seconds to minutes ratingwidget.Value = (int)Meta.Rating; Poster = GuiHelper.ImageToPixbuf(Meta.LoadThumbnail(290, 1000)); //ratingwidget.Visible = false; buttonOk.Clicked += delegate { Save (); }; eventPoster.ButtonPressEvent += delegate{ BrowseForNewPoster(); }; }
public MovieEditor(iMetaLibrary.Metadata.MovieMeta Meta) { this.Build(); this.Meta = Meta; #region setup the actors datagrid store = new NodeStore(typeof(ActorNode)); CellRendererText nameRender = new CellRendererText() { Editable = true, }; nameRender.Edited += delegate(object o, EditedArgs args) { // update the text ActorNode node = (ActorNode)store.GetNode(new Gtk.TreePath(args.Path)); node.Name = args.NewText; }; nvActors.AppendColumn("Name", nameRender, "text", 0); CellRendererText roleRender = new CellRendererText() { Editable = true, }; roleRender.Edited += delegate(object o, EditedArgs args) { // update the text ActorNode node = (ActorNode)store.GetNode(new Gtk.TreePath(args.Path)); node.Role = args.NewText; }; nvActors.AppendColumn("Role", roleRender, "text", 1); nvActors.NodeStore = store; btnActorsRemove.Clicked += delegate { ActorNode node = nvActors.NodeSelection.SelectedNode as ActorNode; if (node != null) { store.RemoveNode(node); } }; btnActorsAdd.Clicked += delegate { var node = new ActorNode(); store.AddNode(node); nvActors.NodeSelection.SelectNode(node); int _n = 0; var enumerator = store.GetEnumerator(); while (enumerator.MoveNext()) { _n++; } nvActors.ScrollToCell(new TreePath(new int[] { _n - 1 }), null, false, 0, 0); }; #endregion if (Meta.Actors != null) { foreach (var actor in Meta.Actors) { store.AddNode(new ActorNode() { Name = actor.Key, Role = actor.Value }); } } txtTitle.Text = Meta.Title ?? ""; txtSortTitle.Text = Meta.SortTitle ?? ""; txtSet.Text = Meta.Set ?? ""; txtTagline.Text = Meta.TagLine ?? ""; txtGenres.Text = String.Join(", ", Meta.Genres ?? new string[] {}); txtDirectors.Text = String.Join(", ", Meta.Directors ?? new string[] {}); txtWriters.Text = String.Join(", ", Meta.Writers ?? new string[] {}); txtTrailer.Text = Meta.Trailer ?? ""; txtImdbId.Text = Meta.Id ?? ""; txtMpaa.Text = Meta.Mpaa ?? ""; txtReleaseDate.Text = Meta.ReleaseDate > new DateTime(1850, 1, 1) ? Meta.ReleaseDate.ToString("yyyy-MM-dd") : ""; txtPlot.Buffer.Text = Meta.Plot ?? ""; numRuntime.Value = Meta.Runtime / 60; // convert seconds to minutes ratingwidget.Value = (int)Meta.Rating; Poster = GuiHelper.ImageToPixbuf(Meta.LoadThumbnail(290, 1000)); //ratingwidget.Visible = false; buttonOk.Clicked += delegate { Save(); }; eventPoster.ButtonPressEvent += delegate { BrowseForNewPoster(); }; }