From 7b24e8d3130101ba100a4d165f4dff1f2ca2a114 Mon Sep 17 00:00:00 2001 From: Carsten Burghardt Date: Sat, 23 Jul 2005 08:04:30 +0000 Subject: [PATCH] Do not send empty searches to the imap server. BUGS:109496 svn path=/trunk/KDE/kdepim/; revision=437833 --- kmfolderimap.cpp | 13 +++++++++---- searchjob.cpp | 12 +++++++----- 2 files changed, 16 insertions(+), 9 deletions(-) diff --git a/kmfolderimap.cpp b/kmfolderimap.cpp index d39bb8bfa..4e948ca75 100644 --- a/kmfolderimap.cpp +++ b/kmfolderimap.cpp @@ -1611,7 +1611,8 @@ void KMFolderImap::slotGetMessagesResult(KIO::Job * job) //----------------------------------------------------------------------------- -void KMFolderImap::createFolder(const QString &name, const QString& parentPath) +void KMFolderImap::createFolder(const QString &name, const QString& parentPath, + bool askUser) { if ( mAccount->makeConnection() != ImapAccountBase::Connected ) { kdWarning(5006) << "KMFolderImap::createFolder - got no connection" << endl; @@ -1622,7 +1623,11 @@ void KMFolderImap::createFolder(const QString &name, const QString& parentPath) if ( !parent.endsWith("/") ) { parent += "/"; } - url.setPath( parent + name ); + QString path = parent + name; + if ( askUser ) { + path += ";INFO=ASKUSER"; + } + url.setPath( path ); KIO::SimpleJob *job = KIO::mkdir(url); KIO::Scheduler::assignJobToSlave(mAccount->slave(), job); @@ -2179,7 +2184,7 @@ void KMFolderImap::slotCreatePendingFolders( int errorCode, const QString& error //----------------------------------------------------------------------------- void KMFolderImap::search( const KMSearchPattern* pattern ) { - if ( !pattern ) + if ( !pattern || pattern->isEmpty() ) { // not much to do here QValueList serNums; @@ -2203,7 +2208,7 @@ void KMFolderImap::slotSearchDone( QValueList serNums, //----------------------------------------------------------------------------- void KMFolderImap::search( const KMSearchPattern* pattern, Q_UINT32 serNum ) { - if ( !pattern ) + if ( !pattern || pattern->isEmpty() ) { // not much to do here emit searchDone( folder(), serNum, pattern, false ); diff --git a/searchjob.cpp b/searchjob.cpp index a43a9ec5b..40fca5105 100644 --- a/searchjob.cpp +++ b/searchjob.cpp @@ -152,11 +152,13 @@ QString SearchJob::searchStringFromPattern( const KMSearchPattern* pattern ) } QString search; - if ( pattern->op() == KMSearchPattern::OpOr ) { - search = "(OR " + parts.join(" ") + ")"; - } else { - // and's are simply joined - search = parts.join(" "); + if ( !parts.isEmpty() ) { + if ( pattern->op() == KMSearchPattern::OpOr ) { + search = "(OR " + parts.join(" ") + ")"; + } else { + // and's are simply joined + search = parts.join(" "); + } } kdDebug(5006) << k_funcinfo << search << ";localSearch=" << mLocalSearchPattern->asString() << endl;