Merge branch 'master' into dev_local
[qtmeetings] / src / BusinessLogic / Engine.cpp
index 009dbdd..195b0aa 100644 (file)
@@ -32,6 +32,7 @@ Engine::Engine() :
                iWindowManager( 0 ), iUIManager( 0 )
 {
        qDebug() << "Engine::Engine()";
+       iCommunicationFailed = false;
        
        initConfiguration();
        initDevice();
@@ -195,8 +196,14 @@ void Engine::fetchMeetingDetails( Meeting *aMeeting )
 void Engine::meetingsFetched( const QList<Meeting*> &aMeetings )
 {
        qDebug() << "Engine::meetingsFetched( const QList<Meeting*> & )";
-       
-       for ( int i = 0; i < iMeetings.count(); ++i ) {
+       if( iCommunicationFailed )
+       {
+               iCommunicationFailed = false;
+               iWindowManager->connectionEstablished();
+       }
+
+       for ( int i = 0; i < iMeetings.count(); ++i ) 
+       {
                Meeting* m = iMeetings.takeAt( i );
                delete m;
        }
@@ -212,6 +219,12 @@ void Engine::meetingsFetched( const QList<Meeting*> &aMeetings )
 
 void Engine::errorHandler( int aCode, const QString &aAddInfo )
 {      
+       if( aCode >= 100 && aCode < 150 )
+       {
+               iCommunicationFailed = true;
+               //TODO: Call window manager
+               //if ( iWindowManager != 0 ) iWindowManager->connectionLost();
+       }
        if ( iWindowManager != 0 )
        {
                iWindowManager->error( ErrorMapper::codeToString( aCode, aAddInfo ) );
@@ -243,6 +256,7 @@ void Engine::shownWeekChanged( QDate aFrom )
 void Engine::changeDeviceMode( bool aChange )
 {
        if ( aChange )
+       }
        {
                connect( iDevice, SIGNAL( changingModeFailed() ), this, SLOT( changeModeFailed() ) );
                iAutoRefresh->stop(); // Stop the meeting update