summaryrefslogtreecommitdiffstats
path: root/examples/maildirresource/maildirresource.cpp
diff options
context:
space:
mode:
authorChristian Mollekopf <chrigi_1@fastmail.fm>2016-12-08 13:18:19 +0100
committerChristian Mollekopf <chrigi_1@fastmail.fm>2016-12-08 13:18:19 +0100
commitae4b64b198a143240aa5dd1e202e5016abfdae71 (patch)
tree5d9d58a512ebc60c44637d11c9424f67a02887e8 /examples/maildirresource/maildirresource.cpp
parentf425c2070131161dc11bcf70e35f8d1848cadb65 (diff)
downloadsink-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.cpp8
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();