From d4b702756e673463c9fc008bc6e5931aac6a9011 Mon Sep 17 00:00:00 2001 From: tpearson Date: Wed, 16 Dec 2009 01:50:36 +0000 Subject: * gcc4.4 compilation fixes * kmail crash issues resolved * automake updates git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/kdepim@1062791 283d02a7-25f6-0310-bc7c-ecb5cbfe19da --- kmail/accountmanager.cpp | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) (limited to 'kmail/accountmanager.cpp') diff --git a/kmail/accountmanager.cpp b/kmail/accountmanager.cpp index c27432ae4..54a1b4166 100644 --- a/kmail/accountmanager.cpp +++ b/kmail/accountmanager.cpp @@ -18,6 +18,7 @@ #include "kmfiltermgr.h" #include "globalsettings.h" +#include #include #include #include @@ -190,6 +191,34 @@ void AccountManager::processNextCheck( bool _newMail ) return; } + if ( curAccount->type() == "imap" || curAccount->type() == "cachedimap" || curAccount->type() == "pop" ) + { + // Check with the network status daemon whether the network is available + const int NetWorkStatusUnknown = 1; + const int NetWorkStatusOnline = 8; + QCString replyType; + QByteArray params; + QByteArray reply; + + QDataStream stream( params, IO_WriteOnly ); + stream << static_cast( curAccount )->host(); + + if ( kapp->dcopClient()->call( "kded", "networkstatus", "status(QString)", + params, replyType, reply ) && ( replyType == "int" ) ) + { + int result; + QDataStream stream2( reply, IO_ReadOnly ); + stream2 >> result; + kdDebug() << k_funcinfo << "networkstatus status = " << result << endl; + // if it's not unknown (no networks announced by network control apps), and not offline, give up now + if ( ( result != NetWorkStatusUnknown ) && ( result != NetWorkStatusOnline ) ) + { + emit checkedMail( false, mInteractive, mTotalNewInFolder ); + return; + } + } + } + connect( curAccount, SIGNAL( finishedCheck( bool, CheckStatus ) ), this, SLOT( processNextCheck( bool ) ) ); -- cgit v1.2.1