From f62135fe6059389211ee26b5e21732b850b65725 Mon Sep 17 00:00:00 2001 From: Stephan Ehlers Date: Thu, 16 Oct 2025 09:00:29 +0200 Subject: [PATCH] Add missing dropEvent overload Without this, dragging and dropping of items in between others (e.g. to move items inside a model) would have called the WAbstractItemModel implementation instead of correctly forwarding the call to the source model. --- src/Wt/WAbstractProxyModel.C | 5 +++++ src/Wt/WAbstractProxyModel.h | 8 ++++++++ 2 files changed, 13 insertions(+) diff --git a/src/Wt/WAbstractProxyModel.C b/src/Wt/WAbstractProxyModel.C index 2121f9c345..460f721509 100644 --- a/src/Wt/WAbstractProxyModel.C +++ b/src/Wt/WAbstractProxyModel.C @@ -82,6 +82,11 @@ void WAbstractProxyModel::dropEvent(const WDropEvent& e, DropAction action, sourceModel_->dropEvent(e, action, sourceRow, sourceColumn, sourceParent); } +void WAbstractProxyModel::dropEvent(const WDropEvent &e, DropAction action, + const WModelIndex &index, Wt::Side side) { + sourceModel_->dropEvent(e, action, mapToSource(index), side); +} + void *WAbstractProxyModel::toRawIndex(const WModelIndex& index) const { return sourceModel_->toRawIndex(mapToSource(index)); diff --git a/src/Wt/WAbstractProxyModel.h b/src/Wt/WAbstractProxyModel.h index fbc4539b0d..2231964289 100644 --- a/src/Wt/WAbstractProxyModel.h +++ b/src/Wt/WAbstractProxyModel.h @@ -181,6 +181,14 @@ class WT_API WAbstractProxyModel : public WAbstractItemModel int row, int column, const WModelIndex& parent) override; + /*! \brief Handles a drop event. + * + * The default proxy implementation maps the given index to the source model + * , and forwards the dropEvent call to the source model. + */ + virtual void dropEvent(const WDropEvent &e, DropAction action, + const WModelIndex &index, Wt::Side side) override; + /*! \brief Converts a model index to a raw pointer that remains valid * while the model's layout is changed. *