Merged
authorMikko Siren <mikko.siren@ixonos.com>
Tue, 26 May 2009 07:54:06 +0000 (10:54 +0300)
committerMikko Siren <mikko.siren@ixonos.com>
Tue, 26 May 2009 07:54:06 +0000 (10:54 +0300)
1  2 
QtMeetings.pro
src/BusinessLogic/Engine.cpp
src/BusinessLogic/Engine.h
src/UserInterface/WindowManager.cpp
src/UserInterface/WindowManager.h

diff --cc QtMeetings.pro
@@@ -43,9 -44,9 +44,10 @@@ HEADERS += src/IO/DeviceControl/Operati
      src/UserInterface/Views/WeeklyViewWidget.h \
      src/UserInterface/Views/MeetingInfoDialog.h \
      src/UserInterface/Views/SettingsView.h \
 -    src/UserInterface/WindowManager.h
 +    src/UserInterface/WindowManager.h \
 +    src/UserInterface/Views/ViewBase.h
- SOURCES += src/UserInterface/Utils/ProgressBar.cpp \
+ SOURCES += src/IO/DeviceControl/OperationModeToggler.cpp \
+     src/UserInterface/Utils/ProgressBar.cpp \
      src/Domain/Room.cpp \
      src/Domain/Meeting.cpp \
      src/Domain/Configuration/ConnectionSettings.cpp \
@@@ -258,9 -276,10 +265,10 @@@ void Engine::errorHandler( int aCode, c
  {
        qDebug() << "Engine::ErrorHandler, aCode: " << aCode;
        // inform UI about the problem
-       if( aCode >= 100 && aCode <= 110 )
+       if( aCode >= 100 && aCode <= 150 )
                qDebug() << "CommunicationManager signaled an error:" << aCode;
- //    iWindowManager->error( ErrorMapper::codeToString( aCode, aAddInfo ) );
 -      iWindowManager->closeProgressBar();
 -      iWindowManager->error( ErrorMapper::codeToString( aCode, aAddInfo ) );
++      // iWindowManager->closeProgressBar();
++      // iWindowManager->error( ErrorMapper::codeToString( aCode, aAddInfo ) );
  }
  
  void Engine::currentRoomChanged( Room *aCurrentRoom )
@@@ -305,10 -323,11 +313,14 @@@ void Engine::passwordEntered( PasswordD
        {
                case PasswordDialog::Correct :
                {
 -                      iWindowManager->showProgressBar( "Changing current operation mode.", true );
 -                      connect( iWindowManager, SIGNAL( progressBarCancelled() ), this, SLOT( progressBarCancelled() ) );
 -                      connect( iDevice, SIGNAL( changingMode( const QString & ) ),
 -                                      iWindowManager, SLOT( updateProgressBar( const QString & ) ) );
 +//                    iWindowManager->showProgressBar( "Changing current operation mode." );
 +//                    connect( iWindowManager, SIGNAL( progressBarCancelled() ), this, SLOT( progressBarCancelled() ) );
 +//                    connect( iDevice, SIGNAL( changingMode( const QString & ) ),
 +//                                    iWindowManager, SLOT( updateProgressBar( const QString & ) ) );
++                      // TODO : Connect the signal directory to progress bar dialog which should be instance in engine
++//                    connect( iDevice, SIGNAL( changingMode( const QString & ) ),
++//                                    iWindowManager, SLOT( updateProgressBar( const QString & ) ) );
+                       connect( iDevice, SIGNAL( changingModeFailed() ), this, SLOT( progressBarCancelled() ) );
                        iDevice->changeMode( true );
                        break;
                }
@@@ -333,138 -352,8 +345,144 @@@ void Engine::progressBarCancelled(
        iDevice->changeMode( false );
  }
  
 +void Engine::initUserInterface()
 +{
 +      qDebug() << "[Engine::initUserInterface] <Invoked>";
 +      // Initialize the window manager and connect what ever signals can be connected
 +      iWindowManager = new WindowManager;
 +      connect( iWindowManager, SIGNAL( eventDetected() ), this, SLOT( handleViewEvent() ) );
 +      connect( iWindowManager, SIGNAL( previousViewRestored() ), this, SLOT( previousViewRestored() ) );
 +      connect( iWindowManager, SIGNAL( dialogActivated() ), this, SLOT( dialogActivated() ) );
 +      connect( iWindowManager, SIGNAL( dialogDeactivated() ), this, SLOT( dialogDeactivated() ) );
 +      
 +      // Initialize the weekly view and connect what ever signals can be connected at this stage
 +      iWeeklyView = new WeeklyViewWidget(QDateTime::currentDateTime(), iConfiguration);
 +      connect( iWeeklyView, SIGNAL( settingsButtonClicked() ), this, SLOT( settingsViewRequested() ) );
 +      connect( iWeeklyView, SIGNAL( currentRoomChange( Room * ) ) , this, SLOT( currentRoomChange( Room * ) ) );
 +      connect( iWeeklyView, SIGNAL( meetingActivated( Meeting * ) ), this, SLOT( fetchMeetingDetails( Meeting * ) ) ) ;
 +      connect( iWeeklyView, SIGNAL( shownWeekChanged( QDate ) ) , this, SLOT( shownWeekChanged( QDate ) ) );
 +      
 +      // Initialize the settings view
 +      iSettingsView = new SettingsView;
 +      connect( iSettingsView, SIGNAL( okClicked() ) , this, SLOT( settingsOkClicked() ) );
 +      
 +      // Initialize the room status indicator
 +      iRoomStatusIndicator = new RoomStatusIndicatorWidget( defaultRoom(), Room::FreeStatus, QTime::currentTime(), iConfiguration->displaySettings()->dateFormat() );
 +      
 +      // Create password dialog
 +      iPasswordDialog = new PasswordDialog( iConfiguration->adminPassword(), tr("No Text Set"), tr("Title") );
 +      connect( iPasswordDialog, SIGNAL( passwordEntered( PasswordDialog::PasswordStatus ) ), this, SLOT( passwordEntered( PasswordDialog::PasswordStatus ) ) );
 +      
 +      // Show the UI
 +      iWindowManager->setWindowState( Qt::WindowMaximized );
 +      iWindowManager->show();
 +      iWindowManager->showView( iWeeklyView );
 +      
 +      qDebug() << "[Engine::initUserInterface] <Finished>";
 +}
 +
 +void Engine::settingsViewRequested()
 +{
 +      if ( iSettingsView != 0 )
 +      {
 +              iWindowManager->showView( static_cast<ViewBase *>( iSettingsView ) );
 +              // Room status indicator will not be shown when settings view is active
 +              iIdleTimeCounter->stop();
 +      }
 +}
 +
 +void Engine::handleViewEvent()
 +{
 +      qDebug() << "[Engine::handleViewEvent] <Invoked>";
 +      if ( iIdleTimeCounter != 0 )
 +      {
 +              // Restart the idle time counter when view event is received
 +              iIdleTimeCounter->stop();
 +              iIdleTimeCounter->start();
 +      }
 +}
 +
 +void Engine::initConfiguration()
 +{
 +      iConfiguration = Configuration::instance();
 +      if ( iConfiguration == 0 )
 +      {
 +              QTimer::singleShot( 0, this, SLOT( closeApplication() ) );
 +      }
 +}
 +
 +void Engine::idleTimerTimeout()
 +{
 +      if ( iRoomStatusIndicator != 0 )
 +      {
 +              iWindowManager->showView( static_cast<ViewBase *>( iRoomStatusIndicator ) );
 +      }
 +}
 +
 +void Engine::settingsOkClicked()
 +{
 +      if ( iWeeklyView != 0 )
 +      {
 +              iWindowManager->showView( iWeeklyView );
 +              // Start the idle time counter when we return to the main view
 +              iIdleTimeCounter->start();
 +      }
 +}
 +
 +void Engine::connectSignals()
 +{
 +      // Handle weekly view signal connections
 +      connect( iClock, SIGNAL( tick( QDateTime ) ), iWeeklyView, SLOT( setCurrentDateTime( QDateTime ) ) );
 +}
 +
 +void Engine::initCommunication()
 +{
 +      // initialize communication
 +      iCommunication = new CommunicationManager( *(iConfiguration->connectionSettings()) );
 +      connect( iCommunication, SIGNAL( error( int, CommunicationManager::CommunicationType  ) ),
 +                      this, SLOT( errorHandler( int ) ) );
 +      connect( iCommunication, SIGNAL( meetingsFetched( const QList<Meeting*>& ) ),
 +                      this, SLOT( meetingsFetched( const QList<Meeting*>& ) ) );
 +      connect( iCommunication, SIGNAL( meetingDetailsFetched( Meeting& ) ),
 +                      this, SLOT( meetingDetailsFetched( Meeting& ) ) );
 +}
 +
 +void Engine::initDevice()
 +{
 +      // create device manager
 +      iDevice = new DeviceManager( iConfiguration->startupSettings() );
 +      connect( iDevice, SIGNAL( error( int, const QString& ) ), this, SLOT( errorHandler( int, const QString& ) ) );  
 +      connect( iDevice, SIGNAL( changeModeOrdered( DeviceManager::OperationMode ) ), 
 +                      this, SLOT( changeModeOrdered( DeviceManager::OperationMode ) ) );
 +      iDevice->initDeviceManager();
 +}
 +
 +void Engine::dialogActivated()
 +{
 +      if ( iIdleTimeCounter != 0 )
 +      {
 +              iIdleTimeCounter->stop();
 +      }
 +}
 +
 +void Engine::dialogDeactivated()
 +{
 +      if ( iIdleTimeCounter != 0 )
 +      {
 +              iIdleTimeCounter->start();
 +      }
 +}
 +
 +void Engine::previousViewRestored()
 +{
 +      if ( iIdleTimeCounter != 0 )
 +      {
 +              iIdleTimeCounter->start();
 +      }
- }
++}
++
+ void Engine::fetchMeetingDetailsCancelled()
+ {
+       iCommunication->cancelFetchMeetingDetails();
+       iWindowManager->closeProgressBar();
+ }
@@@ -13,12 -11,7 +13,11 @@@ class Clock
  class Configuration;
  class CommunicationManager;
  class Meeting;
- // class DeviceManager;
 -class DeviceManager;
 +class WeeklyViewWidget;
 +class SettingsView;
 +class RoomStatusIndicatorWidget;
 +class PasswordDialog;
 +class MeetingInfoDialog;
  
  //! BusinessLogic class. Contains all the business logic of the application.
  /*!
@@@ -127,30 -125,12 +126,35 @@@ private slots
         * Slot. Receives the cancel event of the progress bar.
         */
        void progressBarCancelled();
+       //! Slot for receiving the cancel event of the progress bar.
+       /*!
+        *  Receives the cancel event of the progress bar when meeting details requested.
+        */
+       void fetchMeetingDetailsCancelled();
        
 +      void handleViewEvent();
 +      void previousViewRestored();
 +      void settingsViewRequested();
 +      
 +      void idleTimerTimeout();
 +      
 +      void settingsOkClicked();
 +      
 +      //! Slot for dialog activation signal.
 +      /*!
 +       * This slot is used to inform that dialog is activated. It stops
 +       * the idle time counter so screensaver is not activated while the
 +       * dialog is displayed.
 +       */
 +      void dialogActivated();
 +      //! Slot for dialog deactivation signal.
 +      /*!
 +       * This slot is used to inform that dialog is deactivated. It restarts
 +       * the idle time counter so that the screensaver is being activated again
 +       * as needed.
 +       */
 +      void dialogDeactivated();
 +      
  private:
        //! Provides the index of the Meeting instance which is at the specified time.
        /*!
  
  #include <QtDebug>
  
- const int IDLE_TIME_MULTIPLIER = 60000; // Multiplies milliseconds to minutes
 -WindowManager::WindowManager( Configuration *aConfiguration ) :
 -              QObject(),
 +WindowManager::WindowManager( QWidget *aParent ) :
 +              QWidget( aParent ),
                iApplicationName( tr( "Qt Meetings" ) ),
 -              iFullScreen( false ),
 -              iConfiguration( aConfiguration ),
 -              iWeeklyView( 0 ),
 -              iRoomStatusView( 0 ),
 -              iMeetingInfo( 0 ),
 -              iProgressBar( 0 ),
 -              iPasswordDialog( 0 )
 +              iCurrentView( 0 )
  {
 -      iWeeklyView = new WeeklyViewWidget( QDateTime::currentDateTime(), aConfiguration );
 -      iWeeklyView->setWindowTitle( iApplicationName );
 -      connect( iWeeklyView, SIGNAL( observedEventDetected() ), this, SIGNAL( observedEventDetected() ) );
 -      connect( iWeeklyView, SIGNAL( meetingActivated( Meeting * ) ), this, SIGNAL( meetingActivated( Meeting * ) ) );
 -      connect( iWeeklyView, SIGNAL( currentRoomChanged( Room * ) ), this, SIGNAL( currentRoomChanged( Room * ) ) );
 -      connect( iWeeklyView, SIGNAL( shownWeekChanged( QDate ) ), this, SIGNAL( shownWeekChanged( QDate ) ) );
 -      
 -      showWeeklyView();
 -      
 +      this->setWindowTitle( iApplicationName );
  }
  
  WindowManager::~WindowManager()
@@@ -87,24 -102,114 +85,31 @@@ void WindowManager::viewEventDetected(
                }
        }
  
 -      // closing/deleting meeting info dialog
 -      if ( iMeetingInfo != 0 )
 -      {
 -              iMeetingInfo->hide();
 -      }
  }
  
 -void WindowManager::showWeeklyView()
 +bool WindowManager::event(QEvent *event)
  {
 -      qDebug() << "WindowManager::showWeeklyView";
 -      if ( iRoomStatusView != 0 && iRoomStatusView->isVisible() )
 +      if ( event->type() == QEvent::Resize )
        {
 -              iRoomStatusView->hide();
 +              if ( iCurrentView != 0 )
 +              {
 +                      iCurrentView->setFixedSize( this->size() );
 +                      emit viewResized( this->size() );
 +              }
        }
 -
 -      iWeeklyView->show();
 -}
 -
 -void WindowManager::fullScreen()
 -{
 -      if ( iRoomStatusView != 0 )
 -              iRoomStatusView->setWindowState( Qt::WindowFullScreen );
 -      if ( iWeeklyView != 0 )
 -              iWeeklyView->setWindowState( Qt::WindowFullScreen );
 -      iFullScreen = true;
 -}
 -
 -void WindowManager::insertMeeting( Meeting *aMeeting )
 -{
 -      iWeeklyView->insertMeeting( aMeeting );
 -}
 -
 -void WindowManager::deleteMeeting( Meeting *aMeeting )
 -{
 -      iWeeklyView->deleteMeeting( aMeeting );
 -}
 -
 -void WindowManager::showMeetingInfo( Meeting *aMeeting )
 -{
 -      iMeetingInfo = new MeetingInfoDialog( aMeeting );
 -      // Display modal dialog
 -      iMeetingInfo->exec();
 -
 -      delete iMeetingInfo;
 -      iMeetingInfo = 0;
 -}
 -
 -void WindowManager::showSettingsView()
 -{
 -      // TODO : give the Torspo for the person who was responsible to write this method
 -}
 -
 -WeeklyViewWidget * WindowManager::weeklyView()
 -{
 -      return iWeeklyView;
 +      
 +      return QWidget::event( event );
  }
  
+ void WindowManager::error( const QString &aErrorMessage )
+ {
+       qDebug() << "WindowManager::showErrorPopup";
+       PopUpMessageBox::error( 0, aErrorMessage );
+ }
 -void WindowManager::showPasswordDialog( QByteArray aAdminPassword, const QString &aMessage )
 -{
 -      iPasswordDialog = new PasswordDialog( aAdminPassword, aMessage );
 -      connect( iPasswordDialog, SIGNAL( passwordEntered( PasswordDialog::PasswordStatus ) ),
 -                      this, SIGNAL( passwordEntered( PasswordDialog::PasswordStatus ) ) );
 -      iPasswordDialog->show();
 -      
 -      //TODO connect connect( iWeeklyView, SIGNAL( observedEventDetected() ), this, SIGNAL( observedEventDetected() ) );
 -}
 -
 -void WindowManager::closePasswordDialog()
 -{
 -      iPasswordDialog->close();
 -      delete iPasswordDialog;
 -      iPasswordDialog = 0;
 -}
 -
 -void WindowManager::showProgressBar( const QString &aText, bool aCancellable )
 -{
 -      qDebug() << "WindowManager::showProgressBar( const QString & )";
 -      if( iProgressBar == 0 ) {
 -              iProgressBar = new ProgressBar( aText, aCancellable );
 -              iProgressBar->setFixedSize( 600, 125 );
 -              iProgressBar->show();
 -              connect( iProgressBar, SIGNAL( cancel() ), this, SIGNAL( progressBarCancelled() ) );
 -      }
 -      
 -      //TODO connect connect( iWeeklyView, SIGNAL( observedEventDetected() ), this, SIGNAL( observedEventDetected() ) );
 -}
 -
 -void WindowManager::closeProgressBar()
 -{
 -      qDebug() << "WindowManager::closeProgressBar()";
 -      if( iProgressBar )
 -      {
 -              iProgressBar->close();
 -              delete iProgressBar;
 -              iProgressBar = 0;
 -      }
 -}
 -
 -void WindowManager::updateProgressBar( const QString &aMessage )
 +void WindowManager::setFullscreen()
  {
 -      qDebug() << "WindowManager::updateProgressBar( const QString & )";
 -      if( iProgressBar != 0 )
 -              iProgressBar->update( aMessage );
 +      this->setWindowState( Qt::WindowFullScreen );
 +      // Resize event handles the rest.
  }
++<<<<<<< HEAD:src/UserInterface/WindowManager.h
 +#ifndef WINDOWMANAGER_H_\r
 +#define WINDOWMANAGER_H_\r
 +\r
 +#include <QWidget>\r
 +#include <QStack>\r
 +\r
 +// Forward declarations\r
 +class ViewBase;\r
 +class QEvent;\r
 +class QSize;\r
 +class QDialog;\r
 +\r
 +//! UserInterface class. Manages displayed views.\r
 +/*!\r
 + * UserInterface class. WindowManager class is responsible for displaying views that inherit the\r
 + * ViewBase class. It also handles dialog showing. Depending on the views type the WindowManager\r
 + * can track the views events and restore previous view if the current on is ObservedView. This\r
 + * is a handy mechanism for screensaver etc.\r
 + */\r
 +class WindowManager : public QWidget\r
 +{\r
 +      Q_OBJECT\r
 +\r
 +public:\r
 +      //! Constructor.\r
 +      /*!\r
 +       * Constructor of WindowManager.\r
 +       */\r
 +      WindowManager( QWidget *aParent = 0 );\r
 +      //! Destructor.\r
 +      virtual ~WindowManager();\r
 +      \r
 +      virtual bool event(QEvent *event);\r
 +\r
 +signals:\r
 +      //! Request current status of the room.\r
 +      /*!\r
 +       * Signal is emitted when there is need to check current status of room aRoom.\r
 +       * \param aRoom Meetingroom which status is requested.\r
 +       */\r
 +      void eventDetected();\r
 +      \r
 +      //! The view size is changed.\r
 +      /*!\r
 +       * This signal is emitted when the window managers view changes,\r
 +       * i.e. it received resized QEvent.\r
 +       * \param The new view size.\r
 +       */\r
 +      void viewResized(const QSize &);\r
 +      \r
 +      //! Previous view is restored.\r
 +      /*!\r
 +       * This signal is emitted when previously stored view is\r
 +       * restored. This happens when view with type ViewMode::ObservedView\r
 +       * is shown and it receives an event that initiates the view\r
 +       * restoring chain.\r
 +       */\r
 +      void previousViewRestored();\r
 +      \r
 +      void dialogActivated();\r
 +      void dialogDeactivated();\r
 +\r
 +public slots:\r
 +      //! Shows the view.\r
 +      /*!\r
 +       * Show view that inherits ViewBase class. If the views parent is not\r
 +       * the WindowManager it will changed within this method. Depeding on the\r
 +       * views type the currently active view might be stored and restored\r
 +       * when specific event occurs in the view to be displayed.\r
 +       */\r
 +      void showView( ViewBase *view );\r
 +      \r
 +      //! Shows modal dialog.\r
 +      /*!\r
 +       * Shows modal dialog. Emits dialogActivated() signal prior calling\r
 +       * QDialog's exec() method and emits dialogDeactivated signal when\r
 +       * the exec() method returns.\r
 +       */\r
 +      void showDialog( QDialog *dialog );\r
 +      \r
 +      //! View event is detected.\r
 +      /*!\r
 +       * WindowManager connects this slot to ViewBase classes eventDetected()\r
 +       * signal and either emits eventDetected() signal if the current views\r
 +       * type is ViewMode::NormalView or restores possible previous view\r
 +       * if the current views type is ViewMode::ObservedView.\r
 +       */\r
 +      void viewEventDetected();\r
 +      \r
 +      void setFullscreen();\r
 +\r
 +private:\r
 +      //! Name of the application.\r
 +      QString iApplicationName;\r
 +      \r
 +      //! Currently active view.\r
 +      ViewBase *iCurrentView;\r
 +      \r
 +      //! Stack of views previously displayed.\r
 +      QStack<ViewBase *> iViewList;\r
 +\r
 +};\r
 +\r
 +#endif /*WINDOWMANAGER_H_*/\r
++=======
+ #ifndef WINDOWMANAGER_H_
+ #define WINDOWMANAGER_H_
+ #include <QObject>
+ #include <QTime>
+ #include "Room.h"
+ #include "Meeting.h"
+ #include "PasswordDialog.h"
+ #include "DeviceManager.h"
+ class QTimer;
+ class RoomStatusIndicatorWidget;
+ class WeeklyViewWidget;
+ class Engine;
+ class MeetingInfoDialog;
+ class SettingsView;
+ class ProgressBar;
+ class Configuration;
+ //! UserInterface class. Behaves as a proxy between the user interface and application's business logic.
+ /*!
+  * UserInterface class. Controls the whole user interface, starting with displaying the appropriate
+  * views. It behaves as a proxy between the user interface and application's business logic, it connects
+  * the specified components together and forwards the data to the correct place. It also manages the correct
+  * appearance of current views on the screen.
+  */
+ class WindowManager : public QObject
+ {
+       Q_OBJECT
+ public:
+       //! Constructor.
+       /*!
+        * Constructor of WindowManager.
+        * \param aConfiguration The pointer to configuration.
+        */
+       WindowManager( Configuration *aConfiguration );
+       //! Destructor.
+       virtual ~WindowManager();
+       /*!
+        * Displays an error message
+        * \param aErrorMessage Message to be displayd
+        */
+       void error( const QString &aErrorMessage );
+       //! Updates the rooms status.
+       /*! 
+        * Forwards the signal of changed status to current view.
+        * \param aRoom Room which status is changed.
+        * \param aStatus Current status of room.
+        * \param aTime Time when status is changed.
+        */
+       void roomStatusChanged( Room *aRoom, Room::Status aStatus, QTime aTime );
+       //! Shows the password dialog.
+       /*!
+        * Shows the password dialog.
+        * \param aAdminPassword The correct password.
+        * \param aMessage The message to be shown in the password dialog.
+        */
+       void showPasswordDialog( QByteArray aAdminPassword, const QString &aMessage );
+       //! Closes the password dialog.
+       /*!
+        * Closes the password dialog.
+        */
+       void closePasswordDialog();
+       //! Displays the weekly view.
+       /*!
+        * Displays the weekly view.
+        */
+       void showWeeklyView();
+       //! Displays the meeting info dialog.
+       /*!
+        * Displays the meeting info dialog. 
+        * \param aMeeting Meeting to be displayd
+        */
+       void showMeetingInfo( Meeting *aMeeting );
+       //! Returns the pointer to the weekly view. 
+       /*!
+        * Returns the pointer to the weekly view.
+        */
+       WeeklyViewWidget * weeklyView();
+       //! Switches the views to full screen.
+       /*!
+        * Switches the views to full screen.
+        */
+       void fullScreen();
+       //! Shows the progress bar.
+       /*!
+        * Starts showing the progress bar.
+        * \param aText The text to be shown in progress bar.
+        *  \param aCancellable Is the Cancel button visible. By default not visible.
+        */
+       void showProgressBar( const QString &aText, bool aCancellable = false );
+       //! Closes the progress bar.
+       /*!
+        * Closes the progress bar.
+        */
+       void closeProgressBar();
+       
+       void insertMeeting( Meeting *aMeeting );
+       
+       void deleteMeeting( Meeting *aMeeting );
+ signals:
+       //! Request current status of the room.
+       /*!
+        * Signal is emitted when there is need to check current status of room aRoom.
+        * \param aRoom Meetingroom which status is requested.
+        */
+       void roomStatusInfoNeeded( Room *aRoom );
+       //! Indicate that some user event has happened.
+       /*!
+        * Signal is emitted if some user event has happened.
+        */
+       void observedEventDetected();
+       //! Meeting activated.
+       /*!
+        * Signal is emitted when a meeting is clicked by the user.
+        * \param aMeeting actived meeting.
+        */
+       void meetingActivated( Meeting *aMeeting );
+       //! Signals if the shown week has been changed.
+       /*!
+        * Signal. Emitted if the shown week has been changed.
+        * \param aDate The first date of the shown week.
+        */
+       void shownWeekChanged( QDate aDate );
+       //! Signals change of the meeting room.
+       /*!
+        * Signal is emitted when meeting room is changed.
+        * \param aRoom Selected meeting room.
+        */
+       void currentRoomChanged( Room *aRoom );
+       //! Signals when the password dialog buttons are clicked.
+       /*!
+        * Signal is emitted when the password dialog buttons are clicked.
+        * \param aPasswordStatus The status of the password.
+        */
+       void passwordEntered( PasswordDialog::PasswordStatus aPasswordStatus );
+       //! Signals when the cancel button in the progress bar is clicked.
+       /*!
+        * Signal is emitted when the cancel button in the progress bar is clicked.
+        */
+       void progressBarCancelled();
+       
+ public slots:
+       //! Slot for displaying the screensaver (room status view).
+       /*!
+        * Slot. Displays the screensaver.
+        */
+       void showRoomStatus();
+       //! Slot for updating the time.
+       /*!
+        * Slot. Forwards the signal of changed time to current view.
+        * \param aCurrentDateTime Current date and time.
+        */
+       void distributeDateTimeInfo( QDateTime aCurrentDateTime );
+       
+       void updateProgressBar( const QString &aMessage );
+       
+ private slots:
+       //! Displays the settings view
+       void showSettingsView();
+ private:
+       //! Name of the application.
+       QString iApplicationName;
+       //! Defines whether the views should be shown as full screen 
+       bool iFullScreen;
+       //! Pointer to the configuration.
+       Configuration *iConfiguration;
+       //! Pointer to the weekly view.
+       WeeklyViewWidget *iWeeklyView;
+       //! Pointer to the screensaver (room status view).
+       RoomStatusIndicatorWidget *iRoomStatusView;
+       //! Pointer to the meeting info dialog
+       MeetingInfoDialog *iMeetingInfo;
+       //! Pointer to the settings view
+       SettingsView *iSettingsView;
+       //! Pointer to the progress bar
+       ProgressBar *iProgressBar;
+       //! Pointer to the password dialog.
+       PasswordDialog *iPasswordDialog;
+ };
+ #endif /*WINDOWMANAGER_H_*/
++>>>>>>> deb6aee06a80416a24a64c2ac6349a2341acdc39:src/UserInterface/WindowManager.h