From f0a88e15144817d854923e8beb63902accbe4cc9 Mon Sep 17 00:00:00 2001 From: Christian Mollekopf Date: Wed, 9 Mar 2016 15:04:39 +0100 Subject: Prepared a save-as-draft action. --- framework/mail/actions/sinkactions.cpp | 36 ++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) (limited to 'framework/mail/actions') diff --git a/framework/mail/actions/sinkactions.cpp b/framework/mail/actions/sinkactions.cpp index e00d3947..a19ab149 100644 --- a/framework/mail/actions/sinkactions.cpp +++ b/framework/mail/actions/sinkactions.cpp @@ -68,3 +68,39 @@ static ActionHandlerHelper synchronizeHandler("org.kde.kube.actions.synchronize" Sink::Store::synchronize(Sink::Query::ResourceFilter(folder->resourceInstanceIdentifier())).exec(); } ); + +// static ActionHandlerHelper saveAsDraft("org.kde.kube.actions.save-as-draft", +// [](Context *context) -> bool { +// return context->property("mail").isValid(); +// }, +// [](Context *context) { +// Sink::Query query; +// query += Sink::Query::RequestedProperties(QByteArrayList() << "name") +// //FIXME do something like specialuse? +// query += Sink::Query::PropertyFilter("name", "Drafts"); +// // query += Sink::Query::PropertyContainsFilter("specialuser", "drafts"); +// query += Sink::Query::PropertyFilter("drafts", true); +// //TODO Use drafts folder of that specific account +// Sink::Store::fetchAll(query) +// .then>([](const QList folders) { +// if (folders.isEmpty()) { +// return KAsync::start([]() { +// //If message is already existing, modify, otherwise create +// }); +// } +// }); +// //TODO +// // * Find drafts folder +// // * Store KMime::Message on disk for use in blob property +// // * Check if message is already existing and either create or update +// // * +// // auto mail = context->property("mail").value(); +// // if (!mail) { +// // qWarning() << "Failed to get the mail mail: " << context->property("mail"); +// // return; +// // } +// // mail->setProperty("unread", false); +// // qDebug() << "Mark as read " << mail->identifier(); +// // Sink::Store::modify(*mail).exec(); +// } +// ); -- cgit v1.2.3