-rw-r--r-- | kmicromail/libmailwrapper/imapwrapper.cpp | 3 | ||||
-rw-r--r-- | kmicromail/libmailwrapper/mhwrapper.cpp | 55 | ||||
-rw-r--r-- | kmicromail/libmailwrapper/mhwrapper.h | 1 |
3 files changed, 35 insertions, 24 deletions
diff --git a/kmicromail/libmailwrapper/imapwrapper.cpp b/kmicromail/libmailwrapper/imapwrapper.cpp index 3aec13d..110583f 100644 --- a/kmicromail/libmailwrapper/imapwrapper.cpp +++ b/kmicromail/libmailwrapper/imapwrapper.cpp @@ -170,14 +170,15 @@ void IMAPwrapper::login() } if (account->ConnectionType()==1) { force_tls = true; } if ( ssl ) { - //qDebug("using ssl "); + qDebug("using ssl "); err = mailimap_ssl_connect( m_imap, (char*)server.latin1(), port ); + qDebug("back "); } else { err = mailimap_socket_connect( m_imap, (char*)server.latin1(), port ); } if ( err != MAILIMAP_NO_ERROR && err != MAILIMAP_NO_ERROR_AUTHENTICATED && diff --git a/kmicromail/libmailwrapper/mhwrapper.cpp b/kmicromail/libmailwrapper/mhwrapper.cpp index de6d220..90b5d23 100644 --- a/kmicromail/libmailwrapper/mhwrapper.cpp +++ b/kmicromail/libmailwrapper/mhwrapper.cpp @@ -296,13 +296,40 @@ int MHwrapper::deleteAllMail(const FolderP&tfolder) break; } } if (l) mailmessage_list_free(l); return res; } +bool MHwrapper::rmDir(QString folder) // absolute path! +{ + QDir dir ( folder ); + if ( !dir.exists() ) + return false; + int i; + // qDebug("rmdir %s ",folder.latin1()); + QStringList list = dir.entryList(QDir::Dirs|QDir::Files|QDir::NoSymLinks|QDir::Hidden ); + for (i=0; i<list.count(); i++ ) { + bool result = true; + QString entry = folder+"/"+ list[i] ; + //qDebug("entry %s ",entry.latin1() ); + QFileInfo fi ( entry ); + if ( fi.isFile() ) { + //qDebug("file %s ",entry.latin1() ); + result = QFile::remove ( entry ) ; + } else { + //qDebug("dir %s ",entry.latin1()); + if ( list[i] != "." && list[i] != ".." ) + result = rmDir( entry ); + } + if ( ! result ) + return false; + } + //qDebug("removing... "); + return QDir::root().rmdir ( folder, true ); +} int MHwrapper::deleteMbox(const FolderP&tfolder) { init_storage(); if (!m_storage) { return 0; } @@ -312,36 +339,18 @@ int MHwrapper::deleteMbox(const FolderP&tfolder) 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; } - QString delDir = locateLocal( "apps", "kopiemail")+ "localmail"; - qDebug("*****************\ndel %s %s ", delDir.latin1(),tfolder->getName().latin1() ); -#if 0 - QString cmd = "rm -rf "+tfolder->getName(); - QStringList command; - command << "/bin/sh"; - command << "-c"; - command << cmd.latin1(); - OProcess *process = new OProcess(); - - /* - connect(process, SIGNAL(processExited(Opie::Core::OProcess*)), - this, SLOT( processEnded(Opie::Core::OProcess*))); - connect(process, SIGNAL( receivedStderr(Opie::Core::OProcess*,char*,int)), - this, SLOT( oprocessStderr(Opie::Core::OProcess*,char*,int))); - */ - *process << command; - removeMboxfailed = false; - if(!process->start(OProcess::Block, OProcess::All) ) { - qDebug("could not start process "); - return 0; + //qDebug("*****************\ndel %s %s ", delDir.latin1(),tfolder->getName().latin1() ); + if ( !rmDir( tfolder->getName() )) { + qDebug("error deleteing folder %s ",tfolder->getName().latin1()); } -#endif - qDebug("mail box deleted "); + else + qDebug("mail box deleted %s ", tfolder->getName().latin1()); return 1; } void MHwrapper::statusFolder(folderStat&target_stat,const QString & mailbox) { diff --git a/kmicromail/libmailwrapper/mhwrapper.h b/kmicromail/libmailwrapper/mhwrapper.h index 87f8ca1..36a443a 100644 --- a/kmicromail/libmailwrapper/mhwrapper.h +++ b/kmicromail/libmailwrapper/mhwrapper.h @@ -48,11 +48,12 @@ protected: QString buildPath(const QString&p); QString MHPath; QString MHName; void init_storage(); void clean_storage(); + bool rmDir(QString folderabspath); bool removeMboxfailed; }; #endif |