private Rectangle[] ConsolidateRects(Rectangle[] scans) { if (scans.Length == 0) { return(Array.Empty <Rectangle>()); } SegmentedList <Rectangle> cons = new SegmentedList <Rectangle>(); int current = 0; cons.Add(scans[0]); for (int i = 1; i < scans.Length; ++i) { if (scans[i].Left == cons[current].Left && scans[i].Right == cons[current].Right && scans[i].Top == cons[current].Bottom) { Rectangle cc = cons[current]; cc.Height = scans[i].Bottom - cons[current].Top; cons[current] = cc; } else { cons.Add(scans[i]); current = cons.Count - 1; } } return(cons.ToArrayEx()); }
private Rectangle[] ConsolidateRects(Rectangle[] scans) { if (scans.Length == 0) { return(Array.Empty <Rectangle>()); } SegmentedList <Rectangle> items = new SegmentedList <Rectangle>(); int num = 0; items.Add(scans[0]); for (int i = 1; i < scans.Length; i++) { Rectangle rectangle = items[num]; if (scans[i].Left == rectangle.Left) { rectangle = items[num]; if (scans[i].Right == rectangle.Right) { rectangle = items[num]; if (scans[i].Top == rectangle.Bottom) { Rectangle rectangle2 = items[num]; rectangle = items[num]; rectangle2.Height = scans[i].Bottom - rectangle.Top; items[num] = rectangle2; continue; } } } items.Add(scans[i]); num = items.Count - 1; } return(items.ToArrayEx <Rectangle>()); }
private HistoryMemento ImportOneLayer(DocumentWorkspace documentWorkspace, BitmapLayer layer) { SegmentedList <HistoryMemento> items = new SegmentedList <HistoryMemento>(); bool flag = true; if (flag && !documentWorkspace.Selection.IsEmpty) { HistoryMemento item = new DeselectFunction().Execute(documentWorkspace); items.Add(item); } if (flag && ((layer.Width > documentWorkspace.Document.Width) || (layer.Height > documentWorkspace.Document.Height))) { HistoryMemento memento3 = this.DoCanvasResize(documentWorkspace, layer.Size); if (memento3 == null) { flag = false; } else { items.Add(memento3); } } if (flag && (layer.Size != documentWorkspace.Document.Size)) { BitmapLayer layer2; try { using (new WaitCursorChanger(documentWorkspace)) { CleanupManager.RequestCleanup(); layer2 = CanvasSizeAction.ResizeLayer(layer, documentWorkspace.Document.Size, AnchorEdge.TopLeft, ColorBgra.White.NewAlpha(0)); } } catch (OutOfMemoryException exception) { ExceptionDialog.ShowErrorDialog(documentWorkspace, PdnResources.GetString("ImportFromFileAction.ImportOneLayer.OutOfMemory"), exception); flag = false; layer2 = null; } if (layer2 != null) { layer.Dispose(); layer = layer2; } } if (flag) { NewLayerHistoryMemento memento4 = new NewLayerHistoryMemento(string.Empty, null, documentWorkspace, documentWorkspace.Document.Layers.Count); documentWorkspace.Document.Layers.Add(layer); items.Add(memento4); } if (flag) { return(new CompoundHistoryMemento(string.Empty, null, items.ToArrayEx <HistoryMemento>())); } this.Rollback(items); return(null); }
public HistoryMemento ImportMultipleFiles(DocumentWorkspace documentWorkspace, string[] fileNames) { HistoryMemento memento = null; SegmentedList <HistoryMemento> historyMementos = new SegmentedList <HistoryMemento>(); Rectangle empty = Rectangle.Empty; foreach (string str in fileNames) { HistoryMemento item = this.ImportOneFile(documentWorkspace, str, out empty); if (item != null) { historyMementos.Add(item); } else { this.Rollback(historyMementos); historyMementos.Clear(); break; } } if ((empty.Width > 0) && (empty.Height > 0)) { SelectionHistoryMemento memento3 = new SelectionHistoryMemento(null, null, documentWorkspace); historyMementos.Add(memento3); using (documentWorkspace.Selection.UseChangeScope()) { documentWorkspace.Selection.Reset(); documentWorkspace.Selection.SetContinuation(empty.ToRectInt32(), SelectionCombineMode.Replace); documentWorkspace.Selection.CommitContinuation(); } } if (historyMementos.Count > 0) { HistoryMemento[] actions = historyMementos.ToArrayEx <HistoryMemento>(); memento = new CompoundHistoryMemento(StaticName, StaticImage, actions); } return(memento); }