calendarui/views/src/calenagendaview.cpp
author hgs
Mon, 12 Jul 2010 02:32:28 +0530
changeset 51 0b38fc5b94c6
parent 45 b6db4fd4947b
child 70 a5ed90760192
permissions -rw-r--r--
201027
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
45
hgs
parents:
diff changeset
     1
/*
hgs
parents:
diff changeset
     2
* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
hgs
parents:
diff changeset
     3
* All rights reserved.
hgs
parents:
diff changeset
     4
* This component and the accompanying materials are made available
hgs
parents:
diff changeset
     5
* under the terms of "Eclipse Public License v1.0"
hgs
parents:
diff changeset
     6
* which accompanies this distribution, and is available
hgs
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
hgs
parents:
diff changeset
     8
*
hgs
parents:
diff changeset
     9
* Initial Contributors:
hgs
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
hgs
parents:
diff changeset
    11
*
hgs
parents:
diff changeset
    12
* Contributors:
hgs
parents:
diff changeset
    13
*
hgs
parents:
diff changeset
    14
* Description:  CalenAgendaView implementation.
hgs
parents:
diff changeset
    15
*
hgs
parents:
diff changeset
    16
*/
hgs
parents:
diff changeset
    17
hgs
parents:
diff changeset
    18
// System includes
hgs
parents:
diff changeset
    19
#include <QGraphicsSceneEvent>
hgs
parents:
diff changeset
    20
#include <hbmainwindow.h>
hgs
parents:
diff changeset
    21
#include <hbaction.h>
hgs
parents:
diff changeset
    22
#include <hbpangesture.h>
hgs
parents:
diff changeset
    23
#include <hbswipegesture.h>
hgs
parents:
diff changeset
    24
#include <hbapplication.h> // hbapplication
hgs
parents:
diff changeset
    25
#include <hbactivitymanager.h> // Activity Manager
hgs
parents:
diff changeset
    26
hgs
parents:
diff changeset
    27
// User includes
hgs
parents:
diff changeset
    28
#include "calenagendaview.h"
hgs
parents:
diff changeset
    29
#include "calendocloader.h"
hgs
parents:
diff changeset
    30
#include "calenagendaviewwidget.h"
hgs
parents:
diff changeset
    31
#include "calenservices.h"
hgs
parents:
diff changeset
    32
#include "calencommon.h"
hgs
parents:
diff changeset
    33
#include "calencontext.h"
hgs
parents:
diff changeset
    34
#include "calendateutils.h"
hgs
parents:
diff changeset
    35
#include "calenconstants.h"
51
hgs
parents: 45
diff changeset
    36
#include "OstTraceDefinitions.h"
hgs
parents: 45
diff changeset
    37
#ifdef OST_TRACE_COMPILER_IN_USE
hgs
parents: 45
diff changeset
    38
#include "calenagendaviewTraces.h"
hgs
parents: 45
diff changeset
    39
#endif
hgs
parents: 45
diff changeset
    40
45
hgs
parents:
diff changeset
    41
hgs
parents:
diff changeset
    42
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
    43
// CalenAgendaView::CalenAgendaView
hgs
parents:
diff changeset
    44
// Rest of the details are commented in the header
hgs
parents:
diff changeset
    45
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
    46
//
hgs
parents:
diff changeset
    47
CalenAgendaView::CalenAgendaView(MCalenServices &services):
hgs
parents:
diff changeset
    48
CalenNativeView(services),
hgs
parents:
diff changeset
    49
mSoftKeyAction(NULL),
hgs
parents:
diff changeset
    50
mGoToTodayAction(NULL),
hgs
parents:
diff changeset
    51
mSwitchToDayViewAction(NULL),
hgs
parents:
diff changeset
    52
mActionTaken(false),
hgs
parents:
diff changeset
    53
mIsAboutToQuitEventConnected(false)
hgs
parents:
diff changeset
    54
{
51
hgs
parents: 45
diff changeset
    55
    OstTraceFunctionEntry0( CALENAGENDAVIEW_CALENAGENDAVIEW_ENTRY );
hgs
parents: 45
diff changeset
    56
    
45
hgs
parents:
diff changeset
    57
    // No implementation yet
hgs
parents:
diff changeset
    58
    grabGesture(Qt::SwipeGesture);
51
hgs
parents: 45
diff changeset
    59
    
hgs
parents: 45
diff changeset
    60
    OstTraceFunctionExit0( CALENAGENDAVIEW_CALENAGENDAVIEW_EXIT );
45
hgs
parents:
diff changeset
    61
}
hgs
parents:
diff changeset
    62
hgs
parents:
diff changeset
    63
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
    64
// CalenAgendaView::~CalenAgendaView
hgs
parents:
diff changeset
    65
// Rest of the details are commented in the header
hgs
parents:
diff changeset
    66
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
    67
//    
hgs
parents:
diff changeset
    68
CalenAgendaView::~CalenAgendaView()
hgs
parents:
diff changeset
    69
{
51
hgs
parents: 45
diff changeset
    70
    OstTraceFunctionEntry0( DUP1_CALENAGENDAVIEW_CALENAGENDAVIEW_ENTRY );
hgs
parents: 45
diff changeset
    71
    
45
hgs
parents:
diff changeset
    72
    // No implementation yet
51
hgs
parents: 45
diff changeset
    73
    
hgs
parents: 45
diff changeset
    74
    OstTraceFunctionExit0( DUP1_CALENAGENDAVIEW_CALENAGENDAVIEW_EXIT );
45
hgs
parents:
diff changeset
    75
}
hgs
parents:
diff changeset
    76
hgs
parents:
diff changeset
    77
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
    78
// CalenAgendaView::setupView
hgs
parents:
diff changeset
    79
// Rest of the details are commented in the header
hgs
parents:
diff changeset
    80
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
    81
//    
hgs
parents:
diff changeset
    82
void CalenAgendaView::setupView(CalenDocLoader *docLoader)
hgs
parents:
diff changeset
    83
{
51
hgs
parents: 45
diff changeset
    84
    OstTraceFunctionEntry0( CALENAGENDAVIEW_SETUPVIEW_ENTRY );
hgs
parents: 45
diff changeset
    85
    
45
hgs
parents:
diff changeset
    86
    if (!docLoader) {
hgs
parents:
diff changeset
    87
        // Nothing can be done. Simply return
51
hgs
parents: 45
diff changeset
    88
        OstTraceFunctionExit0( CALENAGENDAVIEW_SETUPVIEW_EXIT );
45
hgs
parents:
diff changeset
    89
        return;
hgs
parents:
diff changeset
    90
    }
hgs
parents:
diff changeset
    91
    // Store the document loader for reference later
hgs
parents:
diff changeset
    92
	mDocLoader = docLoader;
hgs
parents:
diff changeset
    93
	
hgs
parents:
diff changeset
    94
	// Listen to orientation change events
hgs
parents:
diff changeset
    95
	connect(&(mServices.MainWindow()), SIGNAL(orientationChanged(Qt::Orientation)),
hgs
parents:
diff changeset
    96
	        this, SLOT(orientationChanged(Qt::Orientation)));
hgs
parents:
diff changeset
    97
	
hgs
parents:
diff changeset
    98
	// Get the pointer to the content widget
hgs
parents:
diff changeset
    99
	mAgendaViewWidget = qobject_cast<CalenAgendaViewWidget*>(mDocLoader->findWidget(CALEN_AGENDAVIEW_WIDGET));
hgs
parents:
diff changeset
   100
	if (!mAgendaViewWidget) {
hgs
parents:
diff changeset
   101
	    qFatal("calenagendaview.cpp : Unable to find the content widget");
hgs
parents:
diff changeset
   102
	}
hgs
parents:
diff changeset
   103
	mAgendaViewWidget->setupWidget(this);
hgs
parents:
diff changeset
   104
	
hgs
parents:
diff changeset
   105
	// Initialize all the menu and toolbar actions
hgs
parents:
diff changeset
   106
	setupActions();
51
hgs
parents: 45
diff changeset
   107
	
hgs
parents: 45
diff changeset
   108
    //add "show lunar data" action item ,if regional plugin is present
hgs
parents: 45
diff changeset
   109
    //regional plugin will add the option itself and handles it accordingly
hgs
parents: 45
diff changeset
   110
    //use this api after adding all action item to the menu
hgs
parents: 45
diff changeset
   111
    //so that plugin add the "Show lunar data" item as a second last option 
hgs
parents: 45
diff changeset
   112
    // in all views
hgs
parents: 45
diff changeset
   113
   mServices.OfferMenu(menu());
hgs
parents: 45
diff changeset
   114
	
45
hgs
parents:
diff changeset
   115
	// get a poitner to activity manager
hgs
parents:
diff changeset
   116
	HbActivityManager* activityManager = qobject_cast<HbApplication*>(qApp)->activityManager();
hgs
parents:
diff changeset
   117
hgs
parents:
diff changeset
   118
	// clean up any previous versions of this activity, if any, i.e. activityName, from the activity manager. 
hgs
parents:
diff changeset
   119
	// Ignore return value, first boot would always return False. bool declared 
hgs
parents:
diff changeset
   120
	// only for debugging purpose.
hgs
parents:
diff changeset
   121
	bool ok = activityManager->removeActivity(activityName);
hgs
parents:
diff changeset
   122
	
51
hgs
parents: 45
diff changeset
   123
	OstTraceFunctionExit0( DUP1_CALENAGENDAVIEW_SETUPVIEW_EXIT );
45
hgs
parents:
diff changeset
   124
}
hgs
parents:
diff changeset
   125
hgs
parents:
diff changeset
   126
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
   127
// CalenAgendaView::doPopulation
hgs
parents:
diff changeset
   128
// Rest of the details are commented in the header
hgs
parents:
diff changeset
   129
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
   130
// 
hgs
parents:
diff changeset
   131
void CalenAgendaView::doPopulation()
hgs
parents:
diff changeset
   132
    {
51
hgs
parents: 45
diff changeset
   133
    OstTraceFunctionEntry0( CALENAGENDAVIEW_DOPOPULATION_ENTRY );
hgs
parents: 45
diff changeset
   134
    
45
hgs
parents:
diff changeset
   135
    // The content widget has not been constructed. Don't do anything
hgs
parents:
diff changeset
   136
    if (!mAgendaViewWidget) {
51
hgs
parents: 45
diff changeset
   137
        OstTraceFunctionExit0( CALENAGENDAVIEW_DOPOPULATION_EXIT );
45
hgs
parents:
diff changeset
   138
        return;
hgs
parents:
diff changeset
   139
    }
hgs
parents:
diff changeset
   140
    // Get the day for which this view is being shown from the context
hgs
parents:
diff changeset
   141
    mDate = mServices.Context().focusDateAndTime();
hgs
parents:
diff changeset
   142
    
hgs
parents:
diff changeset
   143
    // Check if the current day being shown is "Today"
hgs
parents:
diff changeset
   144
    if (mGoToTodayAction) {
hgs
parents:
diff changeset
   145
        if (mDate.date() == CalenDateUtils::today().date()) {
hgs
parents:
diff changeset
   146
            // Hide the "Go to today" option
hgs
parents:
diff changeset
   147
            mGoToTodayAction->setVisible(false);
hgs
parents:
diff changeset
   148
        } else {
hgs
parents:
diff changeset
   149
            mGoToTodayAction->setVisible(true);
hgs
parents:
diff changeset
   150
        }
hgs
parents:
diff changeset
   151
    }
hgs
parents:
diff changeset
   152
    
hgs
parents:
diff changeset
   153
    // Set self as the current view
hgs
parents:
diff changeset
   154
    // mServices.MainWindow().setCurrentView(this);
hgs
parents:
diff changeset
   155
    
hgs
parents:
diff changeset
   156
    // Dont override the soft key behavior if day view is the first view
hgs
parents:
diff changeset
   157
    if (ECalenAgendaView != mServices.getFirstView()) {
hgs
parents:
diff changeset
   158
		mSoftKeyAction = new HbAction(Hb::BackNaviAction);
hgs
parents:
diff changeset
   159
		setNavigationAction(mSoftKeyAction);
hgs
parents:
diff changeset
   160
		// Connect to the signal triggered by clicking on back button.
hgs
parents:
diff changeset
   161
		connect(mSoftKeyAction, SIGNAL(triggered()), this,
hgs
parents:
diff changeset
   162
		        SLOT(launchMonthView()));
hgs
parents:
diff changeset
   163
		if (mSwitchToDayViewAction) {
hgs
parents:
diff changeset
   164
			mSwitchToDayViewAction->setVisible(true);
hgs
parents:
diff changeset
   165
				}
hgs
parents:
diff changeset
   166
	} else {
hgs
parents:
diff changeset
   167
		if (mSwitchToDayViewAction) {
hgs
parents:
diff changeset
   168
			mSwitchToDayViewAction->setVisible(false);
hgs
parents:
diff changeset
   169
		}
hgs
parents:
diff changeset
   170
	}
hgs
parents:
diff changeset
   171
    // Initialize the content widget
hgs
parents:
diff changeset
   172
    mAgendaViewWidget->showWidget();
hgs
parents:
diff changeset
   173
    
hgs
parents:
diff changeset
   174
	//set Current Activity as day view
hgs
parents:
diff changeset
   175
    mActivityId = ECalenAgendaView;
hgs
parents:
diff changeset
   176
hgs
parents:
diff changeset
   177
	// connect to receive a call back on Day View exit. Call back would result in saveActivity 
hgs
parents:
diff changeset
   178
	// to be called in Native View
hgs
parents:
diff changeset
   179
    if (!mIsAboutToQuitEventConnected) // check if already not connected
hgs
parents:
diff changeset
   180
        {
hgs
parents:
diff changeset
   181
        connect(qobject_cast<HbApplication*>(qApp), SIGNAL(aboutToQuit()), this, SLOT(saveActivity()));
hgs
parents:
diff changeset
   182
		mIsAboutToQuitEventConnected = true;
hgs
parents:
diff changeset
   183
        }
hgs
parents:
diff changeset
   184
hgs
parents:
diff changeset
   185
hgs
parents:
diff changeset
   186
    // Population is complete, issue a notification
hgs
parents:
diff changeset
   187
    populationComplete();
51
hgs
parents: 45
diff changeset
   188
    
hgs
parents: 45
diff changeset
   189
    OstTraceFunctionExit0( DUP1_CALENAGENDAVIEW_DOPOPULATION_EXIT );
45
hgs
parents:
diff changeset
   190
    }
hgs
parents:
diff changeset
   191
hgs
parents:
diff changeset
   192
/*!
hgs
parents:
diff changeset
   193
 Funtion to refresh the current view upon selecting a date
hgs
parents:
diff changeset
   194
 from GoToDate popup
hgs
parents:
diff changeset
   195
 */
hgs
parents:
diff changeset
   196
void CalenAgendaView::refreshViewOnGoToDate()
hgs
parents:
diff changeset
   197
{
51
hgs
parents: 45
diff changeset
   198
    OstTraceFunctionEntry0( CALENAGENDAVIEW_REFRESHVIEWONGOTODATE_ENTRY );
hgs
parents: 45
diff changeset
   199
    
45
hgs
parents:
diff changeset
   200
	// Get the day for which this view is being shown from the context
hgs
parents:
diff changeset
   201
	mDate = mServices.Context().focusDateAndTime();
hgs
parents:
diff changeset
   202
	
hgs
parents:
diff changeset
   203
	// Check if the current day being shown is "Today"
hgs
parents:
diff changeset
   204
	if (mGoToTodayAction) {
hgs
parents:
diff changeset
   205
		if (mDate.date() == CalenDateUtils::today().date()) {
hgs
parents:
diff changeset
   206
			// Hide the "Go to today" option
hgs
parents:
diff changeset
   207
			mGoToTodayAction->setVisible(false);
hgs
parents:
diff changeset
   208
		} else {
hgs
parents:
diff changeset
   209
			mGoToTodayAction->setVisible(true);
hgs
parents:
diff changeset
   210
		}
hgs
parents:
diff changeset
   211
	}
hgs
parents:
diff changeset
   212
	
hgs
parents:
diff changeset
   213
	// Initialize the content widget
hgs
parents:
diff changeset
   214
	mAgendaViewWidget->showWidget();
51
hgs
parents: 45
diff changeset
   215
	
hgs
parents: 45
diff changeset
   216
	OstTraceFunctionExit0( CALENAGENDAVIEW_REFRESHVIEWONGOTODATE_EXIT );
45
hgs
parents:
diff changeset
   217
}
hgs
parents:
diff changeset
   218
hgs
parents:
diff changeset
   219
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
   220
// CalenAgendaView::HandleNotification
hgs
parents:
diff changeset
   221
// Rest of the details are commented in the header
hgs
parents:
diff changeset
   222
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
   223
//    
hgs
parents:
diff changeset
   224
void CalenAgendaView::HandleNotification(const TCalenNotification notification)
hgs
parents:
diff changeset
   225
{
51
hgs
parents: 45
diff changeset
   226
    OstTraceFunctionEntry0( CALENAGENDAVIEW_HANDLENOTIFICATION_ENTRY );
hgs
parents: 45
diff changeset
   227
    
45
hgs
parents:
diff changeset
   228
    Q_UNUSED(notification)
hgs
parents:
diff changeset
   229
    // No implementation yet
51
hgs
parents: 45
diff changeset
   230
    OstTraceFunctionExit0( CALENAGENDAVIEW_HANDLENOTIFICATION_EXIT );
45
hgs
parents:
diff changeset
   231
}
hgs
parents:
diff changeset
   232
hgs
parents:
diff changeset
   233
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
   234
// CalenAgendaView::docLoader
hgs
parents:
diff changeset
   235
// Rest of the details are commented in the header
hgs
parents:
diff changeset
   236
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
   237
//    
hgs
parents:
diff changeset
   238
CalenDocLoader* CalenAgendaView::docLoader()
hgs
parents:
diff changeset
   239
{
51
hgs
parents: 45
diff changeset
   240
    OstTraceFunctionEntry0( CALENAGENDAVIEW_DOCLOADER_ENTRY );
hgs
parents: 45
diff changeset
   241
    
hgs
parents: 45
diff changeset
   242
    OstTraceFunctionExit0( CALENAGENDAVIEW_DOCLOADER_EXIT );
45
hgs
parents:
diff changeset
   243
    return mDocLoader;
hgs
parents:
diff changeset
   244
}
hgs
parents:
diff changeset
   245
hgs
parents:
diff changeset
   246
/*
hgs
parents:
diff changeset
   247
	Function to listen for gestures
hgs
parents:
diff changeset
   248
*/
hgs
parents:
diff changeset
   249
void CalenAgendaView::gestureEvent(QGestureEvent *event)
hgs
parents:
diff changeset
   250
{
51
hgs
parents: 45
diff changeset
   251
    OstTraceFunctionEntry0( CALENAGENDAVIEW_GESTUREEVENT_ENTRY );
hgs
parents: 45
diff changeset
   252
    
45
hgs
parents:
diff changeset
   253
    if(HbSwipeGesture *gesture = qobject_cast<HbSwipeGesture *>(event->gesture(Qt::SwipeGesture))) {
hgs
parents:
diff changeset
   254
        if (gesture->state() == Qt::GestureStarted) {
hgs
parents:
diff changeset
   255
            if(QSwipeGesture::Left == gesture->sceneHorizontalDirection()) {
hgs
parents:
diff changeset
   256
                mServices.IssueCommandL(ECalenShowNextDay);
hgs
parents:
diff changeset
   257
                event->accept(Qt::SwipeGesture);
hgs
parents:
diff changeset
   258
            } else if(QSwipeGesture::Right == gesture->sceneHorizontalDirection()) {
hgs
parents:
diff changeset
   259
                mServices.IssueCommandL(ECalenShowPrevDay);
hgs
parents:
diff changeset
   260
               event->accept(Qt::SwipeGesture);
hgs
parents:
diff changeset
   261
            }
hgs
parents:
diff changeset
   262
        }
hgs
parents:
diff changeset
   263
    } 
51
hgs
parents: 45
diff changeset
   264
    
hgs
parents: 45
diff changeset
   265
    OstTraceFunctionExit0( CALENAGENDAVIEW_GESTUREEVENT_EXIT );
45
hgs
parents:
diff changeset
   266
}
hgs
parents:
diff changeset
   267
hgs
parents:
diff changeset
   268
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
   269
// CalenAgendaView::createToolBar
hgs
parents:
diff changeset
   270
// Rest of the details are commented in the header
hgs
parents:
diff changeset
   271
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
   272
//
hgs
parents:
diff changeset
   273
void CalenAgendaView::setupActions()
hgs
parents:
diff changeset
   274
{
51
hgs
parents: 45
diff changeset
   275
    OstTraceFunctionEntry0( CALENAGENDAVIEW_SETUPACTIONS_ENTRY );
hgs
parents: 45
diff changeset
   276
    
45
hgs
parents:
diff changeset
   277
	// Get the actions associated with this view
hgs
parents:
diff changeset
   278
	HbAction *newEventAction = qobject_cast<HbAction *>
hgs
parents:
diff changeset
   279
                                (mDocLoader->findObject(CALEN_AGENDAVIEW_MENU_NEW_EVENT));
hgs
parents:
diff changeset
   280
	if (!newEventAction) {
hgs
parents:
diff changeset
   281
	    qFatal("calenagendaview.cpp : Unable to find new event action");
hgs
parents:
diff changeset
   282
	}
hgs
parents:
diff changeset
   283
	// Connect to the signal triggered by new event action
51
hgs
parents: 45
diff changeset
   284
	connect(newEventAction, SIGNAL(triggered()), this, SLOT(createNewEvent()));
hgs
parents: 45
diff changeset
   285
	    
45
hgs
parents:
diff changeset
   286
	mGoToTodayAction = qobject_cast<HbAction *>
hgs
parents:
diff changeset
   287
                        (mDocLoader->findObject(CALEN_AGENDAVIEW_MENU_GO_TO_TODAY));
hgs
parents:
diff changeset
   288
	if (!mGoToTodayAction) {
hgs
parents:
diff changeset
   289
	    qFatal("calenagendaview.cpp : Unable to find go to today action");
hgs
parents:
diff changeset
   290
	}
hgs
parents:
diff changeset
   291
	// Connect to the signal triggered by go to Today action
hgs
parents:
diff changeset
   292
	connect(mGoToTodayAction, SIGNAL(triggered()), mAgendaViewWidget, SLOT(goToToday()));
hgs
parents:
diff changeset
   293
	
hgs
parents:
diff changeset
   294
	HbAction *goToDateAction = qobject_cast<HbAction *>
hgs
parents:
diff changeset
   295
                                (mDocLoader->findObject(CALEN_AGENDAVIEW_MENU_GO_TO_DATE));
hgs
parents:
diff changeset
   296
	if (!goToDateAction) {
hgs
parents:
diff changeset
   297
	    qFatal("calenagendaview.cpp : Unable to find go to date action");
hgs
parents:
diff changeset
   298
	}
hgs
parents:
diff changeset
   299
	// Connect to the signal triggered by go to Date action
hgs
parents:
diff changeset
   300
	connect(goToDateAction, SIGNAL(triggered()), this, SLOT(goToDate()));
hgs
parents:
diff changeset
   301
	
hgs
parents:
diff changeset
   302
	mSwitchToDayViewAction = qobject_cast<HbAction *>
hgs
parents:
diff changeset
   303
	                                (mDocLoader->findObject(CALEN_AGENDAVIEW_MENU_SWITCH_TO_DAYVIEW));
hgs
parents:
diff changeset
   304
	if (!mSwitchToDayViewAction) {
hgs
parents:
diff changeset
   305
		    qFatal("calenagendaview.cpp : Unable to find go to date action");
hgs
parents:
diff changeset
   306
		}
hgs
parents:
diff changeset
   307
	// Connect to the signal triggered by switch to dayview action
hgs
parents:
diff changeset
   308
	connect(mSwitchToDayViewAction, SIGNAL(triggered()), this, SLOT(launchDayView()));
hgs
parents:
diff changeset
   309
	
hgs
parents:
diff changeset
   310
	HbAction *settingsAction = qobject_cast<HbAction *>
hgs
parents:
diff changeset
   311
                                (mDocLoader->findObject(CALEN_AGENDAVIEW_MENU_SETTINGS));
hgs
parents:
diff changeset
   312
	if (!settingsAction) {
hgs
parents:
diff changeset
   313
	    qFatal("calenagendaview.cpp : Unable to find settings action");
hgs
parents:
diff changeset
   314
	}
hgs
parents:
diff changeset
   315
	// Connect to the signal triggered by settings action
hgs
parents:
diff changeset
   316
	connect(settingsAction, SIGNAL(triggered()), this, SLOT(launchSettingsView()));
51
hgs
parents: 45
diff changeset
   317
	
hgs
parents: 45
diff changeset
   318
	OstTraceFunctionExit0( CALENAGENDAVIEW_SETUPACTIONS_EXIT );
hgs
parents: 45
diff changeset
   319
}
hgs
parents: 45
diff changeset
   320
hgs
parents: 45
diff changeset
   321
// ----------------------------------------------------------------------------
hgs
parents: 45
diff changeset
   322
// CalenAgendaView::createNewEvent
hgs
parents: 45
diff changeset
   323
// ----------------------------------------------------------------------------
hgs
parents: 45
diff changeset
   324
//    
hgs
parents: 45
diff changeset
   325
void CalenAgendaView::createNewEvent()
hgs
parents: 45
diff changeset
   326
{
hgs
parents: 45
diff changeset
   327
    captureScreenshot(true);
hgs
parents: 45
diff changeset
   328
    mAgendaViewWidget->createNewEvent();
45
hgs
parents:
diff changeset
   329
}
hgs
parents:
diff changeset
   330
hgs
parents:
diff changeset
   331
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
   332
// CalenAgendaView::onLocaleChanged
hgs
parents:
diff changeset
   333
// Rest of the details are commented in the header
hgs
parents:
diff changeset
   334
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
   335
//    
hgs
parents:
diff changeset
   336
void CalenAgendaView::onLocaleChanged(int reason)
hgs
parents:
diff changeset
   337
{
51
hgs
parents: 45
diff changeset
   338
    OstTraceFunctionEntry0( CALENAGENDAVIEW_ONLOCALECHANGED_ENTRY );
hgs
parents: 45
diff changeset
   339
    
45
hgs
parents:
diff changeset
   340
    Q_UNUSED(reason)
hgs
parents:
diff changeset
   341
    // Notify the content widget about the change
hgs
parents:
diff changeset
   342
    if(mAgendaViewWidget) {
hgs
parents:
diff changeset
   343
    mAgendaViewWidget->handleLocaleChange();
hgs
parents:
diff changeset
   344
    }
51
hgs
parents: 45
diff changeset
   345
    
hgs
parents: 45
diff changeset
   346
    OstTraceFunctionExit0( CALENAGENDAVIEW_ONLOCALECHANGED_EXIT );
45
hgs
parents:
diff changeset
   347
}
hgs
parents:
diff changeset
   348
hgs
parents:
diff changeset
   349
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
   350
// CalenAgendaView::orientationChanged
hgs
parents:
diff changeset
   351
// Rest of the details are commented in the header
hgs
parents:
diff changeset
   352
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
   353
// 
hgs
parents:
diff changeset
   354
void CalenAgendaView::orientationChanged(Qt::Orientation orientation)
hgs
parents:
diff changeset
   355
{
51
hgs
parents: 45
diff changeset
   356
    OstTraceFunctionEntry0( CALENAGENDAVIEW_ORIENTATIONCHANGED_ENTRY );
hgs
parents: 45
diff changeset
   357
    
45
hgs
parents:
diff changeset
   358
    // Notify the content widget about the change
hgs
parents:
diff changeset
   359
    if (mAgendaViewWidget) {
hgs
parents:
diff changeset
   360
    mAgendaViewWidget->orientationChanged(orientation);
hgs
parents:
diff changeset
   361
    }
51
hgs
parents: 45
diff changeset
   362
    OstTraceFunctionExit0( CALENAGENDAVIEW_ORIENTATIONCHANGED_EXIT );
45
hgs
parents:
diff changeset
   363
}
hgs
parents:
diff changeset
   364
hgs
parents:
diff changeset
   365
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
   366
// CalenAgendaView::launchMonthView
hgs
parents:
diff changeset
   367
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
   368
//    
hgs
parents:
diff changeset
   369
void CalenAgendaView::launchMonthView()
hgs
parents:
diff changeset
   370
{
51
hgs
parents: 45
diff changeset
   371
    OstTraceFunctionEntry0( CALENAGENDAVIEW_LAUNCHMONTHVIEW_ENTRY );
hgs
parents: 45
diff changeset
   372
    
45
hgs
parents:
diff changeset
   373
    // Issue the command to launch the month view
hgs
parents:
diff changeset
   374
    mServices.IssueCommandL(ECalenMonthView);
hgs
parents:
diff changeset
   375
	// month view launched now, disconnect to get the call backs for saveActivity 
hgs
parents:
diff changeset
   376
	// on aboutToQuit signal
hgs
parents:
diff changeset
   377
    disconnectAboutToQuitEvent();
51
hgs
parents: 45
diff changeset
   378
    
hgs
parents: 45
diff changeset
   379
    OstTraceFunctionExit0( CALENAGENDAVIEW_LAUNCHMONTHVIEW_EXIT );
45
hgs
parents:
diff changeset
   380
}
hgs
parents:
diff changeset
   381
hgs
parents:
diff changeset
   382
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
   383
// CalenAgendaView::launchDayView
hgs
parents:
diff changeset
   384
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
   385
//    
hgs
parents:
diff changeset
   386
void CalenAgendaView::launchDayView()
hgs
parents:
diff changeset
   387
{
51
hgs
parents: 45
diff changeset
   388
    OstTraceFunctionEntry0( CALENAGENDAVIEW_LAUNCHDAYVIEW_ENTRY );
hgs
parents: 45
diff changeset
   389
    
45
hgs
parents:
diff changeset
   390
    // Issue the command to launch the day view
hgs
parents:
diff changeset
   391
    mServices.IssueCommandL(ECalenDayView);
51
hgs
parents: 45
diff changeset
   392
    
hgs
parents: 45
diff changeset
   393
    OstTraceFunctionExit0( CALENAGENDAVIEW_LAUNCHDAYVIEW_EXIT );
45
hgs
parents:
diff changeset
   394
}
hgs
parents:
diff changeset
   395
hgs
parents:
diff changeset
   396
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
   397
// clears the list model 
hgs
parents:
diff changeset
   398
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
   399
// 
hgs
parents:
diff changeset
   400
void CalenAgendaView::clearListModel()
hgs
parents:
diff changeset
   401
    {
51
hgs
parents: 45
diff changeset
   402
    OstTraceFunctionEntry0( CALENAGENDAVIEW_CLEARLISTMODEL_ENTRY );
hgs
parents: 45
diff changeset
   403
    
45
hgs
parents:
diff changeset
   404
	// day view is removed from the list disconnect for aboutToQuit events
hgs
parents:
diff changeset
   405
    disconnectAboutToQuitEvent();
hgs
parents:
diff changeset
   406
    mAgendaViewWidget->clearListModel();
51
hgs
parents: 45
diff changeset
   407
    
hgs
parents: 45
diff changeset
   408
    OstTraceFunctionExit0( CALENAGENDAVIEW_CLEARLISTMODEL_EXIT );
45
hgs
parents:
diff changeset
   409
    }
hgs
parents:
diff changeset
   410
hgs
parents:
diff changeset
   411
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
   412
// disconnectAboutToQuitEvent disconnects for the aboutToQuit events
hgs
parents:
diff changeset
   413
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
   414
// 
hgs
parents:
diff changeset
   415
void CalenAgendaView::disconnectAboutToQuitEvent()
hgs
parents:
diff changeset
   416
    {
51
hgs
parents: 45
diff changeset
   417
    OstTraceFunctionEntry0( CALENAGENDAVIEW_DISCONNECTABOUTTOQUITEVENT_ENTRY );
hgs
parents: 45
diff changeset
   418
    
45
hgs
parents:
diff changeset
   419
    if (mIsAboutToQuitEventConnected)
hgs
parents:
diff changeset
   420
        {
hgs
parents:
diff changeset
   421
        disconnect(qobject_cast<HbApplication*>(qApp), SIGNAL(aboutToQuit()), this, SLOT(saveActivity()));
hgs
parents:
diff changeset
   422
        mIsAboutToQuitEventConnected = false;
hgs
parents:
diff changeset
   423
        }
51
hgs
parents: 45
diff changeset
   424
    
hgs
parents: 45
diff changeset
   425
    OstTraceFunctionExit0( CALENAGENDAVIEW_DISCONNECTABOUTTOQUITEVENT_EXIT );
45
hgs
parents:
diff changeset
   426
    }
hgs
parents:
diff changeset
   427
hgs
parents:
diff changeset
   428
// End of file	--Don't remove this.