From 7af2d3ac28311917eabd1b7c0ae07fffdf401b2f Mon Sep 17 00:00:00 2001 From: Christian Mollekopf Date: Thu, 11 Feb 2016 17:02:40 +0100 Subject: Import new mails as well --- examples/maildirresource/libmaildir/maildir.cpp | 13 +++++++++++++ examples/maildirresource/libmaildir/maildir.h | 5 +++++ examples/maildirresource/maildirresource.cpp | 5 ++++- 3 files changed, 22 insertions(+), 1 deletion(-) (limited to 'examples') diff --git a/examples/maildirresource/libmaildir/maildir.cpp b/examples/maildirresource/libmaildir/maildir.cpp index 59e7e5c..8d6de3e 100644 --- a/examples/maildirresource/libmaildir/maildir.cpp +++ b/examples/maildirresource/libmaildir/maildir.cpp @@ -22,6 +22,7 @@ #include #include +#include #include #include #include @@ -566,6 +567,18 @@ QDateTime Maildir::lastModified(const QString& key) const return info.lastModified(); } +void Maildir::importNewMails() +{ + QDirIterator entryIterator(pathToNew(), QDir::Files); + while (entryIterator.hasNext()) { + const QString filePath = QDir::fromNativeSeparators(entryIterator.next()); + QFile file(filePath); + if (!file.rename(pathToCurrent() +"/" + entryIterator.fileName())) { + qWarning() << "Failed to rename the file: " << file.errorString(); + } + } +} + QString Maildir::getKeyFromFile(const QString& file) { return Maildir::Private::stripFlags(file.split('/').last()); diff --git a/examples/maildirresource/libmaildir/maildir.h b/examples/maildirresource/libmaildir/maildir.h index 6c68656..31778ac 100644 --- a/examples/maildirresource/libmaildir/maildir.h +++ b/examples/maildirresource/libmaildir/maildir.h @@ -162,6 +162,11 @@ public: */ QDateTime lastModified( const QString &key ) const; + /** + * Move all mails in new to cur + */ + void importNewMails(); + /** * Return the contents of the file in the maildir with the given @p key. */ diff --git a/examples/maildirresource/maildirresource.cpp b/examples/maildirresource/maildirresource.cpp index 05fcbb6..839b427 100644 --- a/examples/maildirresource/maildirresource.cpp +++ b/examples/maildirresource/maildirresource.cpp @@ -145,6 +145,9 @@ void MaildirResource::synchronizeMails(Sink::Storage::Transaction &transaction, return; } + Trace() << "Importing new mail."; + maildir.importNewMails(); + auto listingPath = maildir.pathToCurrent(); auto entryIterator = QSharedPointer::create(listingPath, QDir::Files); Trace() << "Looking into " << listingPath; @@ -199,7 +202,7 @@ void MaildirResource::synchronizeMails(Sink::Storage::Transaction &transaction, } mSynchronizerQueue.commit(); const auto elapsed = time->elapsed(); - Trace() << "Synchronized " << count << " mails in " << listingPath << Sink::Log::TraceTime(elapsed) << " " << elapsed/qMax(count, 1) << " [ms/mail]"; + Log() << "Synchronized " << count << " mails in " << listingPath << Sink::Log::TraceTime(elapsed) << " " << elapsed/qMax(count, 1) << " [ms/mail]"; } -- cgit v1.2.3