application/window.c

changeset 18
af411868ab9b
parent 17
7cfd36aa005b
child 26
40d6af793c1a
--- a/application/window.c	Wed Jan 31 12:55:11 2024 +0100
+++ b/application/window.c	Tue Feb 06 14:17:22 2024 +0100
@@ -31,6 +31,7 @@
 #include "davcontroller.h"
 
 #include <ui/stock.h>
+#include <ui/dnd.h>
 
 #include <libidav/utils.h>
 
@@ -67,7 +68,7 @@
 	// main content
 	UiModel* model = ui_model(obj->ctx, UI_ICON_TEXT, "Name", UI_STRING, "Type", UI_STRING_FREE, "Last Modified", UI_STRING_FREE, "Size", -1);
 	model->getvalue = (ui_getvaluefunc)window_resource_table_getvalue;
-	ui_table(obj, .fill = UI_ON, .model = model, .onactivate = action_list_activate, .varname = "reslist");
+	ui_table(obj, .fill = UI_ON, .model = model, .onactivate = action_list_activate, .ondrop = action_dnd_drop,.varname = "reslist");
 
 	// status bar
 	ui_hbox(obj, .fill = UI_OFF) {
@@ -215,3 +216,11 @@
 		}
 	}
 }
+
+void action_dnd_drop(UiEvent *event, void *data) {
+	UiListDnd *listdnd = event->eventdata;
+	UiDnD *dnd = listdnd->dnd;
+	UiFileList files = ui_selection_geturis(dnd);
+
+	davbrowser_upload_files(event->obj, event->document, files);
+}

mercurial