Merge branch 'master' into dev_local
[qtmeetings] / src / BusinessLogic / Engine.cpp
index 25c3048..911b49b 100644 (file)
@@ -22,6 +22,7 @@ Engine::Engine() :
                iClock( 0 ), iConfiguration( Configuration::instance() ), iCommunication( 0 )
 {
        qDebug() << "Engine::Engine()";
+       iCommunicationFailed = false;
        // if reading of configuration fails, signal that initialization failed
        if ( iConfiguration == 0 )
        {
@@ -233,6 +234,12 @@ bool Engine::isMeetingInList( const QList<Meeting*> &aList, const Meeting *aMeet
 void Engine::meetingsFetched( const QList<Meeting*> &aMeetings )
 {
        qDebug() << "Engine::meetingsFetched( const QList<Meeting*> & )";
+       if( iCommunicationFailed )
+       {
+               iCommunicationFailed = false;
+               //iWindowManager->connectionEstablished();
+       }
+
        // check if there is any new meeting in the list came from the server -> added
        for ( int i = 0; i < aMeetings.count(); i++ )
        {
@@ -269,6 +276,11 @@ void Engine::meetingDetailsFetched( Meeting &aDetailedMeeting )
 {
        qDebug() << "Engine::meetingDetailsFetched( Meeting & )";
        iWindowManager->closeProgressBar();
+       if( iCommunicationFailed )
+       {
+               iCommunicationFailed = false;
+               iWindowManager->connectionEstablished();
+       }
        iWindowManager->showMeetingInfo( &aDetailedMeeting );
 }
 
@@ -277,8 +289,16 @@ void Engine::errorHandler( int aCode, const QString &aAddInfo )
        qDebug() << "Engine::ErrorHandler, aCode: " << aCode;
        // inform UI about the problem
        if( aCode >= 100 && aCode <= 150 ) { //communication errors
+       {
                //we don't want these to close operation changing
                qDebug() << "CommunicationManager signaled an error:" << aCode;
+               if( !iCommunicationFailed )
+               {
+                       // Only inform window manager when first error appears
+                       iCommunicationFailed = true;
+                       //iWindowManager->connectionLost();
+               }
+       }
                iWindowManager->closeProgressBar();
        }
        iWindowManager->error( ErrorMapper::codeToString( aCode, aAddInfo ) );