private void OpenLibrary_Click(object sender, RoutedEventArgs e) { e.Handled = true; if (_dirty) { if (System.Windows.MessageBox.Show("Save Library first?", "Slm", MessageBoxButton.YesNo) == MessageBoxResult.Yes) { if (!CheckLibraryFileName()) { return; } _slideLib.Save(); } } // Clear / New library Microsoft.Win32.OpenFileDialog dlg = new Microsoft.Win32.OpenFileDialog(); dlg.DefaultExt = ".slb"; // Default file extension dlg.Filter = "AutoCAD Slide Library|*.slb|AutoCAD Slide|*.sld"; // Filter files by extension Nullable <bool> result = dlg.ShowDialog(); if (result == false) { return; } _slideLib = new SlideLibObject(dlg.FileName); GenerateBadges(); _dirty = false; preview.Slide = null; propertyGrid.SelectedObject = new SlmProperties(null, _slideLib); }
public SlmProperties(SlideObject sld, SlideLibObject slb = null) : base() { if (slb != null) { slbName = slb._Name; slbFileName = slb._FileName; slbSize = slb._FileLength; slbNbSlide = slb._Slides.Count; slbVersion = "1.0"; } if (sld != null) { sldName = sld._Name; sldFileName = sld._FileName; sldSize = sld._FileLength; sldWidth = (int)sld._Size.Width; sldHeight = (int)sld._Size.Height; sldVersion = sld._Version.ToString("#.0#"); } }
private void NewLibrary_Click(object sender, RoutedEventArgs e) { e.Handled = true; if (_dirty) { if (System.Windows.MessageBox.Show("Save Library first?", "Slm", MessageBoxButton.YesNo) == MessageBoxResult.Yes) { if (!CheckLibraryFileName()) { return; } _slideLib.Save(); } } // Clear / New library _slideLib = new SlideLibObject(); Library.ItemsSource = new ObservableCollection <SlmVignette> (); Library.Items.Refresh(); _dirty = false; preview.Slide = null; propertyGrid.SelectedObject = new SlmProperties(null, _slideLib); }
private ObservableCollection <SlmVignette> MergeAndGenerateBadges(string [] files) { Point pt = Library.PointToScreen(new Point(0, 0)); _margins = new Thickness(pt.X, pt.Y, pt.X + Library.ActualWidth, pt.Y + Library.ActualHeight); _waitThread = new Thread(this.RunWaitThread); _waitThread.IsBackground = true; _waitThread.SetApartmentState(ApartmentState.STA); _waitThread.Start(); Thread.Sleep(0); ObservableCollection <SlmVignette> newItems = new ObservableCollection <SlmVignette> (); ObservableCollection <SlmVignette> items = new ObservableCollection <SlmVignette> (); if (Library.ItemsSource != null) { items = new ObservableCollection <SlmVignette> ((IEnumerable <SlmVignette>)Library.ItemsSource); } foreach (string fileName in files) { if (SlideLibObject.IsSlideLibrary(fileName)) { SlideLibObject slb = new SlideLibObject(fileName); //_slideLib._Slides =_slideLib._Slides.Concat (slb._Slides).GroupBy (d => d.Key) // .ToDictionary (d => d.Key, d => d.First ().Value) ; foreach (KeyValuePair <string, SlideObject> slide in slb._Slides) { string name = slide.Key; if (_slideLib._Slides.ContainsKey(slide.Key)) { for (int i = 0;; i++) { string st = name + i; if (!_slideLib._Slides.ContainsKey(st)) { name = st; break; } } } _slideLib._Slides.Add(name, slide.Value); SlmVignette badge = new SlmVignette() { Name = name, Type = slide.Value._Size.Width + "x" + slide.Value._Size.Height, Image = slide.Value.Export(70, 70) }; items.Add(badge); newItems.Add(badge); } _dirty = true; } if (SlideObject.IsSlide(fileName) && !_slideLib._Slides.ContainsKey(System.IO.Path.GetFileNameWithoutExtension(fileName))) { SlideObject sld = new SlideObject(fileName); sld._Name = System.IO.Path.GetFileNameWithoutExtension(fileName); _slideLib._Slides.Add(sld._Name, sld); _dirty = true; SlmVignette badge = new SlmVignette() { Name = sld._Name, Type = sld._Size.Width + "x" + sld._Size.Height, Image = sld.Export(70, 70) }; items.Add(badge); newItems.Add(badge); } Thread.Sleep(0); } Library.ItemsSource = items; Library.Items.Refresh(); Thread.Sleep(200); while (_waitDialog == null) { Thread.Sleep(100); } _waitDialog.Dispatcher.BeginInvoke(DispatcherPriority.Normal, (Action)(() => { _waitDialog.Close(); })); if (_waitThread.IsAlive) { _waitThread.Abort(); } return(newItems); }