diff options
author | Christian Mollekopf <chrigi_1@fastmail.fm> | 2016-12-08 13:18:19 +0100 |
---|---|---|
committer | Christian Mollekopf <chrigi_1@fastmail.fm> | 2016-12-08 13:18:19 +0100 |
commit | ae4b64b198a143240aa5dd1e202e5016abfdae71 (patch) | |
tree | 5d9d58a512ebc60c44637d11c9424f67a02887e8 /examples/maildirresource/maildirresource.cpp | |
parent | f425c2070131161dc11bcf70e35f8d1848cadb65 (diff) | |
download | sink-ae4b64b198a143240aa5dd1e202e5016abfdae71.tar.gz sink-ae4b64b198a143240aa5dd1e202e5016abfdae71.zip |
Wrap references in a Reerence type.
This allows us to make sure that references are not taken out of
context (the resource).
Because we need to use the type-specific accessors more we also ran into
a problem that we cannot "downcast" a reference with the change
recording still working, for that we have the cast<T>() operator now.
Diffstat (limited to 'examples/maildirresource/maildirresource.cpp')
-rw-r--r-- | examples/maildirresource/maildirresource.cpp | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/examples/maildirresource/maildirresource.cpp b/examples/maildirresource/maildirresource.cpp index 1eee786..a05afc6 100644 --- a/examples/maildirresource/maildirresource.cpp +++ b/examples/maildirresource/maildirresource.cpp | |||
@@ -129,16 +129,16 @@ public: | |||
129 | 129 | ||
130 | void newEntity(Sink::ApplicationDomain::ApplicationDomainType &newEntity) Q_DECL_OVERRIDE | 130 | void newEntity(Sink::ApplicationDomain::ApplicationDomainType &newEntity) Q_DECL_OVERRIDE |
131 | { | 131 | { |
132 | const ApplicationDomain::Mail mail{newEntity}; | 132 | auto mail = newEntity.cast<ApplicationDomain::Mail>(); |
133 | const auto mimeMessage = mail.getMimeMessagePath(); | 133 | const auto mimeMessage = mail.getMimeMessagePath(); |
134 | if (!mimeMessage.isNull()) { | 134 | if (!mimeMessage.isNull()) { |
135 | ApplicationDomain::Mail{newEntity}.setMimeMessagePath(moveMessage(mimeMessage, mail.getFolder())); | 135 | mail.setMimeMessagePath(moveMessage(mimeMessage, mail.getFolder())); |
136 | } | 136 | } |
137 | } | 137 | } |
138 | 138 | ||
139 | void modifiedEntity(const Sink::ApplicationDomain::ApplicationDomainType &oldEntity, Sink::ApplicationDomain::ApplicationDomainType &newEntity) Q_DECL_OVERRIDE | 139 | void modifiedEntity(const Sink::ApplicationDomain::ApplicationDomainType &oldEntity, Sink::ApplicationDomain::ApplicationDomainType &newEntity) Q_DECL_OVERRIDE |
140 | { | 140 | { |
141 | ApplicationDomain::Mail newMail{newEntity}; | 141 | auto newMail = newEntity.cast<ApplicationDomain::Mail>(); |
142 | const ApplicationDomain::Mail oldMail{oldEntity}; | 142 | const ApplicationDomain::Mail oldMail{oldEntity}; |
143 | const auto mimeMessage = newMail.getMimeMessagePath(); | 143 | const auto mimeMessage = newMail.getMimeMessagePath(); |
144 | const auto newFolder = newMail.getFolder(); | 144 | const auto newFolder = newMail.getFolder(); |
@@ -190,7 +190,7 @@ public: | |||
190 | 190 | ||
191 | void newEntity(Sink::ApplicationDomain::ApplicationDomainType &newEntity) Q_DECL_OVERRIDE | 191 | void newEntity(Sink::ApplicationDomain::ApplicationDomainType &newEntity) Q_DECL_OVERRIDE |
192 | { | 192 | { |
193 | auto folderName = newEntity.getProperty("name").toString(); | 193 | auto folderName = Sink::ApplicationDomain::Folder{newEntity}.getName(); |
194 | const auto path = mMaildirPath + "/" + folderName; | 194 | const auto path = mMaildirPath + "/" + folderName; |
195 | KPIM::Maildir maildir(path, false); | 195 | KPIM::Maildir maildir(path, false); |
196 | maildir.create(); | 196 | maildir.create(); |