calendarui/views/dayview/src/calendayview.cpp
changeset 75 7ac58b2aae6f
parent 70 a5ed90760192
child 81 ce92091cbd61
equal deleted inserted replaced
72:27feeedec790 75:7ac58b2aae6f
    27 #include <HbMainWindow>
    27 #include <HbMainWindow>
    28 #include <HbModelIterator>
    28 #include <HbModelIterator>
    29 #include <HbStyleLoader>
    29 #include <HbStyleLoader>
    30 #include <HbGroupBox>
    30 #include <HbGroupBox>
    31 #include <HbExtendedLocale>
    31 #include <HbExtendedLocale>
       
    32 #include <HbModelIterator>
    32 #include <agendautil.h>
    33 #include <agendautil.h>
    33 
    34 
    34 // User includes
    35 // User includes
    35 #include "calendayview.h"
    36 #include "calendayview.h"
    36 #include "calencommon.h"
    37 #include "calencommon.h"
    39 #include "calendocloader.h"
    40 #include "calendocloader.h"
    40 #include "calendateutils.h" //useful date/time utils
    41 #include "calendateutils.h" //useful date/time utils
    41 #include "calendaycontentscrollarea.h"
    42 #include "calendaycontentscrollarea.h"
    42 #include "calendaycontentwidget.h"
    43 #include "calendaycontentwidget.h"
    43 #include "calendayhourscrollarea.h"
    44 #include "calendayhourscrollarea.h"
       
    45 #include "calendayitemview.h"
    44 #include "calendaymodelmanager.h"
    46 #include "calendaymodelmanager.h"
    45 #include "CalenUid.h"
    47 #include "CalenUid.h"
    46 #include "CalendarPrivateCRKeys.h"
    48 #include "CalendarPrivateCRKeys.h"
    47 #include "calenpluginlabel.h"
    49 #include "calenpluginlabel.h"
    48 #include "calendaymodel.h"
    50 #include "calendaymodel.h"
    68     // Create model manager
    70     // Create model manager
    69     mModelManager = new CalenDayModelManager(mServices, true, this);
    71     mModelManager = new CalenDayModelManager(mServices, true, this);
    70     mSettingsManager = new XQSettingsManager(this);
    72     mSettingsManager = new XQSettingsManager(this);
    71     mSettingsManager->startMonitoring(mRegionalInfoKey);
    73     mSettingsManager->startMonitoring(mRegionalInfoKey);
    72 
    74 
    73     //setup Back functionality
    75     //setup Back functionality, launch the month view only when it is
    74     if (ECalenDayView != mServices.getFirstView()) {
    76 	// the first view
       
    77     if (ECalenMonthView == mServices.getFirstView()) {
    75         HbAction* action = new HbAction(Hb::BackNaviAction, this);
    78         HbAction* action = new HbAction(Hb::BackNaviAction, this);
    76         setNavigationAction(action);
    79         setNavigationAction(action);
    77         // Connect to the signal triggered by clicking on back button.
    80         // Connect to the signal triggered by clicking on back button.
    78         connect(action, SIGNAL(triggered()), this, SLOT(onBack()));
    81         connect(action, SIGNAL(triggered()), this, SLOT(onBack()));
    79     }
    82     }
   206     // Set up content scroll area
   209     // Set up content scroll area
   207     mContentScrollArea
   210     mContentScrollArea
   208         = static_cast<CalenDayContentScrollArea *> (mDocLoader->findWidget(
   211         = static_cast<CalenDayContentScrollArea *> (mDocLoader->findWidget(
   209             CALEN_DAYVIEW_CONTENTSCROLLAREA));
   212             CALEN_DAYVIEW_CONTENTSCROLLAREA));
   210     // Pass parent object to mContentWidget to install event filters on parent
   213     // Pass parent object to mContentWidget to install event filters on parent
   211     mContentWidget = new CalenDayContentWidget(*mModelManager, mContentScrollArea);
   214     mContentWidget = new CalenDayContentWidget(mContentScrollArea);
   212     mContentScrollArea->setContentWidget(mContentWidget);
   215     mContentScrollArea->setContentWidget(mContentWidget);
   213 
   216     
       
   217     initializeViews();
   214     setupSlots();
   218     setupSlots();
   215     
   219     
   216     // Set up regional info if variant is correct
   220     // Set up regional info if variant is correct
   217     showRegionalInformationFadeIn();
   221     showRegionalInformationFadeIn();
   218 }
   222 }
   351         SIGNAL(orientationChanged(Qt::Orientation)), this,
   355         SIGNAL(orientationChanged(Qt::Orientation)), this,
   352         SLOT(orientationChanged(Qt::Orientation)));
   356         SLOT(orientationChanged(Qt::Orientation)));
   353 
   357 
   354     connect(mSettingsManager, SIGNAL(valueChanged(XQSettingsKey, QVariant)),
   358     connect(mSettingsManager, SIGNAL(valueChanged(XQSettingsKey, QVariant)),
   355         this, SLOT(showHideRegionalInformationChanged(XQSettingsKey, QVariant)));
   359         this, SLOT(showHideRegionalInformationChanged(XQSettingsKey, QVariant)));
       
   360 }
       
   361 
       
   362 /*!
       
   363    \brief Initializes internal views.
       
   364    
       
   365    CalenDayView uses 3 child views which represent previous, current and next days.
       
   366    This assures that swiping to prev/next day works smoothly, because population
       
   367    of data is done earlier.
       
   368 */
       
   369 void CalenDayView::initializeViews()
       
   370 {
       
   371     // Create item views
       
   372     HbModelIterator *iterator(0);
       
   373 
       
   374     iterator = new HbModelIterator(&mModelManager->getModel(
       
   375         CalenDayModelManager::PreviousDay));
       
   376     CalenDayItemView *prevItemView = new CalenDayItemView(
       
   377         mModelManager->getServices(), iterator, 0);
       
   378 
       
   379     iterator = new HbModelIterator(&mModelManager->getModel(
       
   380         CalenDayModelManager::CurrentDay));
       
   381     CalenDayItemView *currItemView = new CalenDayItemView(
       
   382         mModelManager->getServices(), iterator, 0);
       
   383 
       
   384     iterator = new HbModelIterator(&mModelManager->getModel(
       
   385         CalenDayModelManager::NextDay));
       
   386     CalenDayItemView *nextItemView = new CalenDayItemView(
       
   387         mModelManager->getServices(), iterator, 0);
       
   388 
       
   389     // Connect views with widgetScrolled SLOT to support simultanous vertical scrolling
       
   390     connect(prevItemView, SIGNAL(scrollPositionChanged(const QPointF&)), mContentWidget,
       
   391         SLOT(widgetScrolled(const QPointF&)));
       
   392     connect(currItemView, SIGNAL(scrollPositionChanged(const QPointF&)), mContentWidget,
       
   393         SLOT(widgetScrolled(const QPointF&)));
       
   394     connect(nextItemView, SIGNAL(scrollPositionChanged(const QPointF&)), mContentWidget,
       
   395         SLOT(widgetScrolled(const QPointF&)));
       
   396     
       
   397     // Close menu once closeDialogs() is received
       
   398     connect(this, SIGNAL(closeDialogs()), prevItemView->contextMenu(), SLOT(close()));
       
   399     connect(this, SIGNAL(closeDialogs()), currItemView->contextMenu(), SLOT(close()));
       
   400     connect(this, SIGNAL(closeDialogs()), nextItemView->contextMenu(), SLOT(close()));
       
   401 
       
   402     // Install event filters to receive events necessary for gesture handling
       
   403     prevItemView->installEventFilter(mContentScrollArea);
       
   404     currItemView->installEventFilter(mContentScrollArea);
       
   405     nextItemView->installEventFilter(mContentScrollArea);
       
   406 
       
   407     // Add views to layout
       
   408     mContentWidget->add(prevItemView);
       
   409     mContentWidget->add(currItemView);
       
   410     mContentWidget->add(nextItemView);
   356 }
   411 }
   357 
   412 
   358 /*!
   413 /*!
   359    \brief This slot triggers new meeting creation view
   414    \brief This slot triggers new meeting creation view
   360 */
   415 */