Exemple #1
0
 void BrowseForNewPoster()
 {
     using (Gtk.FileChooserDialog fc = new Gtk.FileChooserDialog("Choose a new Poster.",
                                                                 this,
                                                                 FileChooserAction.Open,
                                                                 "Cancel", ResponseType.Cancel,
                                                                 "Open", ResponseType.Accept))
     {
         fc.LocalOnly = false;
         FileFilter filter = new FileFilter();
         filter.Name = "Images";
         filter.AddMimeType("image/png");
         filter.AddMimeType("image/jpeg");
         filter.AddMimeType("image/gif");
         filter.AddPattern("*.png");
         filter.AddPattern("*.jpg");
         filter.AddPattern("*.jpeg");
         filter.AddPattern("*.jpe");
         filter.AddPattern("*.gif");
         filter.AddPattern("*.tbn");
         fc.AddFilter(filter);
         if (fc.Run() == (int)ResponseType.Accept)
         {
             try
             {
                 // get the new poster
                 string newposter = new System.IO.FileInfo(fc.Filename).FullName;
                 using (System.Drawing.Image poster = System.Drawing.Image.FromFile(newposter))
                 {
                     iMetaLibrary.Helpers.ImageHelper.SavePoster(poster, Meta.PosterFilename);
                     if (Poster != null)
                     {
                         Poster.Dispose();
                     }
                     Poster = GuiHelper.ImageToPixbuf(poster);
                     ExposeIt();
                 }
             }
             catch (Exception ex)
             {
                 MessageBox.Show(ex.Message);
             }
         }
         //Don't forget to call Destroy() or the FileChooserDialog window won't get closed.
         fc.Destroy();
     }
 }
Exemple #2
0
        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();
            };
        }