-rw-r--r-- | noncore/net/mail/imapwrapper.cpp | 4 | ||||
-rw-r--r-- | noncore/net/mail/libmailwrapper/imapwrapper.cpp | 4 | ||||
-rw-r--r-- | noncore/net/mail/libmailwrapper/mailwrapper.cpp | 12 | ||||
-rw-r--r-- | noncore/net/mail/libmailwrapper/mailwrapper.h | 4 | ||||
-rw-r--r-- | noncore/net/mail/mailwrapper.cpp | 12 | ||||
-rw-r--r-- | noncore/net/mail/mailwrapper.h | 4 |
6 files changed, 32 insertions, 8 deletions
diff --git a/noncore/net/mail/imapwrapper.cpp b/noncore/net/mail/imapwrapper.cpp index b253b49..0ce2c6c 100644 --- a/noncore/net/mail/imapwrapper.cpp +++ b/noncore/net/mail/imapwrapper.cpp | |||
@@ -191,29 +191,31 @@ QList<Folder>* IMAPwrapper::listFolders() | |||
191 | bool selectable = true; | 191 | bool selectable = true; |
192 | mailimap_mbx_list_flags*bflags; | 192 | mailimap_mbx_list_flags*bflags; |
193 | err = mailimap_list( m_imap, (char*)path, (char*)mask, &result ); | 193 | err = mailimap_list( m_imap, (char*)path, (char*)mask, &result ); |
194 | if ( err == MAILIMAP_NO_ERROR ) { | 194 | if ( err == MAILIMAP_NO_ERROR ) { |
195 | current = result->first; | 195 | current = result->first; |
196 | for ( current=clist_begin(result);current!=NULL;current=clist_next(current)) { | 196 | for ( current=clist_begin(result);current!=NULL;current=clist_next(current)) { |
197 | list = (mailimap_mailbox_list *) current->data; | 197 | list = (mailimap_mailbox_list *) current->data; |
198 | // it is better use the deep copy mechanism of qt itself | 198 | // it is better use the deep copy mechanism of qt itself |
199 | // instead of using strdup! | 199 | // instead of using strdup! |
200 | temp = list->mb_name; | 200 | temp = list->mb_name; |
201 | if (temp.lower()=="inbox") | 201 | if (temp.lower()=="inbox") |
202 | continue; | 202 | continue; |
203 | if (temp.lower()==account->getPrefix().lower()) | ||
204 | continue; | ||
203 | if ( (bflags = list->mb_flag) ) { | 205 | if ( (bflags = list->mb_flag) ) { |
204 | selectable = !(bflags->mbf_type==MAILIMAP_MBX_LIST_FLAGS_SFLAG&& | 206 | selectable = !(bflags->mbf_type==MAILIMAP_MBX_LIST_FLAGS_SFLAG&& |
205 | bflags->mbf_sflag==MAILIMAP_MBX_LIST_SFLAG_NOSELECT); | 207 | bflags->mbf_sflag==MAILIMAP_MBX_LIST_SFLAG_NOSELECT); |
206 | } | 208 | } |
207 | folders->append(new IMAPFolder(temp,selectable)); | 209 | folders->append(new IMAPFolder(temp,selectable,account->getPrefix())); |
208 | } | 210 | } |
209 | } else { | 211 | } else { |
210 | qDebug("error fetching folders %s",m_imap->imap_response); | 212 | qDebug("error fetching folders %s",m_imap->imap_response); |
211 | } | 213 | } |
212 | mailimap_list_result_free( result ); | 214 | mailimap_list_result_free( result ); |
213 | return folders; | 215 | return folders; |
214 | } | 216 | } |
215 | 217 | ||
216 | RecMail*IMAPwrapper::parse_list_result(mailimap_msg_att* m_att) | 218 | RecMail*IMAPwrapper::parse_list_result(mailimap_msg_att* m_att) |
217 | { | 219 | { |
218 | RecMail * m = 0; | 220 | RecMail * m = 0; |
219 | mailimap_msg_att_item *item=0; | 221 | mailimap_msg_att_item *item=0; |
diff --git a/noncore/net/mail/libmailwrapper/imapwrapper.cpp b/noncore/net/mail/libmailwrapper/imapwrapper.cpp index b253b49..0ce2c6c 100644 --- a/noncore/net/mail/libmailwrapper/imapwrapper.cpp +++ b/noncore/net/mail/libmailwrapper/imapwrapper.cpp | |||
@@ -191,29 +191,31 @@ QList<Folder>* IMAPwrapper::listFolders() | |||
191 | bool selectable = true; | 191 | bool selectable = true; |
192 | mailimap_mbx_list_flags*bflags; | 192 | mailimap_mbx_list_flags*bflags; |
193 | err = mailimap_list( m_imap, (char*)path, (char*)mask, &result ); | 193 | err = mailimap_list( m_imap, (char*)path, (char*)mask, &result ); |
194 | if ( err == MAILIMAP_NO_ERROR ) { | 194 | if ( err == MAILIMAP_NO_ERROR ) { |
195 | current = result->first; | 195 | current = result->first; |
196 | for ( current=clist_begin(result);current!=NULL;current=clist_next(current)) { | 196 | for ( current=clist_begin(result);current!=NULL;current=clist_next(current)) { |
197 | list = (mailimap_mailbox_list *) current->data; | 197 | list = (mailimap_mailbox_list *) current->data; |
198 | // it is better use the deep copy mechanism of qt itself | 198 | // it is better use the deep copy mechanism of qt itself |
199 | // instead of using strdup! | 199 | // instead of using strdup! |
200 | temp = list->mb_name; | 200 | temp = list->mb_name; |
201 | if (temp.lower()=="inbox") | 201 | if (temp.lower()=="inbox") |
202 | continue; | 202 | continue; |
203 | if (temp.lower()==account->getPrefix().lower()) | ||
204 | continue; | ||
203 | if ( (bflags = list->mb_flag) ) { | 205 | if ( (bflags = list->mb_flag) ) { |
204 | selectable = !(bflags->mbf_type==MAILIMAP_MBX_LIST_FLAGS_SFLAG&& | 206 | selectable = !(bflags->mbf_type==MAILIMAP_MBX_LIST_FLAGS_SFLAG&& |
205 | bflags->mbf_sflag==MAILIMAP_MBX_LIST_SFLAG_NOSELECT); | 207 | bflags->mbf_sflag==MAILIMAP_MBX_LIST_SFLAG_NOSELECT); |
206 | } | 208 | } |
207 | folders->append(new IMAPFolder(temp,selectable)); | 209 | folders->append(new IMAPFolder(temp,selectable,account->getPrefix())); |
208 | } | 210 | } |
209 | } else { | 211 | } else { |
210 | qDebug("error fetching folders %s",m_imap->imap_response); | 212 | qDebug("error fetching folders %s",m_imap->imap_response); |
211 | } | 213 | } |
212 | mailimap_list_result_free( result ); | 214 | mailimap_list_result_free( result ); |
213 | return folders; | 215 | return folders; |
214 | } | 216 | } |
215 | 217 | ||
216 | RecMail*IMAPwrapper::parse_list_result(mailimap_msg_att* m_att) | 218 | RecMail*IMAPwrapper::parse_list_result(mailimap_msg_att* m_att) |
217 | { | 219 | { |
218 | RecMail * m = 0; | 220 | RecMail * m = 0; |
219 | mailimap_msg_att_item *item=0; | 221 | mailimap_msg_att_item *item=0; |
diff --git a/noncore/net/mail/libmailwrapper/mailwrapper.cpp b/noncore/net/mail/libmailwrapper/mailwrapper.cpp index 3ffc274..96602c2 100644 --- a/noncore/net/mail/libmailwrapper/mailwrapper.cpp +++ b/noncore/net/mail/libmailwrapper/mailwrapper.cpp | |||
@@ -25,28 +25,38 @@ Folder::Folder(const QString&tmp_name ) | |||
25 | for ( int pos = nameDisplay.find( '&' ); pos != -1; | 25 | for ( int pos = nameDisplay.find( '&' ); pos != -1; |
26 | pos = nameDisplay.find( '&' ) ) { | 26 | pos = nameDisplay.find( '&' ) ) { |
27 | int end = nameDisplay.find( '-' ); | 27 | int end = nameDisplay.find( '-' ); |
28 | if ( end == -1 || end <= pos ) break; | 28 | if ( end == -1 || end <= pos ) break; |
29 | QString str64 = nameDisplay.mid( pos + 1, end - pos - 1 ); | 29 | QString str64 = nameDisplay.mid( pos + 1, end - pos - 1 ); |
30 | // TODO: do real base64 decoding here ! | 30 | // TODO: do real base64 decoding here ! |
31 | if ( str64.compare( "APw" ) == 0 ) { | 31 | if ( str64.compare( "APw" ) == 0 ) { |
32 | nameDisplay = nameDisplay.replace( pos, end - pos + 1, "ue" ); | 32 | nameDisplay = nameDisplay.replace( pos, end - pos + 1, "ue" ); |
33 | } else if ( str64.compare( "APY" ) == 0 ) { | 33 | } else if ( str64.compare( "APY" ) == 0 ) { |
34 | nameDisplay = nameDisplay.replace( pos, end - pos + 1, "oe" ); | 34 | nameDisplay = nameDisplay.replace( pos, end - pos + 1, "oe" ); |
35 | } | 35 | } |
36 | } | 36 | } |
37 | |||
38 | qDebug( "folder " + name + " - displayed as " + nameDisplay ); | 37 | qDebug( "folder " + name + " - displayed as " + nameDisplay ); |
39 | } | 38 | } |
40 | 39 | ||
40 | |||
41 | IMAPFolder::IMAPFolder(const QString&name,bool select,const QString&prefix ) | ||
42 | : Folder( name ),m_MaySelect(select) | ||
43 | { | ||
44 | if (prefix.length()>0) { | ||
45 | if (nameDisplay.startsWith(prefix) && nameDisplay.length()>prefix.length()) { | ||
46 | nameDisplay=nameDisplay.right(nameDisplay.length()-prefix.length()); | ||
47 | } | ||
48 | } | ||
49 | } | ||
50 | |||
41 | MailWrapper::MailWrapper( Settings *s ) | 51 | MailWrapper::MailWrapper( Settings *s ) |
42 | : QObject() | 52 | : QObject() |
43 | { | 53 | { |
44 | settings = s; | 54 | settings = s; |
45 | } | 55 | } |
46 | 56 | ||
47 | QString MailWrapper::mailsmtpError( int errnum ) | 57 | QString MailWrapper::mailsmtpError( int errnum ) |
48 | { | 58 | { |
49 | switch ( errnum ) { | 59 | switch ( errnum ) { |
50 | case MAILSMTP_NO_ERROR: | 60 | case MAILSMTP_NO_ERROR: |
51 | return tr( "No error" ); | 61 | return tr( "No error" ); |
52 | case MAILSMTP_ERROR_UNEXPECTED_CODE: | 62 | case MAILSMTP_ERROR_UNEXPECTED_CODE: |
diff --git a/noncore/net/mail/libmailwrapper/mailwrapper.h b/noncore/net/mail/libmailwrapper/mailwrapper.h index 34fd5c5..6994dd8 100644 --- a/noncore/net/mail/libmailwrapper/mailwrapper.h +++ b/noncore/net/mail/libmailwrapper/mailwrapper.h | |||
@@ -67,33 +67,33 @@ private: | |||
67 | }; | 67 | }; |
68 | 68 | ||
69 | class Folder : public QObject | 69 | class Folder : public QObject |
70 | { | 70 | { |
71 | Q_OBJECT | 71 | Q_OBJECT |
72 | 72 | ||
73 | public: | 73 | public: |
74 | Folder( const QString&init_name ); | 74 | Folder( const QString&init_name ); |
75 | const QString&getDisplayName()const { return nameDisplay; } | 75 | const QString&getDisplayName()const { return nameDisplay; } |
76 | const QString&getName()const { return name; } | 76 | const QString&getName()const { return name; } |
77 | virtual bool may_select()const{return true;}; | 77 | virtual bool may_select()const{return true;}; |
78 | 78 | ||
79 | private: | 79 | protected: |
80 | QString nameDisplay, name; | 80 | QString nameDisplay, name; |
81 | 81 | ||
82 | }; | 82 | }; |
83 | 83 | ||
84 | class IMAPFolder : public Folder | 84 | class IMAPFolder : public Folder |
85 | { | 85 | { |
86 | public: | 86 | public: |
87 | IMAPFolder( QString name,bool select=true ) : Folder( name ),m_MaySelect(select) {} | 87 | IMAPFolder(const QString&name,bool select=true,const QString&prefix="" ); |
88 | virtual bool may_select()const{return m_MaySelect;} | 88 | virtual bool may_select()const{return m_MaySelect;} |
89 | private: | 89 | private: |
90 | bool m_MaySelect; | 90 | bool m_MaySelect; |
91 | }; | 91 | }; |
92 | 92 | ||
93 | class MailWrapper : public QObject | 93 | class MailWrapper : public QObject |
94 | { | 94 | { |
95 | Q_OBJECT | 95 | Q_OBJECT |
96 | 96 | ||
97 | public: | 97 | public: |
98 | MailWrapper( Settings *s ); | 98 | MailWrapper( Settings *s ); |
99 | void sendMail( Mail mail ); | 99 | void sendMail( Mail mail ); |
diff --git a/noncore/net/mail/mailwrapper.cpp b/noncore/net/mail/mailwrapper.cpp index 3ffc274..96602c2 100644 --- a/noncore/net/mail/mailwrapper.cpp +++ b/noncore/net/mail/mailwrapper.cpp | |||
@@ -25,28 +25,38 @@ Folder::Folder(const QString&tmp_name ) | |||
25 | for ( int pos = nameDisplay.find( '&' ); pos != -1; | 25 | for ( int pos = nameDisplay.find( '&' ); pos != -1; |
26 | pos = nameDisplay.find( '&' ) ) { | 26 | pos = nameDisplay.find( '&' ) ) { |
27 | int end = nameDisplay.find( '-' ); | 27 | int end = nameDisplay.find( '-' ); |
28 | if ( end == -1 || end <= pos ) break; | 28 | if ( end == -1 || end <= pos ) break; |
29 | QString str64 = nameDisplay.mid( pos + 1, end - pos - 1 ); | 29 | QString str64 = nameDisplay.mid( pos + 1, end - pos - 1 ); |
30 | // TODO: do real base64 decoding here ! | 30 | // TODO: do real base64 decoding here ! |
31 | if ( str64.compare( "APw" ) == 0 ) { | 31 | if ( str64.compare( "APw" ) == 0 ) { |
32 | nameDisplay = nameDisplay.replace( pos, end - pos + 1, "ue" ); | 32 | nameDisplay = nameDisplay.replace( pos, end - pos + 1, "ue" ); |
33 | } else if ( str64.compare( "APY" ) == 0 ) { | 33 | } else if ( str64.compare( "APY" ) == 0 ) { |
34 | nameDisplay = nameDisplay.replace( pos, end - pos + 1, "oe" ); | 34 | nameDisplay = nameDisplay.replace( pos, end - pos + 1, "oe" ); |
35 | } | 35 | } |
36 | } | 36 | } |
37 | |||
38 | qDebug( "folder " + name + " - displayed as " + nameDisplay ); | 37 | qDebug( "folder " + name + " - displayed as " + nameDisplay ); |
39 | } | 38 | } |
40 | 39 | ||
40 | |||
41 | IMAPFolder::IMAPFolder(const QString&name,bool select,const QString&prefix ) | ||
42 | : Folder( name ),m_MaySelect(select) | ||
43 | { | ||
44 | if (prefix.length()>0) { | ||
45 | if (nameDisplay.startsWith(prefix) && nameDisplay.length()>prefix.length()) { | ||
46 | nameDisplay=nameDisplay.right(nameDisplay.length()-prefix.length()); | ||
47 | } | ||
48 | } | ||
49 | } | ||
50 | |||
41 | MailWrapper::MailWrapper( Settings *s ) | 51 | MailWrapper::MailWrapper( Settings *s ) |
42 | : QObject() | 52 | : QObject() |
43 | { | 53 | { |
44 | settings = s; | 54 | settings = s; |
45 | } | 55 | } |
46 | 56 | ||
47 | QString MailWrapper::mailsmtpError( int errnum ) | 57 | QString MailWrapper::mailsmtpError( int errnum ) |
48 | { | 58 | { |
49 | switch ( errnum ) { | 59 | switch ( errnum ) { |
50 | case MAILSMTP_NO_ERROR: | 60 | case MAILSMTP_NO_ERROR: |
51 | return tr( "No error" ); | 61 | return tr( "No error" ); |
52 | case MAILSMTP_ERROR_UNEXPECTED_CODE: | 62 | case MAILSMTP_ERROR_UNEXPECTED_CODE: |
diff --git a/noncore/net/mail/mailwrapper.h b/noncore/net/mail/mailwrapper.h index 34fd5c5..6994dd8 100644 --- a/noncore/net/mail/mailwrapper.h +++ b/noncore/net/mail/mailwrapper.h | |||
@@ -67,33 +67,33 @@ private: | |||
67 | }; | 67 | }; |
68 | 68 | ||
69 | class Folder : public QObject | 69 | class Folder : public QObject |
70 | { | 70 | { |
71 | Q_OBJECT | 71 | Q_OBJECT |
72 | 72 | ||
73 | public: | 73 | public: |
74 | Folder( const QString&init_name ); | 74 | Folder( const QString&init_name ); |
75 | const QString&getDisplayName()const { return nameDisplay; } | 75 | const QString&getDisplayName()const { return nameDisplay; } |
76 | const QString&getName()const { return name; } | 76 | const QString&getName()const { return name; } |
77 | virtual bool may_select()const{return true;}; | 77 | virtual bool may_select()const{return true;}; |
78 | 78 | ||
79 | private: | 79 | protected: |
80 | QString nameDisplay, name; | 80 | QString nameDisplay, name; |
81 | 81 | ||
82 | }; | 82 | }; |
83 | 83 | ||
84 | class IMAPFolder : public Folder | 84 | class IMAPFolder : public Folder |
85 | { | 85 | { |
86 | public: | 86 | public: |
87 | IMAPFolder( QString name,bool select=true ) : Folder( name ),m_MaySelect(select) {} | 87 | IMAPFolder(const QString&name,bool select=true,const QString&prefix="" ); |
88 | virtual bool may_select()const{return m_MaySelect;} | 88 | virtual bool may_select()const{return m_MaySelect;} |
89 | private: | 89 | private: |
90 | bool m_MaySelect; | 90 | bool m_MaySelect; |
91 | }; | 91 | }; |
92 | 92 | ||
93 | class MailWrapper : public QObject | 93 | class MailWrapper : public QObject |
94 | { | 94 | { |
95 | Q_OBJECT | 95 | Q_OBJECT |
96 | 96 | ||
97 | public: | 97 | public: |
98 | MailWrapper( Settings *s ); | 98 | MailWrapper( Settings *s ); |
99 | void sendMail( Mail mail ); | 99 | void sendMail( Mail mail ); |