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 */ |