Merged the engine
[qtmeetings] / src / BusinessLogic / Engine.cpp
index fb0fe9f..07563eb 100644 (file)
@@ -28,7 +28,8 @@ const int IDLE_TIME_MULTIPLIER = 60000; // Multiplies milliseconds to minutes
 
 
 Engine::Engine() :
-               iClock( 0 ), iConfiguration( 0 ), iCommunication( 0 )
+               iClock( 0 ), iConfiguration( 0 ), iCommunication( 0 ),
+               iWindowManager( 0 ), iUIManager( 0 )
 {
        qDebug() << "Engine::Engine()";
        
@@ -94,6 +95,26 @@ void Engine::closeApplication()
        QTimer::singleShot( 1000, QApplication::instance(), SLOT( quit() ));
 }
 
+<<<<<<< HEAD:src/BusinessLogic/Engine.cpp
+=======
+void Engine::observedEventDetected()
+{
+       qDebug() << "Engine::observedEventDetected()";
+       if ( !iIdleTimeCounter->isActive() )
+       {
+               iWindowManager->weeklyView()->showCurrentWeek();
+       }
+       iWindowManager->showWeeklyView();
+       // prepare to restart idle counter
+       if (iIdleTimeCounter->isActive() )
+       {
+               iIdleTimeCounter->stop();
+       }
+       // (re)start idle counter
+       iIdleTimeCounter->start();
+}
+
+>>>>>>> 60b7802da53961d1998e276858bbc5e404b98a05:src/BusinessLogic/Engine.cpp
 Room* Engine::defaultRoom()
 {
        qDebug() << "Engine::defaultRoom()";
@@ -177,49 +198,31 @@ void Engine::fetchMeetings()
        fetchMeetings(iClock->datetime(), iClock->datetime().addDays( 7), room);
 }
 
-bool Engine::isMeetingInList( const QList<Meeting*> &aList, const Meeting *aMeeting )
+void Engine::fetchMeetingDetails(Meeting *aMeeting)
 {
-       qDebug()
-                       << "Engine::isMeetingInList( const QList<Meeting*> &, const Meeting * )";
-       for (int i = 0; i < aList.count(); i++)
-       {
-               if (aMeeting->equals( *(aList.at(i))) )
-               {
-                       return true;
-               }
-       }
-       return false;
+       qDebug() << "Engine::fetchMeetingDetails( Meeting* )";
+/*     iWindowManager->showProgressBar(tr("Please Wait"), true);
+       iWindowManager->updateProgressBar(tr("Fetching Meeting Details...") );
+       connect(iWindowManager, 
+       SIGNAL( progressBarCancelled() ), this, 
+       SLOT( fetchMeetingDetailsCancelled() ));
+       iCommunication->fetchMeetingDetails( *aMeeting); */
+       
+       iCommunication->fetchMeetingDetails( *aMeeting );
 }
 
-void Engine::meetingsFetched(const QList<Meeting*> &aMeetings)
+void Engine::meetingsFetched( const QList<Meeting*> &aMeetings )
 {
        qDebug() << "Engine::meetingsFetched( const QList<Meeting*> & )";
-       // check if there is any new meeting in the list came from the server -> added
-       for (int i = 0; i < aMeetings.count(); i++)
-       {
-               // if the (i)th meeting is not in the local meeting list
-               if ( !isMeetingInList(iMeetings, aMeetings.at(i) ) )
-               {
-                       // add to the local database =)
-                       Meeting* m = new Meeting( *(aMeetings.at( i )) );
-                       iMeetings.append(m);
-                       // and signal the changes
-//                     iWeeklyView->insertMeeting( m );
-               }
+       
+       for ( int i = 0; i < iMeetings.count(); ++i ) {
+               Meeting* m = iMeetings.takeAt( i );
+               delete m;
        }
-
-       // check if there is any meeting NOT in the list came from the server -> deleted
-       for (int i = 0; i < iMeetings.count(); i++)
-       {
-               // if the (i)th meeting is in the local but NOT in the server's meeting list
-               if ( !isMeetingInList(aMeetings, iMeetings.at(i) ) )
-               {
-                       Meeting* m = iMeetings.takeAt(i);
-                       // signal the changes
-//                     iWeeklyView->deleteMeeting( m );
-                       // delete the meeting from the local list
-                       delete m;
-               }
+       iMeetings.clear();
+       for ( int i = 0; i < aMeetings.count(); ++i ) {
+               Meeting* m = new Meeting( *(aMeetings.at( i )) );
+               iMeetings.append( m );
        }
 
        // refresh room status info
@@ -228,7 +231,10 @@ void Engine::meetingsFetched(const QList<Meeting*> &aMeetings)
 
 void Engine::errorHandler( int aCode, const QString &aAddInfo )
 {      
-       iWindowManager->error( ErrorMapper::codeToString( aCode, aAddInfo ) );
+       if ( iWindowManager != 0 )
+       {
+               iWindowManager->error( ErrorMapper::codeToString( aCode, aAddInfo ) );
+       }
 }
 
 void Engine::fetchMeetings( const QDateTime &aFrom, const QDateTime &aUntil, const Room *aIn )
@@ -238,13 +244,6 @@ void Engine::fetchMeetings( const QDateTime &aFrom, const QDateTime &aUntil, con
        iCommunication->fetchMeetings(aFrom, aUntil, *aIn);
 }
 
-void Engine::fetchMeetingDetails(Meeting *aMeeting)
-{
-       qDebug() << "[Engine::fetchMeetingDetails] <TODO : METHOD NOT IMPLEMENTED>";
-//     Meeting tempMeeting = aMeeting;
-//     iCommunication->fetchMeetingDetails( tempMeeting );
-}
-
 void Engine::cancelFetchMeetingDetails()
 {
        iCommunication->cancelFetchMeetingDetails();
@@ -385,3 +384,4 @@ void Engine::startIdleTimeCounter()
                iIdleTimeCounter->start();
        }
 }
+