summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/net/mail/imapwrapper.cpp4
-rw-r--r--noncore/net/mail/libmailwrapper/imapwrapper.cpp4
-rw-r--r--noncore/net/mail/libmailwrapper/mailwrapper.cpp12
-rw-r--r--noncore/net/mail/libmailwrapper/mailwrapper.h4
-rw-r--r--noncore/net/mail/mailwrapper.cpp12
-rw-r--r--noncore/net/mail/mailwrapper.h4
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
216RecMail*IMAPwrapper::parse_list_result(mailimap_msg_att* m_att) 218RecMail*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
216RecMail*IMAPwrapper::parse_list_result(mailimap_msg_att* m_att) 218RecMail*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
41IMAPFolder::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
41MailWrapper::MailWrapper( Settings *s ) 51MailWrapper::MailWrapper( Settings *s )
42 : QObject() 52 : QObject()
43{ 53{
44 settings = s; 54 settings = s;
45} 55}
46 56
47QString MailWrapper::mailsmtpError( int errnum ) 57QString 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
69class Folder : public QObject 69class Folder : public QObject
70{ 70{
71 Q_OBJECT 71 Q_OBJECT
72 72
73public: 73public:
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
79private: 79protected:
80 QString nameDisplay, name; 80 QString nameDisplay, name;
81 81
82}; 82};
83 83
84class IMAPFolder : public Folder 84class 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
93class MailWrapper : public QObject 93class MailWrapper : public QObject
94{ 94{
95 Q_OBJECT 95 Q_OBJECT
96 96
97public: 97public:
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
41IMAPFolder::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
41MailWrapper::MailWrapper( Settings *s ) 51MailWrapper::MailWrapper( Settings *s )
42 : QObject() 52 : QObject()
43{ 53{
44 settings = s; 54 settings = s;
45} 55}
46 56
47QString MailWrapper::mailsmtpError( int errnum ) 57QString 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
69class Folder : public QObject 69class Folder : public QObject
70{ 70{
71 Q_OBJECT 71 Q_OBJECT
72 72
73public: 73public:
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
79private: 79protected:
80 QString nameDisplay, name; 80 QString nameDisplay, name;
81 81
82}; 82};
83 83
84class IMAPFolder : public Folder 84class 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
93class MailWrapper : public QObject 93class MailWrapper : public QObject
94{ 94{
95 Q_OBJECT 95 Q_OBJECT
96 96
97public: 97public:
98 MailWrapper( Settings *s ); 98 MailWrapper( Settings *s );
99 void sendMail( Mail mail ); 99 void sendMail( Mail mail );