Merge branch 'master' into dev_local
authorZoltan Papp <zoltan.papp@ixonos.com>
Wed, 27 May 2009 06:40:54 +0000 (09:40 +0300)
committerZoltan Papp <zoltan.papp@ixonos.com>
Wed, 27 May 2009 06:40:54 +0000 (09:40 +0300)
Conflicts:
src/BusinessLogic/Engine.cpp

src/BusinessLogic/Engine.cpp
src/BusinessLogic/Engine.h
src/UserInterface/WindowManager.cpp
src/UserInterface/WindowManager.h

index 3f4597a..af3e342 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)
        {
@@ -228,6 +229,12 @@ bool Engine::isMeetingInList(const QList<Meeting*> &aList, const Meeting *aMeeti
 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++)
        {
@@ -264,6 +271,11 @@ void Engine::meetingDetailsFetched(Meeting &aDetailedMeeting)
 {
        qDebug() << "Engine::meetingDetailsFetched( Meeting & )";
        iWindowManager->closeProgressBar();
+       if( iCommunicationFailed )
+       {
+               iCommunicationFailed = false;
+               iWindowManager->connectionEstablished();
+       }
        iWindowManager->showMeetingInfo( &aDetailedMeeting);
 }
 
@@ -272,8 +284,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) );
index 22a1ea2..129992e 100644 (file)
@@ -180,6 +180,8 @@ private:
        QTimer *iAutoRefresh;
 
        QList<Meeting*> iMeetings;
+       
+       bool iCommunicationFailed;
 };
 
 #endif /*ENGINE_H_*/
index feef534..3819076 100644 (file)
@@ -214,3 +214,16 @@ void WindowManager::updateProgressBar( const QString &aMessage )
        if( iProgressBar != 0 )
                iProgressBar->update( aMessage );
 }
+
+void WindowManager::connectionLost()
+{
+       //TODO: Inform all views
+       qDebug() << "WindowManager::connectionLost()";
+}
+
+void WindowManager::connectionEstablished()
+{
+       //TODO: Inform all views
+       qDebug() << "WindowManager::connectionEstablished()";
+}
+
index f284192..b62517e 100644 (file)
@@ -99,6 +99,12 @@ public:
        void insertMeeting( Meeting *aMeeting );
        
        void deleteMeeting( Meeting *aMeeting );
+       
+       //! Shows any view specific indicators for connection error
+       void connectionLost();
+       
+       //! Removes any view specific indicators for connection error
+       void connectionEstablished();
 
 signals:
        //! Request current status of the room.