summaryrefslogtreecommitdiff
Side-by-side diff
Diffstat (more/less context) (show 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
@@ -16,193 +16,193 @@
#include <qpe/resource.h>
#include <qpe/qpeapplication.h>
/* QT */
#include <qmap.h>
#include <qvaluelist.h>
/* UNIX */
#include <signal.h>
using namespace Opie::Core;
typedef QMapNode<QString,QString> tkeyvalues;
typedef QValueList<tkeyvalues> tvaluelist;
class ValueExplode
{
protected:
//! what was parsed last
tvaluelist m_LastParsed;
//! the delemiter to use
QString mDelemiter;
//! the inner delemiter
QString m2Delemiter;
//! the real split routine
void splitit();
//! the content
QString m_Command;
//! constructor
ValueExplode(){}
public:
//! constructor
/*!
* \param aCommand the string to be splitted
* \param aDelemiter which sign will be the delemiter character
* \param a2Delemiter which sign will delemiter the key-value-pairs between other delemiters
*/
ValueExplode(const QString&aCommand,const char aDelemiter = '&',const char a2Delemiter='=');
//! destructor
virtual ~ValueExplode();
//! assigen operator
/*!
* \return a list of substrings
*/
operator const tvaluelist& (){return m_LastParsed;}
};
ValueExplode::~ValueExplode()
{
}
ValueExplode::ValueExplode(const QString&aCommand,const char aDelemiter,const char a2Delemiter)
:m_LastParsed(),m_Command(aCommand)
{
mDelemiter = aDelemiter;
m2Delemiter = a2Delemiter;
splitit();
}
void ValueExplode::splitit()
{
QString iLine;
m_LastParsed.clear();
if (mDelemiter.isEmpty()||m2Delemiter.isEmpty()) {
m_LastParsed.append(tkeyvalues(m_Command,""));
return;
}
int pos,pos2,startpos;
startpos = 0;
iLine = m_Command;
while ( (pos = iLine.find(mDelemiter,startpos))!=-1) {
pos2 = iLine.find(m2Delemiter,startpos);
if (pos2==-1||pos2>pos) {
m_LastParsed.append(tkeyvalues(iLine.mid(startpos,pos-startpos),""));
} else {
m_LastParsed.append(tkeyvalues(iLine.mid(startpos,pos2-startpos),iLine.mid(pos2+1,pos-pos2-1)));
}
startpos = pos+1;
}
if (startpos<iLine.length()) {
pos2 = iLine.find(m2Delemiter,startpos);
if (pos2==-1) {
m_LastParsed.append(tkeyvalues(iLine.mid(startpos),""));
} else {
m_LastParsed.append(tkeyvalues(iLine.mid(startpos,pos2-startpos),iLine.mid(pos2+1)));
}
}
}
OpieMail::OpieMail( QWidget *parent, const char *name, WFlags )
: MainWindow( parent, name, WStyle_ContextHelp )
{
setup_signalblocking();
settings = new Settings();
folderView->populate( settings->getAccounts() );
-#if 1
+#if 0
tvaluelist s = ValueExplode("a=1&b=holladiewaldfee&c=3&d=&e=3450");
for (int i = 0; i < s.count();++i) {
odebug<<"Key: " << s[i].key << " Value: " << s[i].data << oendl;
}
#endif
}
OpieMail::~OpieMail()
{
if (settings) delete settings;
}
void OpieMail::setup_signalblocking()
{
/* for networking we must block SIGPIPE and Co. */
struct sigaction blocking_action,temp_action;
blocking_action.sa_handler = SIG_IGN;
sigemptyset(&(blocking_action.sa_mask));
blocking_action.sa_flags = 0;
sigaction(SIGPIPE,&blocking_action,&temp_action);
}
void OpieMail::appMessage(const QCString &msg, const QByteArray &data)
{
// copied from old mail2
if (msg == "writeMail(QString,QString)")
{
QDataStream stream(data,IO_ReadOnly);
QString name, email;
stream >> name >> email;
// removing the whitespaces at beginning and end is needed!
slotwriteMail(name.stripWhiteSpace(),email.stripWhiteSpace());
}
else if (msg == "newMail()")
{
slotComposeMail();
}
}
/**
* Konqueror calls us with the mailto:name@address
*/
void OpieMail::setDocument(const QString& mail)
{
/*
* It looks like a mailto address, lets try it
*/
if( mail.startsWith(QString::fromLatin1("mailto:")) )
slotwriteMail(QString::null, mail.mid(7));
}
void OpieMail::slotwriteMail(const QString&name,const QString&email)
{
ComposeMail compose( settings, this, 0, true , WStyle_ContextHelp );
if (!email.isEmpty())
{
if (!name.isEmpty())
{
compose.setTo("\"" + name + "\"" + " " + "<"+ email + ">");
}
else
{
compose.setTo(email);
}
}
compose.slotAdjustColumns();
QPEApplication::execDialog( &compose );
}
void OpieMail::slotComposeMail()
{
odebug << "Compose Mail" << oendl;
slotwriteMail(0l,0l);
}
void OpieMail::slotSendQueued()
{
odebug << "Send Queued" << oendl;
SMTPaccount *smtp = 0;
QList<Account> list = settings->getAccounts();
QList<SMTPaccount> smtpList;
smtpList.setAutoDelete(false);
Account *it;
for ( it = list.first(); it; it = list.next() )
{
if ( it->getType() == MAILLIB::A_SMTP )
{
smtp = static_cast<SMTPaccount *>(it);
smtpList.append(smtp);
}
}
if (smtpList.count()==0)
{
QMessageBox::information(0,tr("Info"),tr("Define a smtp account first"));
return;