From ba5c009dcf75e84c2fa3054626d420a666d5aa58 Mon Sep 17 00:00:00 2001 From: Michl Steglich Date: Mon, 12 Aug 2019 20:05:40 +0200 Subject: [PATCH] added drag drop support --- ArcdpsLogManager/Sections/LogList.cs | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/ArcdpsLogManager/Sections/LogList.cs b/ArcdpsLogManager/Sections/LogList.cs index 3d18a7d9..cb41c54f 100644 --- a/ArcdpsLogManager/Sections/LogList.cs +++ b/ArcdpsLogManager/Sections/LogList.cs @@ -26,6 +26,8 @@ public class LogList : Panel private GridViewSorter sorter; private FilterCollection dataStore; + private bool mouseDown = false; + public FilterCollection DataStore { get => dataStore; @@ -214,7 +216,30 @@ private GridView ConstructLogGridView(LogDetailPanel detailPanel, Multi sorter.EnableSorting(); sorter.SortByDescending(dateColumn); + gridView.MouseDown += OnGridViewOnMouseDown; + gridView.MouseUp += GridViewOnMouseUp; + gridView.MouseLeave += GridViewOnMouseLeave; + return gridView; } - } + + private void GridViewOnMouseLeave(object sender, MouseEventArgs e) + { + if (!mouseDown) return; + + var files = logGridView.SelectedItems.Select(x => new Uri(x.FileInfo.ToString())).ToArray(); + var dob = new DataObject {Uris = files}; + DoDragDrop(dob, DragEffects.Copy | DragEffects.Move); + } + + private void GridViewOnMouseUp(object sender, MouseEventArgs e) + { + mouseDown = false; + } + + private void OnGridViewOnMouseDown(object sender, MouseEventArgs args) + { + mouseDown = true; + } + } } \ No newline at end of file