Merge finished
[qtmeetings] / src / BusinessLogic / Engine.cpp
index 3f4597a..dc62dc3 100644 (file)
@@ -211,51 +211,21 @@ void Engine::fetchMeetingDetails(Meeting *aMeeting)
        iCommunication->fetchMeetingDetails( *aMeeting);
 }
 
-bool Engine::isMeetingInList(const QList<Meeting*> &aList, const 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;
-}
-
-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
-                       iWindowManager->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
-                       iWindowManager->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 );
        }
 
+       iWindowManager->refreshMeetings( iMeetings );
        // refresh room status info
        roomStatusInfoNeeded(defaultRoom() );
 }
@@ -356,3 +326,4 @@ void Engine::fetchMeetingDetailsCancelled()
        iCommunication->cancelFetchMeetingDetails();
        iWindowManager->closeProgressBar();
 }
+