author | alwin <alwin> | 2004-03-12 19:24:38 (UTC) |
---|---|---|
committer | alwin <alwin> | 2004-03-12 19:24:38 (UTC) |
commit | b600871ce93553a116a66fd80acd6dfc1cc46829 (patch) (side-by-side diff) | |
tree | b361346a49e09d9f0220993583bf183cf29bd974 | |
parent | 874d5a34eca296263dcd1adf857aebe9981825a1 (diff) | |
download | opie-b600871ce93553a116a66fd80acd6dfc1cc46829.zip opie-b600871ce93553a116a66fd80acd6dfc1cc46829.tar.gz opie-b600871ce93553a116a66fd80acd6dfc1cc46829.tar.bz2 |
some more smart-pointers
some bugfixes
some renaming of internals
38 files changed, 369 insertions, 367 deletions
diff --git a/noncore/net/mail/accountitem.cpp b/noncore/net/mail/accountitem.cpp index 3e12563..9a09c18 100644 --- a/noncore/net/mail/accountitem.cpp +++ b/noncore/net/mail/accountitem.cpp @@ -46,13 +46,13 @@ POP3viewItem::~POP3viewItem() AbstractMail *POP3viewItem::getWrapper() { return wrapper; } -void POP3viewItem::refresh( QList<RecMail> & ) +void POP3viewItem::refresh(QValueList<Opie::OSmartPointer<RecMail> > & ) { refresh(); } void POP3viewItem::refresh() { @@ -72,13 +72,13 @@ void POP3viewItem::refresh() item = new POP3folderItem( (*it), this , item ); item->setSelectable( (*it)->may_select()); } delete folders; } -RecBody POP3viewItem::fetchBody( const RecMail &mail ) +RecBody POP3viewItem::fetchBody( const RecMailP &mail ) { qDebug( "POP3 fetchBody" ); return wrapper->fetchBody( mail ); } QPopupMenu * POP3viewItem::getContextMenu() @@ -151,19 +151,19 @@ POP3folderItem::POP3folderItem( const FolderP&folderInit, POP3viewItem *parent , { setPixmap( 0, PIXMAP_INBOXFOLDER); } setText( 0, folder->getDisplayName() ); } -void POP3folderItem::refresh(QList<RecMail>&target) +void POP3folderItem::refresh(QValueList<RecMailP>&target) { if (folder->may_select()) pop3->getWrapper()->listMessages( folder->getName(),target ); } -RecBody POP3folderItem::fetchBody(const RecMail&aMail) +RecBody POP3folderItem::fetchBody(const RecMailP&aMail) { return pop3->getWrapper()->fetchBody(aMail); } QPopupMenu * POP3folderItem::getContextMenu() { @@ -236,13 +236,13 @@ NNTPviewItem::~NNTPviewItem() AbstractMail *NNTPviewItem::getWrapper() { return wrapper; } -void NNTPviewItem::refresh( QList<RecMail> & ) +void NNTPviewItem::refresh( QValueList<RecMailP> & ) { refresh(); } void NNTPviewItem::refresh() { @@ -263,13 +263,13 @@ void NNTPviewItem::refresh() item = new NNTPfolderItem( (*it), this , item ); item->setSelectable( (*it)->may_select()); } delete folders; } -RecBody NNTPviewItem::fetchBody( const RecMail &mail ) +RecBody NNTPviewItem::fetchBody( const RecMailP &mail ) { qDebug( "NNTP fetchBody" ); return wrapper->fetchBody( mail ); } QPopupMenu * NNTPviewItem::getContextMenu() @@ -355,19 +355,19 @@ NNTPfolderItem::NNTPfolderItem( const FolderP &folderInit, NNTPviewItem *parent { setPixmap( 0, PIXMAP_INBOXFOLDER); } setText( 0, folder->getDisplayName() ); } -void NNTPfolderItem::refresh(QList<RecMail>&target) +void NNTPfolderItem::refresh(QValueList<RecMailP>&target) { if (folder->may_select()) nntp->getWrapper()->listMessages( folder->getName(),target ); } -RecBody NNTPfolderItem::fetchBody(const RecMail&aMail) +RecBody NNTPfolderItem::fetchBody(const RecMailP&aMail) { return nntp->getWrapper()->fetchBody(aMail); } QPopupMenu * NNTPfolderItem::getContextMenu() { @@ -425,13 +425,13 @@ IMAPviewItem::~IMAPviewItem() AbstractMail *IMAPviewItem::getWrapper() { return wrapper; } -void IMAPviewItem::refresh(QList<RecMail>&) +void IMAPviewItem::refresh(QValueList<RecMailP>&) { refreshFolders(false); } const QStringList&IMAPviewItem::subFolders() { @@ -558,13 +558,13 @@ void IMAPviewItem::contextMenuSelected(int id) break; default: break; } } -RecBody IMAPviewItem::fetchBody(const RecMail&) +RecBody IMAPviewItem::fetchBody(const RecMailP&) { return RecBody(); } bool IMAPviewItem::offline() { @@ -606,25 +606,25 @@ IMAPfolderItem::~IMAPfolderItem() const QString& IMAPfolderItem::Delemiter()const { return folder->Separator(); } -void IMAPfolderItem::refresh(QList<RecMail>&target) +void IMAPfolderItem::refresh(QValueList<RecMailP>&target) { if (folder->may_select()) { imap->getWrapper()->listMessages( folder->getName(),target ); } else { target.clear(); } } -RecBody IMAPfolderItem::fetchBody(const RecMail&aMail) +RecBody IMAPfolderItem::fetchBody(const RecMailP&aMail) { return imap->getWrapper()->fetchBody(aMail); } QPopupMenu * IMAPfolderItem::getContextMenu() { @@ -745,13 +745,13 @@ MHviewItem::~MHviewItem() AbstractMail *MHviewItem::getWrapper() { return wrapper; } -void MHviewItem::refresh( QList<RecMail> & target) +void MHviewItem::refresh( QValueList<RecMailP> & target) { refresh(false); getWrapper()->listMessages( "",target ); } void MHviewItem::refresh(bool force) @@ -796,13 +796,13 @@ void MHviewItem::refresh(bool force) } item->setSelectable((*it)->may_select()); } delete folders; } -RecBody MHviewItem::fetchBody( const RecMail &mail ) +RecBody MHviewItem::fetchBody( const RecMailP &mail ) { qDebug( "MH fetchBody" ); return wrapper->fetchBody( mail ); } QPopupMenu * MHviewItem::getContextMenu() @@ -911,19 +911,19 @@ void MHfolderItem::initName() const FolderP&MHfolderItem::getFolder()const { return folder; } -void MHfolderItem::refresh(QList<RecMail>&target) +void MHfolderItem::refresh(QValueList<RecMailP>&target) { if (folder->may_select()) mbox->getWrapper()->listMessages( folder->getName(),target ); } -RecBody MHfolderItem::fetchBody(const RecMail&aMail) +RecBody MHfolderItem::fetchBody(const RecMailP&aMail) { return mbox->getWrapper()->fetchBody(aMail); } void MHfolderItem::deleteFolder() { @@ -1039,13 +1039,13 @@ AccountViewItem::AccountViewItem( QListViewItem *parent) AccountViewItem::AccountViewItem( QListViewItem *parent , QListViewItem*after ) :QListViewItem( parent,after ),folder(0) { init(); } -AccountViewItem::AccountViewItem( const Opie::osmart_pointer<Folder>&folderInit,QListViewItem *parent , QListViewItem*after ) +AccountViewItem::AccountViewItem( const Opie::OSmartPointer<Folder>&folderInit,QListViewItem *parent , QListViewItem*after ) :QListViewItem( parent,after ),folder(folderInit) { init(); } void AccountViewItem::init() diff --git a/noncore/net/mail/accountitem.h b/noncore/net/mail/accountitem.h index 8f712f5..276eae0 100644 --- a/noncore/net/mail/accountitem.h +++ b/noncore/net/mail/accountitem.h @@ -1,12 +1,12 @@ #ifndef __ACCOUNT_ITEM #define __ACCOUNT_ITEM #include <qlistview.h> #include <qlist.h> -#include <opie2/osmart_pointer.h> +#include <opie2/osmartpointer.h> class POP3wrapper; class RecMail; class RecBody; class QPopupMenu; class Selectstore; @@ -21,41 +21,41 @@ class AccountViewItem : public QListViewItem { public: AccountViewItem( AccountView *parent ); AccountViewItem( QListViewItem *parent); AccountViewItem( QListViewItem *parent , QListViewItem*after ); - AccountViewItem( const Opie::osmart_pointer<Folder>&folderInit,QListViewItem *parent , QListViewItem*after ); + AccountViewItem( const Opie::OSmartPointer<Folder>&folderInit,QListViewItem *parent , QListViewItem*after ); virtual ~AccountViewItem(); - virtual void refresh(QList<RecMail>&)=0; - virtual RecBody fetchBody(const RecMail&)=0; + virtual void refresh(QValueList<Opie::OSmartPointer<RecMail> >&)=0; + virtual RecBody fetchBody(const Opie::OSmartPointer<RecMail>&)=0; virtual QPopupMenu * getContextMenu(){return 0;}; virtual void contextMenuSelected(int){} virtual AccountView*accountView(); virtual bool matchName(const QString&name)const; virtual bool isDraftfolder(); protected: AccountViewItem*findSubItem(const QString&path,AccountViewItem*start=0); virtual void init(); virtual void removeChilds(); - virtual void deleteAllMail(AbstractMail*wrapper,const Opie::osmart_pointer<Folder>&f); + virtual void deleteAllMail(AbstractMail*wrapper,const Opie::OSmartPointer<Folder>&f); static const QString contextName; AccountView*m_Backlink; - Opie::osmart_pointer<Folder> folder; + Opie::OSmartPointer<Folder> folder; }; class POP3viewItem : public AccountViewItem { public: POP3viewItem( POP3account *a, AccountView *parent ); virtual ~POP3viewItem(); - virtual void refresh( QList<RecMail> &target ); - virtual RecBody fetchBody( const RecMail &mail ); + virtual void refresh(QValueList<Opie::OSmartPointer<RecMail> >&target ); + virtual RecBody fetchBody( const Opie::OSmartPointer<RecMail> &mail ); AbstractMail *getWrapper(); virtual QPopupMenu * getContextMenu(); virtual void contextMenuSelected(int); protected: POP3account *account; @@ -66,16 +66,16 @@ protected: }; class POP3folderItem : public AccountViewItem { public: - POP3folderItem( const Opie::osmart_pointer<Folder>&folder, POP3viewItem *parent , QListViewItem*after ); + POP3folderItem( const Opie::OSmartPointer<Folder>&folder, POP3viewItem *parent , QListViewItem*after ); virtual ~POP3folderItem(); - virtual void refresh(QList<RecMail>&); - virtual RecBody fetchBody(const RecMail&); + virtual void refresh(QValueList<Opie::OSmartPointer<RecMail> >&); + virtual RecBody fetchBody(const Opie::OSmartPointer<RecMail>&); virtual QPopupMenu * getContextMenu(); virtual void contextMenuSelected(int); protected: void downloadMails(); POP3viewItem *pop3; @@ -85,14 +85,14 @@ protected: class NNTPviewItem : public AccountViewItem { public: NNTPviewItem( NNTPaccount *a, AccountView *parent ); virtual ~NNTPviewItem(); - virtual void refresh( QList<RecMail> &target ); - virtual RecBody fetchBody( const RecMail &mail ); + virtual void refresh(QValueList<Opie::OSmartPointer<RecMail> >&target ); + virtual RecBody fetchBody( const Opie::OSmartPointer<RecMail> &mail ); AbstractMail *getWrapper(); virtual QPopupMenu * getContextMenu(); virtual void contextMenuSelected(int); protected: NNTPaccount *account; @@ -104,16 +104,16 @@ protected: }; class NNTPfolderItem : public AccountViewItem { public: - NNTPfolderItem(const Opie::osmart_pointer<Folder>&folder, NNTPviewItem *parent , QListViewItem*after ); + NNTPfolderItem(const Opie::OSmartPointer<Folder>&folder, NNTPviewItem *parent , QListViewItem*after ); virtual ~NNTPfolderItem(); - virtual void refresh(QList<RecMail>&); - virtual RecBody fetchBody(const RecMail&); + virtual void refresh(QValueList<Opie::OSmartPointer<RecMail> >&); + virtual RecBody fetchBody(const Opie::OSmartPointer<RecMail>&); virtual QPopupMenu * getContextMenu(); virtual void contextMenuSelected(int); protected: void downloadMails(); NNTPviewItem *nntp; @@ -124,14 +124,14 @@ protected: class IMAPviewItem : public AccountViewItem { friend class IMAPfolderItem; public: IMAPviewItem( IMAPaccount *a, AccountView *parent ); virtual ~IMAPviewItem(); - virtual void refresh(QList<RecMail>&); - virtual RecBody fetchBody(const RecMail&); + virtual void refresh(QValueList<Opie::OSmartPointer<RecMail> >&); + virtual RecBody fetchBody(const Opie::OSmartPointer<RecMail>&); AbstractMail *getWrapper(); virtual QPopupMenu * getContextMenu(); virtual void contextMenuSelected(int); const QStringList&subFolders(); virtual void refreshFolders(bool force=false); bool offline(); @@ -144,17 +144,17 @@ protected: }; class IMAPfolderItem : public AccountViewItem { public: - IMAPfolderItem( const Opie::osmart_pointer<Folder>&folder, IMAPviewItem *parent , QListViewItem*after ); - IMAPfolderItem( const Opie::osmart_pointer<Folder>&folder, IMAPfolderItem *parent , QListViewItem*after, IMAPviewItem *master ); + IMAPfolderItem( const Opie::OSmartPointer<Folder>&folder, IMAPviewItem *parent , QListViewItem*after ); + IMAPfolderItem( const Opie::OSmartPointer<Folder>&folder, IMAPfolderItem *parent , QListViewItem*after, IMAPviewItem *master ); virtual ~IMAPfolderItem(); - virtual void refresh(QList<RecMail>&); - virtual RecBody fetchBody(const RecMail&); + virtual void refresh(QValueList<Opie::OSmartPointer<RecMail> >&); + virtual RecBody fetchBody(const Opie::OSmartPointer<RecMail>&); virtual QPopupMenu * getContextMenu(); virtual void contextMenuSelected(int); virtual const QString& Delemiter()const; protected: virtual void createNewFolder(); virtual void deleteFolder(); @@ -166,14 +166,14 @@ class MHviewItem : public AccountViewItem { friend class MHfolderItem; public: MHviewItem( const QString&aMboxPath, AccountView *parent ); virtual ~MHviewItem(); - virtual void refresh( QList<RecMail> &target ); - virtual RecBody fetchBody( const RecMail &mail ); + virtual void refresh(QValueList<Opie::OSmartPointer<RecMail> >&target ); + virtual RecBody fetchBody( const Opie::OSmartPointer<RecMail> &mail ); AbstractMail *getWrapper(); virtual QPopupMenu * getContextMenu(); virtual void contextMenuSelected(int); QStringList subFolders(); virtual void refresh(bool force=false); @@ -186,20 +186,20 @@ protected: }; class MHfolderItem : public AccountViewItem { public: - MHfolderItem( const Opie::osmart_pointer<Folder>&folder, MHviewItem *parent , QListViewItem*after ); - MHfolderItem( const Opie::osmart_pointer<Folder>&folder, MHfolderItem *parent, QListViewItem*after, MHviewItem*master); + MHfolderItem( const Opie::OSmartPointer<Folder>&folder, MHviewItem *parent , QListViewItem*after ); + MHfolderItem( const Opie::OSmartPointer<Folder>&folder, MHfolderItem *parent, QListViewItem*after, MHviewItem*master); virtual ~MHfolderItem(); - virtual void refresh(QList<RecMail>&); - virtual RecBody fetchBody(const RecMail&); + virtual void refresh(QValueList<Opie::OSmartPointer<RecMail> >&); + virtual RecBody fetchBody(const Opie::OSmartPointer<RecMail>&); virtual QPopupMenu * getContextMenu(); virtual void contextMenuSelected(int); - virtual const Opie::osmart_pointer<Folder>&getFolder()const; + virtual const Opie::OSmartPointer<Folder>&getFolder()const; virtual bool isDraftfolder(); protected: void downloadMails(); virtual void createFolder(); virtual void deleteFolder(); diff --git a/noncore/net/mail/accountview.cpp b/noncore/net/mail/accountview.cpp index 297f553..26107ff 100644 --- a/noncore/net/mail/accountview.cpp +++ b/noncore/net/mail/accountview.cpp @@ -89,36 +89,34 @@ void AccountView::refresh(QListViewItem *item) { qDebug("AccountView refresh..."); if ( item ) { m_currentItem = item; - QList<RecMail> headerlist; - headerlist.setAutoDelete(true); + QValueList<RecMailP> headerlist; AccountViewItem *view = static_cast<AccountViewItem *>(item); view->refresh(headerlist); - emit refreshMailview(&headerlist); + emit refreshMailview(headerlist); } } void AccountView::refreshCurrent() { m_currentItem = currentItem(); if ( !m_currentItem ) return; - QList<RecMail> headerlist; - headerlist.setAutoDelete(true); + QValueList<RecMailP> headerlist; AccountViewItem *view = static_cast<AccountViewItem *>(m_currentItem); view->refresh(headerlist); - emit refreshMailview(&headerlist); + emit refreshMailview(headerlist); } void AccountView::refreshAll() { } -RecBody AccountView::fetchBody(const RecMail&aMail) +RecBody AccountView::fetchBody(const RecMailP&aMail) { QListViewItem*item = selectedItem (); if (!item) return RecBody(); AccountViewItem *view = static_cast<AccountViewItem *>(item); return view->fetchBody(aMail); } diff --git a/noncore/net/mail/accountview.h b/noncore/net/mail/accountview.h index 3478c0b..d236058 100644 --- a/noncore/net/mail/accountview.h +++ b/noncore/net/mail/accountview.h @@ -1,16 +1,15 @@ #ifndef ACCOUNTVIEW_H #define ACCOUNTVIEW_H #include <qlistview.h> #include <qlist.h> -#include <opie2/osmart_pointer.h> +#include <opie2/osmartpointer.h> +#include <libmailwrapper/mailtypes.h> class Selectstore; -class RecMail; -class RecBody; class Folder; class AbstractMail; class Account; class IMAPviewItem; class MHviewItem; @@ -19,26 +18,26 @@ class AccountView : public QListView Q_OBJECT public: AccountView( QWidget *parent = 0, const char *name = 0, WFlags flags = 0 ); virtual ~AccountView(); virtual void populate( QList<Account> list ); - virtual RecBody fetchBody(const RecMail&aMail); - virtual void downloadMails(const Opie::osmart_pointer<Folder>&fromFolder,AbstractMail*fromWrapper); + virtual RecBody fetchBody(const Opie::OSmartPointer<RecMail>&aMail); + virtual void downloadMails(const Opie::OSmartPointer<Folder>&fromFolder,AbstractMail*fromWrapper); virtual bool currentisDraft(); public slots: virtual void refreshAll(); virtual void refresh(QListViewItem *item); virtual void refreshCurrent(); virtual void slotHold(int, QListViewItem *,const QPoint&,int); virtual void slotContextMenu(int id); void setupFolderselect(Selectstore*sels); signals: - void refreshMailview(QList<RecMail>*); + void refreshMailview(const QValueList<RecMailP>& ); protected: QListViewItem* m_currentItem; QValueList<IMAPviewItem*> imapAccounts; QValueList<MHviewItem*> mhAccounts; }; diff --git a/noncore/net/mail/composemail.cpp b/noncore/net/mail/composemail.cpp index 445cc5e..74ccc7b 100644 --- a/noncore/net/mail/composemail.cpp +++ b/noncore/net/mail/composemail.cpp @@ -185,13 +185,13 @@ void ComposeMail::accept() } #if 0 qDebug( "Sending Mail with " + smtpAccounts.at( smtpAccountBox->currentItem() )->getAccountName() ); #endif - Opie::osmart_pointer<Mail> mail=new Mail; + Opie::OSmartPointer<Mail> mail=new Mail; SMTPaccount *smtp = smtpAccounts.at( smtpAccountBox->currentItem() ); mail->setMail(fromBox->currentText()); if ( !toLine->text().isEmpty() ) { mail->setTo( toLine->text() ); @@ -233,13 +233,13 @@ void ComposeMail::reject() int yesno = QMessageBox::warning(0,tr("Store message"), tr("Store message into drafts?"), tr("Yes"), tr("No"),QString::null,0,1); if (yesno == 0) { - Opie::osmart_pointer<Mail> mail=new Mail(); + Opie::OSmartPointer<Mail> mail=new Mail(); mail->setMail(fromBox->currentText()); mail->setTo( toLine->text() ); mail->setName(senderNameEdit->text()); mail->setCC( ccLine->text() ); mail->setBCC( bccLine->text() ); mail->setReply( replyLine->text() ); @@ -253,17 +253,17 @@ void ComposeMail::reject() if ( !sigMultiLine->text().isEmpty() ) { txt.append( "\n--\n" ); txt.append( sigMultiLine->text() ); } qDebug(txt); mail->setMessage( txt ); - + /* only use the default drafts folder name! */ Storemail wrapper(AbstractMail::draftFolder()); wrapper.storeMail(mail); - + AttachViewItem *it = (AttachViewItem *) attList->firstChild(); /* attachments we will ignore! */ if ( it != NULL ) { QMessageBox::warning(0,tr("Store message"), tr("<center>Attachments will not be stored in \"Draft\" folder</center>")); } @@ -272,21 +272,21 @@ void ComposeMail::reject() } ComposeMail::~ComposeMail() { } -void ComposeMail::reEditMail(const RecMail¤t) +void ComposeMail::reEditMail(const RecMailP¤t) { - RecMail data = current; - message->setText(data.Wrapper()->fetchBody(current).Bodytext()); - subjectLine->setText( data.getSubject()); - toLine->setText(data.To().join(",")); - ccLine->setText(data.CC().join(",")); - bccLine->setText(data.Bcc().join(",")); - replyLine->setText(data.Replyto()); + RecMailP data = current; + message->setText(data->Wrapper()->fetchBody(current).Bodytext()); + subjectLine->setText( data->getSubject()); + toLine->setText(data->To().join(",")); + ccLine->setText(data->CC().join(",")); + bccLine->setText(data->Bcc().join(",")); + replyLine->setText(data->Replyto()); } AttachViewItem::AttachViewItem( QListView *parent, Attachment *att ) : QListViewItem( parent ) { attachment = att; diff --git a/noncore/net/mail/composemail.h b/noncore/net/mail/composemail.h index 1b9fc79..c12eb30 100644 --- a/noncore/net/mail/composemail.h +++ b/noncore/net/mail/composemail.h @@ -6,13 +6,15 @@ #include "composemailui.h" #include "addresspickerui.h" #include <libmailwrapper/settings.h> #include <libmailwrapper/mailwrapper.h> +class RecMail; +#include <opie2/osmartpointer.h> class AddressPicker : public AddressPickerUI { Q_OBJECT public: @@ -32,13 +34,13 @@ class ComposeMail : public ComposeMailUI Q_OBJECT public: ComposeMail( Settings *s, QWidget *parent = 0, const char *name = 0, bool modal = false, WFlags flags = 0 ); virtual ~ComposeMail(); - void reEditMail(const RecMail¤t); + void reEditMail(const Opie::OSmartPointer<RecMail>¤t); public slots: void slotAdjustColumns(); void setTo( const QString & to ); void setSubject( const QString & subject ); diff --git a/noncore/net/mail/libmailwrapper/abstractmail.cpp b/noncore/net/mail/libmailwrapper/abstractmail.cpp index 7e6d383..68a7a4d 100644 --- a/noncore/net/mail/libmailwrapper/abstractmail.cpp +++ b/noncore/net/mail/libmailwrapper/abstractmail.cpp @@ -78,13 +78,13 @@ encodedString* AbstractMail::decode_String(const encodedString*text,const QStrin qDebug("Decode string finished"); return result; } QString AbstractMail::convert_String(const char*text) { - size_t index = 0; + //size_t index = 0; char*res = 0; int err = MAILIMF_NO_ERROR; QString result(text); /* due a bug in libetpan it isn't usable this moment */ @@ -108,13 +108,13 @@ QString AbstractMail::gen_attachment_id() QTextStream stream(&file); return "{" + stream.read().stripWhiteSpace() + "}"; } -int AbstractMail::createMbox(const QString&,const FolderP&,const QString& delemiter,bool) +int AbstractMail::createMbox(const QString&,const FolderP&,const QString& ,bool) { return 0; } QString AbstractMail::defaultLocalfolder() { @@ -126,37 +126,37 @@ QString AbstractMail::defaultLocalfolder() QString AbstractMail::draftFolder() { return QString("Drafts"); } /* temporary - will be removed when implemented in all classes */ -void AbstractMail::deleteMails(const QString &,QList<RecMail> &) +void AbstractMail::deleteMails(const QString &,const QValueList<Opie::OSmartPointer<RecMail> > &) { } void AbstractMail::mvcpAllMails(const FolderP&fromFolder, const QString&targetFolder,AbstractMail*targetWrapper,bool moveit) { - QList<RecMail> t; + QValueList<RecMailP> t; listMessages(fromFolder->getName(),t); encodedString*st = 0; while (t.count()>0) { - RecMail*r = t.at(0); - st = fetchRawBody(*r); + RecMailP r = (*t.begin()); + st = fetchRawBody(r); if (st) { targetWrapper->storeMessage(st->Content(),st->Length(),targetFolder); delete st; } - t.removeFirst(); + t.remove(t.begin()); } if (moveit) { deleteAllMail(fromFolder); } } -void AbstractMail::mvcpMail(const RecMail&mail,const QString&targetFolder,AbstractMail*targetWrapper,bool moveit) +void AbstractMail::mvcpMail(const RecMailP&mail,const QString&targetFolder,AbstractMail*targetWrapper,bool moveit) { encodedString*st = 0; st = fetchRawBody(mail); if (st) { targetWrapper->storeMessage(st->Content(),st->Length(),targetFolder); delete st; diff --git a/noncore/net/mail/libmailwrapper/abstractmail.h b/noncore/net/mail/libmailwrapper/abstractmail.h index d911468..b03d757 100644 --- a/noncore/net/mail/libmailwrapper/abstractmail.h +++ b/noncore/net/mail/libmailwrapper/abstractmail.h @@ -3,56 +3,54 @@ #include "maildefines.h" #include "settings.h" #include <qobject.h> -#include <opie2/osmart_pointer.h> +#include <opie2/osmartpointer.h> +#include "mailtypes.h" -class RecMail; -class RecBody; -class RecPart; class IMAPwrapper; class POP3wrapper; class Folder; class encodedString; struct folderStat; class AbstractMail:public QObject { Q_OBJECT public: AbstractMail(){}; virtual ~AbstractMail(){} - virtual QValueList<Opie::osmart_pointer<Folder> >* listFolders()=0; - virtual void listMessages(const QString & mailbox,QList<RecMail>&target )=0; + virtual QValueList<Opie::OSmartPointer<Folder> >* listFolders()=0; + virtual void listMessages(const QString & mailbox,QValueList<RecMailP>&target )=0; virtual void statusFolder(folderStat&target_stat,const QString & mailbox="INBOX")=0; - virtual RecBody fetchBody(const RecMail&mail)=0; - virtual QString fetchTextPart(const RecMail&mail,const RecPart&part)=0; - virtual encodedString* fetchDecodedPart(const RecMail&mail,const RecPart&part)=0; - virtual encodedString* fetchRawPart(const RecMail&mail,const RecPart&part)=0; - virtual encodedString* fetchRawBody(const RecMail&mail)=0; + virtual RecBody fetchBody(const RecMailP&mail)=0; + virtual QString fetchTextPart(const RecMailP&mail,const RecPart&part)=0; + virtual encodedString* fetchDecodedPart(const RecMailP&mail,const RecPart&part)=0; + virtual encodedString* fetchRawPart(const RecMailP&mail,const RecPart&part)=0; + virtual encodedString* fetchRawBody(const RecMailP&mail)=0; - virtual void deleteMail(const RecMail&mail)=0; - virtual void answeredMail(const RecMail&mail)=0; - virtual int deleteAllMail(const Opie::osmart_pointer<Folder>&)=0; - virtual void deleteMails(const QString & FolderName,QList<RecMail> &target); - virtual int deleteMbox(const Opie::osmart_pointer<Folder>&)=0; + virtual void deleteMail(const RecMailP&mail)=0; + virtual void answeredMail(const RecMailP&mail)=0; + virtual int deleteAllMail(const Opie::OSmartPointer<Folder>&)=0; + virtual void deleteMails(const QString & FolderName,const QValueList<Opie::OSmartPointer<RecMail> >&target); + virtual int deleteMbox(const Opie::OSmartPointer<Folder>&)=0; virtual void storeMessage(const char*msg,size_t length, const QString&folder)=0; - virtual void mvcpAllMails(const Opie::osmart_pointer<Folder>&fromFolder, + virtual void mvcpAllMails(const Opie::OSmartPointer<Folder>&fromFolder, const QString&targetFolder,AbstractMail*targetWrapper,bool moveit); - virtual void mvcpMail(const RecMail&mail,const QString&targetFolder,AbstractMail*targetWrapper,bool moveit); + virtual void mvcpMail(const RecMailP&mail,const QString&targetFolder,AbstractMail*targetWrapper,bool moveit); virtual void cleanMimeCache(){}; /* mail box methods */ /* parameter is the box to create. * if the implementing subclass has prefixes, * them has to be appended automatic. */ - virtual int createMbox(const QString&,const Opie::osmart_pointer<Folder>&parentfolder=0, + virtual int createMbox(const QString&,const Opie::OSmartPointer<Folder>&parentfolder=0, const QString& delemiter="/",bool getsubfolder=false); virtual void logout()=0; static AbstractMail* getWrapper(IMAPaccount *a); static AbstractMail* getWrapper(POP3account *a); static AbstractMail* getWrapper(NNTPaccount *a); diff --git a/noncore/net/mail/libmailwrapper/generatemail.cpp b/noncore/net/mail/libmailwrapper/generatemail.cpp index 4f7ec0c..cb7ccc0 100644 --- a/noncore/net/mail/libmailwrapper/generatemail.cpp +++ b/noncore/net/mail/libmailwrapper/generatemail.cpp @@ -276,13 +276,13 @@ err_free: mailimf_mailbox *Generatemail::newMailbox(const QString&name, const QString&mail ) { return mailimf_mailbox_new( strdup( name.latin1() ), strdup( mail.latin1() ) ); } -mailimf_fields *Generatemail::createImfFields(const Opie::osmart_pointer<Mail>&mail ) +mailimf_fields *Generatemail::createImfFields(const Opie::OSmartPointer<Mail>&mail ) { mailimf_fields *fields = NULL; mailimf_field *xmailer = NULL; mailimf_mailbox *sender=0,*fromBox=0; mailimf_mailbox_list *from=0; mailimf_address_list *to=0, *cc=0, *bcc=0, *reply=0; @@ -396,13 +396,13 @@ mailimf_fields *Generatemail::createImfFields(const Opie::osmart_pointer<Mail>&m } } } return fields; } -mailmime *Generatemail::createMimeMail(const Opie::osmart_pointer<Mail> &mail ) { +mailmime *Generatemail::createMimeMail(const Opie::OSmartPointer<Mail> &mail ) { mailmime *message, *txtPart; mailimf_fields *fields; int err; fields = createImfFields( mail ); if ( fields == NULL ) diff --git a/noncore/net/mail/libmailwrapper/generatemail.h b/noncore/net/mail/libmailwrapper/generatemail.h index 409a55e..c246a2a 100644 --- a/noncore/net/mail/libmailwrapper/generatemail.h +++ b/noncore/net/mail/libmailwrapper/generatemail.h @@ -3,13 +3,13 @@ #include <qpe/applnk.h> #include <qobject.h> #include <libetpan/clist.h> -#include <opie2/osmart_pointer.h> +#include <opie2/osmartpointer.h> class Mail; class RecMail; class Attachment; struct mailimf_fields; struct mailimf_field; @@ -33,14 +33,14 @@ protected: static mailimf_field *getField( mailimf_fields *fields, int type ); mailimf_address_list *parseAddresses(const QString&addr ); void addFileParts( mailmime *message,const QList<Attachment>&files ); mailmime *buildFilePart(const QString&filename,const QString&mimetype,const QString&content); mailmime *buildTxtPart(const QString&str ); mailimf_mailbox *newMailbox(const QString&name,const QString&mail ); - mailimf_fields *createImfFields(const Opie::osmart_pointer<Mail> &mail ); - mailmime *createMimeMail(const Opie::osmart_pointer<Mail>&mail ); + mailimf_fields *createImfFields(const Opie::OSmartPointer<Mail> &mail ); + mailmime *createMimeMail(const Opie::OSmartPointer<Mail>&mail ); clist *createRcptList( mailimf_fields *fields ); static const char* USER_AGENT; }; #endif diff --git a/noncore/net/mail/libmailwrapper/genericwrapper.cpp b/noncore/net/mail/libmailwrapper/genericwrapper.cpp index 6c8a5a1..ee2c8cd 100644 --- a/noncore/net/mail/libmailwrapper/genericwrapper.cpp +++ b/noncore/net/mail/libmailwrapper/genericwrapper.cpp @@ -328,29 +328,29 @@ QString Genericwrapper::parseMailboxList( mailimf_mailbox_list *list ) result.append( parseMailbox( box ) ); } return result; } -encodedString* Genericwrapper::fetchDecodedPart(const RecMail&,const RecPart&part) +encodedString* Genericwrapper::fetchDecodedPart(const RecMailP&,const RecPart&part) { QMap<QString,encodedString*>::ConstIterator it = bodyCache.find(part.Identifier()); if (it==bodyCache.end()) return new encodedString(); encodedString*t = decode_String(it.data(),part.Encoding()); return t; } -encodedString* Genericwrapper::fetchRawPart(const RecMail&mail,const RecPart&part) +encodedString* Genericwrapper::fetchRawPart(const RecMailP&mail,const RecPart&part) { QMap<QString,encodedString*>::ConstIterator it = bodyCache.find(part.Identifier()); if (it==bodyCache.end()) return new encodedString(); encodedString*t = it.data(); return t; } -QString Genericwrapper::fetchTextPart(const RecMail&mail,const RecPart&part) +QString Genericwrapper::fetchTextPart(const RecMailP&mail,const RecPart&part) { encodedString*t = fetchDecodedPart(mail,part); QString text=t->Content(); delete t; return text; } @@ -384,13 +384,13 @@ QStringList Genericwrapper::parseInreplies(mailimf_in_reply_to * in_replies) res.append(h); } } return res; } -void Genericwrapper::parseList(QList<RecMail> &target,mailsession*session,const QString&mailbox,bool mbox_as_to) +void Genericwrapper::parseList(QValueList<Opie::OSmartPointer<RecMail> > &target,mailsession*session,const QString&mailbox,bool mbox_as_to) { int r; mailmessage_list * env_list = 0; r = mailsession_get_messages_list(session,&env_list); if (r != MAIL_NO_ERROR) { qDebug("Error message list"); @@ -412,13 +412,13 @@ void Genericwrapper::parseList(QList<RecMail> &target,mailsession*session,const QBitArray mFlags(7); msg = (mailmessage*)carray_get(env_list->msg_tab, i); if (msg->msg_fields == NULL) { //qDebug("could not fetch envelope of message %i", i); continue; } - RecMail * mail = new RecMail(); + RecMailP mail = new RecMail(); mail->setWrapper(this); mail_flags * flag_result = 0; r = mailmessage_get_flags(msg,&flag_result); if (r == MAIL_ERROR_NOT_IMPLEMENTED) { mFlags.setBit(FLAG_SEEN); } diff --git a/noncore/net/mail/libmailwrapper/genericwrapper.h b/noncore/net/mail/libmailwrapper/genericwrapper.h index d0db45a..f9968d1 100644 --- a/noncore/net/mail/libmailwrapper/genericwrapper.h +++ b/noncore/net/mail/libmailwrapper/genericwrapper.h @@ -31,17 +31,17 @@ class Genericwrapper : public AbstractMail { Q_OBJECT public: Genericwrapper(); virtual ~Genericwrapper(); - virtual encodedString* fetchDecodedPart(const RecMail&mail,const RecPart&part); - virtual encodedString* fetchRawPart(const RecMail&mail,const RecPart&part); - virtual QString fetchTextPart(const RecMail&mail,const RecPart&part); + virtual encodedString* fetchDecodedPart(const RecMailP&mail,const RecPart&part); + virtual encodedString* fetchRawPart(const RecMailP&mail,const RecPart&part); + virtual QString fetchTextPart(const RecMailP&mail,const RecPart&part); virtual void cleanMimeCache(); - virtual int deleteMbox(const Opie::osmart_pointer<Folder>&){return 1;} + virtual int deleteMbox(const Opie::OSmartPointer<Folder>&){return 1;} virtual void logout(){}; virtual void storeMessage(const char*msg,size_t length, const QString&folder){}; protected: RecBody parseMail( mailmessage * msg ); QString parseMailboxList( mailimf_mailbox_list *list ); @@ -51,13 +51,13 @@ protected: QString parseDateTime( mailimf_date_time *date ); void traverseBody(RecBody&target,mailmessage*message,mailmime*mime,QValueList<int>recList,unsigned int current_rek=0,int current_count=1); static void fillSingleBody(RecPart&target,mailmessage*message,mailmime*mime); static void fillParameters(RecPart&target,clist*parameters); static QString getencoding(mailmime_mechanism*aEnc); - virtual void parseList(QList<RecMail> &target,mailsession*session,const QString&mailbox,bool mbox_as_to=false); + virtual void parseList(QValueList<Opie::OSmartPointer<RecMail> > &target,mailsession*session,const QString&mailbox,bool mbox_as_to=false); QStringList parseInreplies(mailimf_in_reply_to * in_replies); QString msgTempName; unsigned int last_msg_id; QMap<QString,encodedString*> bodyCache; mailstorage * m_storage; diff --git a/noncore/net/mail/libmailwrapper/imapwrapper.cpp b/noncore/net/mail/libmailwrapper/imapwrapper.cpp index 3b3be0f..071e734 100644 --- a/noncore/net/mail/libmailwrapper/imapwrapper.cpp +++ b/noncore/net/mail/libmailwrapper/imapwrapper.cpp @@ -202,13 +202,13 @@ void IMAPwrapper::logout() err = mailimap_close( m_imap ); mailimap_free( m_imap ); m_imap = 0; m_Lastmbox = ""; } -void IMAPwrapper::listMessages(const QString&mailbox,QList<RecMail> &target ) +void IMAPwrapper::listMessages(const QString&mailbox,QValueList<Opie::OSmartPointer<RecMail> > &target ) { int err = MAILIMAP_NO_ERROR; clist *result = 0; clistcell *current; mailimap_fetch_type *fetchType = 0; mailimap_set *set = 0; @@ -263,13 +263,13 @@ void IMAPwrapper::listMessages(const QString&mailbox,QList<RecMail> &target ) } else { Global::statusMessage(tr("Error fetching headers: %1").arg(m_imap->imap_response)); } if (result) mailimap_fetch_list_free(result); } -QValueList<Opie::osmart_pointer<Folder> >* IMAPwrapper::listFolders() +QValueList<Opie::OSmartPointer<Folder> >* IMAPwrapper::listFolders() { const char *path, *mask; int err = MAILIMAP_NO_ERROR; clist *result = 0; clistcell *current = 0; clistcell*cur_flag = 0; @@ -479,37 +479,37 @@ RecMail*IMAPwrapper::parse_list_result(mailimap_msg_att* m_att) m->setFlags(mFlags); m->setMsgsize(size); } return m; } -RecBody IMAPwrapper::fetchBody(const RecMail&mail) +RecBody IMAPwrapper::fetchBody(const RecMailP&mail) { RecBody body; const char *mb; int err = MAILIMAP_NO_ERROR; clist *result = 0; clistcell *current; mailimap_fetch_att *fetchAtt = 0; mailimap_fetch_type *fetchType = 0; mailimap_set *set = 0; mailimap_body*body_desc = 0; - mb = mail.getMbox().latin1(); + mb = mail->getMbox().latin1(); login(); if (!m_imap) { return body; } - err = selectMbox(mail.getMbox()); + err = selectMbox(mail->getMbox()); if ( err != MAILIMAP_NO_ERROR ) { return body; } /* the range has to start at 1!!! not with 0!!!! */ - set = mailimap_set_new_interval( mail.getNumber(),mail.getNumber() ); + set = mailimap_set_new_interval( mail->getNumber(),mail->getNumber() ); fetchAtt = mailimap_fetch_att_new_bodystructure(); fetchType = mailimap_fetch_type_new_fetch_att(fetchAtt); err = mailimap_fetch( m_imap, set, fetchType, &result ); mailimap_set_free( set ); mailimap_fetch_type_free( fetchType ); @@ -565,13 +565,13 @@ QStringList IMAPwrapper::address_list_to_stringlist(clist*list) break; } } return l; } -encodedString*IMAPwrapper::fetchRawPart(const RecMail&mail,const QValueList<int>&path,bool internal_call) +encodedString*IMAPwrapper::fetchRawPart(const RecMailP&mail,const QValueList<int>&path,bool internal_call) { encodedString*res=new encodedString; int err; mailimap_fetch_type *fetchType; mailimap_set *set; clistcell*current,*cur; @@ -582,18 +582,18 @@ encodedString*IMAPwrapper::fetchRawPart(const RecMail&mail,const QValueList<int> login(); if (!m_imap) { return res; } if (!internal_call) { - err = selectMbox(mail.getMbox()); + err = selectMbox(mail->getMbox()); if ( err != MAILIMAP_NO_ERROR ) { return res; } } - set = mailimap_set_new_single(mail.getNumber()); + set = mailimap_set_new_single(mail->getNumber()); clist*id_list = 0; /* if path == empty then its a request for the whole rfc822 mail and generates a "fetch <id> (body[])" statement on imap server */ if (path.count()>0 ) { @@ -638,13 +638,13 @@ encodedString*IMAPwrapper::fetchRawPart(const RecMail&mail,const QValueList<int> if (result) mailimap_fetch_list_free(result); return res; } /* current_recursion is for recursive calls. current_count means the position inside the internal loop! */ -void IMAPwrapper::traverseBody(const RecMail&mail,mailimap_body*body,RecBody&target_body, +void IMAPwrapper::traverseBody(const RecMailP&mail,mailimap_body*body,RecBody&target_body, int current_recursion,QValueList<int>recList,int current_count) { if (!body || current_recursion>=10) { return; } switch (body->bd_type) { @@ -866,30 +866,30 @@ void IMAPwrapper::fillBodyFields(RecPart&target_part,mailimap_body_fields*which) target_part.setDescription(QString(which->bd_description)); } target_part.setEncoding(encoding); target_part.setSize(which->bd_size); } -void IMAPwrapper::deleteMail(const RecMail&mail) +void IMAPwrapper::deleteMail(const RecMailP&mail) { mailimap_flag_list*flist; mailimap_set *set; mailimap_store_att_flags * store_flags; int err; login(); if (!m_imap) { return; } - err = selectMbox(mail.getMbox()); + err = selectMbox(mail->getMbox()); if ( err != MAILIMAP_NO_ERROR ) { return; } flist = mailimap_flag_list_new_empty(); mailimap_flag_list_add(flist,mailimap_flag_new_deleted()); store_flags = mailimap_store_att_flags_new_set_flags(flist); - set = mailimap_set_new_single(mail.getNumber()); + set = mailimap_set_new_single(mail->getNumber()); err = mailimap_store(m_imap,set,store_flags); mailimap_set_free( set ); mailimap_store_att_flags_free(store_flags); if (err != MAILIMAP_NO_ERROR) { qDebug("error deleting mail: %s",m_imap->imap_response); @@ -901,41 +901,41 @@ void IMAPwrapper::deleteMail(const RecMail&mail) if (err != MAILIMAP_NO_ERROR) { qDebug("error deleting mail: %s",m_imap->imap_response); } qDebug("Delete successfull %s",m_imap->imap_response); } -void IMAPwrapper::answeredMail(const RecMail&mail) +void IMAPwrapper::answeredMail(const RecMailP&mail) { mailimap_flag_list*flist; mailimap_set *set; mailimap_store_att_flags * store_flags; int err; login(); if (!m_imap) { return; } - err = selectMbox(mail.getMbox()); + err = selectMbox(mail->getMbox()); if ( err != MAILIMAP_NO_ERROR ) { return; } flist = mailimap_flag_list_new_empty(); mailimap_flag_list_add(flist,mailimap_flag_new_answered()); store_flags = mailimap_store_att_flags_new_add_flags(flist); - set = mailimap_set_new_single(mail.getNumber()); + set = mailimap_set_new_single(mail->getNumber()); err = mailimap_store(m_imap,set,store_flags); mailimap_set_free( set ); mailimap_store_att_flags_free(store_flags); if (err != MAILIMAP_NO_ERROR) { qDebug("error marking mail: %s",m_imap->imap_response); return; } } -QString IMAPwrapper::fetchTextPart(const RecMail&mail,const QValueList<int>&path,bool internal_call,const QString&enc) +QString IMAPwrapper::fetchTextPart(const RecMailP&mail,const QValueList<int>&path,bool internal_call,const QString&enc) { QString body(""); encodedString*res = fetchRawPart(mail,path,internal_call); encodedString*r = decode_String(res,enc); delete res; if (r) { @@ -944,26 +944,26 @@ QString IMAPwrapper::fetchTextPart(const RecMail&mail,const QValueList<int>&path } delete r; } return body; } -QString IMAPwrapper::fetchTextPart(const RecMail&mail,const RecPart&part) +QString IMAPwrapper::fetchTextPart(const RecMailP&mail,const RecPart&part) { return fetchTextPart(mail,part.Positionlist(),false,part.Encoding()); } -encodedString* IMAPwrapper::fetchDecodedPart(const RecMail&mail,const RecPart&part) +encodedString* IMAPwrapper::fetchDecodedPart(const RecMailP&mail,const RecPart&part) { encodedString*res = fetchRawPart(mail,part.Positionlist(),false); encodedString*r = decode_String(res,part.Encoding()); delete res; return r; } -encodedString* IMAPwrapper::fetchRawPart(const RecMail&mail,const RecPart&part) +encodedString* IMAPwrapper::fetchRawPart(const RecMailP&mail,const RecPart&part) { return fetchRawPart(mail,part.Positionlist(),false); } int IMAPwrapper::deleteAllMail(const FolderP&folder) { @@ -1052,13 +1052,12 @@ int IMAPwrapper::deleteMbox(const FolderP&folder) void IMAPwrapper::statusFolder(folderStat&target_stat,const QString & mailbox) { mailimap_status_att_list * att_list =0; mailimap_mailbox_data_status * status=0; clistiter * cur = 0; int r = 0; - int res = 0; target_stat.message_count = 0; target_stat.message_unseen = 0; target_stat.message_recent = 0; login(); if (!m_imap) { return; @@ -1112,13 +1111,13 @@ MAILLIB::ATYPE IMAPwrapper::getType()const const QString&IMAPwrapper::getName()const { qDebug("Get name: %s",account->getAccountName().latin1()); return account->getAccountName(); } -encodedString* IMAPwrapper::fetchRawBody(const RecMail&mail) +encodedString* IMAPwrapper::fetchRawBody(const RecMailP&mail) { // dummy QValueList<int> path; return fetchRawPart(mail,path,false); } @@ -1151,29 +1150,29 @@ void IMAPwrapper::mvcpAllMails(const FolderP&fromFolder, } if (moveit) { deleteAllMail(fromFolder); } } -void IMAPwrapper::mvcpMail(const RecMail&mail,const QString&targetFolder,AbstractMail*targetWrapper,bool moveit) +void IMAPwrapper::mvcpMail(const RecMailP&mail,const QString&targetFolder,AbstractMail*targetWrapper,bool moveit) { if (targetWrapper != this) { qDebug("Using generic"); AbstractMail::mvcpMail(mail,targetFolder,targetWrapper,moveit); return; } mailimap_set *set = 0; login(); if (!m_imap) { return; } - int err = selectMbox(mail.getMbox()); + int err = selectMbox(mail->getMbox()); if ( err != MAILIMAP_NO_ERROR ) { return; } - set = mailimap_set_new_single(mail.getNumber()); + set = mailimap_set_new_single(mail->getNumber()); err = mailimap_copy(m_imap,set,targetFolder.latin1()); mailimap_set_free( set ); if ( err != MAILIMAP_NO_ERROR ) { QString error_msg = tr("error copy mail: %1").arg(m_imap->imap_response); Global::statusMessage(error_msg); qDebug(error_msg); diff --git a/noncore/net/mail/libmailwrapper/imapwrapper.h b/noncore/net/mail/libmailwrapper/imapwrapper.h index 15f049f..3bd5967 100644 --- a/noncore/net/mail/libmailwrapper/imapwrapper.h +++ b/noncore/net/mail/libmailwrapper/imapwrapper.h @@ -20,55 +20,55 @@ class encodedString; class IMAPwrapper : public AbstractMail { Q_OBJECT public: IMAPwrapper( IMAPaccount *a ); virtual ~IMAPwrapper(); - virtual QValueList<Opie::osmart_pointer<Folder> >* listFolders(); - virtual void listMessages(const QString & mailbox,QList<RecMail>&target ); + virtual QValueList<Opie::OSmartPointer<Folder> >* listFolders(); + virtual void listMessages(const QString & mailbox,QValueList<Opie::OSmartPointer<RecMail> >&target ); virtual void statusFolder(folderStat&target_stat,const QString & mailbox="INBOX"); - virtual void deleteMail(const RecMail&mail); - virtual void answeredMail(const RecMail&mail); - virtual int deleteAllMail(const Opie::osmart_pointer<Folder>&folder); + virtual void deleteMail(const RecMailP&mail); + virtual void answeredMail(const RecMailP&mail); + virtual int deleteAllMail(const Opie::OSmartPointer<Folder>&folder); virtual void storeMessage(const char*msg,size_t length, const QString&folder); - virtual void mvcpAllMails(const Opie::osmart_pointer<Folder>&fromFolder, + virtual void mvcpAllMails(const Opie::OSmartPointer<Folder>&fromFolder, const QString&targetFolder,AbstractMail*targetWrapper,bool moveit); - virtual void mvcpMail(const RecMail&mail,const QString&targetFolder,AbstractMail*targetWrapper,bool moveit); + virtual void mvcpMail(const RecMailP&mail,const QString&targetFolder,AbstractMail*targetWrapper,bool moveit); - virtual RecBody fetchBody(const RecMail&mail); - virtual QString fetchTextPart(const RecMail&mail,const RecPart&part); - virtual encodedString* fetchDecodedPart(const RecMail&mail,const RecPart&part); - virtual encodedString* fetchRawPart(const RecMail&mail,const RecPart&part); - virtual encodedString* fetchRawBody(const RecMail&mail); + virtual RecBody fetchBody(const RecMailP&mail); + virtual QString fetchTextPart(const RecMailP&mail,const RecPart&part); + virtual encodedString* fetchDecodedPart(const RecMailP&mail,const RecPart&part); + virtual encodedString* fetchRawPart(const RecMailP&mail,const RecPart&part); + virtual encodedString* fetchRawBody(const RecMailP&mail); - virtual int createMbox(const QString&,const Opie::osmart_pointer<Folder>&parentfolder=0, + virtual int createMbox(const QString&,const Opie::OSmartPointer<Folder>&parentfolder=0, const QString& delemiter="/",bool getsubfolder=false); - virtual int deleteMbox(const Opie::osmart_pointer<Folder>&folder); + virtual int deleteMbox(const Opie::OSmartPointer<Folder>&folder); static void imap_progress( size_t current, size_t maximum ); virtual void logout(); virtual MAILLIB::ATYPE getType()const; virtual const QString&getName()const; protected: RecMail*parse_list_result(mailimap_msg_att*); void login(); bool start_tls(bool force=true); - virtual QString fetchTextPart(const RecMail&mail,const QValueList<int>&path,bool internal_call=false,const QString&enc=""); - virtual encodedString*fetchRawPart(const RecMail&mail,const QValueList<int>&path,bool internal_call); + virtual QString fetchTextPart(const RecMailP&mail,const QValueList<int>&path,bool internal_call=false,const QString&enc=""); + virtual encodedString*fetchRawPart(const RecMailP&mail,const QValueList<int>&path,bool internal_call); int selectMbox(const QString&mbox); void fillSinglePart(RecPart&target_part,mailimap_body_type_1part*Description); void fillSingleTextPart(RecPart&target_part,mailimap_body_type_text*which); void fillSingleBasicPart(RecPart&target_part,mailimap_body_type_basic*which); void fillSingleMsgPart(RecPart&target_part,mailimap_body_type_msg*which); void fillMultiPart(RecPart&target_part,mailimap_body_type_mpart*which); - void traverseBody(const RecMail&mail,mailimap_body*body,RecBody&target_body,int current_recursion,QValueList<int>recList,int current_count=1); + void traverseBody(const RecMailP&mail,mailimap_body*body,RecBody&target_body,int current_recursion,QValueList<int>recList,int current_count=1); /* just helpers */ static void fillBodyFields(RecPart&target_part,mailimap_body_fields*which); static QStringList address_list_to_stringlist(clist*list); diff --git a/noncore/net/mail/libmailwrapper/mailtypes.cpp b/noncore/net/mail/libmailwrapper/mailtypes.cpp index 49b3caa..7dd7e58 100644 --- a/noncore/net/mail/libmailwrapper/mailtypes.cpp +++ b/noncore/net/mail/libmailwrapper/mailtypes.cpp @@ -1,17 +1,17 @@ #include "mailtypes.h" #include <stdlib.h> RecMail::RecMail() - :subject(""),date(""),from(""),mbox(""),msg_id(""),msg_number(0),msg_size(0),msg_flags(7) + :Opie::ORefCount(),subject(""),date(""),from(""),mbox(""),msg_id(""),msg_number(0),msg_size(0),msg_flags(7) { init(); } RecMail::RecMail(const RecMail&old) - :subject(""),date(""),from(""),mbox(""),msg_id(""),msg_number(0),msg_flags(7) + :Opie::ORefCount(),subject(""),date(""),from(""),mbox(""),msg_id(""),msg_number(0),msg_flags(7) { init(); copy_old(old); qDebug("Copy constructor RecMail"); } diff --git a/noncore/net/mail/libmailwrapper/mailtypes.h b/noncore/net/mail/libmailwrapper/mailtypes.h index 10d367f..dc10de6 100644 --- a/noncore/net/mail/libmailwrapper/mailtypes.h +++ b/noncore/net/mail/libmailwrapper/mailtypes.h @@ -5,12 +5,14 @@ #define FLAG_FLAGGED 1 #define FLAG_DELETED 2 #define FLAG_SEEN 3 #define FLAG_DRAFT 4 #define FLAG_RECENT 5 +#include <opie2/osmartpointer.h> + #include <qbitarray.h> #include <qstring.h> #include <qstringlist.h> #include <qmap.h> #include <qvaluelist.h> @@ -24,35 +26,35 @@ class AbstractMail; needed from the mail-wrapper class direct from the server itself (imap) or from a file-based cache (pop3?) So there is no interface "const QString&body()" but you should make a request to the mailwrapper with this class as parameter to get the body. Same words for the attachments. */ -class RecMail +class RecMail:public Opie::ORefCount { public: RecMail(); RecMail(const RecMail&old); virtual ~RecMail(); - const int getNumber()const{return msg_number;} - void setNumber(int number){msg_number=number;} + const unsigned int getNumber()const{return msg_number;} + void setNumber(unsigned int number){msg_number=number;} const QString&getDate()const{ return date; } void setDate( const QString&a ) { date = a; } const QString&getFrom()const{ return from; } void setFrom( const QString&a ) { from = a; } const QString&getSubject()const { return subject; } void setSubject( const QString&s ) { subject = s; } const QString&getMbox()const{return mbox;} void setMbox(const QString&box){mbox = box;} void setMsgid(const QString&id){msg_id=id;} const QString&Msgid()const{return msg_id;} void setReplyto(const QString&reply){replyto=reply;} const QString&Replyto()const{return replyto;} - void setMsgsize(int size){msg_size = size;} - const int Msgsize()const{return msg_size;} + void setMsgsize(unsigned int size){msg_size = size;} + const unsigned int Msgsize()const{return msg_size;} void setTo(const QStringList&list); const QStringList&To()const; void setCC(const QStringList&list); const QStringList&CC()const; @@ -68,20 +70,21 @@ public: void setWrapper(AbstractMail*wrapper); AbstractMail* Wrapper(); protected: QString subject,date,from,mbox,msg_id,replyto; - int msg_number,msg_size; + unsigned int msg_number,msg_size; QBitArray msg_flags; QStringList to,cc,bcc,in_reply_to,references; AbstractMail*wrapper; void init(); void copy_old(const RecMail&old); }; +typedef Opie::OSmartPointer<RecMail> RecMailP; typedef QMap<QString,QString> part_plist_t; class RecPart { protected: QString m_type,m_subtype,m_identifier,m_encoding,m_description; diff --git a/noncore/net/mail/libmailwrapper/mailwrapper.cpp b/noncore/net/mail/libmailwrapper/mailwrapper.cpp index c71d69f..9bf2fd3 100644 --- a/noncore/net/mail/libmailwrapper/mailwrapper.cpp +++ b/noncore/net/mail/libmailwrapper/mailwrapper.cpp @@ -152,13 +152,13 @@ QString IMAPFolder::decodeFolderName( const QString &name ) } return QString::fromUtf8( dst.data() ); } Mail::Mail() - :Opie::oref_count(),name(""), mail(""), to(""), cc(""), bcc(""), reply(""), subject(""), message("") + :Opie::ORefCount(),name(""), mail(""), to(""), cc(""), bcc(""), reply(""), subject(""), message("") { } MHFolder::MHFolder(const QString&disp_name,const QString&mbox) : Folder( disp_name,"/" ) { diff --git a/noncore/net/mail/libmailwrapper/mailwrapper.h b/noncore/net/mail/libmailwrapper/mailwrapper.h index 3b3bb32..6bf0078 100644 --- a/noncore/net/mail/libmailwrapper/mailwrapper.h +++ b/noncore/net/mail/libmailwrapper/mailwrapper.h @@ -5,13 +5,13 @@ #include <qbitarray.h> #include <qdatetime.h> #include "settings.h" -#include <opie2/osmart_pointer.h> +#include <opie2/osmartpointer.h> class Attachment { public: Attachment( DocLnk lnk ); virtual ~Attachment(){} @@ -25,13 +25,13 @@ public: protected: DocLnk doc; int size; }; -class Mail:public Opie::oref_count +class Mail:public Opie::ORefCount { public: Mail(); /* Possible that this destructor must not be declared virtual * 'cause it seems that it will never have some child classes. * in this case this object will not get a virtual table -> memory and @@ -63,13 +63,13 @@ public: private: QList<Attachment> attList; QString name, mail, to, cc, bcc, reply, subject, message; QStringList m_in_reply_to; }; -class Folder:public Opie::oref_count +class Folder:public Opie::ORefCount { public: Folder( const QString&init_name,const QString&sep ); virtual ~Folder(); const QString&getDisplayName()const { return nameDisplay; } const QString&getName()const { return name; } @@ -79,13 +79,13 @@ public: const QString&Separator()const; protected: QString nameDisplay, name, separator,prefix; }; -typedef Opie::osmart_pointer<Folder> FolderP; +typedef Opie::OSmartPointer<Folder> FolderP; class MHFolder : public Folder { public: MHFolder(const QString&disp_name,const QString&mbox); virtual ~MHFolder(); diff --git a/noncore/net/mail/libmailwrapper/mboxwrapper.cpp b/noncore/net/mail/libmailwrapper/mboxwrapper.cpp index 9ff3de2..5e6b714 100644 --- a/noncore/net/mail/libmailwrapper/mboxwrapper.cpp +++ b/noncore/net/mail/libmailwrapper/mboxwrapper.cpp @@ -16,13 +16,13 @@ MBOXwrapper::MBOXwrapper(const QString & mbox_dir,const QString&mbox_name) } MBOXwrapper::~MBOXwrapper() { } -void MBOXwrapper::listMessages(const QString & mailbox, QList<RecMail> &target ) +void MBOXwrapper::listMessages(const QString & mailbox, QValueList<RecMailP> &target ) { mailstorage*storage = mailstorage_new(NULL); QString p = MBOXPath+"/"; p+=mailbox; int r = mbox_mailstorage_init(storage,(char*)p.latin1(),0,0,0); @@ -41,60 +41,60 @@ void MBOXwrapper::listMessages(const QString & mailbox, QList<RecMail> &target ) mailfolder_disconnect(folder); mailfolder_free(folder); mailstorage_free(storage); Global::statusMessage(tr("Mailbox has %1 mail(s)").arg(target.count())); } -QValueList<Opie::osmart_pointer<Folder> >* MBOXwrapper::listFolders() +QValueList<Opie::OSmartPointer<Folder> >* MBOXwrapper::listFolders() { - QValueList<Opie::osmart_pointer<Folder> >* folders = new QValueList<Opie::osmart_pointer<Folder> >(); + QValueList<Opie::OSmartPointer<Folder> >* folders = new QValueList<Opie::OSmartPointer<Folder> >(); QDir dir(MBOXPath); if (!dir.exists()) return folders; dir.setFilter(QDir::Files|QDir::Writable|QDir::Readable); QStringList entries = dir.entryList(); QStringList::ConstIterator it = entries.begin(); for (;it!=entries.end();++it) { FolderP inb=new Folder(*it,"/"); folders->append(inb); } return folders; } -void MBOXwrapper::deleteMail(const RecMail&mail) +void MBOXwrapper::deleteMail(const RecMailP & mail) { mailstorage*storage = mailstorage_new(NULL); QString p = MBOXPath+"/"; - p+=mail.getMbox(); + p+=mail->getMbox(); int r = mbox_mailstorage_init(storage,(char*)p.latin1(),0,0,0); mailfolder*folder; folder = mailfolder_new( storage,(char*)p.latin1(),NULL); r = mailfolder_connect(folder); if (r != MAIL_NO_ERROR) { qDebug("Error initializing mbox"); mailfolder_free(folder); mailstorage_free(storage); return; } - r = mailsession_remove_message(folder->fld_session,mail.getNumber()); + r = mailsession_remove_message(folder->fld_session,mail->getNumber()); if (r != MAIL_NO_ERROR) { qDebug("error deleting mail"); } mailfolder_free(folder); mailstorage_free(storage); } -void MBOXwrapper::answeredMail(const RecMail&) +void MBOXwrapper::answeredMail(const RecMailP&) { } -RecBody MBOXwrapper::fetchBody( const RecMail &mail ) +RecBody MBOXwrapper::fetchBody( const RecMailP &mail ) { RecBody body; mailstorage*storage = mailstorage_new(NULL); QString p = MBOXPath+"/"; - p+=mail.getMbox(); + p+=mail->getMbox(); mailmessage * msg; char*data=0; size_t size; int r = mbox_mailstorage_init(storage,(char*)p.latin1(),0,0,0); mailfolder*folder; @@ -103,22 +103,22 @@ RecBody MBOXwrapper::fetchBody( const RecMail &mail ) if (r != MAIL_NO_ERROR) { qDebug("Error initializing mbox"); mailfolder_free(folder); mailstorage_free(storage); return body; } - r = mailsession_get_message(folder->fld_session, mail.getNumber(), &msg); + r = mailsession_get_message(folder->fld_session, mail->getNumber(), &msg); if (r != MAIL_NO_ERROR) { - qDebug("Error fetching mail %i",mail.getNumber()); + qDebug("Error fetching mail %i",mail->getNumber()); mailfolder_free(folder); mailstorage_free(storage); return body; } r = mailmessage_fetch(msg,&data,&size); if (r != MAIL_NO_ERROR) { - qDebug("Error fetching mail %i",mail.getNumber()); + qDebug("Error fetching mail %i",mail->getNumber()); mailfolder_free(folder); mailstorage_free(storage); mailmessage_free(msg); return body; } body = parseMail(msg); @@ -166,18 +166,18 @@ void MBOXwrapper::storeMessage(const char*msg,size_t length, const QString&folde if (r != MAIL_NO_ERROR) { Global::statusMessage(tr("Error writing to message folder")); } mailmbox_done(f); } -encodedString* MBOXwrapper::fetchRawBody(const RecMail&mail) +encodedString* MBOXwrapper::fetchRawBody(const RecMailP&mail) { RecBody body; mailstorage*storage = mailstorage_new(NULL); QString p = MBOXPath+"/"; - p+=mail.getMbox(); + p+=mail->getMbox(); mailmessage * msg; char*data=0; size_t size; int r = mbox_mailstorage_init(storage,(char*)p.latin1(),0,0,0); mailfolder*folder; @@ -186,22 +186,22 @@ encodedString* MBOXwrapper::fetchRawBody(const RecMail&mail) if (r != MAIL_NO_ERROR) { Global::statusMessage(tr("Error initializing mbox")); mailfolder_free(folder); mailstorage_free(storage); return 0; } - r = mailsession_get_message(folder->fld_session, mail.getNumber(), &msg); + r = mailsession_get_message(folder->fld_session, mail->getNumber(), &msg); if (r != MAIL_NO_ERROR) { - Global::statusMessage(tr("Error fetching mail %i").arg(mail.getNumber())); + Global::statusMessage(tr("Error fetching mail %i").arg(mail->getNumber())); mailfolder_free(folder); mailstorage_free(storage); return 0; } r = mailmessage_fetch(msg,&data,&size); if (r != MAIL_NO_ERROR) { - Global::statusMessage(tr("Error fetching mail %i").arg(mail.getNumber())); + Global::statusMessage(tr("Error fetching mail %i").arg(mail->getNumber())); mailfolder_free(folder); mailstorage_free(storage); mailmessage_free(msg); return 0; } encodedString*result = new encodedString(data,size); @@ -209,13 +209,13 @@ encodedString* MBOXwrapper::fetchRawBody(const RecMail&mail) mailfolder_free(folder); mailstorage_free(storage); mailmessage_free(msg); return result; } -void MBOXwrapper::deleteMails(const QString & mailbox,QList<RecMail> &target) +void MBOXwrapper::deleteMails(const QString & mailbox,const QValueList<RecMailP> &target) { QString p = MBOXPath+"/"; p+=mailbox; mailmbox_folder*f = 0; int r = mailmbox_init(p.latin1(),0,1,0,&f); if (r != MAIL_NO_ERROR) { @@ -223,18 +223,19 @@ void MBOXwrapper::deleteMails(const QString & mailbox,QList<RecMail> &target) return; } deleteMails(f,target); mailmbox_done(f); } -void MBOXwrapper::deleteMails(mailmbox_folder*f,QList<RecMail> &target) +void MBOXwrapper::deleteMails(mailmbox_folder*f,const QValueList<RecMailP> &target) { if (!f) return; int r; - for (unsigned int i=0; i < target.count();++i) { - r = mailmbox_delete_msg(f,target.at(i)->getNumber()); + QValueList<RecMailP>::ConstIterator it; + for (it=target.begin(); it != target.end();++it) { + r = mailmbox_delete_msg(f,(*it)->getNumber()); if (r!=MAILMBOX_NO_ERROR) { qDebug("error delete mail"); } } r = mailmbox_expunge(f); if (r != MAILMBOX_NO_ERROR) { diff --git a/noncore/net/mail/libmailwrapper/mboxwrapper.h b/noncore/net/mail/libmailwrapper/mboxwrapper.h index c3d9b50..33eeb1e 100644 --- a/noncore/net/mail/libmailwrapper/mboxwrapper.h +++ b/noncore/net/mail/libmailwrapper/mboxwrapper.h @@ -1,48 +1,46 @@ #ifndef __MBOX_WRAPPER_H #define __MBOX_WRAPPER_H #include "genericwrapper.h" #include <qstring.h> -class RecMail; -class RecBody; class encodedString; struct mailmbox_folder; class MBOXwrapper : public Genericwrapper { Q_OBJECT public: MBOXwrapper(const QString & dir,const QString&name); virtual ~MBOXwrapper(); - virtual void listMessages(const QString & mailbox, QList<RecMail> &target ); - virtual QValueList<Opie::osmart_pointer<Folder> >* listFolders(); + virtual void listMessages(const QString & mailbox, QValueList<RecMailP>&target ); + virtual QValueList<Opie::OSmartPointer<Folder> >* listFolders(); virtual void statusFolder(folderStat&target_stat,const QString & mailbox="INBOX"); - virtual void deleteMail(const RecMail&mail); - virtual void answeredMail(const RecMail&mail); + virtual void deleteMail(const RecMailP&mail); + virtual void answeredMail(const RecMailP&mail); - virtual int createMbox(const QString&folder,const Opie::osmart_pointer<Folder>&f=0, + virtual int createMbox(const QString&folder,const Opie::OSmartPointer<Folder>&f=0, const QString&d="",bool s=false); - virtual int deleteMbox(const Opie::osmart_pointer<Folder>&); + virtual int deleteMbox(const Opie::OSmartPointer<Folder>&); virtual void storeMessage(const char*msg,size_t length, const QString&folder); - virtual RecBody fetchBody( const RecMail &mail ); + virtual RecBody fetchBody( const RecMailP &mail ); static void mbox_progress( size_t current, size_t maximum ); - virtual encodedString* fetchRawBody(const RecMail&mail); - virtual void deleteMails(const QString & FolderName,QList<RecMail> &target); - virtual int deleteAllMail(const Opie::osmart_pointer<Folder>&); + virtual encodedString* fetchRawBody(const RecMailP&mail); + virtual void deleteMails(const QString & FolderName,const QValueList<RecMailP> &target); + virtual int deleteAllMail(const Opie::OSmartPointer<Folder>&); virtual MAILLIB::ATYPE getType()const; virtual const QString&getName()const; protected: - static void deleteMails(mailmbox_folder*f,QList<RecMail> &target); + static void deleteMails(mailmbox_folder*f,const QValueList<RecMailP> &target); QString MBOXPath; QString MBOXName; }; #endif diff --git a/noncore/net/mail/libmailwrapper/mhwrapper.cpp b/noncore/net/mail/libmailwrapper/mhwrapper.cpp index aaaa20a..0b00a2e 100644 --- a/noncore/net/mail/libmailwrapper/mhwrapper.cpp +++ b/noncore/net/mail/libmailwrapper/mhwrapper.cpp @@ -57,13 +57,13 @@ void MHwrapper::clean_storage() MHwrapper::~MHwrapper() { clean_storage(); } -void MHwrapper::listMessages(const QString & mailbox, QList<RecMail> &target ) +void MHwrapper::listMessages(const QString & mailbox, QValueList<Opie::OSmartPointer<RecMail> > &target ) { init_storage(); if (!m_storage) { return; } QString f = buildPath(mailbox); @@ -73,15 +73,15 @@ void MHwrapper::listMessages(const QString & mailbox, QList<RecMail> &target ) return; } parseList(target,m_storage->sto_session,f); Global::statusMessage(tr("Mailbox has %1 mail(s)").arg(target.count())); } -QValueList<Opie::osmart_pointer<Folder> >* MHwrapper::listFolders() +QValueList<Opie::OSmartPointer<Folder> >* MHwrapper::listFolders() { - QValueList<Opie::osmart_pointer<Folder> >* folders = new QValueList<Opie::osmart_pointer<Folder> >(); + QValueList<Opie::OSmartPointer<Folder> >* folders = new QValueList<Opie::OSmartPointer<Folder> >(); /* this is needed! */ if (m_storage) mailstorage_disconnect(m_storage); init_storage(); if (!m_storage) { return folders; } @@ -98,52 +98,51 @@ QValueList<Opie::osmart_pointer<Folder> >* MHwrapper::listFolders() folders->append(new MHFolder(t,MHPath)); } mail_list_free(flist); return folders; } -void MHwrapper::deleteMail(const RecMail&mail) +void MHwrapper::deleteMail(const RecMailP&mail) { init_storage(); if (!m_storage) { return; } - int r = mailsession_select_folder(m_storage->sto_session,(char*)mail.getMbox().latin1()); + int r = mailsession_select_folder(m_storage->sto_session,(char*)mail->getMbox().latin1()); if (r!=MAIL_NO_ERROR) { qDebug("error selecting folder!"); return; } - r = mailsession_remove_message(m_storage->sto_session,mail.getNumber()); + r = mailsession_remove_message(m_storage->sto_session,mail->getNumber()); if (r != MAIL_NO_ERROR) { qDebug("error deleting mail"); } } -void MHwrapper::answeredMail(const RecMail&) +void MHwrapper::answeredMail(const RecMailP&) { } -RecBody MHwrapper::fetchBody( const RecMail &mail ) +RecBody MHwrapper::fetchBody( const RecMailP &mail ) { RecBody body; init_storage(); if (!m_storage) { return body; } mailmessage * msg; char*data=0; - size_t size; /* mail should hold the complete path! */ - int r = mailsession_select_folder(m_storage->sto_session,(char*)mail.getMbox().latin1()); + int r = mailsession_select_folder(m_storage->sto_session,(char*)mail->getMbox().latin1()); if (r != MAIL_NO_ERROR) { return body; } - r = mailsession_get_message(m_storage->sto_session, mail.getNumber(), &msg); + r = mailsession_get_message(m_storage->sto_session, mail->getNumber(), &msg); if (r != MAIL_NO_ERROR) { - qDebug("Error fetching mail %i",mail.getNumber()); + qDebug("Error fetching mail %i",mail->getNumber()); return body; } body = parseMail(msg); mailmessage_fetch_result_free(msg,data); return body; } @@ -209,55 +208,54 @@ void MHwrapper::storeMessage(const char*msg,size_t length, const QString&Folder) if (r!=MAIL_NO_ERROR) { qDebug("error storing mail"); } return; } -encodedString* MHwrapper::fetchRawBody(const RecMail&mail) +encodedString* MHwrapper::fetchRawBody(const RecMailP&mail) { encodedString*result = 0; init_storage(); if (!m_storage) { return result; } mailmessage * msg = 0; char*data=0; size_t size; - int r = mailsession_select_folder(m_storage->sto_session,(char*)mail.getMbox().latin1()); + int r = mailsession_select_folder(m_storage->sto_session,(char*)mail->getMbox().latin1()); if (r!=MAIL_NO_ERROR) { qDebug("error selecting folder!"); return result; } - r = mailsession_get_message(m_storage->sto_session, mail.getNumber(), &msg); + r = mailsession_get_message(m_storage->sto_session, mail->getNumber(), &msg); if (r != MAIL_NO_ERROR) { - Global::statusMessage(tr("Error fetching mail %i").arg(mail.getNumber())); + Global::statusMessage(tr("Error fetching mail %i").arg(mail->getNumber())); return 0; } r = mailmessage_fetch(msg,&data,&size); if (r != MAIL_NO_ERROR) { - Global::statusMessage(tr("Error fetching mail %i").arg(mail.getNumber())); + Global::statusMessage(tr("Error fetching mail %i").arg(mail->getNumber())); if (msg) mailmessage_free(msg); return 0; } result = new encodedString(data,size); if (msg) mailmessage_free(msg); return result; } -void MHwrapper::deleteMails(const QString & mailbox,QList<RecMail> &target) +void MHwrapper::deleteMails(const QString & mailbox,const QValueList<RecMailP> &target) { QString f = buildPath(mailbox); int r = mailsession_select_folder(m_storage->sto_session,(char*)f.latin1()); if (r!=MAIL_NO_ERROR) { qDebug("deleteMails: error selecting folder!"); return; } - RecMail*c = 0; - for (unsigned int i=0; i < target.count();++i) { - c = target.at(i); - r = mailsession_remove_message(m_storage->sto_session,c->getNumber()); + QValueList<RecMailP>::ConstIterator it; + for (it=target.begin(); it!=target.end();++it) { + r = mailsession_remove_message(m_storage->sto_session,(*it)->getNumber()); if (r != MAIL_NO_ERROR) { qDebug("error deleting mail"); break; } } } @@ -369,34 +367,34 @@ MAILLIB::ATYPE MHwrapper::getType()const } const QString&MHwrapper::getName()const { return MHName; } -void MHwrapper::mvcpMail(const RecMail&mail,const QString&targetFolder,AbstractMail*targetWrapper,bool moveit) +void MHwrapper::mvcpMail(const RecMailP&mail,const QString&targetFolder,AbstractMail*targetWrapper,bool moveit) { init_storage(); if (!m_storage) { return; } if (targetWrapper != this) { qDebug("Using generic"); Genericwrapper::mvcpMail(mail,targetFolder,targetWrapper,moveit); return; } qDebug("Using internal routines for move/copy"); QString tf = buildPath(targetFolder); - int r = mailsession_select_folder(m_storage->sto_session,(char*)mail.getMbox().latin1()); + int r = mailsession_select_folder(m_storage->sto_session,(char*)mail->getMbox().latin1()); if (r != MAIL_NO_ERROR) { qDebug("Error selecting source mailbox"); return; } if (moveit) { - r = mailsession_move_message(m_storage->sto_session,mail.getNumber(),(char*)tf.latin1()); + r = mailsession_move_message(m_storage->sto_session,mail->getNumber(),(char*)tf.latin1()); } else { - r = mailsession_copy_message(m_storage->sto_session,mail.getNumber(),(char*)tf.latin1()); + r = mailsession_copy_message(m_storage->sto_session,mail->getNumber(),(char*)tf.latin1()); } if (r != MAIL_NO_ERROR) { qDebug("Error copy/moving mail internal (%i)",r); } } diff --git a/noncore/net/mail/libmailwrapper/mhwrapper.h b/noncore/net/mail/libmailwrapper/mhwrapper.h index c7c8183..208cf2f 100644 --- a/noncore/net/mail/libmailwrapper/mhwrapper.h +++ b/noncore/net/mail/libmailwrapper/mhwrapper.h @@ -3,47 +3,45 @@ #include "maildefines.h" #include "genericwrapper.h" #include <qstring.h> -class RecMail; -class RecBody; class encodedString; struct mailmbox_folder; class OProcess; class MHwrapper : public Genericwrapper { Q_OBJECT public: MHwrapper(const QString & dir,const QString&name); virtual ~MHwrapper(); - virtual void listMessages(const QString & mailbox, QList<RecMail> &target ); - virtual QValueList<Opie::osmart_pointer<Folder> >* listFolders(); + virtual void listMessages(const QString & mailbox, QValueList<Opie::OSmartPointer<RecMail> > &target ); + virtual QValueList<Opie::OSmartPointer<Folder> >* listFolders(); virtual void statusFolder(folderStat&target_stat,const QString & mailbox="INBOX"); - virtual void deleteMail(const RecMail&mail); - virtual void answeredMail(const RecMail&mail); - virtual void mvcpMail(const RecMail&mail,const QString&targetFolder,AbstractMail*targetWrapper,bool moveit); - virtual void mvcpAllMails(const Opie::osmart_pointer<Folder>&fromFolder, + virtual void deleteMail(const RecMailP&mail); + virtual void answeredMail(const RecMailP&mail); + virtual void mvcpMail(const RecMailP&mail,const QString&targetFolder,AbstractMail*targetWrapper,bool moveit); + virtual void mvcpAllMails(const Opie::OSmartPointer<Folder>&fromFolder, const QString&targetFolder,AbstractMail*targetWrapper,bool moveit); - virtual int createMbox(const QString&folder,const Opie::osmart_pointer<Folder>&f=0, + virtual int createMbox(const QString&folder,const Opie::OSmartPointer<Folder>&f=0, const QString&d="",bool s=false); - virtual int deleteMbox(const Opie::osmart_pointer<Folder>&); + virtual int deleteMbox(const Opie::OSmartPointer<Folder>&); virtual void storeMessage(const char*msg,size_t length, const QString&folder); - virtual RecBody fetchBody( const RecMail &mail ); + virtual RecBody fetchBody( const RecMailP &mail ); static void mbox_progress( size_t current, size_t maximum ); - virtual encodedString* fetchRawBody(const RecMail&mail); - virtual void deleteMails(const QString & FolderName,QList<RecMail> &target); - virtual int deleteAllMail(const Opie::osmart_pointer<Folder>&); + virtual encodedString* fetchRawBody(const RecMailP&mail); + virtual void deleteMails(const QString & FolderName,const QValueList<Opie::OSmartPointer<RecMail> > &target); + virtual int deleteAllMail(const Opie::OSmartPointer<Folder>&); virtual MAILLIB::ATYPE getType()const; virtual const QString&getName()const; public slots: /* for deleting maildirs we are using a system call */ virtual void oprocessStderr(OProcess*, char *buffer, int ); diff --git a/noncore/net/mail/libmailwrapper/nntpwrapper.cpp b/noncore/net/mail/libmailwrapper/nntpwrapper.cpp index 2ec052c..c0b3eec 100644 --- a/noncore/net/mail/libmailwrapper/nntpwrapper.cpp +++ b/noncore/net/mail/libmailwrapper/nntpwrapper.cpp @@ -29,40 +29,40 @@ NNTPwrapper::~NNTPwrapper() { void NNTPwrapper::nntp_progress( size_t current, size_t maximum ) { qDebug( "NNTP: %i of %i", current, maximum ); } -RecBody NNTPwrapper::fetchBody( const RecMail &mail ) { +RecBody NNTPwrapper::fetchBody( const RecMailP &mail ) { int err = NEWSNNTP_NO_ERROR; char *message = 0; size_t length = 0; login(); if ( !m_nntp ) { return RecBody(); } RecBody body; mailmessage * mailmsg; - if (mail.Msgsize()>HARD_MSG_SIZE_LIMIT) { - qDebug("Message to large: %i",mail.Msgsize()); + if (mail->Msgsize()>HARD_MSG_SIZE_LIMIT) { + qDebug("Message to large: %i",mail->Msgsize()); return body; } QFile msg_cache(msgTempName); cleanMimeCache(); - if (mail.getNumber()!=last_msg_id) { + if (mail->getNumber()!=last_msg_id) { if (msg_cache.exists()) { msg_cache.remove(); } msg_cache.open(IO_ReadWrite|IO_Truncate); - last_msg_id = mail.getNumber(); - err = mailsession_get_message(m_nntp->sto_session, mail.getNumber(), &mailmsg); + last_msg_id = mail->getNumber(); + err = mailsession_get_message(m_nntp->sto_session, mail->getNumber(), &mailmsg); err = mailmessage_fetch(mailmsg,&message,&length); msg_cache.writeBlock(message,length); } else { QString msg=""; msg_cache.open(IO_ReadOnly); message = new char[4096]; @@ -93,13 +93,13 @@ RecBody NNTPwrapper::fetchBody( const RecMail &mail ) { free(message); return body; } -void NNTPwrapper::listMessages(const QString & which, QList<RecMail> &target ) +void NNTPwrapper::listMessages(const QString & which, QValueList<Opie::OSmartPointer<RecMail> > &target ) { login(); if (!m_nntp) return; uint32_t res_messages,res_recent,res_unseen; mailsession_status_folder(m_nntp->sto_session,(char*)which.latin1(),&res_messages,&res_recent,&res_unseen); @@ -185,15 +185,15 @@ void NNTPwrapper::logout() if ( m_nntp == NULL ) return; mailstorage_free(m_nntp); m_nntp = 0; } -QValueList<Opie::osmart_pointer<Folder> >* NNTPwrapper::listFolders() { +QValueList<Opie::OSmartPointer<Folder> >* NNTPwrapper::listFolders() { - QValueList<Opie::osmart_pointer<Folder> >* folders = new QValueList<Opie::osmart_pointer<Folder> >(); + QValueList<Opie::OSmartPointer<Folder> >* folders = new QValueList<Opie::OSmartPointer<Folder> >(); QStringList groups; if (account) { groups = account->getGroups(); } for ( QStringList::Iterator it = groups.begin(); it != groups.end(); ++it ) { folders->append(new Folder((*it),".")); @@ -236,13 +236,13 @@ QStringList NNTPwrapper::listAllNewsgroups(const QString&mask) { if (result) { newsnntp_list_free(result); } return res; } -void NNTPwrapper::answeredMail(const RecMail&) {} +void NNTPwrapper::answeredMail(const RecMailP&) {} void NNTPwrapper::statusFolder(folderStat&target_stat,const QString&) { login(); target_stat.message_count = 0; target_stat.message_unseen = 0; target_stat.message_recent = 0; @@ -250,18 +250,18 @@ void NNTPwrapper::statusFolder(folderStat&target_stat,const QString&) { return; int r = mailsession_status_folder(m_nntp->sto_session,0,&target_stat.message_count, &target_stat.message_recent,&target_stat.message_unseen); } -encodedString* NNTPwrapper::fetchRawBody(const RecMail&mail) { +encodedString* NNTPwrapper::fetchRawBody(const RecMailP&mail) { char*target=0; size_t length=0; encodedString*res = 0; mailmessage * mailmsg = 0; - int err = mailsession_get_message(m_nntp->sto_session, mail.getNumber(), &mailmsg); + int err = mailsession_get_message(m_nntp->sto_session, mail->getNumber(), &mailmsg); err = mailmessage_fetch(mailmsg,&target,&length); if (mailmsg) mailmessage_free(mailmsg); if (target) { res = new encodedString(target,length); } @@ -273,11 +273,11 @@ MAILLIB::ATYPE NNTPwrapper::getType()const { } const QString&NNTPwrapper::getName()const{ return account->getAccountName(); } -void NNTPwrapper::deleteMail(const RecMail&) { +void NNTPwrapper::deleteMail(const RecMailP&) { } int NNTPwrapper::deleteAllMail(const FolderP&) { } diff --git a/noncore/net/mail/libmailwrapper/nntpwrapper.h b/noncore/net/mail/libmailwrapper/nntpwrapper.h index d3a384a..a7e4b95 100644 --- a/noncore/net/mail/libmailwrapper/nntpwrapper.h +++ b/noncore/net/mail/libmailwrapper/nntpwrapper.h @@ -17,24 +17,24 @@ class NNTPwrapper : public Genericwrapper public: NNTPwrapper( NNTPaccount *a ); virtual ~NNTPwrapper(); /* mailbox will be ignored */ - virtual void listMessages(const QString & mailbox, QList<RecMail> &target ); + virtual void listMessages(const QString & mailbox, QValueList<Opie::OSmartPointer<RecMail> > &target ); /* should only get the subscribed one */ - virtual QValueList<Opie::osmart_pointer<Folder> >* listFolders(); + virtual QValueList<Opie::OSmartPointer<Folder> >* listFolders(); /* mailbox will be ignored */ virtual void statusFolder(folderStat&target_stat,const QString & mailbox="INBOX"); QStringList listAllNewsgroups(const QString&mask = QString::null); - virtual void deleteMail(const RecMail&mail); - virtual void answeredMail(const RecMail&mail); - virtual int deleteAllMail(const Opie::osmart_pointer<Folder>&); + virtual void deleteMail(const RecMailP&mail); + virtual void answeredMail(const RecMailP&mail); + virtual int deleteAllMail(const Opie::OSmartPointer<Folder>&); - virtual RecBody fetchBody( const RecMail &mail ); - virtual encodedString* fetchRawBody(const RecMail&mail); + virtual RecBody fetchBody( const RecMailP &mail ); + virtual encodedString* fetchRawBody(const RecMailP&mail); virtual void logout(); virtual MAILLIB::ATYPE getType()const; virtual const QString&getName()const; static void nntp_progress( size_t current, size_t maximum ); protected: diff --git a/noncore/net/mail/libmailwrapper/pop3wrapper.cpp b/noncore/net/mail/libmailwrapper/pop3wrapper.cpp index 7bf7ed2..6737d6c 100644 --- a/noncore/net/mail/libmailwrapper/pop3wrapper.cpp +++ b/noncore/net/mail/libmailwrapper/pop3wrapper.cpp @@ -27,40 +27,40 @@ POP3wrapper::~POP3wrapper() { } void POP3wrapper::pop3_progress( size_t current, size_t maximum ) { qDebug( "POP3: %i of %i", current, maximum ); } -RecBody POP3wrapper::fetchBody( const RecMail &mail ) { +RecBody POP3wrapper::fetchBody( const RecMailP &mail ) { int err = MAILPOP3_NO_ERROR; char *message = 0; size_t length = 0; login(); if ( !m_pop3 ) { return RecBody(); } RecBody body; mailmessage * mailmsg; - if (mail.Msgsize()>HARD_MSG_SIZE_LIMIT) { - qDebug("Message to large: %i",mail.Msgsize()); + if (mail->Msgsize()>HARD_MSG_SIZE_LIMIT) { + qDebug("Message to large: %i",mail->Msgsize()); return body; } QFile msg_cache(msgTempName); cleanMimeCache(); - if (mail.getNumber()!=last_msg_id) { + if (mail->getNumber()!=last_msg_id) { if (msg_cache.exists()) { msg_cache.remove(); } msg_cache.open(IO_ReadWrite|IO_Truncate); - last_msg_id = mail.getNumber(); - err = mailsession_get_message(m_pop3->sto_session, mail.getNumber(), &mailmsg); + last_msg_id = mail->getNumber(); + err = mailsession_get_message(m_pop3->sto_session, mail->getNumber(), &mailmsg); err = mailmessage_fetch(mailmsg,&message,&length); msg_cache.writeBlock(message,length); } else { QString msg=""; msg_cache.open(IO_ReadOnly); message = new char[4096]; @@ -90,13 +90,13 @@ RecBody POP3wrapper::fetchBody( const RecMail &mail ) { if (message) free(message); return body; } -void POP3wrapper::listMessages(const QString &, QList<RecMail> &target ) +void POP3wrapper::listMessages(const QString &, QValueList<Opie::OSmartPointer<RecMail> > &target ) { login(); if (!m_pop3) return; uint32_t res_messages,res_recent,res_unseen; mailsession_status_folder(m_pop3->sto_session,"INBOX",&res_messages,&res_recent,&res_unseen); @@ -166,38 +166,37 @@ void POP3wrapper::login() m_pop3 = 0; } } void POP3wrapper::logout() { - int err = MAILPOP3_NO_ERROR; if ( m_pop3 == NULL ) return; mailstorage_free(m_pop3); m_pop3 = 0; } -QValueList<Opie::osmart_pointer<Folder> >* POP3wrapper::listFolders() { - QValueList<Opie::osmart_pointer<Folder> >* folders = new QValueList<FolderP>(); +QValueList<Opie::OSmartPointer<Folder> >* POP3wrapper::listFolders() { + QValueList<Opie::OSmartPointer<Folder> >* folders = new QValueList<FolderP>(); FolderP inb=new Folder("INBOX","/"); folders->append(inb); return folders; } -void POP3wrapper::deleteMail(const RecMail&mail) { +void POP3wrapper::deleteMail(const RecMailP&mail) { login(); if (!m_pop3) return; - int err = mailsession_remove_message(m_pop3->sto_session,mail.getNumber()); + int err = mailsession_remove_message(m_pop3->sto_session,mail->getNumber()); if (err != MAIL_NO_ERROR) { Global::statusMessage(tr("error deleting mail")); } } -void POP3wrapper::answeredMail(const RecMail&) {} +void POP3wrapper::answeredMail(const RecMailP&) {} int POP3wrapper::deleteAllMail(const FolderP&) { login(); if (!m_pop3) return 0; int res = 1; @@ -225,20 +224,23 @@ void POP3wrapper::statusFolder(folderStat&target_stat,const QString&) { target_stat.message_unseen = 0; target_stat.message_recent = 0; if (!m_pop3) return; int r = mailsession_status_folder(m_pop3->sto_session,0,&target_stat.message_count, &target_stat.message_recent,&target_stat.message_unseen); + if (r != MAIL_NO_ERROR) { + qDebug("error getting folter status."); + } } -encodedString* POP3wrapper::fetchRawBody(const RecMail&mail) { +encodedString* POP3wrapper::fetchRawBody(const RecMailP&mail) { char*target=0; size_t length=0; encodedString*res = 0; mailmessage * mailmsg = 0; - int err = mailsession_get_message(m_pop3->sto_session, mail.getNumber(), &mailmsg); + int err = mailsession_get_message(m_pop3->sto_session, mail->getNumber(), &mailmsg); err = mailmessage_fetch(mailmsg,&target,&length); if (mailmsg) mailmessage_free(mailmsg); if (target) { res = new encodedString(target,length); } diff --git a/noncore/net/mail/libmailwrapper/pop3wrapper.h b/noncore/net/mail/libmailwrapper/pop3wrapper.h index e4afb94..31eb6f1 100644 --- a/noncore/net/mail/libmailwrapper/pop3wrapper.h +++ b/noncore/net/mail/libmailwrapper/pop3wrapper.h @@ -14,23 +14,23 @@ class POP3wrapper : public Genericwrapper Q_OBJECT public: POP3wrapper( POP3account *a ); virtual ~POP3wrapper(); /* mailbox will be ignored */ - virtual void listMessages(const QString & mailbox, QList<RecMail> &target ); - virtual QValueList<Opie::osmart_pointer<Folder> >* listFolders(); + virtual void listMessages(const QString & mailbox, QValueList<Opie::OSmartPointer<RecMail> > &target ); + virtual QValueList<Opie::OSmartPointer<Folder> >* listFolders(); /* mailbox will be ignored */ virtual void statusFolder(folderStat&target_stat,const QString & mailbox="INBOX"); - virtual void deleteMail(const RecMail&mail); - virtual void answeredMail(const RecMail&mail); - virtual int deleteAllMail(const Opie::osmart_pointer<Folder>&); + virtual void deleteMail(const RecMailP&mail); + virtual void answeredMail(const RecMailP&mail); + virtual int deleteAllMail(const Opie::OSmartPointer<Folder>&); - virtual RecBody fetchBody( const RecMail &mail ); - virtual encodedString* fetchRawBody(const RecMail&mail); + virtual RecBody fetchBody( const RecMailP &mail ); + virtual encodedString* fetchRawBody(const RecMailP&mail); virtual void logout(); virtual MAILLIB::ATYPE getType()const; virtual const QString&getName()const; static void pop3_progress( size_t current, size_t maximum ); protected: diff --git a/noncore/net/mail/libmailwrapper/smtpwrapper.cpp b/noncore/net/mail/libmailwrapper/smtpwrapper.cpp index afc5618..86673aa 100644 --- a/noncore/net/mail/libmailwrapper/smtpwrapper.cpp +++ b/noncore/net/mail/libmailwrapper/smtpwrapper.cpp @@ -309,13 +309,13 @@ int SMTPwrapper::smtpSend(char*from,clist*rcpts,const char*data,size_t size ) qDebug( "Mail sent." ); storeMail(data,size,"Sent"); } return result; } -void SMTPwrapper::sendMail(const Opie::osmart_pointer<Mail>&mail,bool later ) +void SMTPwrapper::sendMail(const Opie::OSmartPointer<Mail>&mail,bool later ) { mailmime * mimeMail; mimeMail = createMimeMail(mail ); if ( mimeMail == NULL ) { qDebug( "sendMail: error creating mime mail" ); @@ -329,21 +329,21 @@ void SMTPwrapper::sendMail(const Opie::osmart_pointer<Mail>&mail,bool later ) delete sendProgress; sendProgress = 0; mailmime_free( mimeMail ); } } -int SMTPwrapper::sendQueuedMail(AbstractMail*wrap,RecMail*which) { +int SMTPwrapper::sendQueuedMail(AbstractMail*wrap,const RecMailP&which) { size_t curTok = 0; mailimf_fields *fields = 0; mailimf_field*ffrom = 0; clist *rcpts = 0; char*from = 0; int res = 0; - encodedString * data = wrap->fetchRawBody(*which); + encodedString * data = wrap->fetchRawBody(which); if (!data) return 0; int err = mailimf_fields_parse( data->Content(), data->Length(), &curTok, &fields ); if (err != MAILIMF_NO_ERROR) { delete data; delete wrap; @@ -388,14 +388,14 @@ bool SMTPwrapper::flushOutbox() { AbstractMail*wrap = AbstractMail::getWrapper(localfolders); if (!wrap) { qDebug("memory error"); return false; } QString oldPw, oldUser; - QList<RecMail> mailsToSend; - QList<RecMail> mailsToRemove; + QValueList<RecMailP> mailsToSend; + QValueList<RecMailP> mailsToRemove; QString mbox("Outgoing"); wrap->listMessages(mbox,mailsToSend); if (mailsToSend.count()==0) { delete wrap; qDebug("No mails to send"); return false; @@ -418,26 +418,25 @@ bool SMTPwrapper::flushOutbox() { } else { return true; } } - mailsToSend.setAutoDelete(false); sendProgress = new progressMailSend(); sendProgress->show(); sendProgress->setMaxMails(mailsToSend.count()); while (mailsToSend.count()>0) { - if (sendQueuedMail(wrap,mailsToSend.at(0))==0) { + if (sendQueuedMail(wrap, (*mailsToSend.begin()))==0) { QMessageBox::critical(0,tr("Error sending mail"), tr("Error sending queued mail - breaking")); returnValue = false; break; } - mailsToRemove.append(mailsToSend.at(0)); - mailsToSend.removeFirst(); + mailsToRemove.append((*mailsToSend.begin())); + mailsToSend.remove(mailsToSend.begin()); sendProgress->setCurrentMails(mailsToRemove.count()); } if (reset_user_value) { m_SmtpAccount->setUser(oldUser); m_SmtpAccount->setPassword(oldPw); } @@ -447,10 +446,9 @@ bool SMTPwrapper::flushOutbox() { cfg.writeEntry( "outgoing", m_queuedMail ); emit queuedMails( m_queuedMail ); sendProgress->hide(); delete sendProgress; sendProgress = 0; wrap->deleteMails(mbox,mailsToRemove); - mailsToSend.setAutoDelete(true); delete wrap; return returnValue; } diff --git a/noncore/net/mail/libmailwrapper/smtpwrapper.h b/noncore/net/mail/libmailwrapper/smtpwrapper.h index 08bde74..71ae35c 100644 --- a/noncore/net/mail/libmailwrapper/smtpwrapper.h +++ b/noncore/net/mail/libmailwrapper/smtpwrapper.h @@ -8,25 +8,25 @@ #include <qdatetime.h> #include <libetpan/clist.h> #include "settings.h" #include "generatemail.h" -#include <opie2/osmart_pointer.h> +#include <opie2/osmartpointer.h> class SMTPaccount; class AbstractMail; class SMTPwrapper : public Generatemail { Q_OBJECT public: SMTPwrapper(SMTPaccount * aSmtp); virtual ~SMTPwrapper(); - void sendMail(const Opie::osmart_pointer<Mail>& mail,bool later=false ); + void sendMail(const Opie::OSmartPointer<Mail>& mail,bool later=false ); bool flushOutbox(); static progressMailSend*sendProgress; signals: void queuedMails( int ); @@ -47,13 +47,13 @@ protected: static void progress( size_t current, size_t maximum ); int smtpSend(char*from,clist*rcpts,const char*data,size_t size); void storeMail(mailmime*mail, const QString&box); - int sendQueuedMail(AbstractMail*wrap,RecMail*which); + int sendQueuedMail(AbstractMail*wrap,const Opie::OSmartPointer<RecMail>&which); void storeFailedMail(const char*data,unsigned int size, const char*failuremessage); int m_queuedMail; protected slots: void emitQCop( int queued ); diff --git a/noncore/net/mail/libmailwrapper/storemail.cpp b/noncore/net/mail/libmailwrapper/storemail.cpp index 052e0f1..595e7fc 100644 --- a/noncore/net/mail/libmailwrapper/storemail.cpp +++ b/noncore/net/mail/libmailwrapper/storemail.cpp @@ -46,13 +46,13 @@ Storemail::Storemail(const QString&aFolder) } Storemail::~Storemail() { } -int Storemail::storeMail(const Opie::osmart_pointer<Mail>&mail) +int Storemail::storeMail(const Opie::OSmartPointer<Mail>&mail) { if (!wrapper) return 0; int ret = 1; mailmime * mimeMail = 0; mimeMail = createMimeMail(mail ); diff --git a/noncore/net/mail/libmailwrapper/storemail.h b/noncore/net/mail/libmailwrapper/storemail.h index 7d8ea3d..80c7431 100644 --- a/noncore/net/mail/libmailwrapper/storemail.h +++ b/noncore/net/mail/libmailwrapper/storemail.h @@ -15,13 +15,13 @@ class Storemail : public Generatemail public: Storemail(Account*aAccount,const QString&aFolder); Storemail(const QString&dir,const QString&aFolder); Storemail(const QString&aFolder); virtual ~Storemail(); - int storeMail(const Opie::osmart_pointer<Mail>&mail); + int storeMail(const Opie::OSmartPointer<Mail>&mail); protected: Account* m_Account; QString m_tfolder; AbstractMail*wrapper; }; diff --git a/noncore/net/mail/mailistviewitem.cpp b/noncore/net/mail/mailistviewitem.cpp index 75633ef..0b926da 100644 --- a/noncore/net/mail/mailistviewitem.cpp +++ b/noncore/net/mail/mailistviewitem.cpp @@ -7,22 +7,22 @@ MailListViewItem::MailListViewItem(QListView * parent, MailListViewItem * item ) :QListViewItem(parent,item),mail_data() { } void MailListViewItem::showEntry() { - if ( mail_data.getFlags().testBit( FLAG_ANSWERED ) == true) { + if ( mail_data->getFlags().testBit( FLAG_ANSWERED ) == true) { setPixmap( 0, Resource::loadPixmap( "mail/kmmsgreplied") ); - } else if ( mail_data.getFlags().testBit( FLAG_SEEN ) == true ) { + } else if ( mail_data->getFlags().testBit( FLAG_SEEN ) == true ) { /* I think it looks nicer if there are not such a log of icons but only on mails replied or new - Alwin*/ //setPixmap( 0, Resource::loadPixmap( "mail/kmmsgunseen") ); } else { setPixmap( 0, Resource::loadPixmap( "mail/kmmsgnew") ); } - double s = mail_data.Msgsize(); + double s = mail_data->Msgsize(); int w; w=0; while (s>1024) { s/=1024; ++w; @@ -46,27 +46,27 @@ void MailListViewItem::showEntry() QTextOStream o(&fsize); if (w>0) o.precision(2); else o.precision(0); o.setf(QTextStream::fixed); o << s << " " << q << "Byte"; } - setText(1,mail_data.getSubject()); - setText(2,mail_data.getFrom()); + setText(1,mail_data->getSubject()); + setText(2,mail_data->getFrom()); setText(3,fsize); - setText(4,mail_data.getDate()); + setText(4,mail_data->getDate()); } -void MailListViewItem::storeData(const RecMail&data) +void MailListViewItem::storeData(const RecMailP&data) { mail_data = data; } -const RecMail& MailListViewItem::data()const +const RecMailP& MailListViewItem::data()const { return mail_data; } MAILLIB::ATYPE MailListViewItem::wrapperType() { - if (!mail_data.Wrapper()) return MAILLIB::A_UNDEFINED; - return mail_data.Wrapper()->getType(); + if (!mail_data->Wrapper()) return MAILLIB::A_UNDEFINED; + return mail_data->Wrapper()->getType(); } diff --git a/noncore/net/mail/mailistviewitem.h b/noncore/net/mail/mailistviewitem.h index f736de0..d953d83 100644 --- a/noncore/net/mail/mailistviewitem.h +++ b/noncore/net/mail/mailistviewitem.h @@ -8,16 +8,16 @@ class MailListViewItem:public QListViewItem { public: MailListViewItem(QListView * parent, MailListViewItem * after ); virtual ~MailListViewItem(){} - void storeData(const RecMail&data); - const RecMail&data()const; + void storeData(const RecMailP&data); + const RecMailP&data()const; void showEntry(); MAILLIB::ATYPE wrapperType(); protected: - RecMail mail_data; + RecMailP mail_data; }; #endif diff --git a/noncore/net/mail/mainwindow.cpp b/noncore/net/mail/mainwindow.cpp index bcf0866..c23ad3f 100644 --- a/noncore/net/mail/mainwindow.cpp +++ b/noncore/net/mail/mainwindow.cpp @@ -116,13 +116,14 @@ MainWindow::MainWindow( QWidget *parent, const char *name, WFlags flags ) QPEApplication::setStylusOperation( folderView->viewport(),QPEApplication::RightOnHold); connect( mailView, SIGNAL( mouseButtonClicked(int,QListViewItem*,const QPoint&,int) ),this, SLOT( mailLeftClicked(int,QListViewItem*,const QPoint&,int) ) ); connect( mailView, SIGNAL( mouseButtonPressed(int,QListViewItem*,const QPoint&,int) ),this, SLOT( mailHold(int,QListViewItem*,const QPoint&,int) ) ); - connect(folderView, SIGNAL(refreshMailview(QList<RecMail>*)),this,SLOT(refreshMailView(QList<RecMail>*))); + connect(folderView, SIGNAL(refreshMailview(const QValueList<RecMailP>&)), + this,SLOT(refreshMailView(const QValueList<RecMailP>&))); connect( composeMail, SIGNAL( activated() ), SLOT( slotComposeMail() ) ); connect( sendQueued, SIGNAL( activated() ), SLOT( slotSendQueued() ) ); // connect( searchMails, SIGNAL( activated() ), SLOT( slotSearchMails() ) ); connect( editAccounts, SIGNAL( activated() ), SLOT( slotEditAccounts() ) ); // Added by Stefan Eilers to allow starting by addressbook.. // copied from old mail2 @@ -174,13 +175,13 @@ void MainWindow::slotEditSettings() void MainWindow::slotShowFolders( bool ) { qDebug( "slotShowFolders not reached" ); } -void MainWindow::refreshMailView(QList<RecMail>*) +void MainWindow::refreshMailView(const QValueList<RecMailP>&) { qDebug( "refreshMailView not reached" ); } void MainWindow::mailLeftClicked(int, QListViewItem *,const QPoint&,int ) { @@ -202,13 +203,13 @@ void MainWindow::mailHold(int, QListViewItem *,const QPoint&,int ) qDebug("mailHold not reached"); } void MainWindow::slotSendQueued() { } - + void MainWindow::slotEditAccounts() { } void MainWindow::slotComposeMail() { diff --git a/noncore/net/mail/mainwindow.h b/noncore/net/mail/mainwindow.h index 1ba6299..8d004c6 100644 --- a/noncore/net/mail/mainwindow.h +++ b/noncore/net/mail/mainwindow.h @@ -8,12 +8,15 @@ #include <qtoolbar.h> #include <qmenubar.h> #include "accountview.h" #include "statuswidget.h" +#include <libmailwrapper/mailtypes.h> +#include <opie2/osmartpointer.h> + class RecMail; class MainWindow : public QMainWindow { Q_OBJECT @@ -22,31 +25,31 @@ public: virtual ~MainWindow(); public slots: virtual void slotAdjustColumns(); virtual void appMessage(const QCString &msg, const QByteArray &data); virtual void slotComposeMail(); - + protected slots: virtual void slotSendQueued(); virtual void slotEditAccounts(); virtual void slotShowFolders( bool show ); - virtual void refreshMailView(QList<RecMail>*); + virtual void refreshMailView(const QValueList<RecMailP>&); virtual void displayMail(); virtual void slotDeleteMail(); virtual void mailHold(int, QListViewItem *,const QPoint&,int); virtual void slotAdjustLayout(); virtual void slotEditSettings(); virtual void mailLeftClicked( int, QListViewItem *,const QPoint&,int ); - + protected: QToolBar *toolBar; StatusWidget *statusWidget; QMenuBar *menuBar; QPopupMenu *mailMenu, *settingsMenu; - QAction *composeMail, *sendQueued, *showFolders, *searchMails, *deleteMails, + QAction *composeMail, *sendQueued, *showFolders, *searchMails, *deleteMails, *editSettings, *editAccounts, *syncFolders; AccountView *folderView; QListView *mailView; QBoxLayout *layout; }; diff --git a/noncore/net/mail/opiemail.cpp b/noncore/net/mail/opiemail.cpp index d95b3c9..dd305df 100644 --- a/noncore/net/mail/opiemail.cpp +++ b/noncore/net/mail/opiemail.cpp @@ -142,13 +142,13 @@ void OpieMail::slotEditAccounts() } void OpieMail::displayMail() { QListViewItem*item = mailView->currentItem(); if (!item) return; - RecMail mail = ((MailListViewItem*)item)->data(); + RecMailP mail = ((MailListViewItem*)item)->data(); RecBody body = folderView->fetchBody(mail); ViewMail readMail( this,"", Qt::WType_Modal | WStyle_ContextHelp ); readMail.setBody( body ); readMail.setMail( mail ); readMail.showMaximized(); readMail.exec(); @@ -163,16 +163,16 @@ void OpieMail::displayMail() } } void OpieMail::slotDeleteMail() { if (!mailView->currentItem()) return; - RecMail mail = ((MailListViewItem*)mailView->currentItem() )->data(); - if ( QMessageBox::warning(this, tr("Delete Mail"), QString( tr("<p>Do you really want to delete this mail? <br><br>" ) + mail.getFrom() + " - " + mail.getSubject() ) , QMessageBox::Yes, QMessageBox::No ) == QMessageBox::Yes ) + RecMailP mail = ((MailListViewItem*)mailView->currentItem() )->data(); + if ( QMessageBox::warning(this, tr("Delete Mail"), QString( tr("<p>Do you really want to delete this mail? <br><br>" ) + mail->getFrom() + " - " + mail->getSubject() ) , QMessageBox::Yes, QMessageBox::No ) == QMessageBox::Yes ) { - mail.Wrapper()->deleteMail( mail ); + mail->Wrapper()->deleteMail( mail ); folderView->refreshCurrent(); } } void OpieMail::mailHold(int button, QListViewItem *item,const QPoint&,int ) { @@ -214,20 +214,22 @@ void OpieMail::slotShowFolders( bool show ) { qDebug( "-> hiding" ); folderView->hide(); } } -void OpieMail::refreshMailView(QList<RecMail>*list) +void OpieMail::refreshMailView(const QValueList<RecMailP>&list) { MailListViewItem*item = 0; mailView->clear(); - for (unsigned int i = 0; i < list->count();++i) + + QValueList<RecMailP>::ConstIterator it; + for (it = list.begin(); it != list.end();++it) { item = new MailListViewItem(mailView,item); - item->storeData(*(list->at(i))); + item->storeData((*it)); item->showEntry(); } } void OpieMail::mailLeftClicked(int button, QListViewItem *item,const QPoint&,int ) { @@ -241,38 +243,38 @@ void OpieMail::mailLeftClicked(int button, QListViewItem *item,const QPoint&,int } } void OpieMail::slotMoveCopyMail() { if (!mailView->currentItem()) return; - RecMail mail = ((MailListViewItem*)mailView->currentItem() )->data(); + RecMailP mail = ((MailListViewItem*)mailView->currentItem() )->data(); AbstractMail*targetMail = 0; QString targetFolder = ""; Selectstore sels; folderView->setupFolderselect(&sels); if (!sels.exec()) return; targetMail = sels.currentMail(); targetFolder = sels.currentFolder(); - if ( (mail.Wrapper()==targetMail && mail.getMbox()==targetFolder) || + if ( (mail->Wrapper()==targetMail && mail->getMbox()==targetFolder) || targetFolder.isEmpty()) { return; } if (sels.newFolder() && !targetMail->createMbox(targetFolder)) { QMessageBox::critical(0,tr("Error creating new Folder"), tr("<center>Error while creating<br>new folder - breaking.</center>")); return; } - mail.Wrapper()->mvcpMail(mail,targetFolder,targetMail,sels.moveMails()); + mail->Wrapper()->mvcpMail(mail,targetFolder,targetMail,sels.moveMails()); folderView->refreshCurrent(); } void OpieMail::reEditMail() { if (!mailView->currentItem()) return; - + ComposeMail compose( settings, this, 0, true , WStyle_ContextHelp ); compose.reEditMail(((MailListViewItem*)mailView->currentItem() )->data()); compose.slotAdjustColumns(); QPEApplication::execDialog( &compose ); } diff --git a/noncore/net/mail/opiemail.h b/noncore/net/mail/opiemail.h index 88c7ea1..b93bd60 100644 --- a/noncore/net/mail/opiemail.h +++ b/noncore/net/mail/opiemail.h @@ -1,12 +1,14 @@ #ifndef OPIEMAIL_H #define OPIEMAIL_H #include "mainwindow.h" #include <libmailwrapper/settings.h> +#include <opie2/osmartpointer.h> +#include <libmailwrapper/mailtypes.h> class OpieMail : public MainWindow { Q_OBJECT public: @@ -24,13 +26,13 @@ protected slots: virtual void slotEditSettings(); virtual void slotEditAccounts(); virtual void displayMail(); virtual void slotDeleteMail(); virtual void mailHold(int, QListViewItem *,const QPoint&,int); virtual void slotShowFolders( bool show ); - virtual void refreshMailView(QList<RecMail>*); + virtual void refreshMailView(const QValueList<RecMailP>&); virtual void mailLeftClicked( int, QListViewItem *,const QPoint&,int ); virtual void slotMoveCopyMail(); virtual void reEditMail(); private: Settings *settings; diff --git a/noncore/net/mail/viewmail.cpp b/noncore/net/mail/viewmail.cpp index 78652d7..894a386 100644 --- a/noncore/net/mail/viewmail.cpp +++ b/noncore/net/mail/viewmail.cpp @@ -222,13 +222,13 @@ void ViewMail::slotItemClicked( QListViewItem * item , const QPoint & point, int types.insert( "all", "*" ); QString str = Opie::OFileDialog::getSaveFileName( 1, "/", item->text( 2 ) , types, 0 ); if( !str.isEmpty() ) { - encodedString*content = m_recMail.Wrapper()->fetchDecodedPart( m_recMail, m_body.Parts()[ ( ( AttachItem* )item )->Partnumber() ] ); + encodedString*content = m_recMail->Wrapper()->fetchDecodedPart( m_recMail, m_body.Parts()[ ( ( AttachItem* )item )->Partnumber() ] ); if (content) { QFile output(str); output.open(IO_WriteOnly); output.writeBlock(content->Content(),content->Length()); output.close(); @@ -242,36 +242,36 @@ void ViewMail::slotItemClicked( QListViewItem * item , const QPoint & point, int if ( ( ( AttachItem* )item )->Partnumber() == -1 ) { setText(); } else { - if ( m_recMail.Wrapper() != 0l ) + if ( m_recMail->Wrapper() != 0l ) { // make sure that there is a wrapper , even after delete or simular actions - browser->setText( m_recMail.Wrapper()->fetchTextPart( m_recMail, m_body.Parts()[ ( ( AttachItem* )item )->Partnumber() ] ) ); + browser->setText( m_recMail->Wrapper()->fetchTextPart( m_recMail, m_body.Parts()[ ( ( AttachItem* )item )->Partnumber() ] ) ); } } break; } delete menu; } -void ViewMail::setMail( RecMail mail ) +void ViewMail::setMail( RecMailP mail ) { m_recMail = mail; - m_mail[0] = mail.getFrom(); - m_mail[1] = mail.getSubject(); - m_mail[3] = mail.getDate(); - m_mail[4] = mail.Msgid(); + m_mail[0] = mail->getFrom(); + m_mail[1] = mail->getSubject(); + m_mail[3] = mail->getDate(); + m_mail[4] = mail->Msgid(); - m_mail2[0] = mail.To(); - m_mail2[1] = mail.CC(); - m_mail2[2] = mail.Bcc(); + m_mail2[0] = mail->To(); + m_mail2[1] = mail->CC(); + m_mail2[2] = mail->Bcc(); setText(); } @@ -345,13 +345,13 @@ void ViewMail::setText() m_gotBody = true; } ViewMail::~ViewMail() { - m_recMail.Wrapper()->cleanMimeCache(); + m_recMail->Wrapper()->cleanMimeCache(); hide(); } void ViewMail::hide() { QWidget::hide(); @@ -412,24 +412,24 @@ void ViewMail::slotReply() QString prefix; if ( m_mail[1].find(QRegExp("^Re: .*$")) != -1) prefix = ""; else prefix = "Re: "; // no i18n on purpose Settings *settings = new Settings(); ComposeMail composer( settings ,this, 0, true); - if (m_recMail.Replyto().isEmpty()) { - composer.setTo( m_recMail.getFrom()); + if (m_recMail->Replyto().isEmpty()) { + composer.setTo( m_recMail->getFrom()); } else { - composer.setTo( m_recMail.Replyto()); + composer.setTo( m_recMail->Replyto()); } composer.setSubject( prefix + m_mail[1] ); composer.setMessage( rtext ); - composer.setInReplyTo(m_recMail.Msgid()); + composer.setInReplyTo(m_recMail->Msgid()); if ( QDialog::Accepted == QPEApplication::execDialog( &composer ) ) { - m_recMail.Wrapper()->answeredMail(m_recMail); + m_recMail->Wrapper()->answeredMail(m_recMail); } } void ViewMail::slotForward() { if (!m_gotBody) @@ -466,11 +466,11 @@ void ViewMail::slotForward() } void ViewMail::slotDeleteMail( ) { if ( QMessageBox::warning(this, tr("Delete Mail"), QString( tr("<p>Do you really want to delete this mail? <br><br>" ) + m_mail[0] + " - " + m_mail[1] ) , QMessageBox::Yes, QMessageBox::No ) == QMessageBox::Yes ) { - m_recMail.Wrapper()->deleteMail( m_recMail ); + m_recMail->Wrapper()->deleteMail( m_recMail ); hide(); deleted = true; } } diff --git a/noncore/net/mail/viewmail.h b/noncore/net/mail/viewmail.h index abbd5b3..6875e3c 100644 --- a/noncore/net/mail/viewmail.h +++ b/noncore/net/mail/viewmail.h @@ -25,46 +25,46 @@ private: /* needed for a better display of attachments */ QValueList<int> _path; }; class ViewMail : public ViewMailBase { - Q_OBJECT + Q_OBJECT public: - ViewMail( QWidget *parent = 0, const char *name = 0, WFlags fl = 0); - ~ViewMail(); + ViewMail( QWidget *parent = 0, const char *name = 0, WFlags fl = 0); + ~ViewMail(); - void hide(); - void exec(); - void setMail( RecMail mail ); + void hide(); + void exec(); + void setMail( RecMailP mail ); void setBody( RecBody body ); bool deleted; protected: - QString deHtml(const QString &string); + QString deHtml(const QString &string); AttachItem* searchParent(const QValueList<int>&path); AttachItem* lastChild(AttachItem*parent); protected slots: - void slotReply(); - void slotForward(); + void slotReply(); + void slotForward(); void setText(); void slotItemClicked( QListViewItem * item , const QPoint & point, int c ); void slotDeleteMail( ); - void slotShowHtml( bool ); + void slotShowHtml( bool ); private: - void readConfig(); - - bool _inLoop; - QString m_mailHtml; - bool m_gotBody; + void readConfig(); + + bool _inLoop; + QString m_mailHtml; + bool m_gotBody; RecBody m_body; - RecMail m_recMail; - bool m_showHtml; + RecMailP m_recMail; + bool m_showHtml; // 0 from 1 subject 2 bodytext 3 date QMap <int,QString> m_mail; // 0 to 1 cc 2 bcc QMap <int,QStringList> m_mail2; |