From 477b4227031adde6a080fbce09488d698cad4b21 Mon Sep 17 00:00:00 2001 From: John Lewin Date: Sun, 7 Oct 2018 15:43:31 -0700 Subject: [PATCH] Simplify ExternalDragOver, pass dependency as param --- .../Library/Providers/LibraryConfig.cs | 2 -- .../Widgets/ListView/ListViewItemBase.cs | 2 +- .../Library/Widgets/PrintLibraryWidget.cs | 2 -- .../PartPreviewWindow/View3D/View3DWidget.cs | 19 ++++++++++++++----- 4 files changed, 15 insertions(+), 10 deletions(-) diff --git a/MatterControlLib/Library/Providers/LibraryConfig.cs b/MatterControlLib/Library/Providers/LibraryConfig.cs index ab97391ca..39ac0d5eb 100644 --- a/MatterControlLib/Library/Providers/LibraryConfig.cs +++ b/MatterControlLib/Library/Providers/LibraryConfig.cs @@ -79,8 +79,6 @@ namespace MatterHackers.MatterControl.Library this.ActiveContainer = this.RootLibaryContainer; } - public ListView ActiveViewWidget { get; internal set; } - public ILibraryContainer RootLibaryContainer { get; } public Dictionary ContentProviders = new Dictionary(); diff --git a/MatterControlLib/Library/Widgets/ListView/ListViewItemBase.cs b/MatterControlLib/Library/Widgets/ListView/ListViewItemBase.cs index 07880a293..82e6425e1 100644 --- a/MatterControlLib/Library/Widgets/ListView/ListViewItemBase.cs +++ b/MatterControlLib/Library/Widgets/ListView/ListViewItemBase.cs @@ -281,7 +281,7 @@ namespace MatterHackers.MatterControl.CustomWidgets hitDragThreshold = true; // Performs move and possible Scene add in View3DWidget - view3DWidget.ExternalDragOver(screenSpaceMousePosition: this.TransformToScreenSpace(mouseEvent.Position)); + view3DWidget.ExternalDragOver(screenSpaceMousePosition: this.TransformToScreenSpace(mouseEvent.Position), sourceWidget: this.listViewItem.ListView); } base.OnMouseMove(mouseEvent); diff --git a/MatterControlLib/Library/Widgets/PrintLibraryWidget.cs b/MatterControlLib/Library/Widgets/PrintLibraryWidget.cs index d335b090b..4140d69ca 100644 --- a/MatterControlLib/Library/Widgets/PrintLibraryWidget.cs +++ b/MatterControlLib/Library/Widgets/PrintLibraryWidget.cs @@ -85,8 +85,6 @@ namespace MatterHackers.MatterControl.PrintLibrary Border = new BorderDouble(top: 1) }; - ApplicationController.Instance.Library.ActiveViewWidget = libraryView; - libraryView.SelectedItems.CollectionChanged += SelectedItems_CollectionChanged; ApplicationController.Instance.Library.ContainerChanged += Library_ContainerChanged; diff --git a/MatterControlLib/PartPreviewWindow/View3D/View3DWidget.cs b/MatterControlLib/PartPreviewWindow/View3D/View3DWidget.cs index 06fb11209..d75cbae42 100644 --- a/MatterControlLib/PartPreviewWindow/View3D/View3DWidget.cs +++ b/MatterControlLib/PartPreviewWindow/View3D/View3DWidget.cs @@ -478,7 +478,7 @@ namespace MatterHackers.MatterControl.PartPreviewWindow /// Provides a View3DWidget specific drag implementation /// /// The screen space mouse position. - public void ExternalDragOver(Vector2 screenSpaceMousePosition) + public void ExternalDragOver(Vector2 screenSpaceMousePosition, GuiWidget sourceWidget) { if (this.HasBeenClosed) { @@ -502,11 +502,20 @@ namespace MatterHackers.MatterControl.PartPreviewWindow this.Printer.ViewState.ViewMode = PartViewMode.Model; } - // Otherwise begin an externally started DragDropOperation hard-coded to use LibraryView->SelectedItems - this.StartDragDrop( + IEnumerable selectedItems; + + if (sourceWidget is ListView listView) + { // Project from ListViewItem to ILibraryItem - ApplicationController.Instance.Library.ActiveViewWidget.SelectedItems.Select(l => l.Model), - screenSpaceMousePosition); + selectedItems = listView.SelectedItems.Select(l => l.Model); + } + else// Project from ListViewItem to ILibraryItem + { + selectedItems = Enumerable.Empty(); + } + + // Otherwise begin an externally started DragDropOperation hard-coded to use LibraryView->SelectedItems + this.StartDragDrop(selectedItems, screenSpaceMousePosition); } } }