Merge branch 'master' of https://git.maemo.org/projects/qtmeetings
authorJan Lapinkataja <jan.lapinkataja@ixonos.com>
Wed, 27 May 2009 10:26:33 +0000 (13:26 +0300)
committerJan Lapinkataja <jan.lapinkataja@ixonos.com>
Wed, 27 May 2009 10:26:33 +0000 (13:26 +0300)
Conflicts:
src/BusinessLogic/Engine.cpp
src/UserInterface/Views/WeeklyViewWidget.h

1  2 
src/BusinessLogic/Engine.cpp
src/BusinessLogic/Engine.h
src/UserInterface/Views/WeeklyViewWidget.cpp
src/UserInterface/Views/WeeklyViewWidget.h
src/UserInterface/WindowManager.cpp

@@@ -108,9 -103,13 +103,17 @@@ void Engine::closeApplication(
  void Engine::observedEventDetected()
  {
        qDebug() << "Engine::observedEventDetected()";
++<<<<<<< HEAD:src/BusinessLogic/Engine.cpp
 +      iWindowManager->refreshMeetings( iMeetings );
++=======
+       if ( !iIdleTimeCounter->isActive() )
+       {
+               iWindowManager->weeklyView()->showCurrentWeek();
+       }
+       iWindowManager->showWeeklyView();
++>>>>>>> 56f763c68a2ff56d344ef150b7378ca417d08b36:src/BusinessLogic/Engine.cpp
        // prepare to restart idle counter
-       if ( iIdleTimeCounter->isActive() )
+       if (iIdleTimeCounter->isActive() )
        {
                iIdleTimeCounter->stop();
        }
@@@ -201,42 -197,70 +201,86 @@@ void Engine::fetchMeetings(
  {
        Room *room = defaultRoom();
        qDebug() << "Engine::fetchMeetings for " << room->name();
-       fetchMeetings( iClock->datetime(), iClock->datetime().addDays( 7 ), room );
+       fetchMeetings(iClock->datetime(), iClock->datetime().addDays( 7), room);
  }
  
- void Engine::fetchMeetingDetails( Meeting *aMeeting )
+ void Engine::fetchMeetingDetails(Meeting *aMeeting)
  {
        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 );
+       iWindowManager->showProgressBar(tr("Please Wait"), true);
+       iWindowManager->updateProgressBar(tr("Fetching Meeting Details...") );
+       connect(iWindowManager, 
+       SIGNAL( progressBarCancelled() ), this, 
+       SLOT( fetchMeetingDetailsCancelled() ));
+       iCommunication->fetchMeetingDetails( *aMeeting);
  }
  
++<<<<<<< HEAD:src/BusinessLogic/Engine.cpp
 +void Engine::meetingsFetched( const QList<Meeting*> &aMeetings )
 +{
 +      qDebug() << "Engine::meetingsFetched( const QList<Meeting*> & )";
 +      
 +      for ( int i = 0; i < iMeetings.count(); ++i ) {
 +              Meeting* m = iMeetings.takeAt( i );
 +              delete m;
 +      }
 +      iMeetings.clear();
 +      for ( int i = 0; i < aMeetings.count(); ++i ) {
 +              Meeting* m = new Meeting( *(aMeetings.at( i )) );
 +              iMeetings.append( m );
++=======
+ 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)
+ {
+       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);
+               }
+       }
+       // 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;
+               }
++>>>>>>> 56f763c68a2ff56d344ef150b7378ca417d08b36:src/BusinessLogic/Engine.cpp
        }
  
 +      iWindowManager->refreshMeetings( iMeetings );
        // refresh room status info
-       roomStatusInfoNeeded( defaultRoom() );
+       roomStatusInfoNeeded(defaultRoom() );
  }
  
- void Engine::meetingDetailsFetched( Meeting &aDetailedMeeting )
+ void Engine::meetingDetailsFetched(Meeting &aDetailedMeeting)
  {
        qDebug() << "Engine::meetingDetailsFetched( Meeting & )";
        iWindowManager->closeProgressBar();
Simple merge
@@@ -175,13 -181,32 +175,23 @@@ void WeeklyViewWidget::setCurrentDateTi
        iSchedule->setCurrentDateTime( aCurrentDateTime );\r
  }\r
  \r
 -void WeeklyViewWidget::insertMeeting( Meeting *aMeeting )\r
 -{\r
 -      iSchedule->insertMeeting( aMeeting );\r
 -}\r
 -\r
 -void WeeklyViewWidget::deleteMeeting( Meeting *aMeeting )\r
 -{\r
 -      iSchedule->removeMeeting( aMeeting );\r
 -}\r
 -\r
 -void WeeklyViewWidget::updateMeeting( Meeting *aMeeting )\r
 +QDate WeeklyViewWidget::beginnigOfShownWeek()\r
  {\r
 -      iSchedule->updateMeeting( aMeeting );\r
 +      return iSchedule->beginningOfShownWeek();\r
  }\r
  \r
 -QDate WeeklyViewWidget::beginnigOfShownWeek()\r
 +void WeeklyViewWidget::refreshMeetings( const QList<Meeting*> &aMeetings )\r
  {\r
 -      return iSchedule->beginningOfShownWeek();\r
 +      qDebug() << "WeeklyViewWidget::refreshMeetings()";\r
 +      iSchedule->refreshMeetings( aMeetings );\r
  }\r
\r
+ void WeeklyViewWidget::showCurrentWeek()\r
+ {\r
+       iSchedule->showCurrentWeek();\r
+ }\r
\r
+ void WeeklyViewWidget::setDefaultRoom()\r
+ {\r
+       iRoomsCombo->setCurrentRoom( iConfiguration->defaultRoom() );\r
+ }\r
@@@ -48,14 -54,11 +48,17 @@@ public
         * \return First day of week.\r
         */\r
        QDate beginnigOfShownWeek();\r
 +      //! Sends the refresh command to schedule widget.\r
 +      /*!\r
 +       * Sends the refresh command to schedule widget.\r
 +       * \param aMeetings The list of meetings.\r
 +       */\r
 +      void refreshMeetings( const QList<Meeting*> &aMeetings );\r
        \r
\r
+       void showCurrentWeek();\r
+       \r
+       void setDefaultRoom();\r
+       \r
  signals:\r
        //! Signals change of the meeting room.\r
        /*!\r
Simple merge