Akonadi

itemmovejob.h
1/*
2 SPDX-FileCopyrightText: 2008 Volker Krause <vkrause@kde.org>
3
4 SPDX-License-Identifier: LGPL-2.0-or-later
5*/
6
7#pragma once
8
9#include "akonadicore_export.h"
10#include "item.h"
11#include "job.h"
12namespace Akonadi
13{
14class Collection;
15class ItemMoveJobPrivate;
16
17/**
18 * @short Job that moves an item into a different collection in the Akonadi storage.
19 *
20 * This job takes an item and moves it to a collection in the Akonadi storage.
21 *
22 * @code
23 *
24 * Akonadi::Item item = ...
25 * Akonadi::Collection collection = ...
26 *
27 * Akonadi::ItemMoveJob *job = new Akonadi::ItemMoveJob( item, collection );
28 * connect( job, SIGNAL(result(KJob*)), this, SLOT(moveResult(KJob*)) );
29 *
30 * @endcode
31 *
32 * @author Volker Krause <vkrause@kde.org>
33 */
34class AKONADICORE_EXPORT ItemMoveJob : public Job
35{
37
38public:
39 /**
40 * Move the given item into the given collection.
41 *
42 * @param item The item to move.
43 * @param destination The destination collection.
44 * @param parent The parent object.
45 */
46 ItemMoveJob(const Item &item, const Collection &destination, QObject *parent = nullptr);
47
48 /**
49 * Move the given items into @p destination.
50 *
51 * @param items A list of items to move.
52 * @param destination The destination collection.
53 * @param parent The parent object.
54 */
55 ItemMoveJob(const Item::List &items, const Collection &destination, QObject *parent = nullptr);
56
57 /**
58 * Move the given items from @p source to @p destination.
59 *
60 * @internal If the items are identified only by RID, then you MUST use this
61 * constructor to specify the source collection, otherwise the job will fail.
62 * RID-based moves are only allowed to resources.
63 *
64 * @since 4.14
65 */
66 ItemMoveJob(const Item::List &items, const Collection &source, const Collection &destination, QObject *parent = nullptr);
67
68 /**
69 * Destroys the item move job.
70 */
71 ~ItemMoveJob() override;
72
73 /**
74 * Returns the destination collection.
75 *
76 * @since 4.7
77 */
78 [[nodiscard]] Collection destinationCollection() const;
79
80 /**
81 * Returns the list of items that where passed in the constructor.
82 *
83 * @since 4.7
84 */
85 [[nodiscard]] Akonadi::Item::List items() const;
86
87protected:
88 void doStart() override;
89 bool doHandleResponse(qint64 tag, const Protocol::CommandPtr &response) override;
90
91private:
92 Q_DECLARE_PRIVATE(ItemMoveJob)
93};
94
95}
Represents a collection of PIM items.
Definition collection.h:62
ItemMoveJob(const Item &item, const Collection &destination, QObject *parent=nullptr)
Move the given item into the given collection.
Akonadi::Item::List items() const
Returns the list of items that where passed in the constructor.
bool doHandleResponse(qint64 tag, const Protocol::CommandPtr &response) override
This method should be reimplemented in the concrete jobs in case you want to handle incoming data.
Collection destinationCollection() const
Returns the destination collection.
void doStart() override
This method must be reimplemented in the concrete jobs.
Represents a PIM item stored in Akonadi storage.
Definition item.h:100
QList< Item > List
Describes a list of items.
Definition item.h:110
Job(QObject *parent=nullptr)
Creates a new job.
Definition job.cpp:290
Helper integration between Akonadi and Qt.
Q_OBJECTQ_OBJECT
QObject * parent() const const
This file is part of the KDE documentation.
Documentation copyright © 1996-2025 The KDE developers.
Generated on Fri Jan 24 2025 11:49:57 by doxygen 1.13.2 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.