25
25
using namespace QtOrganizer;
27
27
SaveRequestData::SaveRequestData(QOrganizerEDSEngine *engine,
28
QtOrganizer::QOrganizerAbstractRequest *req,
29
QOrganizerCollectionId collectionId)
30
: RequestData(engine, req),
31
m_collectionId(collectionId)
28
QtOrganizer::QOrganizerAbstractRequest *req)
29
: RequestData(engine, req)
31
// map items by collection
32
Q_FOREACH(const QOrganizerItem &i, request<QOrganizerItemSaveRequest>()->items()) {
33
QString collectionId = i.collectionId().toString();
34
QList<QOrganizerItem> li = m_items[collectionId];
36
m_items.insert(collectionId, li);
35
40
SaveRequestData::~SaveRequestData()
41
46
QOrganizerManagerEngine::updateItemSaveRequest(request<QOrganizerItemSaveRequest>(),
44
QMap<int, QOrganizerManager::Error>(),
45
50
QOrganizerAbstractRequest::FinishedState);
46
Q_FOREACH(QOrganizerItem item, m_result) {
51
Q_FOREACH(const QOrganizerItem &item, m_result) {
47
52
m_changeSet.insertAddedItem(item.id());
49
54
emitChangeset(&m_changeSet);
54
59
m_result += result;
57
QOrganizerCollectionId SaveRequestData::collectionId() const
59
return m_collectionId;
62
bool SaveRequestData::isNew() const
64
QList<QOrganizerItem> items = request<QOrganizerItemSaveRequest>()->items();
65
if (items.count() > 0) {
66
return items[0].id().isNull();
62
QString SaveRequestData::nextCollection()
64
if (m_items.isEmpty()) {
65
m_currentCollection = QString();
66
m_currentItems.clear();
68
m_currentCollection = m_items.keys().first();
69
m_currentItems = m_items.take(m_currentCollection);
71
m_workingItems.clear();
72
return m_currentCollection;
75
QString SaveRequestData::currentCollection() const
77
return m_currentCollection;
80
QList<QOrganizerItem> SaveRequestData::takeItemsToCreate()
82
QList<QOrganizerItem> result;
84
Q_FOREACH(const QOrganizerItem &i, m_currentItems) {
85
if (i.id().isNull()) {
87
m_currentItems.removeAll(i);
93
QList<QOrganizerItem> SaveRequestData::takeItemsToUpdate()
95
QList<QOrganizerItem> result;
97
Q_FOREACH(const QOrganizerItem &i, m_currentItems) {
98
if (!i.id().isNull()) {
100
m_currentItems.removeAll(i);
106
bool SaveRequestData::end() const
108
return m_items.isEmpty();
111
void SaveRequestData::appendResult(const QOrganizerItem &item, QOrganizerManager::Error error)
113
if (error != QOrganizerManager::NoError) {
114
int index = request<QOrganizerItemSaveRequest>()->items().indexOf(item);
116
m_erros.insert(index, error);
123
void SaveRequestData::setWorkingItems(QList<QOrganizerItem> items)
125
m_workingItems = items;
128
QList<QOrganizerItem> SaveRequestData::workingItems() const
130
return m_workingItems;