From: Jan Lapinkataja Date: Wed, 27 May 2009 13:35:42 +0000 (+0300) Subject: Auto refresh of meetings showed wrong meetings (Task id 1166) X-Git-Url: https://vcs.maemo.org/git/?p=qtmeetings;a=commitdiff_plain;h=a7e99ef966d7df8b9356eea72d5001809c827066 Auto refresh of meetings showed wrong meetings (Task id 1166) --- diff --git a/src/BusinessLogic/Engine.cpp b/src/BusinessLogic/Engine.cpp index 104bbdf..15d394d 100644 --- a/src/BusinessLogic/Engine.cpp +++ b/src/BusinessLogic/Engine.cpp @@ -47,8 +47,7 @@ Engine::Engine() : //initialize idle time counter iIdleTimeCounter = new QTimer(); iIdleTimeCounter->setSingleShot( true); - iIdleTimeCounter->setInterval(IDLE_TIME_MULTIPLIER - * iConfiguration->displaySettings()->screensaver() ); + iIdleTimeCounter->setInterval(IDLE_TIME_MULTIPLIER * iConfiguration->displaySettings()->screensaver() ); iIdleTimeCounter->start(); connect(iIdleTimeCounter, SIGNAL( timeout() ), iWindowManager, SLOT( showRoomStatus() )); @@ -103,15 +102,12 @@ 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() ) { @@ -184,13 +180,11 @@ void Engine::roomStatusInfoNeeded(Room *aRoom) int indexOfNextMeeting = indexOfMeetingAfter(aRoom, iClock->datetime() ); // if there is no meeting, then status is Free; otherwise Busy - Room::Status - status = - (indexOfCurrentMeeting == -1 ) ? Room::FreeStatus : Room::BusyStatus; + Room::Status status = (indexOfCurrentMeeting == -1 ) ? Room::FreeStatus : Room::BusyStatus; // if room is Busy, then check end time, otherwise... QTime until = (status == Room::BusyStatus ) ? iMeetings.at( indexOfCurrentMeeting )->endsAt().time() : // ...if there is meeting following on the same day then check end time, otherwise end is the of the working day - ((indexOfNextMeeting != -1 ) ? iMeetings.at( indexOfNextMeeting )->startsAt().time() : Engine::endOfTheDay ); + ( ( indexOfNextMeeting != -1 ) ? iMeetings.at( indexOfNextMeeting )->startsAt().time() : Engine::endOfTheDay ); //currently works only for deafult room if (aRoom->equals( *(defaultRoom() )) ) @@ -199,23 +193,21 @@ void Engine::roomStatusInfoNeeded(Room *aRoom) void Engine::fetchMeetings() { - Room *room = defaultRoom(); - qDebug() << "Engine::fetchMeetings for " << room->name(); - fetchMeetings(iClock->datetime(), iClock->datetime().addDays( 7), room); + qDebug() << "Engine::fetchMeetings for " << iWindowManager->weeklyView()->currentRoom(); + QDateTime from( iWindowManager->weeklyView()->beginnigOfShownWeek() ); + QDateTime to( from.addDays( 7 ) ); + fetchMeetings( from, to, iWindowManager->weeklyView()->currentRoom() ); } -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 &aMeetings ) { qDebug() << "Engine::meetingsFetched( const QList & )"; @@ -226,68 +218,23 @@ void Engine::meetingsFetched( const QList &aMeetings ) } iMeetings.clear(); for ( int i = 0; i < aMeetings.count(); ++i ) { - Meeting* m = new Meeting( *(aMeetings.at( i )) ); + Meeting* m = new Meeting( *( aMeetings.at( i ) ) ); iMeetings.append( m ); -======= -bool Engine::isMeetingInList(const QList &aList, const Meeting *aMeeting) -{ - qDebug() - << "Engine::isMeetingInList( const QList &, 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 &aMeetings) -{ - qDebug() << "Engine::meetingsFetched( const QList & )"; - // 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(); - iWindowManager->showMeetingInfo( &aDetailedMeeting); + iWindowManager->showMeetingInfo( &aDetailedMeeting ); } -void Engine::errorHandler(int aCode, const QString &aAddInfo) +void Engine::errorHandler( int aCode, const QString &aAddInfo ) { qDebug() << "Engine::ErrorHandler, aCode: " << aCode; // inform UI about the problem @@ -296,52 +243,47 @@ void Engine::errorHandler(int aCode, const QString &aAddInfo) qDebug() << "CommunicationManager signaled an error:" << aCode; iWindowManager->closeProgressBar(); } - iWindowManager->error(ErrorMapper::codeToString(aCode, aAddInfo) ); + iWindowManager->error( ErrorMapper::codeToString(aCode, aAddInfo ) ); } -void Engine::currentRoomChanged(Room *aCurrentRoom) +void Engine::currentRoomChanged( Room *aCurrentRoom ) { qDebug() << "Engine::currentRoomChanged to " << aCurrentRoom->name(); QDateTime from(iWindowManager->weeklyView()->beginnigOfShownWeek() ); - QDateTime to(from.addDays( 8) ); - fetchMeetings(from, to, aCurrentRoom); + QDateTime to( from.addDays( 7 ) ); + fetchMeetings( from, to, aCurrentRoom ); } -void Engine::fetchMeetings(const QDateTime &aFrom, const QDateTime &aUntil, const Room *aIn) +void Engine::fetchMeetings( const QDateTime &aFrom, const QDateTime &aUntil, const Room *aIn ) { - qDebug() - << "Engine::fetchMeetings( const QDateTime &, const QDateTime &, const Room * )"; - iCommunication->fetchMeetings(aFrom, aUntil, *aIn); + qDebug() << "Engine::fetchMeetings( const QDateTime &, const QDateTime &, const Room * )"; + iCommunication->fetchMeetings( aFrom, aUntil, *aIn ); } -void Engine::shownWeekChanged(QDate aFrom) +void Engine::shownWeekChanged( QDate aFrom ) { qDebug() << "Engine::shownWeekChanged( QDate )"; - QDateTime from(aFrom); - QDateTime to(aFrom.addDays( 7), QTime( 23, 59) ); - qDebug() << "Engine::shownWeekChanged " << aFrom.toString("d.m. h:mm") - << " to " << to.toString("d.m. h:mm"); - fetchMeetings(from, to, iWindowManager->weeklyView()->currentRoom() ); + QDateTime from( aFrom ); + QDateTime to( aFrom.addDays( 7 ), QTime( 23, 59 ) ); + qDebug() << "Engine::shownWeekChanged " << aFrom.toString( "d.m. h:mm" ) << " to " << to.toString( "d.m. h:mm" ); + fetchMeetings( from, to, iWindowManager->weeklyView()->currentRoom() ); } -void Engine::changeModeOrdered(DeviceManager::OperationMode aMode) +void Engine::changeModeOrdered( DeviceManager::OperationMode aMode ) { qDebug() << "Engine::changeModeOrdered( DeviceManager::OperationMode )"; - QString message = tr( "You are about to change operation mode to %1." ) - .arg(iDevice->operationModeToString(aMode) ); + QString message = tr( "You are about to change operation mode to %1." ).arg( iDevice->operationModeToString(aMode ) ); - iWindowManager->showPasswordDialog(iConfiguration->adminPassword(), message); + iWindowManager->showPasswordDialog( iConfiguration->adminPassword(), message ); } -void Engine::passwordEntered(PasswordDialog::PasswordStatus aPasswordStatus) +void Engine::passwordEntered( PasswordDialog::PasswordStatus aPasswordStatus ) { qDebug() << "Engine::passwordEntered( PasswordDialog::PasswordStatus )"; iWindowManager->closePasswordDialog(); - switch (aPasswordStatus) - { + switch ( aPasswordStatus ) { case PasswordDialog::Correct: - { iAutoRefresh->stop(); //we stop the metting updating iWindowManager->showProgressBar( "Changing current operation mode." ); connect(iDevice, SIGNAL( changingMode( const QString & ) ), iWindowManager, SLOT( updateProgressBar( const QString & ) )); @@ -350,17 +292,12 @@ void Engine::passwordEntered(PasswordDialog::PasswordStatus aPasswordStatus) connect( iDevice, SIGNAL( changeModeFailed() ), this, SLOT( changeModeFailed() ) ); iDevice->changeMode( true); break; - } case PasswordDialog::Incorrect: - { - iWindowManager->error(tr("Incorrect password.") ); - iDevice->changeMode( false); + iWindowManager->error( tr( "Incorrect password." ) ); + iDevice->changeMode( false ); break; - } default: //case PasswordDialog::Canceled - { - iDevice->changeMode( false); - } + iDevice->changeMode( false ); } } diff --git a/src/IO/DeviceControl/DeviceManager.cpp b/src/IO/DeviceControl/DeviceManager.cpp index 22707d2..3db5db7 100644 --- a/src/IO/DeviceControl/DeviceManager.cpp +++ b/src/IO/DeviceControl/DeviceManager.cpp @@ -191,4 +191,4 @@ void DeviceManager::modeChanged() //in case device restarting fails we just continue handleKeyPresses( true ); -} \ No newline at end of file +} diff --git a/src/UserInterface/Components/ScheduleWidget.cpp b/src/UserInterface/Components/ScheduleWidget.cpp index a1e7d2d..0d68da6 100644 --- a/src/UserInterface/Components/ScheduleWidget.cpp +++ b/src/UserInterface/Components/ScheduleWidget.cpp @@ -168,6 +168,7 @@ void ScheduleTableWidget::populateMeetingList() { Meeting* meeting = schedule->iMeetings[i]; int day = meeting->startsAt().date().dayOfWeek() - 1; + if (( meeting->startsAt().date().weekNumber() == schedule->iShownDate.weekNumber() ) && ( day < schedule->weekLengthAsDays() ) && ( meeting->endsAt().time() > QTime( schedule->iStartHour, 0 ) ) && @@ -348,11 +349,6 @@ ScheduleWidget::~ScheduleWidget() delete iScheduleTable; } -int ScheduleWidget::shownWeek() -{ - return iShownDate.weekNumber(); -} - QDate ScheduleWidget::beginningOfShownWeek() { return iShownDate.addDays( -1 * iShownDate.dayOfWeek() + 1 ); diff --git a/src/UserInterface/Components/ScheduleWidget.h b/src/UserInterface/Components/ScheduleWidget.h index 6531329..47b8e3f 100644 --- a/src/UserInterface/Components/ScheduleWidget.h +++ b/src/UserInterface/Components/ScheduleWidget.h @@ -146,13 +146,6 @@ public: */ int currentWeek(); - //! Gets number of shown week. - /*! - * Gets number of shown week. - * \return The week which is currently shown. - */ - int shownWeek(); - //! Gets the first day of shown week. /*! * Gets the first day of shown week.