From f1b975addac184ace4cc812e9589b0c4388174e9 Mon Sep 17 00:00:00 2001 From: Mikko Siren Date: Thu, 28 May 2009 16:05:18 +0300 Subject: [PATCH] Fixed the room status indicator view partly. Image is still not shown --- src/BusinessLogic/Engine.cpp | 26 ++++---------------- src/BusinessLogic/Engine.h | 2 ++ src/BusinessLogic/UIManager.cpp | 10 +++++++- .../Views/RoomStatusIndicatorWidget.cpp | 6 +++++ .../Views/RoomStatusIndicatorWidget.h | 6 +++++ 5 files changed, 28 insertions(+), 22 deletions(-) diff --git a/src/BusinessLogic/Engine.cpp b/src/BusinessLogic/Engine.cpp index fa9ccc1..d336a3a 100644 --- a/src/BusinessLogic/Engine.cpp +++ b/src/BusinessLogic/Engine.cpp @@ -16,7 +16,7 @@ #include QTime Engine::endOfTheDay = QTime( 23, 59, 0, 0); // end of the day is 11:59pm -const int IDLE_TIME_MULTIPLIER = 60000; // Multiplies milliseconds to minutes +const int IDLE_TIME_MULTIPLIER = 5000; // Multiplies milliseconds to minutes // Macro to help deleting objects. This could be global. #define QT_DELETE(X) \ @@ -164,31 +164,15 @@ void Engine::roomStatusInfoNeeded(Room *aRoom) ( ( indexOfNextMeeting != -1 ) ? iMeetings.at( indexOfNextMeeting )->startsAt().time() : Engine::endOfTheDay ); //currently works only for deafult room -// if( aRoom->equals( *(defaultRoom() ) ) ) -// iWindowManager->roomStatusChanged( aRoom, status, until ); -} - -/* -void Engine::fetchMeetings() -{ - qDebug() << "Engine::fetchMeetings for " << iCurrentRoom; - QDateTime from( iWindowManager->weeklyView()->beginnigOfShownWeek() ); - QDateTime to( from.addDays( 7 ) ); - // fetchMeetings( from, to, iWindowManager->weeklyView()->currentRoom() ); - // Signal is connected to the currentRoomChanged slot which keeps the iCurrentRoom up to date - fetchMeetings( from, to, iCurrentRoom ); + if ( aRoom->equals( *(iCurrentRoom) ) ) + { + emit roomStatusChanged( status, until ); + } } -*/ 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); */ iCommunication->fetchMeetingDetails( *aMeeting ); } diff --git a/src/BusinessLogic/Engine.h b/src/BusinessLogic/Engine.h index 3efc471..b6bd8dd 100644 --- a/src/BusinessLogic/Engine.h +++ b/src/BusinessLogic/Engine.h @@ -43,6 +43,8 @@ public: signals: + void roomStatusChanged( Room::Status aStatus, QTime aUntil ); + private slots: //! Slot. Closes the application. /*! diff --git a/src/BusinessLogic/UIManager.cpp b/src/BusinessLogic/UIManager.cpp index 253e45a..33fa209 100644 --- a/src/BusinessLogic/UIManager.cpp +++ b/src/BusinessLogic/UIManager.cpp @@ -98,7 +98,11 @@ void UIManager::createSettingsView() void UIManager::createRoomStatusIndicator() { - iRoomStatusIndicator = new RoomStatusIndicatorWidget( iEngine->defaultRoom(), Room::FreeStatus, QTime::currentTime(), iEngine->iConfiguration->displaySettings()->dateFormat() ); + iRoomStatusIndicator = new RoomStatusIndicatorWidget( iEngine->defaultRoom(), Room::FreeStatus, QTime::currentTime().addSecs(100000000), iEngine->iConfiguration->displaySettings()->timeFormat() ); + + // Connect engine signals + connect( iEngine, SIGNAL( roomStatusChanged( Room::Status, QTime ) ), iRoomStatusIndicator, SLOT( statusChanged( Room::Status, QTime ) ) ); + connect( iWeeklyView, SIGNAL( currentRoomChanged( Room * ) ), iRoomStatusIndicator, SLOT( currentRoomChanged( Room * ) ) ); } void UIManager::createPasswordDialog() @@ -252,6 +256,10 @@ void UIManager::updateTime(QDateTime aDateTime) { iWeeklyView->setCurrentDateTime( aDateTime ); } + if ( iRoomStatusIndicator != 0 ) + { + iRoomStatusIndicator->setCurrentTime( aDateTime.time() ); + } } void UIManager::passwordEntered( PasswordDialog::PasswordStatus aStatus ) diff --git a/src/UserInterface/Views/RoomStatusIndicatorWidget.cpp b/src/UserInterface/Views/RoomStatusIndicatorWidget.cpp index c903bc0..694663e 100644 --- a/src/UserInterface/Views/RoomStatusIndicatorWidget.cpp +++ b/src/UserInterface/Views/RoomStatusIndicatorWidget.cpp @@ -13,6 +13,7 @@ QTime RoomStatusIndicatorWidget::endOfTheDay = QTime( 23, 59, 0, 0 ); RoomStatusIndicatorWidget::RoomStatusIndicatorWidget( Room *aDefaultRoom, Room::Status aStatus, QTime aUntil, QString aTimeFormat, QWidget *aParent ) : ViewBase( ViewBase::ObservedView, aParent ), iTimeFormat( aTimeFormat ) { + QFont importantTextFont; //importantTextFont.setBold( true ); importantTextFont.setPointSize( 20 ); @@ -118,3 +119,8 @@ void RoomStatusIndicatorWidget::statusChanged( const Room::Status aStatus, const } setPalette( createPalette( aStatus ) ); } + +void RoomStatusIndicatorWidget::currentRoomChanged( Room *aRoom ) +{ + iDefaultRoomLabel->setText( aRoom->name() ); +} diff --git a/src/UserInterface/Views/RoomStatusIndicatorWidget.h b/src/UserInterface/Views/RoomStatusIndicatorWidget.h index c20ce45..47c73fa 100644 --- a/src/UserInterface/Views/RoomStatusIndicatorWidget.h +++ b/src/UserInterface/Views/RoomStatusIndicatorWidget.h @@ -55,6 +55,12 @@ public slots: * \param aUntil The new time until the specified status is valid. */ void statusChanged( const Room::Status aStatus, const QTime aUntil ); + //! Changed the current room. + /*! + * This slot is used to inform that current room is changed and it changes + * the room name label. + */ + void currentRoomChanged( Room *aRoom ); void viewResized(const QSize &newSize, const QSize &oldSize) { } -- 1.7.9.5