summaryrefslogtreecommitdiffabout
Side-by-side diff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--kmicromail/libmailwrapper/imapwrapper.cpp3
-rw-r--r--kmicromail/libmailwrapper/mhwrapper.cpp57
-rw-r--r--kmicromail/libmailwrapper/mhwrapper.h1
3 files changed, 36 insertions, 25 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