author | alwin <alwin> | 2004-01-08 02:52:13 (UTC) |
---|---|---|
committer | alwin <alwin> | 2004-01-08 02:52:13 (UTC) |
commit | 05d47b2603adfab0e16f7395e34b7aa56ce6d8de (patch) (unidiff) | |
tree | 4253654acb70b859fd0d32981132dffd35092b9f /noncore/net/mail/libmailwrapper | |
parent | dfa1477a28ecd90e08cf09aeecbe816e94bec0b5 (diff) | |
download | opie-05d47b2603adfab0e16f7395e34b7aa56ce6d8de.zip opie-05d47b2603adfab0e16f7395e34b7aa56ce6d8de.tar.gz opie-05d47b2603adfab0e16f7395e34b7aa56ce6d8de.tar.bz2 |
move/copy mails to another folder resides inside wrappers so we can
use special funs of libetpan and/or mailserver itself (eg. imap)
libetpan 0.32 requires for that feature a patch! (see libetpanstuff/)
accounts marked as "offline" get a new icon
TODO:
- when creating a new folder while copy/move on imap-server, get the
real resulting foldername when using prefix
- implement usage of copy/move inside one mbox using special etpan funs
Diffstat (limited to 'noncore/net/mail/libmailwrapper') (more/less context) (show whitespace changes)
-rw-r--r-- | noncore/net/mail/libmailwrapper/abstractmail.cpp | 19 | ||||
-rw-r--r-- | noncore/net/mail/libmailwrapper/abstractmail.h | 2 | ||||
-rw-r--r-- | noncore/net/mail/libmailwrapper/imapwrapper.cpp | 31 | ||||
-rw-r--r-- | noncore/net/mail/libmailwrapper/imapwrapper.h | 1 |
4 files changed, 53 insertions, 0 deletions
diff --git a/noncore/net/mail/libmailwrapper/abstractmail.cpp b/noncore/net/mail/libmailwrapper/abstractmail.cpp index 3dd2fce..4b4c728 100644 --- a/noncore/net/mail/libmailwrapper/abstractmail.cpp +++ b/noncore/net/mail/libmailwrapper/abstractmail.cpp | |||
@@ -106 +106,20 @@ void AbstractMail::deleteMails(const QString &,QList<RecMail> &) | |||
106 | } | 106 | } |
107 | |||
108 | void AbstractMail::mvcpAllMails(Folder*fromFolder,const QString&targetFolder,AbstractMail*targetWrapper,bool moveit) | ||
109 | { | ||
110 | QList<RecMail> t; | ||
111 | listMessages(fromFolder->getName(),t); | ||
112 | encodedString*st = 0; | ||
113 | while (t.count()>0) { | ||
114 | RecMail*r = t.at(0); | ||
115 | st = fetchRawBody(*r); | ||
116 | if (st) { | ||
117 | targetWrapper->storeMessage(st->Content(),st->Length(),targetFolder); | ||
118 | delete st; | ||
119 | } | ||
120 | t.removeFirst(); | ||
121 | } | ||
122 | if (moveit) { | ||
123 | deleteAllMail(fromFolder); | ||
124 | } | ||
125 | } | ||
diff --git a/noncore/net/mail/libmailwrapper/abstractmail.h b/noncore/net/mail/libmailwrapper/abstractmail.h index 15d83cb..8debaae 100644 --- a/noncore/net/mail/libmailwrapper/abstractmail.h +++ b/noncore/net/mail/libmailwrapper/abstractmail.h | |||
@@ -37,2 +37,4 @@ public: | |||
37 | 37 | ||
38 | virtual void mvcpAllMails(Folder*fromFolder,const QString&targetFolder,AbstractMail*targetWrapper,bool moveit); | ||
39 | |||
38 | virtual void cleanMimeCache(){}; | 40 | virtual void cleanMimeCache(){}; |
diff --git a/noncore/net/mail/libmailwrapper/imapwrapper.cpp b/noncore/net/mail/libmailwrapper/imapwrapper.cpp index bb74de9..23c678b 100644 --- a/noncore/net/mail/libmailwrapper/imapwrapper.cpp +++ b/noncore/net/mail/libmailwrapper/imapwrapper.cpp | |||
@@ -1011,2 +1011,3 @@ const QString&IMAPwrapper::getName()const | |||
1011 | { | 1011 | { |
1012 | qDebug("Get name: %s",account->getAccountName().latin1()); | ||
1012 | return account->getAccountName(); | 1013 | return account->getAccountName(); |
@@ -1020 +1021,31 @@ encodedString* IMAPwrapper::fetchRawBody(const RecMail&mail) | |||
1020 | } | 1021 | } |
1022 | |||
1023 | void IMAPwrapper::mvcpAllMails(Folder*fromFolder,const QString&targetFolder,AbstractMail*targetWrapper,bool moveit) | ||
1024 | { | ||
1025 | qDebug("mvcp mail imap"); | ||
1026 | if (targetWrapper != this) { | ||
1027 | AbstractMail::mvcpAllMails(fromFolder,targetFolder,targetWrapper,moveit); | ||
1028 | qDebug("Using generic"); | ||
1029 | return; | ||
1030 | } | ||
1031 | qDebug("Using internal"); | ||
1032 | mailimap_set *set = 0; | ||
1033 | |||
1034 | int err = mailimap_select( m_imap, fromFolder->getName().latin1()); | ||
1035 | if ( err != MAILIMAP_NO_ERROR ) { | ||
1036 | Global::statusMessage(tr("error selecting mailbox: %1").arg(m_imap->imap_response)); | ||
1037 | return; | ||
1038 | } | ||
1039 | |||
1040 | int last = m_imap->imap_selection_info->sel_exists; | ||
1041 | set = mailimap_set_new_interval( 1, last ); | ||
1042 | err = mailimap_copy(m_imap,set,targetFolder.latin1()); | ||
1043 | if ( err != MAILIMAP_NO_ERROR ) { | ||
1044 | Global::statusMessage(tr("error copy mails: %1").arg(m_imap->imap_response)); | ||
1045 | return; | ||
1046 | } | ||
1047 | mailimap_set_free( set ); | ||
1048 | if (moveit) { | ||
1049 | deleteAllMail(fromFolder); | ||
1050 | } | ||
1051 | } | ||
diff --git a/noncore/net/mail/libmailwrapper/imapwrapper.h b/noncore/net/mail/libmailwrapper/imapwrapper.h index b2bd7e9..07c6210 100644 --- a/noncore/net/mail/libmailwrapper/imapwrapper.h +++ b/noncore/net/mail/libmailwrapper/imapwrapper.h | |||
@@ -33,2 +33,3 @@ public: | |||
33 | virtual void storeMessage(const char*msg,size_t length, const QString&folder); | 33 | virtual void storeMessage(const char*msg,size_t length, const QString&folder); |
34 | virtual void mvcpAllMails(Folder*fromFolder,const QString&targetFolder,AbstractMail*targetWrapper,bool moveit); | ||
34 | 35 | ||