[pim/akonadi-calendar] src: Don't instantiate DndFactory

Allen Winter <[email protected]>
Newsgroups gmane.comp.kde.cvs
Message-ID <[email protected]>
Git commit d5bff6a8d06052dd4dd5f2f38abcde413e482c98 by Allen Winter, on behalf of Volker Krause.
Committed on 16/07/2026 at 16:08.
Pushed by vkrause into branch 'master'.

Don't instantiate DndFactory

We only use static methods from it.

M  +3    -8    src/calendarclipboard.cpp
M  +0    -1    src/calendarclipboard_p.h
M  +2    -4    src/todomodel.cpp

https://invent.kde.org/pim/akonadi-calendar/-/commit/d5bff6a8d06052dd4dd5f2f38abcde413e482c98

diff --git a/src/calendarclipboard.cpp b/src/calendarclipboard.cpp
index a77577e9..f8ef1981 100644
--- a/src/calendarclipboard.cpp
+++ b/src/calendarclipboard.cpp
@@ -29,17 +29,12 @@ CalendarClipboardPrivate::CalendarClipboardPrivate(const Akonadi::CalendarBase::
         m_changer->setGroupwareCommunication(false);
     }
 
-    m_dndfactory = new KCalUtils::DndFactory(m_calendar);
-
     connect(m_changer, &IncidenceChanger::modifyFinished, this, &CalendarClipboardPrivate::slotModifyFinished);
 
     connect(m_changer, &IncidenceChanger::deleteFinished, this, &CalendarClipboardPrivate::slotDeleteFinished);
 }
 
-CalendarClipboardPrivate::~CalendarClipboardPrivate()
-{
-    delete m_dndfactory;
-}
+CalendarClipboardPrivate::~CalendarClipboardPrivate() = default;
 
 void CalendarClipboardPrivate::getIncidenceHierarchy(const KCalendarCore::Incidence::Ptr &incidence, QStringList &uids)
 {
@@ -56,7 +51,7 @@ void CalendarClipboardPrivate::getIncidenceHierarchy(const KCalendarCore::Incide
 
 void CalendarClipboardPrivate::cut(const KCalendarCore::Incidence::List &incidences)
 {
-    const bool copyResult = m_dndfactory->copyIncidences(incidences);
+    const bool copyResult = KCalUtils::DndFactory::copyIncidences(incidences);
     m_pendingChangeIds.clear();
     // Note: Don't use DndFactory::cutIncidences(), it doesn't use IncidenceChanger for deletion
     // we would loose async error handling and redo/undo features
@@ -242,7 +237,7 @@ bool CalendarClipboard::copyIncidence(const KCalendarCore::Incidence::Ptr &incid
         }
     }
 
-    return d->m_dndfactory->copyIncidences(incidencesToCopy);
+    return KCalUtils::DndFactory::copyIncidences(incidencesToCopy);
 }
 
 bool CalendarClipboard::pasteAvailable() const
diff --git a/src/calendarclipboard_p.h b/src/calendarclipboard_p.h
index 89ec6bec..ecfe5cee 100644
--- a/src/calendarclipboard_p.h
+++ b/src/calendarclipboard_p.h
@@ -63,7 +63,6 @@ public Q_SLOTS:
 public:
     Akonadi::CalendarBase::Ptr m_calendar;
     Akonadi::IncidenceChanger *m_changer = nullptr;
-    KCalUtils::DndFactory *m_dndfactory = nullptr;
     bool m_abortCurrentOperation = false;
     QSet<int> m_pendingChangeIds;
     CalendarClipboard *const q;
diff --git a/src/todomodel.cpp b/src/todomodel.cpp
index 387b81df..d5b466b8 100644
--- a/src/todomodel.cpp
+++ b/src/todomodel.cpp
@@ -553,10 +553,8 @@ bool TodoModel::dropMimeData(const QMimeData *data, Qt::DropAction action, [[may
     }
 
     if (d->m_changer && (KCalUtils::ICalDrag::canDecode(data) || KCalUtils::VCalDrag::canDecode(data))) {
-        // DndFactory only needs a valid calendar for drag event, not for drop event.
-        KCalUtils::DndFactory dndFactory(KCalendarCore::Calendar::Ptr{});
-        KCalendarCore::Todo::Ptr const t = dndFactory.createDropTodo(data);
-        KCalendarCore::Event::Ptr const e = dndFactory.createDropEvent(data);
+        KCalendarCore::Todo::Ptr const t = KCalUtils::DndFactory::createDropTodo(data);
+        KCalendarCore::Event::Ptr const e = KCalUtils::DndFactory::createDropEvent(data);
 
         if (t) {
             // we don't want to change the created todo, but the one which is already
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.