private void AddMovieButton_Click(object sender, RoutedEventArgs e) { if (ProjectIsNotNull()) { var result = openMovieDialog.ShowDialog(this); if (result.GetValueOrDefault()) { if (File.Exists(openMovieDialog.FileName)) { var moviePath = openMovieDialog.FileName; var metaDataPath = String.Format("{0}.csmd", moviePath); var metaData = new ClipSynthMetaData(); if (File.Exists(metaDataPath)) { metaData.Path = metaDataPath; ClipSynthMetaData.Load(ref metaData); } else { MessageBox.Show("Meta data file not found! Please ensure you generate this movie file using ClipSynth", "ClipSynth Warning"); } var movie = new ClipSynthMovie() { Path = moviePath, Thumbnail = metaData.Thumbnail, MetaData = metaDataPath, Start = 1, End = metaData.Frames, UniqueId = project.GetUniqueId(), }; project.Movies.Add(movie); ListBox_AddItem(movie); } } project.Dirty = true; } }
private void ListBox_AddItem(ClipSynthMovie movie) { // Meta data intelligent check/fix if (!File.Exists(movie.Thumbnail)) { var metaDataThumbnail = IOPath.Combine(IOPath.GetDirectoryName(movie.Path), IOPath.GetFileName(movie.Thumbnail)); if (File.Exists(metaDataThumbnail)) { movie.Thumbnail = metaDataThumbnail; // Fix meta data file var metaData = new ClipSynthMetaData(); metaData.Path = movie.MetaData; ClipSynthMetaData.Load(ref metaData); metaData.Movie = movie.Path; metaData.Thumbnail = metaDataThumbnail; ClipSynthMetaData.Save(ref metaData); } } var item = new ListBoxItem(); var checkBoxContent = new CheckBoxContent(movie.Path, IOPath.GetFileName(movie.Path), ListBoxCheckBox_Checked, movie.Thumbnail, movie.Start, movie.End, movie.UniqueId); checkBoxContent.Tag = movie; checkBoxContent.CheckBox.IsChecked = movie.Checked; checkBoxContent.Label.ToolTip = movie.Path; checkBoxContent.Label.Tag = movie.Path; item.Content = checkBoxContent; checkBoxContent.StartTextBox.TextChanged += ListBoxTextBox_TextChanged; checkBoxContent.EndTextBox.TextChanged += ListBoxTextBox_TextChanged; FileListBox.Items.Add(item); }