Changeset View
Changeset View
Standalone View
Standalone View
src/akonadi/akonadicontextrepository.cpp
Show First 20 Lines • Show All 46 Lines • ▼ Show 20 Line(s) | 43 | { | |||
---|---|---|---|---|---|
47 | Q_ASSERT(collection.isValid()); | 47 | Q_ASSERT(collection.isValid()); | ||
48 | return m_storage->createItem(item, collection); | 48 | return m_storage->createItem(item, collection); | ||
49 | } | 49 | } | ||
50 | 50 | | |||
51 | KJob *ContextRepository::update(Domain::Context::Ptr context) | 51 | KJob *ContextRepository::update(Domain::Context::Ptr context) | ||
52 | { | 52 | { | ||
53 | auto item = m_serializer->createItemFromContext(context); | 53 | auto item = m_serializer->createItemFromContext(context); | ||
54 | Q_ASSERT(item.isValid()); | 54 | Q_ASSERT(item.isValid()); | ||
55 | return m_storage->updateItem(item); | 55 | return m_storage->updateItem(item, this); | ||
56 | } | 56 | } | ||
57 | 57 | | |||
58 | KJob *ContextRepository::remove(Domain::Context::Ptr context) | 58 | KJob *ContextRepository::remove(Domain::Context::Ptr context) | ||
59 | { | 59 | { | ||
60 | auto item = m_serializer->createItemFromContext(context); | 60 | auto item = m_serializer->createItemFromContext(context); | ||
61 | Q_ASSERT(item.isValid()); | 61 | Q_ASSERT(item.isValid()); | ||
62 | return m_storage->removeItem(item); | 62 | return m_storage->removeItem(item); | ||
63 | } | 63 | } | ||
64 | 64 | | |||
65 | KJob *ContextRepository::associate(Domain::Context::Ptr context, Domain::Task::Ptr child) | 65 | KJob *ContextRepository::associate(Domain::Context::Ptr context, Domain::Task::Ptr child) | ||
66 | { | 66 | { | ||
67 | Item childItem = m_serializer->createItemFromTask(child); | 67 | Item childItem = m_serializer->createItemFromTask(child); | ||
68 | Q_ASSERT(childItem.isValid()); | 68 | Q_ASSERT(childItem.isValid()); | ||
69 | 69 | | |||
70 | auto job = new Utils::CompositeJob(); | 70 | auto job = new Utils::CompositeJob(); | ||
71 | ItemFetchJobInterface *fetchItemJob = m_storage->fetchItem(childItem, this); | 71 | ItemFetchJobInterface *fetchItemJob = m_storage->fetchItem(childItem, this); | ||
72 | job->install(fetchItemJob->kjob(), [fetchItemJob, context, job, this] { | 72 | job->install(fetchItemJob->kjob(), [fetchItemJob, context, job, this] { | ||
73 | if (fetchItemJob->kjob()->error() != KJob::NoError) | 73 | if (fetchItemJob->kjob()->error() != KJob::NoError) | ||
74 | return; | 74 | return; | ||
75 | 75 | | |||
76 | Q_ASSERT(fetchItemJob->items().size() == 1); | 76 | Q_ASSERT(fetchItemJob->items().size() == 1); | ||
77 | auto childItem = fetchItemJob->items().at(0); | 77 | auto childItem = fetchItemJob->items().at(0); | ||
78 | m_serializer->addContextToTask(context, childItem); | 78 | m_serializer->addContextToTask(context, childItem); | ||
79 | 79 | | |||
80 | auto updateJob = m_storage->updateItem(childItem); | 80 | auto updateJob = m_storage->updateItem(childItem, this); | ||
81 | job->addSubjob(updateJob); | 81 | job->addSubjob(updateJob); | ||
82 | updateJob->start(); | 82 | updateJob->start(); | ||
83 | }); | 83 | }); | ||
84 | return job; | 84 | return job; | ||
85 | } | 85 | } | ||
86 | 86 | | |||
87 | 87 | | |||
88 | KJob *ContextRepository::dissociate(Domain::Context::Ptr context, Domain::Task::Ptr child) | 88 | KJob *ContextRepository::dissociate(Domain::Context::Ptr context, Domain::Task::Ptr child) | ||
89 | { | 89 | { | ||
90 | Item childItem = m_serializer->createItemFromTask(child); | 90 | Item childItem = m_serializer->createItemFromTask(child); | ||
91 | Q_ASSERT(childItem.isValid()); | 91 | Q_ASSERT(childItem.isValid()); | ||
92 | auto job = new Utils::CompositeJob(); | 92 | auto job = new Utils::CompositeJob(); | ||
93 | ItemFetchJobInterface *fetchItemJob = m_storage->fetchItem(childItem, this); | 93 | ItemFetchJobInterface *fetchItemJob = m_storage->fetchItem(childItem, this); | ||
94 | job->install(fetchItemJob->kjob(), [fetchItemJob, context, job, this] { | 94 | job->install(fetchItemJob->kjob(), [fetchItemJob, context, job, this] { | ||
95 | if (fetchItemJob->kjob()->error() != KJob::NoError) | 95 | if (fetchItemJob->kjob()->error() != KJob::NoError) | ||
96 | return; | 96 | return; | ||
97 | 97 | | |||
98 | Q_ASSERT(fetchItemJob->items().size() == 1); | 98 | Q_ASSERT(fetchItemJob->items().size() == 1); | ||
99 | auto childItem = fetchItemJob->items().at(0); | 99 | auto childItem = fetchItemJob->items().at(0); | ||
100 | m_serializer->removeContextFromTask(context, childItem); | 100 | m_serializer->removeContextFromTask(context, childItem); | ||
101 | 101 | | |||
102 | auto updateJob = m_storage->updateItem(childItem); | 102 | auto updateJob = m_storage->updateItem(childItem, this); | ||
103 | job->addSubjob(updateJob); | 103 | job->addSubjob(updateJob); | ||
104 | updateJob->start(); | 104 | updateJob->start(); | ||
105 | }); | 105 | }); | ||
106 | 106 | | |||
107 | return job; | 107 | return job; | ||
108 | } | 108 | } | ||
109 | 109 | | |||
110 | KJob *ContextRepository::dissociateAll(Domain::Task::Ptr child) | 110 | KJob *ContextRepository::dissociateAll(Domain::Task::Ptr child) | ||
111 | { | 111 | { | ||
112 | Item childItem; | 112 | Item childItem; | ||
113 | 113 | | |||
114 | childItem = m_serializer->createItemFromTask(child); | 114 | childItem = m_serializer->createItemFromTask(child); | ||
115 | Q_ASSERT(childItem.isValid()); | 115 | Q_ASSERT(childItem.isValid()); | ||
116 | auto job = new Utils::CompositeJob(); | 116 | auto job = new Utils::CompositeJob(); | ||
117 | ItemFetchJobInterface *fetchItemJob = m_storage->fetchItem(childItem, this); | 117 | ItemFetchJobInterface *fetchItemJob = m_storage->fetchItem(childItem, this); | ||
118 | job->install(fetchItemJob->kjob(), [fetchItemJob, job, this] { | 118 | job->install(fetchItemJob->kjob(), [fetchItemJob, job, this] { | ||
119 | if (fetchItemJob->kjob()->error() != KJob::NoError) | 119 | if (fetchItemJob->kjob()->error() != KJob::NoError) | ||
120 | return; | 120 | return; | ||
121 | 121 | | |||
122 | Q_ASSERT(fetchItemJob->items().size() == 1); | 122 | Q_ASSERT(fetchItemJob->items().size() == 1); | ||
123 | auto childItem = fetchItemJob->items().at(0); | 123 | auto childItem = fetchItemJob->items().at(0); | ||
124 | childItem.clearTags(); | 124 | childItem.clearTags(); | ||
125 | 125 | | |||
126 | auto updateJob = m_storage->updateItem(childItem); | 126 | auto updateJob = m_storage->updateItem(childItem, this); | ||
127 | job->addSubjob(updateJob); | 127 | job->addSubjob(updateJob); | ||
128 | updateJob->start(); | 128 | updateJob->start(); | ||
129 | }); | 129 | }); | ||
130 | 130 | | |||
131 | return job; | 131 | return job; | ||
132 | } | 132 | } |