From d1929ef43f0eaaa17aa42196384d1ed925132873 Mon Sep 17 00:00:00 2001 From: alwin Date: Fri, 12 Mar 2004 14:12:00 +0000 Subject: some pointers embedded into osmart_pointer handling --- (limited to 'noncore') diff --git a/noncore/net/mail/accountitem.cpp b/noncore/net/mail/accountitem.cpp index 396dcb7..3e12563 100644 --- a/noncore/net/mail/accountitem.cpp +++ b/noncore/net/mail/accountitem.cpp @@ -57,7 +57,7 @@ void POP3viewItem::refresh( QList & ) void POP3viewItem::refresh() { if (account->getOffline()) return; - QList *folders = wrapper->listFolders(); + QValueList *folders = wrapper->listFolders(); QListViewItem *child = firstChild(); while ( child ) { @@ -65,15 +65,13 @@ void POP3viewItem::refresh() child = child->nextSibling(); delete tmp; } - Folder *it; + QValueList::ConstIterator it; QListViewItem*item = 0; - for ( it = folders->first(); it; it = folders->next() ) + for ( it = folders->begin(); it!=folders->end(); ++it) { - item = new POP3folderItem( it, this , item ); - item->setSelectable(it->may_select()); + item = new POP3folderItem( (*it), this , item ); + item->setSelectable( (*it)->may_select()); } - // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - folders->setAutoDelete(false); delete folders; } @@ -141,10 +139,9 @@ void POP3viewItem::contextMenuSelected(int which) POP3folderItem::~POP3folderItem() {} -POP3folderItem::POP3folderItem( Folder *folderInit, POP3viewItem *parent , QListViewItem*after ) - : AccountViewItem( parent,after ) +POP3folderItem::POP3folderItem( const FolderP&folderInit, POP3viewItem *parent , QListViewItem*after ) + : AccountViewItem(folderInit,parent,after ) { - folder = folderInit; pop3 = parent; if (folder->getDisplayName().lower()!="inbox") { @@ -250,7 +247,8 @@ void NNTPviewItem::refresh( QList & ) void NNTPviewItem::refresh() { if (account->getOffline()) return; - QList *folders = wrapper->listFolders(); + QValueList *folders = wrapper->listFolders(); + QListViewItem *child = firstChild(); while ( child ) { @@ -258,15 +256,13 @@ void NNTPviewItem::refresh() child = child->nextSibling(); delete tmp; } - Folder *it; + QValueList::ConstIterator it; QListViewItem*item = 0; - for ( it = folders->first(); it; it = folders->next() ) + for ( it = folders->begin(); it!=folders->end(); ++it) { - item = new NNTPfolderItem( it, this , item ); - item->setSelectable(it->may_select()); + item = new NNTPfolderItem( (*it), this , item ); + item->setSelectable( (*it)->may_select()); } - // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - folders->setAutoDelete(false); delete folders; } @@ -347,10 +343,9 @@ void NNTPviewItem::contextMenuSelected(int which) NNTPfolderItem::~NNTPfolderItem() {} -NNTPfolderItem::NNTPfolderItem( Folder *folderInit, NNTPviewItem *parent , QListViewItem*after ) - : AccountViewItem( parent,after ) +NNTPfolderItem::NNTPfolderItem( const FolderP &folderInit, NNTPviewItem *parent , QListViewItem*after ) + : AccountViewItem( folderInit, parent,after ) { - folder = folderInit; nntp = parent; if (folder->getDisplayName().lower()!="inbox") { @@ -450,31 +445,29 @@ void IMAPviewItem::refreshFolders(bool force) removeChilds(); currentFolders.clear(); - QList *folders = wrapper->listFolders(); + QValueList * folders = wrapper->listFolders(); - Folder *it; + QValueList::Iterator it; QListViewItem*item = 0; QListViewItem*titem = 0; QString fname,del,search; int pos; - // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - folders->setAutoDelete(false); - for ( it = folders->first(); it; it = folders->next() ) + for ( it = folders->begin(); it!=folders->end(); ++it) { - if (it->getDisplayName().lower()=="inbox") + if ((*it)->getDisplayName().lower()=="inbox") { - item = new IMAPfolderItem( it, this , item ); + item = new IMAPfolderItem( (*it), this , item ); folders->remove(it); qDebug("inbox found"); break; } } - for ( it = folders->first(); it; it = folders->next() ) + for ( it = folders->begin(); it!=folders->end(); ++it) { - fname = it->getDisplayName(); - currentFolders.append(it->getName()); - pos = fname.findRev(it->Separator()); + fname = (*it)->getDisplayName(); + currentFolders.append((*it)->getName()); + pos = fname.findRev((*it)->Separator()); if (pos != -1) { fname = fname.left(pos); @@ -483,14 +476,14 @@ void IMAPviewItem::refreshFolders(bool force) if (pitem) { titem = item; - item = new IMAPfolderItem(it,pitem,pitem->firstChild(),this); + item = new IMAPfolderItem( (*it),pitem,pitem->firstChild(),this); /* setup the short name */ - item->setText(0,it->getDisplayName().right(it->getDisplayName().length()-pos-1)); + item->setText(0,(*it)->getDisplayName().right((*it)->getDisplayName().length()-pos-1)); item = titem; } else { - item = new IMAPfolderItem( it, this , item ); + item = new IMAPfolderItem( (*it), this , item ); } } delete folders; @@ -578,10 +571,9 @@ bool IMAPviewItem::offline() return account->getOffline(); } -IMAPfolderItem::IMAPfolderItem( Folder *folderInit, IMAPviewItem *parent , QListViewItem*after ) - : AccountViewItem( parent , after ) +IMAPfolderItem::IMAPfolderItem( const FolderP& folderInit, IMAPviewItem *parent , QListViewItem*after ) + : AccountViewItem( folderInit, parent , after ) { - folder = folderInit; imap = parent; if (folder->getDisplayName().lower()!="inbox") { @@ -594,10 +586,9 @@ IMAPfolderItem::IMAPfolderItem( Folder *folderInit, IMAPviewItem *parent , QList setText( 0, folder->getDisplayName() ); } -IMAPfolderItem::IMAPfolderItem( Folder *folderInit, IMAPfolderItem *parent , QListViewItem*after, IMAPviewItem *master ) - : AccountViewItem( parent,after ) +IMAPfolderItem::IMAPfolderItem(const FolderP &folderInit, IMAPfolderItem *parent , QListViewItem*after, IMAPviewItem *master ) + : AccountViewItem(folderInit, parent,after ) { - folder = folderInit; imap = master; if (folder->getDisplayName().lower()!="inbox") { @@ -768,20 +759,20 @@ void MHviewItem::refresh(bool force) if (childCount()>0 && force==false) return; removeChilds(); currentFolders.clear(); - QList *folders = wrapper->listFolders(); - Folder *it; + QValueList *folders = wrapper->listFolders(); + QValueList::ConstIterator it; MHfolderItem*item = 0; MHfolderItem*pmaster = 0; QString fname = ""; int pos; - for ( it = folders->first(); it; it = folders->next() ) + for ( it = folders->begin(); it!=folders->end(); ++it) { - fname = it->getDisplayName(); + fname = (*it)->getDisplayName(); /* this folder itself */ if (fname=="/") { currentFolders.append(fname); - folder = it; + folder = (*it); continue; } currentFolders.append(fname); @@ -797,16 +788,14 @@ void MHviewItem::refresh(bool force) } if (pmaster) { - item = new MHfolderItem( it, pmaster, item, this ); + item = new MHfolderItem( (*it), pmaster, item, this ); } else { - item = new MHfolderItem( it, this , item ); + item = new MHfolderItem( (*it), this , item ); } - item->setSelectable(it->may_select()); + item->setSelectable((*it)->may_select()); } - // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - folders->setAutoDelete(false); delete folders; } @@ -878,16 +867,15 @@ void MHviewItem::contextMenuSelected(int which) MHfolderItem::~MHfolderItem() {} -MHfolderItem::MHfolderItem( Folder *folderInit, MHviewItem *parent , QListViewItem*after ) - : AccountViewItem( parent,after ) +MHfolderItem::MHfolderItem( const FolderP &folderInit, MHviewItem *parent , QListViewItem*after ) + : AccountViewItem(folderInit, parent,after ) { - folder = folderInit; mbox = parent; initName(); } -MHfolderItem::MHfolderItem( Folder *folderInit, MHfolderItem *parent, QListViewItem*after, MHviewItem*master) - : AccountViewItem( parent,after ) +MHfolderItem::MHfolderItem(const FolderP& folderInit, MHfolderItem *parent, QListViewItem*after, MHviewItem*master) + : AccountViewItem(folderInit, parent,after ) { folder = folderInit; mbox = master; @@ -921,7 +909,7 @@ void MHfolderItem::initName() setText( 0, bName ); } -Folder*MHfolderItem::getFolder() +const FolderP&MHfolderItem::getFolder()const { return folder; } @@ -1043,13 +1031,19 @@ AccountViewItem::AccountViewItem( AccountView *parent ) } AccountViewItem::AccountViewItem( QListViewItem *parent) - : QListViewItem( parent) + : QListViewItem( parent),folder(0) { init(); } AccountViewItem::AccountViewItem( QListViewItem *parent , QListViewItem*after ) - :QListViewItem( parent,after ) + :QListViewItem( parent,after ),folder(0) +{ + init(); +} + +AccountViewItem::AccountViewItem( const Opie::osmart_pointer&folderInit,QListViewItem *parent , QListViewItem*after ) + :QListViewItem( parent,after ),folder(folderInit) { init(); } @@ -1057,12 +1051,11 @@ AccountViewItem::AccountViewItem( QListViewItem *parent , QListViewItem*after ) void AccountViewItem::init() { m_Backlink = 0; - folder = 0; } AccountViewItem::~AccountViewItem() { - if (folder) delete folder; + folder = 0; } AccountView*AccountViewItem::accountView() @@ -1070,7 +1063,7 @@ AccountView*AccountViewItem::accountView() return m_Backlink; } -void AccountViewItem::deleteAllMail(AbstractMail*wrapper,Folder*folder) +void AccountViewItem::deleteAllMail(AbstractMail*wrapper,const FolderP&folder) { if (!wrapper) return; QString fname=""; diff --git a/noncore/net/mail/accountitem.h b/noncore/net/mail/accountitem.h index eb3baa3..8f712f5 100644 --- a/noncore/net/mail/accountitem.h +++ b/noncore/net/mail/accountitem.h @@ -3,6 +3,7 @@ #include #include +#include class POP3wrapper; class RecMail; @@ -18,11 +19,13 @@ class Folder; class AccountViewItem : public QListViewItem { - + public: AccountViewItem( AccountView *parent ); AccountViewItem( QListViewItem *parent); AccountViewItem( QListViewItem *parent , QListViewItem*after ); + AccountViewItem( const Opie::osmart_pointer&folderInit,QListViewItem *parent , QListViewItem*after ); + virtual ~AccountViewItem(); virtual void refresh(QList&)=0; virtual RecBody fetchBody(const RecMail&)=0; @@ -36,10 +39,10 @@ protected: AccountViewItem*findSubItem(const QString&path,AccountViewItem*start=0); virtual void init(); virtual void removeChilds(); - virtual void deleteAllMail(AbstractMail*wrapper,Folder*f); + virtual void deleteAllMail(AbstractMail*wrapper,const Opie::osmart_pointer&f); static const QString contextName; AccountView*m_Backlink; - Folder *folder; + Opie::osmart_pointer folder; }; class POP3viewItem : public AccountViewItem @@ -66,7 +69,7 @@ class POP3folderItem : public AccountViewItem { public: - POP3folderItem( Folder *folder, POP3viewItem *parent , QListViewItem*after ); + POP3folderItem( const Opie::osmart_pointer&folder, POP3viewItem *parent , QListViewItem*after ); virtual ~POP3folderItem(); virtual void refresh(QList&); virtual RecBody fetchBody(const RecMail&); @@ -104,7 +107,7 @@ class NNTPfolderItem : public AccountViewItem { public: - NNTPfolderItem( Folder *folder, NNTPviewItem *parent , QListViewItem*after ); + NNTPfolderItem(const Opie::osmart_pointer&folder, NNTPviewItem *parent , QListViewItem*after ); virtual ~NNTPfolderItem(); virtual void refresh(QList&); virtual RecBody fetchBody(const RecMail&); @@ -144,8 +147,8 @@ class IMAPfolderItem : public AccountViewItem { public: - IMAPfolderItem( Folder *folder, IMAPviewItem *parent , QListViewItem*after ); - IMAPfolderItem( Folder *folder, IMAPfolderItem *parent , QListViewItem*after, IMAPviewItem *master ); + IMAPfolderItem( const Opie::osmart_pointer&folder, IMAPviewItem *parent , QListViewItem*after ); + IMAPfolderItem( const Opie::osmart_pointer&folder, IMAPfolderItem *parent , QListViewItem*after, IMAPviewItem *master ); virtual ~IMAPfolderItem(); virtual void refresh(QList&); virtual RecBody fetchBody(const RecMail&); @@ -186,14 +189,14 @@ class MHfolderItem : public AccountViewItem { public: - MHfolderItem( Folder *folder, MHviewItem *parent , QListViewItem*after ); - MHfolderItem( Folder *folder, MHfolderItem *parent, QListViewItem*after, MHviewItem*master); + MHfolderItem( const Opie::osmart_pointer&folder, MHviewItem *parent , QListViewItem*after ); + MHfolderItem( const Opie::osmart_pointer&folder, MHfolderItem *parent, QListViewItem*after, MHviewItem*master); virtual ~MHfolderItem(); virtual void refresh(QList&); virtual RecBody fetchBody(const RecMail&); virtual QPopupMenu * getContextMenu(); virtual void contextMenuSelected(int); - virtual Folder*getFolder(); + virtual const Opie::osmart_pointer&getFolder()const; virtual bool isDraftfolder(); protected: diff --git a/noncore/net/mail/accountview.cpp b/noncore/net/mail/accountview.cpp index 7938d4f..297f553 100644 --- a/noncore/net/mail/accountview.cpp +++ b/noncore/net/mail/accountview.cpp @@ -143,7 +143,7 @@ void AccountView::setupFolderselect(Selectstore*sels) } } -void AccountView::downloadMails(Folder*fromFolder,AbstractMail*fromWrapper) +void AccountView::downloadMails(const FolderP&fromFolder,AbstractMail*fromWrapper) { AbstractMail*targetMail = 0; QString targetFolder = ""; diff --git a/noncore/net/mail/accountview.h b/noncore/net/mail/accountview.h index 5000202..3478c0b 100644 --- a/noncore/net/mail/accountview.h +++ b/noncore/net/mail/accountview.h @@ -3,6 +3,7 @@ #include #include +#include class Selectstore; class RecMail; @@ -22,7 +23,7 @@ public: virtual ~AccountView(); virtual void populate( QList list ); virtual RecBody fetchBody(const RecMail&aMail); - virtual void downloadMails(Folder*fromFolder,AbstractMail*fromWrapper); + virtual void downloadMails(const Opie::osmart_pointer&fromFolder,AbstractMail*fromWrapper); virtual bool currentisDraft(); public slots: @@ -34,9 +35,9 @@ public slots: void setupFolderselect(Selectstore*sels); signals: - void refreshMailview(QList*); + void refreshMailview(QList*); -protected: +protected: QListViewItem* m_currentItem; QValueList imapAccounts; QValueList mhAccounts; diff --git a/noncore/net/mail/libmailwrapper/abstractmail.cpp b/noncore/net/mail/libmailwrapper/abstractmail.cpp index ac6f380..7e6d383 100644 --- a/noncore/net/mail/libmailwrapper/abstractmail.cpp +++ b/noncore/net/mail/libmailwrapper/abstractmail.cpp @@ -111,7 +111,7 @@ QString AbstractMail::gen_attachment_id() return "{" + stream.read().stripWhiteSpace() + "}"; } -int AbstractMail::createMbox(const QString&,const Folder*,const QString& delemiter,bool) +int AbstractMail::createMbox(const QString&,const FolderP&,const QString& delemiter,bool) { return 0; } @@ -133,7 +133,8 @@ void AbstractMail::deleteMails(const QString &,QList &) { } -void AbstractMail::mvcpAllMails(Folder*fromFolder,const QString&targetFolder,AbstractMail*targetWrapper,bool moveit) +void AbstractMail::mvcpAllMails(const FolderP&fromFolder, + const QString&targetFolder,AbstractMail*targetWrapper,bool moveit) { QList t; listMessages(fromFolder->getName(),t); diff --git a/noncore/net/mail/libmailwrapper/abstractmail.h b/noncore/net/mail/libmailwrapper/abstractmail.h index d377452..d911468 100644 --- a/noncore/net/mail/libmailwrapper/abstractmail.h +++ b/noncore/net/mail/libmailwrapper/abstractmail.h @@ -3,9 +3,11 @@ #include "maildefines.h" -#include #include "settings.h" +#include +#include + class RecMail; class RecBody; class RecPart; @@ -21,7 +23,7 @@ class AbstractMail:public QObject public: AbstractMail(){}; virtual ~AbstractMail(){} - virtual QList* listFolders()=0; + virtual QValueList >* listFolders()=0; virtual void listMessages(const QString & mailbox,QList&target )=0; virtual void statusFolder(folderStat&target_stat,const QString & mailbox="INBOX")=0; virtual RecBody fetchBody(const RecMail&mail)=0; @@ -32,12 +34,13 @@ public: virtual void deleteMail(const RecMail&mail)=0; virtual void answeredMail(const RecMail&mail)=0; - virtual int deleteAllMail(const Folder*)=0; + virtual int deleteAllMail(const Opie::osmart_pointer&)=0; virtual void deleteMails(const QString & FolderName,QList &target); - virtual int deleteMbox(const Folder*)=0; + virtual int deleteMbox(const Opie::osmart_pointer&)=0; virtual void storeMessage(const char*msg,size_t length, const QString&folder)=0; - virtual void mvcpAllMails(Folder*fromFolder,const QString&targetFolder,AbstractMail*targetWrapper,bool moveit); + virtual void mvcpAllMails(const Opie::osmart_pointer&fromFolder, + const QString&targetFolder,AbstractMail*targetWrapper,bool moveit); virtual void mvcpMail(const RecMail&mail,const QString&targetFolder,AbstractMail*targetWrapper,bool moveit); virtual void cleanMimeCache(){}; @@ -46,7 +49,8 @@ public: * if the implementing subclass has prefixes, * them has to be appended automatic. */ - virtual int createMbox(const QString&,const Folder*parentfolder=0,const QString& delemiter="/",bool getsubfolder=false); + virtual int createMbox(const QString&,const Opie::osmart_pointer&parentfolder=0, + const QString& delemiter="/",bool getsubfolder=false); virtual void logout()=0; static AbstractMail* getWrapper(IMAPaccount *a); diff --git a/noncore/net/mail/libmailwrapper/genericwrapper.h b/noncore/net/mail/libmailwrapper/genericwrapper.h index b3cd4fe..d0db45a 100644 --- a/noncore/net/mail/libmailwrapper/genericwrapper.h +++ b/noncore/net/mail/libmailwrapper/genericwrapper.h @@ -38,7 +38,7 @@ public: virtual encodedString* fetchRawPart(const RecMail&mail,const RecPart&part); virtual QString fetchTextPart(const RecMail&mail,const RecPart&part); virtual void cleanMimeCache(); - virtual int deleteMbox(const Folder*){return 1;} + virtual int deleteMbox(const Opie::osmart_pointer&){return 1;} virtual void logout(){}; virtual void storeMessage(const char*msg,size_t length, const QString&folder){}; diff --git a/noncore/net/mail/libmailwrapper/imapwrapper.cpp b/noncore/net/mail/libmailwrapper/imapwrapper.cpp index e29a0a0..3b3be0f 100644 --- a/noncore/net/mail/libmailwrapper/imapwrapper.cpp +++ b/noncore/net/mail/libmailwrapper/imapwrapper.cpp @@ -266,7 +266,7 @@ void IMAPwrapper::listMessages(const QString&mailbox,QList &target ) if (result) mailimap_fetch_list_free(result); } -QList* IMAPwrapper::listFolders() +QValueList >* IMAPwrapper::listFolders() { const char *path, *mask; int err = MAILIMAP_NO_ERROR; @@ -275,8 +275,7 @@ QList* IMAPwrapper::listFolders() clistcell*cur_flag = 0; mailimap_mbx_list_flags*bflags = 0; - QList * folders = new QList(); - folders->setAutoDelete( false ); + QValueList* folders = new QValueList(); login(); if (!m_imap) { return folders; @@ -966,7 +965,7 @@ encodedString* IMAPwrapper::fetchRawPart(const RecMail&mail,const RecPart&part) return fetchRawPart(mail,part.Positionlist(),false); } -int IMAPwrapper::deleteAllMail(const Folder*folder) +int IMAPwrapper::deleteAllMail(const FolderP&folder) { login(); if (!m_imap) { @@ -1007,7 +1006,7 @@ int IMAPwrapper::deleteAllMail(const Folder*folder) return 1; } -int IMAPwrapper::createMbox(const QString&folder,const Folder*parentfolder,const QString& delemiter,bool getsubfolder) +int IMAPwrapper::createMbox(const QString&folder,const FolderP&parentfolder,const QString& delemiter,bool getsubfolder) { if (folder.length()==0) return 0; login(); @@ -1037,7 +1036,7 @@ int IMAPwrapper::createMbox(const QString&folder,const Folder*parentfolder,const return 1; } -int IMAPwrapper::deleteMbox(const Folder*folder) +int IMAPwrapper::deleteMbox(const FolderP&folder) { if (!folder) return 0; login(); @@ -1123,7 +1122,8 @@ encodedString* IMAPwrapper::fetchRawBody(const RecMail&mail) return fetchRawPart(mail,path,false); } -void IMAPwrapper::mvcpAllMails(Folder*fromFolder,const QString&targetFolder,AbstractMail*targetWrapper,bool moveit) +void IMAPwrapper::mvcpAllMails(const FolderP&fromFolder, + const QString&targetFolder,AbstractMail*targetWrapper,bool moveit) { if (targetWrapper != this) { AbstractMail::mvcpAllMails(fromFolder,targetFolder,targetWrapper,moveit); diff --git a/noncore/net/mail/libmailwrapper/imapwrapper.h b/noncore/net/mail/libmailwrapper/imapwrapper.h index 2623725..15f049f 100644 --- a/noncore/net/mail/libmailwrapper/imapwrapper.h +++ b/noncore/net/mail/libmailwrapper/imapwrapper.h @@ -23,15 +23,16 @@ class IMAPwrapper : public AbstractMail public: IMAPwrapper( IMAPaccount *a ); virtual ~IMAPwrapper(); - virtual QList* listFolders(); + virtual QValueList >* listFolders(); virtual void listMessages(const QString & mailbox,QList&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 Folder*folder); + virtual int deleteAllMail(const Opie::osmart_pointer&folder); virtual void storeMessage(const char*msg,size_t length, const QString&folder); - virtual void mvcpAllMails(Folder*fromFolder,const QString&targetFolder,AbstractMail*targetWrapper,bool moveit); + virtual void mvcpAllMails(const Opie::osmart_pointer&fromFolder, + const QString&targetFolder,AbstractMail*targetWrapper,bool moveit); virtual void mvcpMail(const RecMail&mail,const QString&targetFolder,AbstractMail*targetWrapper,bool moveit); virtual RecBody fetchBody(const RecMail&mail); @@ -40,11 +41,12 @@ public: virtual encodedString* fetchRawPart(const RecMail&mail,const RecPart&part); virtual encodedString* fetchRawBody(const RecMail&mail); - virtual int createMbox(const QString&,const Folder*parentfolder=0,const QString& delemiter="/",bool getsubfolder=false); - virtual int deleteMbox(const Folder*folder); - + virtual int createMbox(const QString&,const Opie::osmart_pointer&parentfolder=0, + const QString& delemiter="/",bool getsubfolder=false); + virtual int deleteMbox(const Opie::osmart_pointer&folder); + static void imap_progress( size_t current, size_t maximum ); - + virtual void logout(); virtual MAILLIB::ATYPE getType()const; virtual const QString&getName()const; @@ -64,7 +66,7 @@ protected: 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,QValueListrecList,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.h b/noncore/net/mail/libmailwrapper/mailtypes.h index 17c6db9..10d367f 100644 --- a/noncore/net/mail/libmailwrapper/mailtypes.h +++ b/noncore/net/mail/libmailwrapper/mailtypes.h @@ -8,7 +8,6 @@ #define FLAG_DRAFT 4 #define FLAG_RECENT 5 -#include #include #include #include diff --git a/noncore/net/mail/libmailwrapper/mailwrapper.cpp b/noncore/net/mail/libmailwrapper/mailwrapper.cpp index 6bd98f6..c71d69f 100644 --- a/noncore/net/mail/libmailwrapper/mailwrapper.cpp +++ b/noncore/net/mail/libmailwrapper/mailwrapper.cpp @@ -35,6 +35,10 @@ Folder::Folder(const QString&tmp_name, const QString&sep ) prefix = ""; } +Folder::~Folder() +{ +} + const QString& Folder::Separator()const { return separator; @@ -57,6 +61,10 @@ IMAPFolder::IMAPFolder(const QString&name,const QString&sep, bool select,bool no } } +IMAPFolder::~IMAPFolder() +{ +} + static unsigned char base64chars[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+,"; @@ -164,3 +172,7 @@ MHFolder::MHFolder(const QString&disp_name,const QString&mbox) } prefix = mbox; } + +MHFolder::~MHFolder() +{ +} diff --git a/noncore/net/mail/libmailwrapper/mailwrapper.h b/noncore/net/mail/libmailwrapper/mailwrapper.h index c66572c..3b3bb32 100644 --- a/noncore/net/mail/libmailwrapper/mailwrapper.h +++ b/noncore/net/mail/libmailwrapper/mailwrapper.h @@ -13,7 +13,7 @@ class Attachment { public: - Attachment( DocLnk lnk ); + Attachment( DocLnk lnk ); virtual ~Attachment(){} const QString getFileName()const{ return doc.file(); } const QString getName()const{ return doc.name(); } @@ -21,7 +21,7 @@ public: const QPixmap getPixmap()const{ return doc.pixmap(); } const int getSize()const { return size; } DocLnk getDocLnk() { return doc; } - + protected: DocLnk doc; int size; @@ -40,7 +40,7 @@ public: virtual ~Mail(){} void addAttachment( Attachment *att ) { attList.append( att ); } const QList& getAttachments()const { return attList; } - void removeAttachment( Attachment *att ) { attList.remove( att ); } + void removeAttachment( Attachment *att ) { attList.remove( att ); } const QString&getName()const { return name; } void setName( QString s ) { name = s; } const QString&getMail()const{ return mail; } @@ -66,12 +66,11 @@ private: QStringList m_in_reply_to; }; -class Folder : public QObject +class Folder:public Opie::oref_count { - Q_OBJECT - public: Folder( const QString&init_name,const QString&sep ); + virtual ~Folder(); const QString&getDisplayName()const { return nameDisplay; } const QString&getName()const { return name; } const QString&getPrefix()const{return prefix; } @@ -83,17 +82,20 @@ protected: QString nameDisplay, name, separator,prefix; }; +typedef Opie::osmart_pointer FolderP; + class MHFolder : public Folder { - Q_OBJECT public: MHFolder(const QString&disp_name,const QString&mbox); + virtual ~MHFolder(); }; class IMAPFolder : public Folder { public: IMAPFolder(const QString&name, const QString&sep, bool select=true,bool noinf=false,const QString&prefix="" ); + virtual ~IMAPFolder(); virtual bool may_select()const{return m_MaySelect;} virtual bool no_inferior()const{return m_NoInferior;} private: diff --git a/noncore/net/mail/libmailwrapper/mboxwrapper.cpp b/noncore/net/mail/libmailwrapper/mboxwrapper.cpp index abe4bb6..9ff3de2 100644 --- a/noncore/net/mail/libmailwrapper/mboxwrapper.cpp +++ b/noncore/net/mail/libmailwrapper/mboxwrapper.cpp @@ -14,7 +14,7 @@ MBOXwrapper::MBOXwrapper(const QString & mbox_dir,const QString&mbox_name) dir.mkdir(MBOXPath); } } - + MBOXwrapper::~MBOXwrapper() { } @@ -24,10 +24,10 @@ void MBOXwrapper::listMessages(const QString & mailbox, QList &target ) mailstorage*storage = mailstorage_new(NULL); QString p = MBOXPath+"/"; p+=mailbox; - + int r = mbox_mailstorage_init(storage,(char*)p.latin1(),0,0,0); mailfolder*folder; - folder = mailfolder_new( storage,(char*)p.latin1(),NULL); + folder = mailfolder_new( storage,(char*)p.latin1(),NULL); r = mailfolder_connect(folder); if (r != MAIL_NO_ERROR) { qDebug("Error initializing mbox"); @@ -35,26 +35,25 @@ void MBOXwrapper::listMessages(const QString & mailbox, QList &target ) mailstorage_free(storage); return; } - + parseList(target,folder->fld_session,mailbox); - + mailfolder_disconnect(folder); mailfolder_free(folder); mailstorage_free(storage); Global::statusMessage(tr("Mailbox has %1 mail(s)").arg(target.count())); } -QList* MBOXwrapper::listFolders() +QValueList >* MBOXwrapper::listFolders() { - QList * folders = new QList(); - folders->setAutoDelete( false ); + QValueList >* folders = new QValueList >(); 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) { - Folder*inb=new Folder(*it,"/"); + FolderP inb=new Folder(*it,"/"); folders->append(inb); } return folders; @@ -67,7 +66,7 @@ void MBOXwrapper::deleteMail(const RecMail&mail) 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); + folder = mailfolder_new( storage,(char*)p.latin1(),NULL); r = mailfolder_connect(folder); if (r != MAIL_NO_ERROR) { qDebug("Error initializing mbox"); @@ -99,7 +98,7 @@ RecBody MBOXwrapper::fetchBody( const RecMail &mail ) int r = mbox_mailstorage_init(storage,(char*)p.latin1(),0,0,0); mailfolder*folder; - folder = mailfolder_new( storage,(char*)p.latin1(),NULL); + folder = mailfolder_new( storage,(char*)p.latin1(),NULL); r = mailfolder_connect(folder); if (r != MAIL_NO_ERROR) { qDebug("Error initializing mbox"); @@ -122,11 +121,11 @@ RecBody MBOXwrapper::fetchBody( const RecMail &mail ) mailmessage_free(msg); return body; } - body = parseMail(msg); + body = parseMail(msg); mailmessage_fetch_result_free(msg,data); mailfolder_free(folder); mailstorage_free(storage); - + return body; } @@ -135,7 +134,7 @@ void MBOXwrapper::mbox_progress( size_t current, size_t maximum ) qDebug("MBOX %i von %i",current,maximum); } -int MBOXwrapper::createMbox(const QString&folder,const Folder*,const QString&,bool ) +int MBOXwrapper::createMbox(const QString&folder,const FolderP&,const QString&,bool ) { QString p = MBOXPath+"/"; p+=folder; @@ -182,7 +181,7 @@ encodedString* MBOXwrapper::fetchRawBody(const RecMail&mail) int r = mbox_mailstorage_init(storage,(char*)p.latin1(),0,0,0); mailfolder*folder; - folder = mailfolder_new( storage,(char*)p.latin1(),NULL); + folder = mailfolder_new( storage,(char*)p.latin1(),NULL); r = mailfolder_connect(folder); if (r != MAIL_NO_ERROR) { Global::statusMessage(tr("Error initializing mbox")); @@ -243,12 +242,12 @@ void MBOXwrapper::deleteMails(mailmbox_folder*f,QList &target) } } -int MBOXwrapper::deleteAllMail(const Folder*tfolder) +int MBOXwrapper::deleteAllMail(const FolderP&tfolder) { if (!tfolder) return 0; QString p = MBOXPath+"/"+tfolder->getDisplayName(); int res = 1; - + mailfolder*folder = 0; mailmessage_list*l=0; mailstorage*storage = mailstorage_new(NULL); @@ -258,7 +257,7 @@ int MBOXwrapper::deleteAllMail(const Folder*tfolder) res = 0; } if (res) { - folder = mailfolder_new( storage,(char*)p.latin1(),NULL); + folder = mailfolder_new( storage,(char*)p.latin1(),NULL); r = mailfolder_connect(folder); if (r != MAIL_NO_ERROR) { Global::statusMessage(tr("Error initializing mbox")); @@ -286,7 +285,7 @@ int MBOXwrapper::deleteAllMail(const Folder*tfolder) return res; } -int MBOXwrapper::deleteMbox(const Folder*tfolder) +int MBOXwrapper::deleteMbox(const FolderP&tfolder) { if (!tfolder) return 0; QString p = MBOXPath+"/"+tfolder->getDisplayName(); @@ -316,7 +315,7 @@ void MBOXwrapper::statusFolder(folderStat&target_stat,const QString & mailbox) return; } int r = mbox_mailstorage_init(storage,(char*)p.latin1(),0,0,0); - folder = mailfolder_new( storage,(char*)p.latin1(),NULL); + folder = mailfolder_new( storage,(char*)p.latin1(),NULL); r = mailfolder_connect(folder); r = mailsession_status_folder(folder->fld_session,(char*)mailbox.latin1(),&target_stat.message_count, &target_stat.message_recent,&target_stat.message_unseen); diff --git a/noncore/net/mail/libmailwrapper/mboxwrapper.h b/noncore/net/mail/libmailwrapper/mboxwrapper.h index 7e7f359..c3d9b50 100644 --- a/noncore/net/mail/libmailwrapper/mboxwrapper.h +++ b/noncore/net/mail/libmailwrapper/mboxwrapper.h @@ -16,16 +16,17 @@ class MBOXwrapper : public Genericwrapper public: MBOXwrapper(const QString & dir,const QString&name); virtual ~MBOXwrapper(); - + virtual void listMessages(const QString & mailbox, QList &target ); - virtual QList* listFolders(); + virtual QValueList >* listFolders(); virtual void statusFolder(folderStat&target_stat,const QString & mailbox="INBOX"); virtual void deleteMail(const RecMail&mail); virtual void answeredMail(const RecMail&mail); - - virtual int createMbox(const QString&folder,const Folder*f=0,const QString&d="",bool s=false); - virtual int deleteMbox(const Folder*); + + virtual int createMbox(const QString&folder,const Opie::osmart_pointer&f=0, + const QString&d="",bool s=false); + virtual int deleteMbox(const Opie::osmart_pointer&); virtual void storeMessage(const char*msg,size_t length, const QString&folder); @@ -34,7 +35,7 @@ public: virtual encodedString* fetchRawBody(const RecMail&mail); virtual void deleteMails(const QString & FolderName,QList &target); - virtual int deleteAllMail(const Folder*); + virtual int deleteAllMail(const Opie::osmart_pointer&); virtual MAILLIB::ATYPE getType()const; virtual const QString&getName()const; diff --git a/noncore/net/mail/libmailwrapper/mhwrapper.cpp b/noncore/net/mail/libmailwrapper/mhwrapper.cpp index 560eab0..aaaa20a 100644 --- a/noncore/net/mail/libmailwrapper/mhwrapper.cpp +++ b/noncore/net/mail/libmailwrapper/mhwrapper.cpp @@ -76,10 +76,9 @@ void MHwrapper::listMessages(const QString & mailbox, QList &target ) Global::statusMessage(tr("Mailbox has %1 mail(s)").arg(target.count())); } -QList* MHwrapper::listFolders() +QValueList >* MHwrapper::listFolders() { - QList * folders = new QList(); - folders->setAutoDelete( false ); + QValueList >* folders = new QValueList >(); /* this is needed! */ if (m_storage) mailstorage_disconnect(m_storage); init_storage(); @@ -144,7 +143,7 @@ RecBody MHwrapper::fetchBody( const RecMail &mail ) qDebug("Error fetching mail %i",mail.getNumber()); return body; } - body = parseMail(msg); + body = parseMail(msg); mailmessage_fetch_result_free(msg,data); return body; } @@ -169,7 +168,7 @@ QString MHwrapper::buildPath(const QString&p) return f; } -int MHwrapper::createMbox(const QString&folder,const Folder*pfolder,const QString&,bool ) +int MHwrapper::createMbox(const QString&folder,const FolderP&pfolder,const QString&,bool ) { init_storage(); if (!m_storage) { @@ -263,7 +262,7 @@ void MHwrapper::deleteMails(const QString & mailbox,QList &target) } } -int MHwrapper::deleteAllMail(const Folder*tfolder) +int MHwrapper::deleteAllMail(const FolderP&tfolder) { init_storage(); if (!m_storage) { @@ -298,7 +297,7 @@ int MHwrapper::deleteAllMail(const Folder*tfolder) return res; } -int MHwrapper::deleteMbox(const Folder*tfolder) +int MHwrapper::deleteMbox(const FolderP&tfolder) { init_storage(); if (!m_storage) { @@ -306,9 +305,9 @@ int MHwrapper::deleteMbox(const Folder*tfolder) } if (!tfolder) return 0; if (tfolder->getName()=="/" || tfolder->getName().isEmpty()) return 0; - + int r = mailsession_delete_folder(m_storage->sto_session,(char*)tfolder->getName().latin1()); - + if (r != MAIL_NO_ERROR) { qDebug("error deleting mail box"); return 0; @@ -319,7 +318,7 @@ int MHwrapper::deleteMbox(const Folder*tfolder) command << "-c"; command << cmd.latin1(); OProcess *process = new OProcess(); - + connect(process, SIGNAL(processExited(OProcess*)), this, SLOT( processEnded(OProcess*))); connect(process, SIGNAL( receivedStderr(OProcess*,char*,int)), @@ -386,7 +385,7 @@ void MHwrapper::mvcpMail(const RecMail&mail,const QString&targetFolder,AbstractM } 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; @@ -401,7 +400,8 @@ void MHwrapper::mvcpMail(const RecMail&mail,const QString&targetFolder,AbstractM } } -void MHwrapper::mvcpAllMails(Folder*fromFolder,const QString&targetFolder,AbstractMail*targetWrapper,bool moveit) +void MHwrapper::mvcpAllMails(const FolderP&fromFolder, + const QString&targetFolder,AbstractMail*targetWrapper,bool moveit) { init_storage(); if (!m_storage) { diff --git a/noncore/net/mail/libmailwrapper/mhwrapper.h b/noncore/net/mail/libmailwrapper/mhwrapper.h index b7c23af..c7c8183 100644 --- a/noncore/net/mail/libmailwrapper/mhwrapper.h +++ b/noncore/net/mail/libmailwrapper/mhwrapper.h @@ -18,18 +18,20 @@ class MHwrapper : public Genericwrapper public: MHwrapper(const QString & dir,const QString&name); virtual ~MHwrapper(); - + virtual void listMessages(const QString & mailbox, QList &target ); - virtual QList* listFolders(); + virtual QValueList >* 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(Folder*fromFolder,const QString&targetFolder,AbstractMail*targetWrapper,bool moveit); - - virtual int createMbox(const QString&folder,const Folder*f=0,const QString&d="",bool s=false); - virtual int deleteMbox(const Folder*); + virtual void mvcpAllMails(const Opie::osmart_pointer&fromFolder, + const QString&targetFolder,AbstractMail*targetWrapper,bool moveit); + + virtual int createMbox(const QString&folder,const Opie::osmart_pointer&f=0, + const QString&d="",bool s=false); + virtual int deleteMbox(const Opie::osmart_pointer&); virtual void storeMessage(const char*msg,size_t length, const QString&folder); @@ -38,7 +40,7 @@ public: virtual encodedString* fetchRawBody(const RecMail&mail); virtual void deleteMails(const QString & FolderName,QList &target); - virtual int deleteAllMail(const Folder*); + virtual int deleteAllMail(const Opie::osmart_pointer&); virtual MAILLIB::ATYPE getType()const; virtual const QString&getName()const; @@ -50,10 +52,10 @@ protected: QString buildPath(const QString&p); QString MHPath; QString MHName; - + void init_storage(); void clean_storage(); - + bool removeMboxfailed; }; diff --git a/noncore/net/mail/libmailwrapper/nntpwrapper.cpp b/noncore/net/mail/libmailwrapper/nntpwrapper.cpp index 1956c61..2ec052c 100644 --- a/noncore/net/mail/libmailwrapper/nntpwrapper.cpp +++ b/noncore/net/mail/libmailwrapper/nntpwrapper.cpp @@ -188,10 +188,9 @@ void NNTPwrapper::logout() m_nntp = 0; } -QList* NNTPwrapper::listFolders() { +QValueList >* NNTPwrapper::listFolders() { - QList * folders = new QList(); - folders->setAutoDelete( false ); + QValueList >* folders = new QValueList >(); QStringList groups; if (account) { groups = account->getGroups(); @@ -204,7 +203,7 @@ QList* NNTPwrapper::listFolders() { /* we made this method in raw nntp access of etpan and not via generic interface * 'cause in that case there will be doubled copy operations. eg. the etpan would - * copy that stuff into its own structures and we must copy it into useable c++ + * copy that stuff into its own structures and we must copy it into useable c++ * structures for our frontend. this would not make sense, so it is better to reimplement * the stuff from generic interface of etpan but copy it direct to qt classes. */ @@ -280,5 +279,5 @@ const QString&NNTPwrapper::getName()const{ void NNTPwrapper::deleteMail(const RecMail&) { } -int NNTPwrapper::deleteAllMail(const Folder*) { +int NNTPwrapper::deleteAllMail(const FolderP&) { } diff --git a/noncore/net/mail/libmailwrapper/nntpwrapper.h b/noncore/net/mail/libmailwrapper/nntpwrapper.h index 955b9f1..d3a384a 100644 --- a/noncore/net/mail/libmailwrapper/nntpwrapper.h +++ b/noncore/net/mail/libmailwrapper/nntpwrapper.h @@ -22,13 +22,13 @@ public: /* mailbox will be ignored */ virtual void listMessages(const QString & mailbox, QList &target ); /* should only get the subscribed one */ - virtual QList* listFolders(); + virtual QValueList >* 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 Folder*); + virtual int deleteAllMail(const Opie::osmart_pointer&); virtual RecBody fetchBody( const RecMail &mail ); virtual encodedString* fetchRawBody(const RecMail&mail); diff --git a/noncore/net/mail/libmailwrapper/pop3wrapper.cpp b/noncore/net/mail/libmailwrapper/pop3wrapper.cpp index 0939b22..7bf7ed2 100644 --- a/noncore/net/mail/libmailwrapper/pop3wrapper.cpp +++ b/noncore/net/mail/libmailwrapper/pop3wrapper.cpp @@ -177,10 +177,9 @@ void POP3wrapper::logout() } -QList* POP3wrapper::listFolders() { - QList * folders = new QList(); - folders->setAutoDelete( false ); - Folder*inb=new Folder("INBOX","/"); +QValueList >* POP3wrapper::listFolders() { + QValueList >* folders = new QValueList(); + FolderP inb=new Folder("INBOX","/"); folders->append(inb); return folders; } @@ -197,7 +196,7 @@ void POP3wrapper::deleteMail(const RecMail&mail) { void POP3wrapper::answeredMail(const RecMail&) {} -int POP3wrapper::deleteAllMail(const Folder*) { +int POP3wrapper::deleteAllMail(const FolderP&) { login(); if (!m_pop3) return 0; diff --git a/noncore/net/mail/libmailwrapper/pop3wrapper.h b/noncore/net/mail/libmailwrapper/pop3wrapper.h index 391c841..e4afb94 100644 --- a/noncore/net/mail/libmailwrapper/pop3wrapper.h +++ b/noncore/net/mail/libmailwrapper/pop3wrapper.h @@ -18,13 +18,13 @@ public: virtual ~POP3wrapper(); /* mailbox will be ignored */ virtual void listMessages(const QString & mailbox, QList &target ); - virtual QList* listFolders(); + virtual QValueList >* 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 Folder*); + virtual int deleteAllMail(const Opie::osmart_pointer&); virtual RecBody fetchBody( const RecMail &mail ); virtual encodedString* fetchRawBody(const RecMail&mail); diff --git a/noncore/net/mail/viewmail.cpp b/noncore/net/mail/viewmail.cpp index aa8f37a..78652d7 100644 --- a/noncore/net/mail/viewmail.cpp +++ b/noncore/net/mail/viewmail.cpp @@ -133,6 +133,7 @@ void ViewMail::setBody( RecBody body ) for (unsigned int i = 0; i < body.Parts().count();++i) { + filename = ""; type = body.Parts()[i].Type()+"/"+body.Parts()[i].Subtype(); part_plist_t::ConstIterator it = body.Parts()[i].Parameters().begin(); for (;it!=body.Parts()[i].Parameters().end();++it) @@ -395,7 +396,7 @@ void ViewMail::slotReply() } QString rtext; - rtext += QString("* %1 wrote on %2:\n") // no i18n on purpose + rtext += QString("* %1 wrote on %2:\n") // no i18n on purpose .arg( m_mail[0] ) .arg( m_mail[3] ); @@ -410,7 +411,7 @@ void ViewMail::slotReply() QString prefix; if ( m_mail[1].find(QRegExp("^Re: .*$")) != -1) prefix = ""; - else prefix = "Re: "; // no i18n on purpose + else prefix = "Re: "; // no i18n on purpose Settings *settings = new Settings(); ComposeMail composer( settings ,this, 0, true); @@ -422,7 +423,7 @@ void ViewMail::slotReply() composer.setSubject( prefix + m_mail[1] ); composer.setMessage( rtext ); composer.setInReplyTo(m_recMail.Msgid()); - + if ( QDialog::Accepted == QPEApplication::execDialog( &composer ) ) { m_recMail.Wrapper()->answeredMail(m_recMail); -- cgit v0.9.0.2