@@ -22,8 +22,8 Q_LOGGING_CATEGORY(LOG_CatalogueController, "CatalogueController") | |||||
22 |
|
22 | |||
23 | namespace { |
|
23 | namespace { | |
24 |
|
24 | |||
25 | static QString REPOSITORY_WORK_SUFFIX = QString{"work"}; |
|
25 | static QString REPOSITORY_WORK_SUFFIX = QString{"_work"}; | |
26 | static QString REPOSITORY_TRASH_SUFFIX = QString{"trash"}; |
|
26 | static QString REPOSITORY_TRASH_SUFFIX = QString{"_trash"}; | |
27 | } |
|
27 | } | |
28 |
|
28 | |||
29 | class CatalogueController::CatalogueControllerPrivate { |
|
29 | class CatalogueController::CatalogueControllerPrivate { | |
@@ -40,6 +40,10 public: | |||||
40 | void copyDBtoDB(const QString &dbFrom, const QString &dbTo); |
|
40 | void copyDBtoDB(const QString &dbFrom, const QString &dbTo); | |
41 | QString toWorkRepository(QString repository); |
|
41 | QString toWorkRepository(QString repository); | |
42 | QString toSyncRepository(QString repository); |
|
42 | QString toSyncRepository(QString repository); | |
|
43 | void savAllDB(); | |||
|
44 | ||||
|
45 | void saveEvent(std::shared_ptr<DBEvent> event, bool persist = true); | |||
|
46 | void saveCatalogue(std::shared_ptr<DBCatalogue> catalogue, bool persist = true); | |||
43 | }; |
|
47 | }; | |
44 |
|
48 | |||
45 | CatalogueController::CatalogueController(QObject *parent) |
|
49 | CatalogueController::CatalogueController(QObject *parent) | |
@@ -132,7 +136,7 CatalogueController::retrieveEventsFromCatalogue(std::shared_ptr<DBCatalogue> ca | |||||
132 |
|
136 | |||
133 | void CatalogueController::updateEvent(std::shared_ptr<DBEvent> event) |
|
137 | void CatalogueController::updateEvent(std::shared_ptr<DBEvent> event) | |
134 | { |
|
138 | { | |
135 |
event->setRepository(impl->to |
|
139 | event->setRepository(impl->toWorkRepository(event->getRepository())); | |
136 |
|
140 | |||
137 | impl->m_CatalogueDao.updateEvent(*event); |
|
141 | impl->m_CatalogueDao.updateEvent(*event); | |
138 | } |
|
142 | } | |
@@ -171,7 +175,7 void CatalogueController::addEvent(std::shared_ptr<DBEvent> event) | |||||
171 |
|
175 | |||
172 | void CatalogueController::saveEvent(std::shared_ptr<DBEvent> event) |
|
176 | void CatalogueController::saveEvent(std::shared_ptr<DBEvent> event) | |
173 | { |
|
177 | { | |
174 | impl->m_CatalogueDao.moveEvent(*event, impl->toSyncRepository(event->getRepository()), true); |
|
178 | impl->saveEvent(event, true); | |
175 | } |
|
179 | } | |
176 |
|
180 | |||
177 | std::list<std::shared_ptr<DBCatalogue> > |
|
181 | std::list<std::shared_ptr<DBCatalogue> > | |
@@ -189,7 +193,7 CatalogueController::retrieveCatalogues(const QString &repository) const | |||||
189 |
|
193 | |||
190 | void CatalogueController::updateCatalogue(std::shared_ptr<DBCatalogue> catalogue) |
|
194 | void CatalogueController::updateCatalogue(std::shared_ptr<DBCatalogue> catalogue) | |
191 | { |
|
195 | { | |
192 |
catalogue->setRepository(impl->to |
|
196 | catalogue->setRepository(impl->toWorkRepository(catalogue->getRepository())); | |
193 |
|
197 | |||
194 | impl->m_CatalogueDao.updateCatalogue(*catalogue); |
|
198 | impl->m_CatalogueDao.updateCatalogue(*catalogue); | |
195 | } |
|
199 | } | |
@@ -205,8 +209,7 void CatalogueController::removeCatalogue(std::shared_ptr<DBCatalogue> catalogue | |||||
205 |
|
209 | |||
206 | void CatalogueController::saveCatalogue(std::shared_ptr<DBCatalogue> catalogue) |
|
210 | void CatalogueController::saveCatalogue(std::shared_ptr<DBCatalogue> catalogue) | |
207 | { |
|
211 | { | |
208 |
impl-> |
|
212 | impl->saveCatalogue(catalogue, true); | |
209 | impl->toSyncRepository(catalogue->getRepository()), true); |
|
|||
210 | } |
|
213 | } | |
211 |
|
214 | |||
212 | void CatalogueController::saveAll() |
|
215 | void CatalogueController::saveAll() | |
@@ -215,15 +218,17 void CatalogueController::saveAll() | |||||
215 | // Save Event |
|
218 | // Save Event | |
216 | auto events = this->retrieveEvents(repository); |
|
219 | auto events = this->retrieveEvents(repository); | |
217 | for (auto event : events) { |
|
220 | for (auto event : events) { | |
218 |
|
|
221 | impl->saveEvent(event, false); | |
219 | } |
|
222 | } | |
220 |
|
223 | |||
221 | // Save Catalogue |
|
224 | // Save Catalogue | |
222 | auto catalogues = this->retrieveCatalogues(repository); |
|
225 | auto catalogues = this->retrieveCatalogues(repository); | |
223 | for (auto catalogue : catalogues) { |
|
226 | for (auto catalogue : catalogues) { | |
224 |
|
|
227 | impl->saveCatalogue(catalogue, false); | |
225 | } |
|
228 | } | |
226 | } |
|
229 | } | |
|
230 | ||||
|
231 | impl->savAllDB(); | |||
227 | } |
|
232 | } | |
228 |
|
233 | |||
229 | void CatalogueController::initialize() |
|
234 | void CatalogueController::initialize() | |
@@ -290,7 +295,7 QString CatalogueController::CatalogueControllerPrivate::toWorkRepository(QStrin | |||||
290 | { |
|
295 | { | |
291 | auto syncRepository = toSyncRepository(repository); |
|
296 | auto syncRepository = toSyncRepository(repository); | |
292 |
|
297 | |||
293 |
return QString("%1 |
|
298 | return QString("%1%2").arg(syncRepository, REPOSITORY_WORK_SUFFIX); | |
294 | } |
|
299 | } | |
295 |
|
300 | |||
296 | QString CatalogueController::CatalogueControllerPrivate::toSyncRepository(QString repository) |
|
301 | QString CatalogueController::CatalogueControllerPrivate::toSyncRepository(QString repository) | |
@@ -304,3 +309,30 QString CatalogueController::CatalogueControllerPrivate::toSyncRepository(QStrin | |||||
304 | } |
|
309 | } | |
305 | return syncRepository; |
|
310 | return syncRepository; | |
306 | } |
|
311 | } | |
|
312 | ||||
|
313 | void CatalogueController::CatalogueControllerPrivate::savAllDB() | |||
|
314 | { | |||
|
315 | for (auto repository : m_RepositoryList) { | |||
|
316 | auto defaultRepositoryLocation | |||
|
317 | = QStandardPaths::writableLocation(QStandardPaths::AppDataLocation); | |||
|
318 | m_CatalogueDao.saveDB(defaultRepositoryLocation, repository); | |||
|
319 | } | |||
|
320 | } | |||
|
321 | ||||
|
322 | void CatalogueController::CatalogueControllerPrivate::saveEvent(std::shared_ptr<DBEvent> event, | |||
|
323 | bool persist) | |||
|
324 | { | |||
|
325 | m_CatalogueDao.moveEvent(*event, toSyncRepository(event->getRepository()), true); | |||
|
326 | if (persist) { | |||
|
327 | savAllDB(); | |||
|
328 | } | |||
|
329 | } | |||
|
330 | ||||
|
331 | void CatalogueController::CatalogueControllerPrivate::saveCatalogue( | |||
|
332 | std::shared_ptr<DBCatalogue> catalogue, bool persist) | |||
|
333 | { | |||
|
334 | m_CatalogueDao.moveCatalogue(*catalogue, toSyncRepository(catalogue->getRepository()), true); | |||
|
335 | if (persist) { | |||
|
336 | savAllDB(); | |||
|
337 | } | |||
|
338 | } |
General Comments 0
You need to be logged in to leave comments.
Login now