From 304fca9f8bdaccaab794d2255c9c7f5ec8efbb22 Mon Sep 17 00:00:00 2001 From: "Friedrich W. H. Kossebau" Date: Mon, 27 Jul 2026 14:48:25 +0200 Subject: [PATCH] KEditToolBar: show no-drop cursor with "Available" list for own items Makes it more obvious to users that items in that list cannot be moved around there, only dragged out. --- src/kedittoolbar.cpp | 21 +++++++++++++++++++++ src/kedittoolbar_p.h | 2 ++ 2 files changed, 23 insertions(+) diff --git a/src/kedittoolbar.cpp b/src/kedittoolbar.cpp index f38df8a8..7406da83 100644 --- a/src/kedittoolbar.cpp +++ b/src/kedittoolbar.cpp @@ -18,6 +18,8 @@ #include #include #include +#include +#include #include #include #include @@ -326,6 +328,25 @@ ToolBarItem *ToolBarListWidget::currentItem() const return static_cast(QListWidget::currentItem()); } +void ToolBarListWidget::dragEnterEvent(QDragEnterEvent *event) +{ + // no internal drag in inactive list + if (!m_activeList && (event->source() == this)) { + event->ignore(); + return; + } + QListWidget::dragEnterEvent(event); +} +void ToolBarListWidget::dragMoveEvent(QDragMoveEvent *event) +{ + // no internal drag in inactive list + if (!m_activeList && (event->source() == this)) { + event->ignore(); + return; + } + QListWidget::dragMoveEvent(event); +} + IconTextEditDialog::IconTextEditDialog(QWidget *parent) : QDialog(parent) { diff --git a/src/kedittoolbar_p.h b/src/kedittoolbar_p.h index 6002f6f6..be7dc390 100644 --- a/src/kedittoolbar_p.h +++ b/src/kedittoolbar_p.h @@ -57,6 +57,8 @@ protected: bool dropMimeData(int index, const QMimeData *data, Qt::DropAction action) override; + void dragEnterEvent(QDragEnterEvent *event) override; + void dragMoveEvent(QDragMoveEvent *event) override; // Skip internal dnd handling in QListWidget ---- how is one supposed to figure this out // without reading the QListWidget code !? void dropEvent(QDropEvent *ev) override