Changed communication to take a week and year as parameters instead of dates as it...
[qtmeetings] / src / IO / Communication / CommunicationManager.cpp
index c941c7d..2f340a0 100644 (file)
@@ -39,15 +39,31 @@ CommunicationManager::~CommunicationManager()
                delete iMeetings.takeFirst();
 }
 
-void CommunicationManager::fetchMeetings( const QDateTime &aFrom, const QDateTime &aUntil, const Room &aIn )
+void CommunicationManager::fetchMeetings( const int aWeek, const int aYear, const Room &aIn )
 {
        //prevent making multiple simultaneous user availibility requests
+       //TODO: Would be nice to queue these requests instead of just aborting 
        const RequestData* rd = findRequest( GetUserAvailability );
        if( rd )
                return;
+       
+       // Set from to beginning, 00:00 of the requested week
+       QDateTime from = QDateTime::currentDateTime();
+       from = from.addYears( aYear - from.date().year() );
+       from = from.addDays( -1*(from.date().dayOfWeek()-1) );
+       from = from.addDays( (aWeek - from.date().weekNumber())*7 );
+       QTime midnight = from.time();
+       midnight.setHMS( 0,0,0 );
+       from.setTime( midnight );
+       qDebug() << "CommunicationManager::fetchMeetings from: " << from.toString();
+       
+       QDateTime until = from.addDays(7);
+       qDebug() << "CommunicationManager::fetchMeetings until: " << until.toString();
+       
+       
        ReqMsgGetUserAvailability msg;
        msg.setTimeZone();
-       msg.setTimeWindow( aFrom, aUntil );
+       msg.setTimeWindow( from, until );
        msg.addUser( aIn.address() );
                
        int id = iFetchingCommunication->request( msg.getContentTypeForHeader(), msg.getMessage() );