summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/net/mail/opiemail.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/noncore/net/mail/opiemail.cpp b/noncore/net/mail/opiemail.cpp
index 5654476..2bbc8f1 100644
--- a/noncore/net/mail/opiemail.cpp
+++ b/noncore/net/mail/opiemail.cpp
@@ -1,240 +1,240 @@
1 1
2#include "settingsdialog.h" 2#include "settingsdialog.h"
3#include "opiemail.h" 3#include "opiemail.h"
4#include "editaccounts.h" 4#include "editaccounts.h"
5#include "composemail.h" 5#include "composemail.h"
6#include "mailistviewitem.h" 6#include "mailistviewitem.h"
7#include "viewmail.h" 7#include "viewmail.h"
8#include "selectstore.h" 8#include "selectstore.h"
9#include "selectsmtp.h" 9#include "selectsmtp.h"
10 10
11#include <libmailwrapper/smtpwrapper.h> 11#include <libmailwrapper/smtpwrapper.h>
12#include <libmailwrapper/mailtypes.h> 12#include <libmailwrapper/mailtypes.h>
13#include <libmailwrapper/abstractmail.h> 13#include <libmailwrapper/abstractmail.h>
14/* OPIE */ 14/* OPIE */
15#include <opie2/odebug.h> 15#include <opie2/odebug.h>
16#include <qpe/resource.h> 16#include <qpe/resource.h>
17#include <qpe/qpeapplication.h> 17#include <qpe/qpeapplication.h>
18 18
19/* QT */ 19/* QT */
20#include <qmap.h> 20#include <qmap.h>
21#include <qvaluelist.h> 21#include <qvaluelist.h>
22 22
23/* UNIX */ 23/* UNIX */
24#include <signal.h> 24#include <signal.h>
25 25
26using namespace Opie::Core; 26using namespace Opie::Core;
27 27
28typedef QMapNode<QString,QString> tkeyvalues; 28typedef QMapNode<QString,QString> tkeyvalues;
29typedef QValueList<tkeyvalues> tvaluelist; 29typedef QValueList<tkeyvalues> tvaluelist;
30 30
31class ValueExplode 31class ValueExplode
32{ 32{
33protected: 33protected:
34 //! what was parsed last 34 //! what was parsed last
35 tvaluelist m_LastParsed; 35 tvaluelist m_LastParsed;
36 //! the delemiter to use 36 //! the delemiter to use
37 QString mDelemiter; 37 QString mDelemiter;
38 //! the inner delemiter 38 //! the inner delemiter
39 QString m2Delemiter; 39 QString m2Delemiter;
40 //! the real split routine 40 //! the real split routine
41 void splitit(); 41 void splitit();
42 //! the content 42 //! the content
43 QString m_Command; 43 QString m_Command;
44 //! constructor 44 //! constructor
45 ValueExplode(){} 45 ValueExplode(){}
46public: 46public:
47 //! constructor 47 //! constructor
48 /*! 48 /*!
49 * \param aCommand the string to be splitted 49 * \param aCommand the string to be splitted
50 * \param aDelemiter which sign will be the delemiter character 50 * \param aDelemiter which sign will be the delemiter character
51 * \param a2Delemiter which sign will delemiter the key-value-pairs between other delemiters 51 * \param a2Delemiter which sign will delemiter the key-value-pairs between other delemiters
52 */ 52 */
53 ValueExplode(const QString&aCommand,const char aDelemiter = '&',const char a2Delemiter='='); 53 ValueExplode(const QString&aCommand,const char aDelemiter = '&',const char a2Delemiter='=');
54 //! destructor 54 //! destructor
55 virtual ~ValueExplode(); 55 virtual ~ValueExplode();
56 //! assigen operator 56 //! assigen operator
57 /*! 57 /*!
58 * \return a list of substrings 58 * \return a list of substrings
59 */ 59 */
60 operator const tvaluelist& (){return m_LastParsed;} 60 operator const tvaluelist& (){return m_LastParsed;}
61}; 61};
62 62
63ValueExplode::~ValueExplode() 63ValueExplode::~ValueExplode()
64{ 64{
65} 65}
66 66
67ValueExplode::ValueExplode(const QString&aCommand,const char aDelemiter,const char a2Delemiter) 67ValueExplode::ValueExplode(const QString&aCommand,const char aDelemiter,const char a2Delemiter)
68 :m_LastParsed(),m_Command(aCommand) 68 :m_LastParsed(),m_Command(aCommand)
69{ 69{
70 mDelemiter = aDelemiter; 70 mDelemiter = aDelemiter;
71 m2Delemiter = a2Delemiter; 71 m2Delemiter = a2Delemiter;
72 splitit(); 72 splitit();
73} 73}
74 74
75void ValueExplode::splitit() 75void ValueExplode::splitit()
76{ 76{
77 QString iLine; 77 QString iLine;
78 m_LastParsed.clear(); 78 m_LastParsed.clear();
79 if (mDelemiter.isEmpty()||m2Delemiter.isEmpty()) { 79 if (mDelemiter.isEmpty()||m2Delemiter.isEmpty()) {
80 m_LastParsed.append(tkeyvalues(m_Command,"")); 80 m_LastParsed.append(tkeyvalues(m_Command,""));
81 return; 81 return;
82 } 82 }
83 int pos,pos2,startpos; 83 int pos,pos2,startpos;
84 startpos = 0; 84 startpos = 0;
85 iLine = m_Command; 85 iLine = m_Command;
86 while ( (pos = iLine.find(mDelemiter,startpos))!=-1) { 86 while ( (pos = iLine.find(mDelemiter,startpos))!=-1) {
87 pos2 = iLine.find(m2Delemiter,startpos); 87 pos2 = iLine.find(m2Delemiter,startpos);
88 if (pos2==-1||pos2>pos) { 88 if (pos2==-1||pos2>pos) {
89 m_LastParsed.append(tkeyvalues(iLine.mid(startpos,pos-startpos),"")); 89 m_LastParsed.append(tkeyvalues(iLine.mid(startpos,pos-startpos),""));
90 } else { 90 } else {
91 m_LastParsed.append(tkeyvalues(iLine.mid(startpos,pos2-startpos),iLine.mid(pos2+1,pos-pos2-1))); 91 m_LastParsed.append(tkeyvalues(iLine.mid(startpos,pos2-startpos),iLine.mid(pos2+1,pos-pos2-1)));
92 } 92 }
93 startpos = pos+1; 93 startpos = pos+1;
94 } 94 }
95 if (startpos<iLine.length()) { 95 if (startpos<iLine.length()) {
96 pos2 = iLine.find(m2Delemiter,startpos); 96 pos2 = iLine.find(m2Delemiter,startpos);
97 if (pos2==-1) { 97 if (pos2==-1) {
98 m_LastParsed.append(tkeyvalues(iLine.mid(startpos),"")); 98 m_LastParsed.append(tkeyvalues(iLine.mid(startpos),""));
99 } else { 99 } else {
100 m_LastParsed.append(tkeyvalues(iLine.mid(startpos,pos2-startpos),iLine.mid(pos2+1))); 100 m_LastParsed.append(tkeyvalues(iLine.mid(startpos,pos2-startpos),iLine.mid(pos2+1)));
101 } 101 }
102 } 102 }
103} 103}
104 104
105OpieMail::OpieMail( QWidget *parent, const char *name, WFlags ) 105OpieMail::OpieMail( QWidget *parent, const char *name, WFlags )
106 : MainWindow( parent, name, WStyle_ContextHelp ) 106 : MainWindow( parent, name, WStyle_ContextHelp )
107{ 107{
108 setup_signalblocking(); 108 setup_signalblocking();
109 settings = new Settings(); 109 settings = new Settings();
110 110
111 folderView->populate( settings->getAccounts() ); 111 folderView->populate( settings->getAccounts() );
112#if 1 112#if 0
113 tvaluelist s = ValueExplode("a=1&b=holladiewaldfee&c=3&d=&e=3450"); 113 tvaluelist s = ValueExplode("a=1&b=holladiewaldfee&c=3&d=&e=3450");
114 for (int i = 0; i < s.count();++i) { 114 for (int i = 0; i < s.count();++i) {
115 odebug<<"Key: " << s[i].key << " Value: " << s[i].data << oendl; 115 odebug<<"Key: " << s[i].key << " Value: " << s[i].data << oendl;
116 } 116 }
117#endif 117#endif
118} 118}
119 119
120OpieMail::~OpieMail() 120OpieMail::~OpieMail()
121{ 121{
122 if (settings) delete settings; 122 if (settings) delete settings;
123} 123}
124 124
125void OpieMail::setup_signalblocking() 125void OpieMail::setup_signalblocking()
126{ 126{
127 /* for networking we must block SIGPIPE and Co. */ 127 /* for networking we must block SIGPIPE and Co. */
128 struct sigaction blocking_action,temp_action; 128 struct sigaction blocking_action,temp_action;
129 blocking_action.sa_handler = SIG_IGN; 129 blocking_action.sa_handler = SIG_IGN;
130 sigemptyset(&(blocking_action.sa_mask)); 130 sigemptyset(&(blocking_action.sa_mask));
131 blocking_action.sa_flags = 0; 131 blocking_action.sa_flags = 0;
132 sigaction(SIGPIPE,&blocking_action,&temp_action); 132 sigaction(SIGPIPE,&blocking_action,&temp_action);
133} 133}
134 134
135void OpieMail::appMessage(const QCString &msg, const QByteArray &data) 135void OpieMail::appMessage(const QCString &msg, const QByteArray &data)
136{ 136{
137 // copied from old mail2 137 // copied from old mail2
138 if (msg == "writeMail(QString,QString)") 138 if (msg == "writeMail(QString,QString)")
139 { 139 {
140 QDataStream stream(data,IO_ReadOnly); 140 QDataStream stream(data,IO_ReadOnly);
141 QString name, email; 141 QString name, email;
142 stream >> name >> email; 142 stream >> name >> email;
143 // removing the whitespaces at beginning and end is needed! 143 // removing the whitespaces at beginning and end is needed!
144 slotwriteMail(name.stripWhiteSpace(),email.stripWhiteSpace()); 144 slotwriteMail(name.stripWhiteSpace(),email.stripWhiteSpace());
145 } 145 }
146 else if (msg == "newMail()") 146 else if (msg == "newMail()")
147 { 147 {
148 slotComposeMail(); 148 slotComposeMail();
149 } 149 }
150} 150}
151 151
152/** 152/**
153 * Konqueror calls us with the mailto:name@address 153 * Konqueror calls us with the mailto:name@address
154 */ 154 */
155void OpieMail::setDocument(const QString& mail) 155void OpieMail::setDocument(const QString& mail)
156{ 156{
157 /* 157 /*
158 * It looks like a mailto address, lets try it 158 * It looks like a mailto address, lets try it
159 */ 159 */
160 if( mail.startsWith(QString::fromLatin1("mailto:")) ) 160 if( mail.startsWith(QString::fromLatin1("mailto:")) )
161 slotwriteMail(QString::null, mail.mid(7)); 161 slotwriteMail(QString::null, mail.mid(7));
162} 162}
163 163
164void OpieMail::slotwriteMail(const QString&name,const QString&email) 164void OpieMail::slotwriteMail(const QString&name,const QString&email)
165{ 165{
166 ComposeMail compose( settings, this, 0, true , WStyle_ContextHelp ); 166 ComposeMail compose( settings, this, 0, true , WStyle_ContextHelp );
167 if (!email.isEmpty()) 167 if (!email.isEmpty())
168 { 168 {
169 if (!name.isEmpty()) 169 if (!name.isEmpty())
170 { 170 {
171 compose.setTo("\"" + name + "\"" + " " + "<"+ email + ">"); 171 compose.setTo("\"" + name + "\"" + " " + "<"+ email + ">");
172 } 172 }
173 else 173 else
174 { 174 {
175 compose.setTo(email); 175 compose.setTo(email);
176 } 176 }
177 } 177 }
178 compose.slotAdjustColumns(); 178 compose.slotAdjustColumns();
179 QPEApplication::execDialog( &compose ); 179 QPEApplication::execDialog( &compose );
180} 180}
181 181
182void OpieMail::slotComposeMail() 182void OpieMail::slotComposeMail()
183{ 183{
184 odebug << "Compose Mail" << oendl; 184 odebug << "Compose Mail" << oendl;
185 slotwriteMail(0l,0l); 185 slotwriteMail(0l,0l);
186} 186}
187 187
188void OpieMail::slotSendQueued() 188void OpieMail::slotSendQueued()
189{ 189{
190 odebug << "Send Queued" << oendl; 190 odebug << "Send Queued" << oendl;
191 SMTPaccount *smtp = 0; 191 SMTPaccount *smtp = 0;
192 192
193 QList<Account> list = settings->getAccounts(); 193 QList<Account> list = settings->getAccounts();
194 QList<SMTPaccount> smtpList; 194 QList<SMTPaccount> smtpList;
195 smtpList.setAutoDelete(false); 195 smtpList.setAutoDelete(false);
196 Account *it; 196 Account *it;
197 for ( it = list.first(); it; it = list.next() ) 197 for ( it = list.first(); it; it = list.next() )
198 { 198 {
199 if ( it->getType() == MAILLIB::A_SMTP ) 199 if ( it->getType() == MAILLIB::A_SMTP )
200 { 200 {
201 smtp = static_cast<SMTPaccount *>(it); 201 smtp = static_cast<SMTPaccount *>(it);
202 smtpList.append(smtp); 202 smtpList.append(smtp);
203 } 203 }
204 } 204 }
205 if (smtpList.count()==0) 205 if (smtpList.count()==0)
206 { 206 {
207 QMessageBox::information(0,tr("Info"),tr("Define a smtp account first")); 207 QMessageBox::information(0,tr("Info"),tr("Define a smtp account first"));
208 return; 208 return;
209 } 209 }
210 if (smtpList.count()==1) 210 if (smtpList.count()==1)
211 { 211 {
212 smtp = smtpList.at(0); 212 smtp = smtpList.at(0);
213 } 213 }
214 else 214 else
215 { 215 {
216 smtp = 0; 216 smtp = 0;
217 selectsmtp selsmtp; 217 selectsmtp selsmtp;
218 selsmtp.setSelectionlist(&smtpList); 218 selsmtp.setSelectionlist(&smtpList);
219 if ( QPEApplication::execDialog( &selsmtp ) == QDialog::Accepted ) 219 if ( QPEApplication::execDialog( &selsmtp ) == QDialog::Accepted )
220 { 220 {
221 smtp = selsmtp.selected_smtp(); 221 smtp = selsmtp.selected_smtp();
222 } 222 }
223 } 223 }
224 if (smtp) 224 if (smtp)
225 { 225 {
226 SMTPwrapper * wrap = new SMTPwrapper(smtp); 226 SMTPwrapper * wrap = new SMTPwrapper(smtp);
227 if ( wrap->flushOutbox() ) 227 if ( wrap->flushOutbox() )
228 { 228 {
229 QMessageBox::information(0,tr("Info"),tr("Mail queue flushed")); 229 QMessageBox::information(0,tr("Info"),tr("Mail queue flushed"));
230 } 230 }
231 delete wrap; 231 delete wrap;
232 } 232 }
233} 233}
234 234
235void OpieMail::slotSearchMails() 235void OpieMail::slotSearchMails()
236{ 236{
237 odebug << "Search Mails" << oendl; 237 odebug << "Search Mails" << oendl;
238} 238}
239 239
240void OpieMail::slotEditSettings() 240void OpieMail::slotEditSettings()