summaryrefslogtreecommitdiff
Side-by-side diff
Diffstat (more/less context) (show whitespace changes)
-rw-r--r--noncore/net/mail/accountitem.cpp115
-rw-r--r--noncore/net/mail/accountitem.h21
-rw-r--r--noncore/net/mail/accountview.cpp2
-rw-r--r--noncore/net/mail/accountview.h3
-rw-r--r--noncore/net/mail/libmailwrapper/abstractmail.cpp5
-rw-r--r--noncore/net/mail/libmailwrapper/abstractmail.h16
-rw-r--r--noncore/net/mail/libmailwrapper/genericwrapper.h2
-rw-r--r--noncore/net/mail/libmailwrapper/imapwrapper.cpp14
-rw-r--r--noncore/net/mail/libmailwrapper/imapwrapper.h12
-rw-r--r--noncore/net/mail/libmailwrapper/mailtypes.h1
-rw-r--r--noncore/net/mail/libmailwrapper/mailwrapper.cpp12
-rw-r--r--noncore/net/mail/libmailwrapper/mailwrapper.h10
-rw-r--r--noncore/net/mail/libmailwrapper/mboxwrapper.cpp13
-rw-r--r--noncore/net/mail/libmailwrapper/mboxwrapper.h9
-rw-r--r--noncore/net/mail/libmailwrapper/mhwrapper.cpp14
-rw-r--r--noncore/net/mail/libmailwrapper/mhwrapper.h12
-rw-r--r--noncore/net/mail/libmailwrapper/nntpwrapper.cpp7
-rw-r--r--noncore/net/mail/libmailwrapper/nntpwrapper.h4
-rw-r--r--noncore/net/mail/libmailwrapper/pop3wrapper.cpp9
-rw-r--r--noncore/net/mail/libmailwrapper/pop3wrapper.h4
-rw-r--r--noncore/net/mail/viewmail.cpp1
21 files changed, 152 insertions, 134 deletions
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<RecMail> & )
void POP3viewItem::refresh()
{
if (account->getOffline()) return;
- QList<Folder> *folders = wrapper->listFolders();
+ QValueList<FolderP> *folders = wrapper->listFolders();
QListViewItem *child = firstChild();
while ( child )
{
@@ -65,15 +65,13 @@ void POP3viewItem::refresh()
child = child->nextSibling();
delete tmp;
}
- Folder *it;
+ QValueList<FolderP>::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<RecMail> & )
void NNTPviewItem::refresh()
{
if (account->getOffline()) return;
- QList<Folder> *folders = wrapper->listFolders();
+ QValueList<FolderP> *folders = wrapper->listFolders();
+
QListViewItem *child = firstChild();
while ( child )
{
@@ -258,15 +256,13 @@ void NNTPviewItem::refresh()
child = child->nextSibling();
delete tmp;
}
- Folder *it;
+ QValueList<FolderP>::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<Folder> *folders = wrapper->listFolders();
+ QValueList<FolderP> * folders = wrapper->listFolders();
- Folder *it;
+ QValueList<FolderP>::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<Folder> *folders = wrapper->listFolders();
- Folder *it;
+ QValueList<FolderP> *folders = wrapper->listFolders();
+ QValueList<FolderP>::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<Folder>&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 <qlistview.h>
#include <qlist.h>
+#include <opie2/osmart_pointer.h>
class POP3wrapper;
class RecMail;
@@ -23,6 +24,8 @@ public:
AccountViewItem( AccountView *parent );
AccountViewItem( QListViewItem *parent);
AccountViewItem( QListViewItem *parent , QListViewItem*after );
+ AccountViewItem( const Opie::osmart_pointer<Folder>&folderInit,QListViewItem *parent , QListViewItem*after );
+
virtual ~AccountViewItem();
virtual void refresh(QList<RecMail>&)=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<Folder>&f);
static const QString contextName;
AccountView*m_Backlink;
- Folder *folder;
+ Opie::osmart_pointer<Folder> 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>&folder, POP3viewItem *parent , QListViewItem*after );
virtual ~POP3folderItem();
virtual void refresh(QList<RecMail>&);
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>&folder, NNTPviewItem *parent , QListViewItem*after );
virtual ~NNTPfolderItem();
virtual void refresh(QList<RecMail>&);
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>&folder, IMAPviewItem *parent , QListViewItem*after );
+ IMAPfolderItem( const Opie::osmart_pointer<Folder>&folder, IMAPfolderItem *parent , QListViewItem*after, IMAPviewItem *master );
virtual ~IMAPfolderItem();
virtual void refresh(QList<RecMail>&);
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>&folder, MHviewItem *parent , QListViewItem*after );
+ MHfolderItem( const Opie::osmart_pointer<Folder>&folder, MHfolderItem *parent, QListViewItem*after, MHviewItem*master);
virtual ~MHfolderItem();
virtual void refresh(QList<RecMail>&);
virtual RecBody fetchBody(const RecMail&);
virtual QPopupMenu * getContextMenu();
virtual void contextMenuSelected(int);
- virtual Folder*getFolder();
+ virtual const Opie::osmart_pointer<Folder>&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 <qlistview.h>
#include <qlist.h>
+#include <opie2/osmart_pointer.h>
class Selectstore;
class RecMail;
@@ -22,7 +23,7 @@ public:
virtual ~AccountView();
virtual void populate( QList<Account> list );
virtual RecBody fetchBody(const RecMail&aMail);
- virtual void downloadMails(Folder*fromFolder,AbstractMail*fromWrapper);
+ virtual void downloadMails(const Opie::osmart_pointer<Folder>&fromFolder,AbstractMail*fromWrapper);
virtual bool currentisDraft();
public slots:
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<RecMail> &)
{
}
-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<RecMail> 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 <qobject.h>
#include "settings.h"
+#include <qobject.h>
+#include <opie2/osmart_pointer.h>
+
class RecMail;
class RecBody;
class RecPart;
@@ -21,7 +23,7 @@ class AbstractMail:public QObject
public:
AbstractMail(){};
virtual ~AbstractMail(){}
- virtual QList<Folder>* listFolders()=0;
+ virtual QValueList<Opie::osmart_pointer<Folder> >* listFolders()=0;
virtual void listMessages(const QString & mailbox,QList<RecMail>&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<Folder>&)=0;
virtual void deleteMails(const QString & FolderName,QList<RecMail> &target);
- virtual int deleteMbox(const Folder*)=0;
+ virtual int deleteMbox(const Opie::osmart_pointer<Folder>&)=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<Folder>&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<Folder>&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<Folder>&){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<RecMail> &target )
if (result) mailimap_fetch_list_free(result);
}
-QList<Folder>* IMAPwrapper::listFolders()
+QValueList<Opie::osmart_pointer<Folder> >* IMAPwrapper::listFolders()
{
const char *path, *mask;
int err = MAILIMAP_NO_ERROR;
@@ -275,8 +275,7 @@ QList<Folder>* IMAPwrapper::listFolders()
clistcell*cur_flag = 0;
mailimap_mbx_list_flags*bflags = 0;
- QList<Folder> * folders = new QList<Folder>();
- folders->setAutoDelete( false );
+ QValueList<FolderP>* folders = new QValueList<FolderP>();
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<Folder>* listFolders();
+ virtual QValueList<Opie::osmart_pointer<Folder> >* listFolders();
virtual void listMessages(const QString & mailbox,QList<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 Folder*folder);
+ virtual int deleteAllMail(const Opie::osmart_pointer<Folder>&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<Folder>&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,8 +41,9 @@ 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<Folder>&parentfolder=0,
+ const QString& delemiter="/",bool getsubfolder=false);
+ virtual int deleteMbox(const Opie::osmart_pointer<Folder>&folder);
static void imap_progress( size_t current, size_t maximum );
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 <qlist.h>
#include <qbitarray.h>
#include <qstring.h>
#include <qstringlist.h>
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
@@ -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<Folder> 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
@@ -44,17 +44,16 @@ void MBOXwrapper::listMessages(const QString & mailbox, QList<RecMail> &target )
Global::statusMessage(tr("Mailbox has %1 mail(s)").arg(target.count()));
}
-QList<Folder>* MBOXwrapper::listFolders()
+QValueList<Opie::osmart_pointer<Folder> >* MBOXwrapper::listFolders()
{
- QList<Folder> * folders = new QList<Folder>();
- folders->setAutoDelete( false );
+ QValueList<Opie::osmart_pointer<Folder> >* folders = new QValueList<Opie::osmart_pointer<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) {
- Folder*inb=new Folder(*it,"/");
+ FolderP inb=new Folder(*it,"/");
folders->append(inb);
}
return folders;
@@ -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;
@@ -243,7 +242,7 @@ void MBOXwrapper::deleteMails(mailmbox_folder*f,QList<RecMail> &target)
}
}
-int MBOXwrapper::deleteAllMail(const Folder*tfolder)
+int MBOXwrapper::deleteAllMail(const FolderP&tfolder)
{
if (!tfolder) return 0;
QString p = MBOXPath+"/"+tfolder->getDisplayName();
@@ -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();
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
@@ -18,14 +18,15 @@ public:
virtual ~MBOXwrapper();
virtual void listMessages(const QString & mailbox, QList<RecMail> &target );
- virtual QList<Folder>* listFolders();
+ virtual QValueList<Opie::osmart_pointer<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 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<Folder>&f=0,
+ const QString&d="",bool s=false);
+ virtual int deleteMbox(const Opie::osmart_pointer<Folder>&);
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<RecMail> &target);
- virtual int deleteAllMail(const Folder*);
+ virtual int deleteAllMail(const Opie::osmart_pointer<Folder>&);
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<RecMail> &target )
Global::statusMessage(tr("Mailbox has %1 mail(s)").arg(target.count()));
}
-QList<Folder>* MHwrapper::listFolders()
+QValueList<Opie::osmart_pointer<Folder> >* MHwrapper::listFolders()
{
- QList<Folder> * folders = new QList<Folder>();
- folders->setAutoDelete( false );
+ QValueList<Opie::osmart_pointer<Folder> >* folders = new QValueList<Opie::osmart_pointer<Folder> >();
/* this is needed! */
if (m_storage) mailstorage_disconnect(m_storage);
init_storage();
@@ -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<RecMail> &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) {
@@ -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
@@ -20,16 +20,18 @@ public:
virtual ~MHwrapper();
virtual void listMessages(const QString & mailbox, QList<RecMail> &target );
- virtual QList<Folder>* listFolders();
+ virtual QValueList<Opie::osmart_pointer<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(Folder*fromFolder,const QString&targetFolder,AbstractMail*targetWrapper,bool moveit);
+ virtual void mvcpAllMails(const Opie::osmart_pointer<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 int createMbox(const QString&folder,const Opie::osmart_pointer<Folder>&f=0,
+ const QString&d="",bool s=false);
+ virtual int deleteMbox(const Opie::osmart_pointer<Folder>&);
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<RecMail> &target);
- virtual int deleteAllMail(const Folder*);
+ virtual int deleteAllMail(const Opie::osmart_pointer<Folder>&);
virtual MAILLIB::ATYPE getType()const;
virtual const QString&getName()const;
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<Folder>* NNTPwrapper::listFolders() {
+QValueList<Opie::osmart_pointer<Folder> >* NNTPwrapper::listFolders() {
- QList<Folder> * folders = new QList<Folder>();
- folders->setAutoDelete( false );
+ QValueList<Opie::osmart_pointer<Folder> >* folders = new QValueList<Opie::osmart_pointer<Folder> >();
QStringList groups;
if (account) {
groups = account->getGroups();
@@ -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<RecMail> &target );
/* should only get the subscribed one */
- virtual QList<Folder>* listFolders();
+ virtual QValueList<Opie::osmart_pointer<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 Folder*);
+ virtual int deleteAllMail(const Opie::osmart_pointer<Folder>&);
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<Folder>* POP3wrapper::listFolders() {
- QList<Folder> * folders = new QList<Folder>();
- folders->setAutoDelete( false );
- Folder*inb=new Folder("INBOX","/");
+QValueList<Opie::osmart_pointer<Folder> >* POP3wrapper::listFolders() {
+ QValueList<Opie::osmart_pointer<Folder> >* folders = new QValueList<FolderP>();
+ 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<RecMail> &target );
- virtual QList<Folder>* listFolders();
+ virtual QValueList<Opie::osmart_pointer<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 Folder*);
+ virtual int deleteAllMail(const Opie::osmart_pointer<Folder>&);
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)