calendarui/caleneditor/src/caleneditorrepeatfield.cpp
author hgs
Mon, 20 Sep 2010 12:44:39 +0530
changeset 75 7ac58b2aae6f
parent 70 a5ed90760192
permissions -rw-r--r--
201037
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
23
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     1
/*
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     2
* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     3
* All rights reserved.
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     4
* This component and the accompanying materials are made available
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     5
* under the terms of "Eclipse Public License v1.0"
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     6
* which accompanies this distribution, and is available
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     8
*
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     9
* Initial Contributors:
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    11
*
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    12
* Contributors:
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    13
*
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    14
* Description:
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    15
* Definition of CalenEditorRepeatField class.
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    16
*
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    17
*/
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    18
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    19
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    20
// System Includes
45
hgs
parents: 23
diff changeset
    21
#include <QDate>
23
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    22
#include <hbdataformmodelitem.h>
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    23
#include <hbdataformviewitem.h>
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    24
#include <hbdataformmodel.h>
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    25
#include <hbdataform.h>
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    26
#include <hbcombobox.h>
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    27
#include <hblabel.h>
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    28
#include <hbdatetimepicker.h>
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    29
#include <hbaction.h>
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    30
#include <agendautil.h>
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    31
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    32
// User Included
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    33
#include "caleneditorrepeatfield.h"
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    34
#include "caleneditorcustomitem.h"
64
1881ad52dc45 201033_03
hgs
parents: 63
diff changeset
    35
#include "caleneditorreminderfield.h"
55
hgs
parents: 51
diff changeset
    36
#include "calendateutils.h"
51
hgs
parents: 45
diff changeset
    37
#include "OstTraceDefinitions.h"
hgs
parents: 45
diff changeset
    38
#ifdef OST_TRACE_COMPILER_IN_USE
hgs
parents: 45
diff changeset
    39
#include "caleneditorrepeatfieldTraces.h"
hgs
parents: 45
diff changeset
    40
#endif
hgs
parents: 45
diff changeset
    41
23
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    42
45
hgs
parents: 23
diff changeset
    43
// Constants
hgs
parents: 23
diff changeset
    44
const int userRole = Qt::UserRole + 100;
hgs
parents: 23
diff changeset
    45
23
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    46
/*!
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    47
	\class CalenEditorRepeatField
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    48
 */
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    49
/*!
55
hgs
parents: 51
diff changeset
    50
    \enum CalenEditorRepeatField::RepeatTypes
hgs
parents: 51
diff changeset
    51
    This enum defines the different repeat types of an entry
hgs
parents: 51
diff changeset
    52
 */
hgs
parents: 51
diff changeset
    53
/*!
hgs
parents: 51
diff changeset
    54
    \var CalenEditorRepeatField::RepeatTypes CalenEditorRepeatField::RepeatOnce
hgs
parents: 51
diff changeset
    55
    No repeating type.
hgs
parents: 51
diff changeset
    56
 */
hgs
parents: 51
diff changeset
    57
/*!
hgs
parents: 51
diff changeset
    58
    \var CalenEditorRepeatField::RepeatTypes CalenEditorRepeatField::RepeatDaily
hgs
parents: 51
diff changeset
    59
    Daily repeating type.
hgs
parents: 51
diff changeset
    60
 */
hgs
parents: 51
diff changeset
    61
/*!
hgs
parents: 51
diff changeset
    62
    \var CalenEditorRepeatField::RepeatTypes CalenEditorRepeatField::RepeatWorkdays
hgs
parents: 51
diff changeset
    63
    Workdays repeating type.
hgs
parents: 51
diff changeset
    64
 */
hgs
parents: 51
diff changeset
    65
/*!
hgs
parents: 51
diff changeset
    66
    \var CalenEditorRepeatField::RepeatTypes CalenEditorRepeatField::RepeatWeekly
hgs
parents: 51
diff changeset
    67
    Weekly repeating type.
hgs
parents: 51
diff changeset
    68
 */
hgs
parents: 51
diff changeset
    69
/*!
hgs
parents: 51
diff changeset
    70
    \var CalenEditorRepeatField::RepeatTypes CalenEditorRepeatField::RepeatBiWeekly
hgs
parents: 51
diff changeset
    71
    Fortnightly repeating type.
hgs
parents: 51
diff changeset
    72
 */
hgs
parents: 51
diff changeset
    73
/*!
hgs
parents: 51
diff changeset
    74
    \var CalenEditorRepeatField::RepeatTypes CalenEditorRepeatField::RepeatMonthly
hgs
parents: 51
diff changeset
    75
    Monthly repeating type.
hgs
parents: 51
diff changeset
    76
 */
hgs
parents: 51
diff changeset
    77
/*!
hgs
parents: 51
diff changeset
    78
    \var CalenEditorRepeatField::RepeatTypes CalenEditorRepeatField::RepeatYearly
hgs
parents: 51
diff changeset
    79
    Yearly repeating type.
hgs
parents: 51
diff changeset
    80
 */
hgs
parents: 51
diff changeset
    81
hgs
parents: 51
diff changeset
    82
/*!
23
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    83
	Constructor.
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    84
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    85
	\param parent QObject pointer
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    86
 */
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    87
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    88
CalenEditorRepeatField::CalenEditorRepeatField(CalenEditorPrivate* calenEditor,
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    89
       										HbDataForm* form, 
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    90
       										HbDataFormModel* model,
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    91
       										QObject *parent)
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    92
	:QObject(parent),
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    93
    mCalenEditor(calenEditor), 
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    94
	mEditorForm(form), 
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    95
	mCalenEditorModel(model), 
55
hgs
parents: 51
diff changeset
    96
	mRepeatItem(0),
hgs
parents: 51
diff changeset
    97
	mRepeatComboBox(0),
hgs
parents: 51
diff changeset
    98
	mCustomRepeatUntilItem(0),
75
hgs
parents: 70
diff changeset
    99
	mDatePicker(0),
57
hgs
parents: 55
diff changeset
   100
	mRepeatRoleValue(0),
23
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   101
	mIsBiWeekly(false),
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   102
	mIsWorkdays(false),
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   103
	mRepeatUntilItemAdded(false)
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   104
{
51
hgs
parents: 45
diff changeset
   105
	OstTraceFunctionEntry0( CALENEDITORREPEATFIELD_CALENEDITORREPEATFIELD_ENTRY );
23
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   106
	if (!mCalenEditor->editedEntry()->repeatRule().isNull()) {
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   107
		mRepeatRuleType = mCalenEditor->editedEntry()->repeatRule().type();
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   108
		mRepeatUntilDate = mCalenEditor->editedEntry()->repeatRule().until().date();
51
hgs
parents: 45
diff changeset
   109
	}
hgs
parents: 45
diff changeset
   110
hgs
parents: 45
diff changeset
   111
	mRepeatItem = new HbDataFormModelItem();
hgs
parents: 45
diff changeset
   112
	mRepeatItem->setType(HbDataFormModelItem::ComboBoxItem);
hgs
parents: 45
diff changeset
   113
	mRepeatItem->setData(HbDataFormModelItem::LabelRole,
hgs
parents: 45
diff changeset
   114
	                     hbTrId("txt_calendar_setlabel_repeat"));
23
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   115
51
hgs
parents: 45
diff changeset
   116
	// Create the repeat choices
hgs
parents: 45
diff changeset
   117
	QStringList repeatChoices;
hgs
parents: 45
diff changeset
   118
	repeatChoices << hbTrId("txt_calendar_setlabel_repeat_val_only_once")
hgs
parents: 45
diff changeset
   119
					<< hbTrId("txt_calendar_setlabel_repeat_val_daily")
hgs
parents: 45
diff changeset
   120
					<< hbTrId("txt_calendar_setlabel_repeat_val_workdays")
hgs
parents: 45
diff changeset
   121
					<< hbTrId("txt_calendar_setlabel_repeat_val_weekly")
hgs
parents: 45
diff changeset
   122
					<< hbTrId("txt_calendar_setlabel_repeat_val_fortnightly")
hgs
parents: 45
diff changeset
   123
					<< hbTrId("txt_calendar_setlabel_repeat_val_monthly")
hgs
parents: 45
diff changeset
   124
					<< hbTrId("txt_calendar_setlabel_repeat_val_yearly");
23
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   125
51
hgs
parents: 45
diff changeset
   126
		mRepeatItem->setContentWidgetData("items", repeatChoices);
hgs
parents: 45
diff changeset
   127
		mRepeatItem->setContentWidgetData("objectName", "repeatItem");
23
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   128
		mCalenEditorModel->appendDataFormItem( mRepeatItem,
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   129
									mCalenEditorModel->invisibleRootItem());
51
hgs
parents: 45
diff changeset
   130
	OstTraceFunctionExit0( CALENEDITORREPEATFIELD_CALENEDITORREPEATFIELD_EXIT );
23
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   131
}
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   132
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   133
/*!
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   134
 Destructor
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   135
 */
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   136
CalenEditorRepeatField::~CalenEditorRepeatField()
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   137
{
51
hgs
parents: 45
diff changeset
   138
	OstTraceFunctionEntry0( DUP1_CALENEDITORREPEATFIELD_CALENEDITORREPEATFIELD_ENTRY );
23
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   139
	// Nothing Yet
51
hgs
parents: 45
diff changeset
   140
	OstTraceFunctionExit0( DUP1_CALENEDITORREPEATFIELD_CALENEDITORREPEATFIELD_EXIT );
23
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   141
}
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   142
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   143
/*!
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   144
	Adds repeat item to the model
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   145
 */
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   146
void CalenEditorRepeatField::addItemToModel()
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   147
{	
51
hgs
parents: 45
diff changeset
   148
	OstTraceFunctionEntry0( CALENEDITORREPEATFIELD_ADDITEMTOMODEL_ENTRY );
23
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   149
	// Add reminder to the model
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   150
	mCalenEditorModel->appendDataFormItem( mRepeatItem,
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   151
				   mCalenEditorModel->invisibleRootItem());
51
hgs
parents: 45
diff changeset
   152
	OstTraceFunctionExit0( CALENEDITORREPEATFIELD_ADDITEMTOMODEL_EXIT );
23
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   153
}
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   154
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   155
/*!
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   156
	Removes the repeat item from the model
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   157
 */
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   158
void CalenEditorRepeatField::removeItemFromModel()
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   159
{
51
hgs
parents: 45
diff changeset
   160
	OstTraceFunctionEntry0( CALENEDITORREPEATFIELD_REMOVEITEMFROMMODEL_ENTRY );
23
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   161
	mCalenEditorModel->removeItem(modelIndex());
51
hgs
parents: 45
diff changeset
   162
	OstTraceFunctionExit0( CALENEDITORREPEATFIELD_REMOVEITEMFROMMODEL_EXIT );
23
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   163
}
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   164
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   165
/*!
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   166
	 Populates repeat item with the options available
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   167
	 \param index index at which repeat item needs to be added
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   168
 */
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   169
void CalenEditorRepeatField::populateRepeatItem(int index)
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   170
{
51
hgs
parents: 45
diff changeset
   171
	OstTraceFunctionEntry0( CALENEDITORREPEATFIELD_POPULATEREPEATITEM_ENTRY );
23
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   172
	HbDataFormViewItem
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   173
			*item =
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   174
					qobject_cast<HbDataFormViewItem *> (
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   175
							mEditorForm->itemByIndex(
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   176
										mCalenEditorModel->index( index, 0)));
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   177
	mRepeatComboBox
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   178
			= qobject_cast<HbComboBox *> (item->dataItemContentWidget());
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   179
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   180
	// Set the user roles for the combobox items so that we depend on these
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   181
	// roles to identify the correct repeat type when repeat choices are 
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   182
	// dynamically removed or added
45
hgs
parents: 23
diff changeset
   183
	mRepeatComboBox->setItemData(RepeatOnce, RepeatOnce, userRole);
hgs
parents: 23
diff changeset
   184
	mRepeatComboBox->setItemData(RepeatDaily, RepeatDaily, userRole);
23
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   185
	mRepeatComboBox->setItemData(RepeatWorkdays, 
45
hgs
parents: 23
diff changeset
   186
								 RepeatWorkdays, userRole);
hgs
parents: 23
diff changeset
   187
	mRepeatComboBox->setItemData(RepeatWeekly, RepeatWeekly, userRole);
23
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   188
	mRepeatComboBox->setItemData(RepeatBiWeekly, 
45
hgs
parents: 23
diff changeset
   189
								 RepeatBiWeekly, userRole);
23
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   190
	mRepeatComboBox->setItemData(RepeatMonthly, 
45
hgs
parents: 23
diff changeset
   191
								 RepeatMonthly, userRole);
hgs
parents: 23
diff changeset
   192
	mRepeatComboBox->setItemData(RepeatYearly, RepeatYearly, userRole);
23
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   193
	
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   194
	if (mCalenEditor->editedEntry()->isRepeating()) {
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   195
		switch (mCalenEditor->editedEntry()->repeatRule().type()) {
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   196
			case AgendaRepeatRule::DailyRule: {
55
hgs
parents: 51
diff changeset
   197
				mRepeatComboBox->setCurrentIndex(DailyRole);
23
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   198
			}
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   199
				break;
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   200
			case AgendaRepeatRule::WeeklyRule: {
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   201
				bool isWorkdays = AgendaUtil::isWorkdaysRepeatingEntry(
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   202
						mCalenEditor->editedEntry()->repeatRule());
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   203
				if (isWorkdays) {
55
hgs
parents: 51
diff changeset
   204
					mRepeatComboBox->setCurrentIndex(WorkdaysRole);
23
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   205
					mIsWorkdays = true;
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   206
				} else {
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   207
					if (mCalenEditor->editedEntry()->repeatRule().interval() == 1) {
55
hgs
parents: 51
diff changeset
   208
						mRepeatComboBox->setCurrentIndex(WeeklyRole);
23
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   209
					} else {
55
hgs
parents: 51
diff changeset
   210
						mRepeatComboBox->setCurrentIndex(BiWeeklyRole);
23
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   211
						mIsBiWeekly = true;
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   212
					}
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   213
				}
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   214
			}
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   215
				break;
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   216
			case AgendaRepeatRule::MonthlyRule: {
55
hgs
parents: 51
diff changeset
   217
				mRepeatComboBox->setCurrentIndex(MonthlyRole);
23
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   218
			}
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   219
				break;
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   220
			case AgendaRepeatRule::YearlyRule: {
55
hgs
parents: 51
diff changeset
   221
				mRepeatComboBox->setCurrentIndex(YearlyRole);
23
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   222
			}
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   223
				break;
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   224
			default:
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   225
				break;
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   226
		}
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   227
		// If entry is repeating type then insert the repeatuntil item.
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   228
		insertRepeatUntilItem();
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   229
	} else {
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   230
		mRepeatComboBox->setCurrentIndex(0);
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   231
		// Set the Original entry value also.
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   232
		mCalenEditor->originalEntry()->setRepeatRule(
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   233
									  AgendaRepeatRule(
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   234
									  AgendaRepeatRule::InvalidRule));
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   235
	}
57
hgs
parents: 55
diff changeset
   236
	// Connect the slot once the updation of mRepeatComboBox is done
hgs
parents: 55
diff changeset
   237
	connect(mRepeatComboBox, SIGNAL(currentIndexChanged(int)), this,
hgs
parents: 55
diff changeset
   238
				SLOT(handleRepeatIndexChanged(int)));
23
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   239
	// Update the repeat choices depending upon the duration
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   240
	updateRepeatChoices();
51
hgs
parents: 45
diff changeset
   241
	OstTraceFunctionExit0( CALENEDITORREPEATFIELD_POPULATEREPEATITEM_EXIT );
23
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   242
}
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   243
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   244
/*!
57
hgs
parents: 55
diff changeset
   245
	Removes the repeat until item from the model
hgs
parents: 55
diff changeset
   246
	and removed the connection for date picker launch too.
hgs
parents: 55
diff changeset
   247
 */
hgs
parents: 55
diff changeset
   248
void CalenEditorRepeatField::removeRepeatUntilItem()
hgs
parents: 55
diff changeset
   249
{
70
hgs
parents: 64
diff changeset
   250
	OstTraceFunctionEntry0( CALENEDITORREPEATFIELD_REMOVEREPEATUNTILITEM_ENTRY );
57
hgs
parents: 55
diff changeset
   251
	mRepeatRuleType = AgendaRepeatRule::InvalidRule;
hgs
parents: 55
diff changeset
   252
	if (mRepeatUntilItemAdded) {
hgs
parents: 55
diff changeset
   253
		mEditorForm->removeConnection(mCustomRepeatUntilItem, SIGNAL(clicked()),
hgs
parents: 55
diff changeset
   254
	                                this, SLOT(launchRepeatUntilDatePicker()));
hgs
parents: 55
diff changeset
   255
		QModelIndex repeatIndex =
hgs
parents: 55
diff changeset
   256
		        mCalenEditorModel->indexFromItem(mRepeatItem);
hgs
parents: 55
diff changeset
   257
		mCalenEditorModel->removeItem(
hgs
parents: 55
diff changeset
   258
		                              mCalenEditorModel->index(
hgs
parents: 55
diff changeset
   259
		                              repeatIndex.row()+ 1, 0));
hgs
parents: 55
diff changeset
   260
		mRepeatUntilItemAdded = false;
hgs
parents: 55
diff changeset
   261
		mCustomRepeatUntilItem = 0;
hgs
parents: 55
diff changeset
   262
	}
70
hgs
parents: 64
diff changeset
   263
	OstTraceFunctionExit0( CALENEDITORREPEATFIELD_REMOVEREPEATUNTILITEM_EXIT );
57
hgs
parents: 55
diff changeset
   264
}
hgs
parents: 55
diff changeset
   265
hgs
parents: 55
diff changeset
   266
/*!
23
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   267
	Triggerd from tapping on reminder item.
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   268
	Handles the reminder time change and updates the same in the event.
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   269
	\param index The new index chosen in the reminder list.
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   270
 */
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   271
void CalenEditorRepeatField::handleRepeatIndexChanged(int index)
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   272
{
51
hgs
parents: 45
diff changeset
   273
	OstTraceFunctionEntry0( CALENEDITORREPEATFIELD_HANDLEREPEATINDEXCHANGED_ENTRY );
23
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   274
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   275
	HbExtendedLocale locale = HbExtendedLocale::system();
45
hgs
parents: 23
diff changeset
   276
	// Get the user role we have set for this index
hgs
parents: 23
diff changeset
   277
	QVariant role = mRepeatComboBox->itemData(index, userRole);
hgs
parents: 23
diff changeset
   278
	int value = role.toInt();
57
hgs
parents: 55
diff changeset
   279
	
hgs
parents: 55
diff changeset
   280
	// Boolean to check if the repeating property of the entry is changed.
hgs
parents: 55
diff changeset
   281
	// based on the value and mRepeatUntilItemAdded
hgs
parents: 55
diff changeset
   282
	// ie. From repeating to non repeating OR vice versa OR No change
hgs
parents: 55
diff changeset
   283
	bool repeatPropertyChange = false;
hgs
parents: 55
diff changeset
   284
	if (value > 0 && value <= 6 && !mRepeatUntilItemAdded) {
hgs
parents: 55
diff changeset
   285
		// Non repeating to repeating
hgs
parents: 55
diff changeset
   286
		repeatPropertyChange = true;
hgs
parents: 55
diff changeset
   287
	}else if(mRepeatUntilItemAdded && value == 0) {
hgs
parents: 55
diff changeset
   288
		// Repeating to non repeating
hgs
parents: 55
diff changeset
   289
		repeatPropertyChange = true;
hgs
parents: 55
diff changeset
   290
	}else {
hgs
parents: 55
diff changeset
   291
		// No change in repeat value
hgs
parents: 55
diff changeset
   292
		repeatPropertyChange = false;
hgs
parents: 55
diff changeset
   293
	}
hgs
parents: 55
diff changeset
   294
	QDate repeatUntilDate = mRepeatUntilDate;
70
hgs
parents: 64
diff changeset
   295
	int itemIndex = CalenEditorPrivate::RepeatUntilItem;
hgs
parents: 64
diff changeset
   296
	if (!mCalenEditor->isReminderTimeForAllDayAdded()) {
hgs
parents: 64
diff changeset
   297
		itemIndex -= 1;
hgs
parents: 64
diff changeset
   298
	}
63
hgs
parents: 57
diff changeset
   299
	// Update the repeat type only if its has been changed
hgs
parents: 57
diff changeset
   300
	// ie. if the previous repeatrole is different from the current repeat role
hgs
parents: 57
diff changeset
   301
	if (value != mRepeatRoleValue) {
hgs
parents: 57
diff changeset
   302
		mRepeatRoleValue = value;
70
hgs
parents: 64
diff changeset
   303
		mIsBiWeekly = false;
hgs
parents: 64
diff changeset
   304
		mIsWorkdays = false;
63
hgs
parents: 57
diff changeset
   305
		switch (value) {
hgs
parents: 57
diff changeset
   306
			case DailyRole: {
hgs
parents: 57
diff changeset
   307
				if (!mRepeatUntilItemAdded) {
hgs
parents: 57
diff changeset
   308
					insertRepeatUntilItem();
hgs
parents: 57
diff changeset
   309
				}
hgs
parents: 57
diff changeset
   310
				if (mCustomRepeatUntilItem) {
hgs
parents: 57
diff changeset
   311
					// Show default repeat until date till one year for daily rule 
hgs
parents: 57
diff changeset
   312
					mRepeatUntilDate = 
hgs
parents: 57
diff changeset
   313
						mCalenEditor->editedEntry()->startTime().date().addYears(1);
hgs
parents: 57
diff changeset
   314
					mCustomRepeatUntilItem->setContentWidgetData( "text", 
hgs
parents: 57
diff changeset
   315
						locale.format( 
hgs
parents: 57
diff changeset
   316
								mRepeatUntilDate, r_qtn_date_usual_with_zero));
hgs
parents: 57
diff changeset
   317
				}
hgs
parents: 57
diff changeset
   318
				mRepeatRuleType = AgendaRepeatRule::DailyRule;
23
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   319
			}
63
hgs
parents: 57
diff changeset
   320
			break;
hgs
parents: 57
diff changeset
   321
			case WorkdaysRole: {
hgs
parents: 57
diff changeset
   322
				if (!mRepeatUntilItemAdded) {
hgs
parents: 57
diff changeset
   323
					insertRepeatUntilItem();
hgs
parents: 57
diff changeset
   324
				}
hgs
parents: 57
diff changeset
   325
				if (mCustomRepeatUntilItem) {
hgs
parents: 57
diff changeset
   326
					// Show default repeat until date till one year for workdays rule
hgs
parents: 57
diff changeset
   327
					mRepeatUntilDate = 
hgs
parents: 57
diff changeset
   328
						mCalenEditor->editedEntry()->startTime().date().addYears(1);
hgs
parents: 57
diff changeset
   329
					mCustomRepeatUntilItem->setContentWidgetData( "text",
hgs
parents: 57
diff changeset
   330
						locale.format( 
hgs
parents: 57
diff changeset
   331
								mRepeatUntilDate, r_qtn_date_usual_with_zero));
hgs
parents: 57
diff changeset
   332
				}
hgs
parents: 57
diff changeset
   333
				mRepeatRuleType = AgendaRepeatRule::WeeklyRule;
hgs
parents: 57
diff changeset
   334
				mIsWorkdays = true;
23
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   335
			}
63
hgs
parents: 57
diff changeset
   336
			break;
hgs
parents: 57
diff changeset
   337
			case WeeklyRole: {
hgs
parents: 57
diff changeset
   338
				if (!mRepeatUntilItemAdded) {
hgs
parents: 57
diff changeset
   339
					insertRepeatUntilItem();
hgs
parents: 57
diff changeset
   340
				}
hgs
parents: 57
diff changeset
   341
				if (mCustomRepeatUntilItem) {
hgs
parents: 57
diff changeset
   342
					// Show default repeat until date till one year for weekly rule
hgs
parents: 57
diff changeset
   343
					mRepeatUntilDate = 
hgs
parents: 57
diff changeset
   344
						mCalenEditor->editedEntry()->startTime().date().addYears(1);
hgs
parents: 57
diff changeset
   345
					mCustomRepeatUntilItem->setContentWidgetData( "text",
hgs
parents: 57
diff changeset
   346
						locale.format( 
hgs
parents: 57
diff changeset
   347
								mRepeatUntilDate, r_qtn_date_usual_with_zero));
hgs
parents: 57
diff changeset
   348
				}
hgs
parents: 57
diff changeset
   349
				mRepeatRuleType = AgendaRepeatRule::WeeklyRule;
23
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   350
			}
63
hgs
parents: 57
diff changeset
   351
			break;
hgs
parents: 57
diff changeset
   352
			case BiWeeklyRole: {
hgs
parents: 57
diff changeset
   353
				if (!mRepeatUntilItemAdded) {
hgs
parents: 57
diff changeset
   354
					insertRepeatUntilItem();
hgs
parents: 57
diff changeset
   355
				}
hgs
parents: 57
diff changeset
   356
				if (mCustomRepeatUntilItem) {
hgs
parents: 57
diff changeset
   357
					// Show default repeat until date till one year for bi-weekly rule
hgs
parents: 57
diff changeset
   358
					mRepeatUntilDate = 
hgs
parents: 57
diff changeset
   359
						mCalenEditor->editedEntry()->startTime().date().addYears(1);
hgs
parents: 57
diff changeset
   360
					mCustomRepeatUntilItem->setContentWidgetData( "text",
hgs
parents: 57
diff changeset
   361
						locale.format( 
hgs
parents: 57
diff changeset
   362
							mRepeatUntilDate, r_qtn_date_usual_with_zero));
hgs
parents: 57
diff changeset
   363
				}
hgs
parents: 57
diff changeset
   364
				mRepeatRuleType = AgendaRepeatRule::WeeklyRule;
hgs
parents: 57
diff changeset
   365
				mIsBiWeekly = true;
23
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   366
			}
63
hgs
parents: 57
diff changeset
   367
			break;
hgs
parents: 57
diff changeset
   368
			case MonthlyRole: {
hgs
parents: 57
diff changeset
   369
				if (!mRepeatUntilItemAdded) {
hgs
parents: 57
diff changeset
   370
					insertRepeatUntilItem();
hgs
parents: 57
diff changeset
   371
				}
hgs
parents: 57
diff changeset
   372
				if (mCustomRepeatUntilItem) {
hgs
parents: 57
diff changeset
   373
					// Show default repeat until date till one year for monthly rule
hgs
parents: 57
diff changeset
   374
					mRepeatUntilDate = 
hgs
parents: 57
diff changeset
   375
						mCalenEditor->editedEntry()->startTime().date().addYears(1);
hgs
parents: 57
diff changeset
   376
					mCustomRepeatUntilItem->setContentWidgetData( "text",
hgs
parents: 57
diff changeset
   377
						locale.format(
hgs
parents: 57
diff changeset
   378
								mRepeatUntilDate, r_qtn_date_usual_with_zero));
hgs
parents: 57
diff changeset
   379
				}
hgs
parents: 57
diff changeset
   380
				mRepeatRuleType = AgendaRepeatRule::MonthlyRule;
23
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   381
			}
63
hgs
parents: 57
diff changeset
   382
			break;
hgs
parents: 57
diff changeset
   383
			case YearlyRole: {
hgs
parents: 57
diff changeset
   384
				if (!mRepeatUntilItemAdded) {
hgs
parents: 57
diff changeset
   385
					insertRepeatUntilItem();
hgs
parents: 57
diff changeset
   386
				}
hgs
parents: 57
diff changeset
   387
				if (mCustomRepeatUntilItem) {
hgs
parents: 57
diff changeset
   388
					// Show default repeat until date till ten years for yearly rule
hgs
parents: 57
diff changeset
   389
					mRepeatUntilDate = 
hgs
parents: 57
diff changeset
   390
						mCalenEditor->editedEntry()->startTime().date().addYears(10);
hgs
parents: 57
diff changeset
   391
					mCustomRepeatUntilItem->setContentWidgetData( "text",
hgs
parents: 57
diff changeset
   392
						locale.format(
hgs
parents: 57
diff changeset
   393
							mRepeatUntilDate, r_qtn_date_usual_with_zero));
hgs
parents: 57
diff changeset
   394
				}
hgs
parents: 57
diff changeset
   395
				mRepeatRuleType = AgendaRepeatRule::YearlyRule;
23
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   396
			}
63
hgs
parents: 57
diff changeset
   397
			break;
hgs
parents: 57
diff changeset
   398
			default: {
hgs
parents: 57
diff changeset
   399
				removeRepeatUntilItem();
hgs
parents: 57
diff changeset
   400
			}
hgs
parents: 57
diff changeset
   401
			break;
23
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   402
		}
57
hgs
parents: 55
diff changeset
   403
	}
45
hgs
parents: 23
diff changeset
   404
	if(!mCalenEditor->isNewEntry()) {
hgs
parents: 23
diff changeset
   405
		mCalenEditor->addDiscardAction();
hgs
parents: 23
diff changeset
   406
	}
57
hgs
parents: 55
diff changeset
   407
	// Depending on repeatPropertyChange value and the repeatuntil date change 
hgs
parents: 55
diff changeset
   408
	// the reminder choices are updated 
hgs
parents: 55
diff changeset
   409
	if(repeatPropertyChange || repeatUntilDate != mRepeatUntilDate) {
hgs
parents: 55
diff changeset
   410
		mCalenEditor->updateReminderChoices();
70
hgs
parents: 64
diff changeset
   411
hgs
parents: 64
diff changeset
   412
		// Once the entry is changed from  non repeating to repeating we scroll to the repeat until item.
hgs
parents: 64
diff changeset
   413
		if(repeatPropertyChange && mRepeatUntilItemAdded) {
hgs
parents: 64
diff changeset
   414
			mEditorForm->scrollTo(mCalenEditorModel->index(itemIndex, 0), HbAbstractItemView::EnsureVisible);
hgs
parents: 64
diff changeset
   415
			
hgs
parents: 64
diff changeset
   416
			// Once the entry is changed from  non repeating to repeating 
hgs
parents: 64
diff changeset
   417
			// and if the alarm set is off 
hgs
parents: 64
diff changeset
   418
			// Then change the reminder option to the default 'one day before' 
hgs
parents: 64
diff changeset
   419
			// if the option is valid
hgs
parents: 64
diff changeset
   420
			if (mCalenEditor->isAllDayEvent()) {
hgs
parents: 64
diff changeset
   421
				if(!mCalenEditor->isReminderTimeForAllDayAdded() &&
hgs
parents: 64
diff changeset
   422
						mCalenEditor->getReminderCount() >= 3) {
hgs
parents: 64
diff changeset
   423
					mCalenEditor->setCurrentIndexOfReminderField(
64
1881ad52dc45 201033_03
hgs
parents: 63
diff changeset
   424
							CalenEditorReminderField::ReminderOneDayBefore);
70
hgs
parents: 64
diff changeset
   425
				}
64
1881ad52dc45 201033_03
hgs
parents: 63
diff changeset
   426
			}
1881ad52dc45 201033_03
hgs
parents: 63
diff changeset
   427
		}
57
hgs
parents: 55
diff changeset
   428
	}
51
hgs
parents: 45
diff changeset
   429
	OstTraceFunctionExit0( CALENEDITORREPEATFIELD_HANDLEREPEATINDEXCHANGED_EXIT );
23
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   430
}
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   431
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   432
/*!
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   433
	 Returns model index of the repeat item
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   434
	 \return Model index of the repeat item
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   435
 */
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   436
QModelIndex CalenEditorRepeatField::modelIndex()
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   437
{
51
hgs
parents: 45
diff changeset
   438
	OstTraceFunctionEntry0( CALENEDITORREPEATFIELD_MODELINDEX_ENTRY );
23
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   439
	return mCalenEditorModel->indexFromItem(mRepeatItem);
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   440
}
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   441
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   442
/*!
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   443
	Inserts the repeat until item to the dataform model
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   444
 */
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   445
void CalenEditorRepeatField::insertRepeatUntilItem()
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   446
{
51
hgs
parents: 45
diff changeset
   447
	OstTraceFunctionEntry0( CALENEDITORREPEATFIELD_INSERTREPEATUNTILITEM_ENTRY );
23
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   448
	HbDataFormModelItem::DataItemType itemType =
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   449
	        static_cast<HbDataFormModelItem::DataItemType> (RepeatUntilOffset);
45
hgs
parents: 23
diff changeset
   450
	
hgs
parents: 23
diff changeset
   451
	int index = CalenEditorPrivate::RepeatUntilItem;
hgs
parents: 23
diff changeset
   452
	if (!mCalenEditor->isReminderTimeForAllDayAdded()) {
hgs
parents: 23
diff changeset
   453
		index -= 1;
hgs
parents: 23
diff changeset
   454
	}
23
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   455
	mCustomRepeatUntilItem = mCalenEditorModel->insertDataFormItem(
45
hgs
parents: 23
diff changeset
   456
										index,
23
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   457
										itemType,
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   458
										QString(
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   459
										hbTrId(
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   460
										"txt_calendar_setlabel_repeat_until")),
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   461
										mCalenEditorModel->invisibleRootItem());
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   462
	mRepeatUntilItemAdded = true;
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   463
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   464
	mEditorForm->addConnection(mCustomRepeatUntilItem, SIGNAL(clicked()),
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   465
	                                this, SLOT(launchRepeatUntilDatePicker()));
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   466
	if (!mCalenEditor->isNewEntry() && mRepeatRuleType != AgendaRepeatRule::InvalidRule) {
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   467
		HbExtendedLocale locale = HbExtendedLocale::system();
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   468
		QString dateString = locale.format(
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   469
				mCalenEditor->editedEntry()->repeatRule().until().date(),
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   470
				r_qtn_date_usual_with_zero);
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   471
		mCustomRepeatUntilItem->setContentWidgetData("text", dateString);
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   472
	}
51
hgs
parents: 45
diff changeset
   473
	OstTraceFunctionExit0( CALENEDITORREPEATFIELD_INSERTREPEATUNTILITEM_EXIT );
23
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   474
}
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   475
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   476
/*!
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   477
	 Informs if repeat until item has been added or not
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   478
	 \return true if repeat until item is added else false
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   479
 */
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   480
bool CalenEditorRepeatField::isRepeatUntilItemAdded()
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   481
{
51
hgs
parents: 45
diff changeset
   482
	OstTraceFunctionEntry0( CALENEDITORREPEATFIELD_ISREPEATUNTILITEMADDED_ENTRY );
hgs
parents: 45
diff changeset
   483
	OstTraceFunctionExit0( CALENEDITORREPEATFIELD_ISREPEATUNTILITEMADDED_EXIT );
23
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   484
	return mRepeatUntilItemAdded;
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   485
}
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   486
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   487
/*!
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   488
	Launches the date picker by tapping on the repaet until pushbutton
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   489
 */
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   490
void CalenEditorRepeatField::launchRepeatUntilDatePicker()
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   491
{
51
hgs
parents: 45
diff changeset
   492
	OstTraceFunctionEntry0( CALENEDITORREPEATFIELD_LAUNCHREPEATUNTILDATEPICKER_ENTRY );
75
hgs
parents: 70
diff changeset
   493
	QDate minDate;
45
hgs
parents: 23
diff changeset
   494
	HbDialog *popUp = new HbDialog();
70
hgs
parents: 64
diff changeset
   495
	// Set the parent for the dialog
hgs
parents: 64
diff changeset
   496
	// Once the parent object is deleted the dialog will also be deleted
hgs
parents: 64
diff changeset
   497
	popUp->setParent(this);
45
hgs
parents: 23
diff changeset
   498
	popUp->setDismissPolicy(HbDialog::NoDismiss);
hgs
parents: 23
diff changeset
   499
	popUp->setTimeout(HbDialog::NoTimeout);
hgs
parents: 23
diff changeset
   500
	popUp->setHeadingWidget( new HbLabel(
hgs
parents: 23
diff changeset
   501
									hbTrId("txt_calendar_title_repeat_until")));
hgs
parents: 23
diff changeset
   502
	popUp->setAttribute( Qt::WA_DeleteOnClose, true );
hgs
parents: 23
diff changeset
   503
	
23
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   504
	if (mDatePicker) {
55
hgs
parents: 51
diff changeset
   505
		mDatePicker = 0;
23
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   506
	}
75
hgs
parents: 70
diff changeset
   507
	mDatePicker = new HbDateTimePicker(mRepeatUntilDate, popUp);
hgs
parents: 70
diff changeset
   508
23
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   509
	if (mRepeatRuleType == AgendaRepeatRule::DailyRule) {
75
hgs
parents: 70
diff changeset
   510
		minDate = mCalenEditor->editedEntry()->endTime().date().addDays(1);
23
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   511
	} else if (mRepeatRuleType == AgendaRepeatRule::WeeklyRule) {
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   512
		if (!mIsBiWeekly || mIsWorkdays) {
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   513
			minDate = mCalenEditor->editedEntry()->endTime().date().addDays(7);
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   514
		} else {
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   515
			minDate = mCalenEditor->editedEntry()->endTime().date().addDays(14);
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   516
		}
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   517
	} else if (mRepeatRuleType == AgendaRepeatRule::MonthlyRule) {
75
hgs
parents: 70
diff changeset
   518
		minDate = mCalenEditor->editedEntry()->endTime().date().addMonths(1);
23
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   519
	} else if (mRepeatRuleType == AgendaRepeatRule::YearlyRule) {
75
hgs
parents: 70
diff changeset
   520
		minDate = mCalenEditor->editedEntry()->endTime().date().addYears(1);
23
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   521
	}
75
hgs
parents: 70
diff changeset
   522
	
hgs
parents: 70
diff changeset
   523
	mDatePicker->setMinimumDate(minDate);
hgs
parents: 70
diff changeset
   524
	mDatePicker->setMaximumDate(CalenDateUtils::maxTime().date());
hgs
parents: 70
diff changeset
   525
	mDatePicker->setDisplayFormat(CalenDateUtils::dateFormatString());
hgs
parents: 70
diff changeset
   526
	mDatePicker->setDate(mRepeatUntilDate);
45
hgs
parents: 23
diff changeset
   527
	popUp->setContentWidget(mDatePicker);
hgs
parents: 23
diff changeset
   528
	
23
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   529
	HbAction *okAction = new HbAction(hbTrId("txt_common_button_ok"));
45
hgs
parents: 23
diff changeset
   530
	popUp->addAction(okAction);
23
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   531
	connect(okAction, SIGNAL(triggered()), this, SLOT(setRepeatUntilDate()));
45
hgs
parents: 23
diff changeset
   532
	popUp->addAction(new HbAction(hbTrId("txt_common_button_cancel"), popUp));
hgs
parents: 23
diff changeset
   533
	popUp->open();
51
hgs
parents: 45
diff changeset
   534
	OstTraceFunctionExit0( CALENEDITORREPEATFIELD_LAUNCHREPEATUNTILDATEPICKER_EXIT );
23
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   535
}
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   536
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   537
/*!
75
hgs
parents: 70
diff changeset
   538
	Refreshes the repeat until date picker when locale with proper date format
hgs
parents: 70
diff changeset
   539
 */
hgs
parents: 70
diff changeset
   540
void CalenEditorRepeatField::refreshRepeatUntilDate()
hgs
parents: 70
diff changeset
   541
{
hgs
parents: 70
diff changeset
   542
	HbExtendedLocale locale = HbExtendedLocale::system();
hgs
parents: 70
diff changeset
   543
        QString dateString = locale.format(mRepeatUntilDate,
hgs
parents: 70
diff changeset
   544
                                r_qtn_date_usual_with_zero);
hgs
parents: 70
diff changeset
   545
        mCustomRepeatUntilItem->setContentWidgetData("text", dateString);
hgs
parents: 70
diff changeset
   546
     
hgs
parents: 70
diff changeset
   547
        if(!(mDatePicker.isNull())) {
hgs
parents: 70
diff changeset
   548
		mDatePicker->setDisplayFormat(CalenDateUtils::dateFormatString());
hgs
parents: 70
diff changeset
   549
		mDatePicker->setDate(mRepeatUntilDate);
hgs
parents: 70
diff changeset
   550
	}
hgs
parents: 70
diff changeset
   551
}
hgs
parents: 70
diff changeset
   552
/*!
23
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   553
	Sets the repeat until date on the repeat until item
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   554
 */
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   555
void CalenEditorRepeatField::setRepeatUntilDate()
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   556
{
51
hgs
parents: 45
diff changeset
   557
	OstTraceFunctionEntry0( CALENEDITORREPEATFIELD_SETREPEATUNTILDATE_ENTRY );
64
1881ad52dc45 201033_03
hgs
parents: 63
diff changeset
   558
	//Get the previous date which was set
1881ad52dc45 201033_03
hgs
parents: 63
diff changeset
   559
	QDate previousDate = mRepeatUntilDate;
75
hgs
parents: 70
diff changeset
   560
	 mRepeatUntilDate = mDatePicker->date();
hgs
parents: 70
diff changeset
   561
         if (mRepeatUntilDate.isValid()) 
hgs
parents: 70
diff changeset
   562
		refreshRepeatUntilDate();
45
hgs
parents: 23
diff changeset
   563
	mCalenEditor->updateReminderChoices();
64
1881ad52dc45 201033_03
hgs
parents: 63
diff changeset
   564
	// If the entry's  repeatuntil date is changed from past to a future date
1881ad52dc45 201033_03
hgs
parents: 63
diff changeset
   565
	// And if the alarm set set is off 
1881ad52dc45 201033_03
hgs
parents: 63
diff changeset
   566
	// Then change the reminder option to the default 'one day before' 
1881ad52dc45 201033_03
hgs
parents: 63
diff changeset
   567
	// if the option is valid
1881ad52dc45 201033_03
hgs
parents: 63
diff changeset
   568
	if (mCalenEditor->isAllDayEvent() && previousDate <= QDate::currentDate()) {
1881ad52dc45 201033_03
hgs
parents: 63
diff changeset
   569
		if(mRepeatUntilDate > QDate::currentDate() && 
1881ad52dc45 201033_03
hgs
parents: 63
diff changeset
   570
							!mCalenEditor->isReminderTimeForAllDayAdded() &&
1881ad52dc45 201033_03
hgs
parents: 63
diff changeset
   571
							 mCalenEditor->getReminderCount() >= 3) {
1881ad52dc45 201033_03
hgs
parents: 63
diff changeset
   572
			mCalenEditor->setCurrentIndexOfReminderField(
1881ad52dc45 201033_03
hgs
parents: 63
diff changeset
   573
							CalenEditorReminderField::ReminderOneDayBefore);
1881ad52dc45 201033_03
hgs
parents: 63
diff changeset
   574
		}
1881ad52dc45 201033_03
hgs
parents: 63
diff changeset
   575
	}
51
hgs
parents: 45
diff changeset
   576
	OstTraceFunctionExit0( CALENEDITORREPEATFIELD_SETREPEATUNTILDATE_EXIT );
45
hgs
parents: 23
diff changeset
   577
}
hgs
parents: 23
diff changeset
   578
hgs
parents: 23
diff changeset
   579
/*!
hgs
parents: 23
diff changeset
   580
	Returns the repeatuntildate displayed.
hgs
parents: 23
diff changeset
   581
 */
hgs
parents: 23
diff changeset
   582
QDate CalenEditorRepeatField::repeatUntilDate()
hgs
parents: 23
diff changeset
   583
{
51
hgs
parents: 45
diff changeset
   584
	OstTraceFunctionEntry0( CALENEDITORREPEATFIELD_REPEATUNTILDATE_ENTRY );
hgs
parents: 45
diff changeset
   585
	OstTraceFunctionExit0( CALENEDITORREPEATFIELD_REPEATUNTILDATE_EXIT );
45
hgs
parents: 23
diff changeset
   586
	return mRepeatUntilDate;
23
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   587
}
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   588
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   589
/*!
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   590
	Updates the repeat choices depending on the meeting duration
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   591
*/
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   592
void CalenEditorRepeatField::updateRepeatChoices()
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   593
{
51
hgs
parents: 45
diff changeset
   594
    OstTraceFunctionEntry0( CALENEDITORREPEATFIELD_UPDATEREPEATCHOICES_ENTRY );
45
hgs
parents: 23
diff changeset
   595
    if (!mRepeatComboBox) {
51
hgs
parents: 45
diff changeset
   596
        OstTraceFunctionExit0( CALENEDITORREPEATFIELD_UPDATEREPEATCHOICES_EXIT );
45
hgs
parents: 23
diff changeset
   597
        return;
hgs
parents: 23
diff changeset
   598
    }
57
hgs
parents: 55
diff changeset
   599
	// Disconnect the slot and connect it back again at end to avoid unnecessary
hgs
parents: 55
diff changeset
   600
	// calls to handleRepeatIndexChanged slot. Or else the slot gets called 
hgs
parents: 55
diff changeset
   601
	// when we add all of items to the repeat combobox.
hgs
parents: 55
diff changeset
   602
	disconnect(mRepeatComboBox, SIGNAL(currentIndexChanged(int)), this,
hgs
parents: 55
diff changeset
   603
				SLOT(handleRepeatIndexChanged(int)));
23
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   604
	// Clear all the choices and add it again. If we dont do it 
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   605
	// as user would have changed the end times many times and we would have
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   606
	// deleted repeat options depending upon that
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   607
	// Get the current choice
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   608
	int choice = mRepeatComboBox->currentIndex();
57
hgs
parents: 55
diff changeset
   609
	
hgs
parents: 55
diff changeset
   610
	QVariant role = mRepeatComboBox->itemData(choice, userRole);
hgs
parents: 55
diff changeset
   611
	mRepeatRoleValue = role.toInt();
hgs
parents: 55
diff changeset
   612
	
23
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   613
	int previousCount = mRepeatComboBox->count();
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   614
	mRepeatComboBox->clear();
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   615
	QStringList repeatChoices;
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   616
	repeatChoices << hbTrId("txt_calendar_setlabel_repeat_val_only_once")
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   617
			<< hbTrId("txt_calendar_setlabel_repeat_val_daily")
45
hgs
parents: 23
diff changeset
   618
			<< hbTrId("txt_calendar_setlabel_repeat_val_workdays")
23
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   619
			<< hbTrId("txt_calendar_setlabel_repeat_val_weekly")
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   620
			<< hbTrId("txt_calendar_setlabel_repeat_val_fortnightly")
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   621
			<< hbTrId("txt_calendar_setlabel_repeat_val_monthly")
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   622
			<< hbTrId("txt_calendar_setlabel_repeat_val_yearly");
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   623
	mRepeatComboBox->addItems(repeatChoices);
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   624
	// Set the user roles for the combobox items so that we depend on these
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   625
	// roles to identify the correct repeat type when repeat choices are 
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   626
	// dynamically removed or added
45
hgs
parents: 23
diff changeset
   627
	mRepeatComboBox->setItemData(RepeatOnce, RepeatOnce, userRole);
23
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   628
	mRepeatComboBox->setItemData(RepeatDaily, RepeatDaily, 
45
hgs
parents: 23
diff changeset
   629
	                             userRole);
23
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   630
	mRepeatComboBox->setItemData(RepeatWorkdays, 
45
hgs
parents: 23
diff changeset
   631
								 RepeatWorkdays, userRole);
23
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   632
	mRepeatComboBox->setItemData(RepeatWeekly, RepeatWeekly,
45
hgs
parents: 23
diff changeset
   633
	                             userRole);
23
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   634
	mRepeatComboBox->setItemData(RepeatBiWeekly, RepeatBiWeekly,
45
hgs
parents: 23
diff changeset
   635
	                             userRole);
23
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   636
	mRepeatComboBox->setItemData(RepeatMonthly, RepeatMonthly,
45
hgs
parents: 23
diff changeset
   637
	                             userRole);
23
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   638
	mRepeatComboBox->setItemData(RepeatYearly, RepeatYearly, 
45
hgs
parents: 23
diff changeset
   639
	                             userRole);
23
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   640
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   641
	int totalCount = mRepeatComboBox->count();
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   642
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   643
	if (previousCount < totalCount && choice > 0) {
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   644
		choice += (totalCount - previousCount);
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   645
	}
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   646
	// Now check if the duration of the meeting and remove the repeat choices 
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   647
	// if necessary
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   648
	int duration =
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   649
			mCalenEditor->editedEntry()->startTime().daysTo(
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   650
					mCalenEditor->editedEntry()->endTime());
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   651
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   652
	bool isRemovedItem = false;
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   653
	int numberOfItemRemoved = 0;
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   654
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   655
	if (mCalenEditor->editedEntry()->endTime() >= (mCalenEditor->editedEntry()->startTime().addYears(1))) {
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   656
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   657
		isRemovedItem = true;
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   658
		numberOfItemRemoved = 6;
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   659
		// Remove all options except "RepeatOnce"
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   660
		// Should be deletd in the descending order only
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   661
		mRepeatComboBox->removeItem(RepeatYearly);
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   662
		mRepeatComboBox->removeItem(RepeatMonthly);
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   663
		mRepeatComboBox->removeItem(RepeatBiWeekly);
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   664
		mRepeatComboBox->removeItem(RepeatWeekly);
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   665
		mRepeatComboBox->removeItem(RepeatWorkdays);
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   666
		mRepeatComboBox->removeItem(RepeatDaily);
57
hgs
parents: 55
diff changeset
   667
		//Remove the repeat until item too.
hgs
parents: 55
diff changeset
   668
		removeRepeatUntilItem();
23
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   669
	} else if (mCalenEditor->editedEntry()->endTime()
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   670
			>= (mCalenEditor->editedEntry()->startTime().addMonths(1))) {
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   671
		isRemovedItem = true;
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   672
		numberOfItemRemoved = 5;
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   673
		// Remove all the options except "Repeat Once"
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   674
		// and "Repeat Yearly" options
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   675
		// Should be deletd in the descending order only
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   676
		mRepeatComboBox->removeItem(RepeatMonthly);
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   677
		mRepeatComboBox->removeItem(RepeatBiWeekly);
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   678
		mRepeatComboBox->removeItem(RepeatWeekly);
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   679
		mRepeatComboBox->removeItem(RepeatWorkdays);
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   680
		mRepeatComboBox->removeItem(RepeatDaily);
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   681
	} else if (duration >= 14) {
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   682
		isRemovedItem = true;
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   683
		numberOfItemRemoved = 4;
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   684
		// Remove daily, workdays, weekly and biweekly options
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   685
		// Should be deletd in the descending order only
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   686
		mRepeatComboBox->removeItem(RepeatBiWeekly);
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   687
		mRepeatComboBox->removeItem(RepeatWeekly);
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   688
		mRepeatComboBox->removeItem(RepeatWorkdays);
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   689
		mRepeatComboBox->removeItem(RepeatDaily);
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   690
	} else if (duration >= 7) {
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   691
		isRemovedItem = true;
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   692
		numberOfItemRemoved = 3;
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   693
		// Remove daily, workdays and weekly options
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   694
		// Should be deletd in the descending order only
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   695
		mRepeatComboBox->removeItem(RepeatWeekly);
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   696
		mRepeatComboBox->removeItem(RepeatWorkdays);
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   697
		mRepeatComboBox->removeItem(RepeatDaily);
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   698
	} else if (duration >= 1) {
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   699
		isRemovedItem = true;
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   700
		numberOfItemRemoved = 2;
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   701
		// Remove daily and workdays option
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   702
		mRepeatComboBox->removeItem(RepeatWorkdays);
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   703
		mRepeatComboBox->removeItem(RepeatDaily);
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   704
	}
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   705
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   706
	if (isRemovedItem && choice > 0) {
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   707
		choice -= numberOfItemRemoved;
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   708
		if (choice <= 0)
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   709
			choice = 1;
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   710
	}
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   711
	int count = mRepeatComboBox->count();
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   712
	if (choice >= count) {
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   713
		choice = count - 1;
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   714
	}
57
hgs
parents: 55
diff changeset
   715
	
hgs
parents: 55
diff changeset
   716
	//Connecting back the slot for repeat index change before setting index.
hgs
parents: 55
diff changeset
   717
	connect(mRepeatComboBox, SIGNAL(currentIndexChanged(int)), this,
hgs
parents: 55
diff changeset
   718
				SLOT(handleRepeatIndexChanged(int)));
63
hgs
parents: 57
diff changeset
   719
	// By default the repeat combobox index will be 0
23
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   720
	// Set the previous user's choice
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   721
	mRepeatComboBox->setCurrentIndex(choice);
63
hgs
parents: 57
diff changeset
   722
	// If the previous user's choice is also zero, then slot 
hgs
parents: 57
diff changeset
   723
	// handleRepeatIndexChanged will not be called as 
hgs
parents: 57
diff changeset
   724
	// there is no change in current index
hgs
parents: 57
diff changeset
   725
	// So explicitly call updateReminderChoices to update the reminder choices
hgs
parents: 57
diff changeset
   726
	// for choice : 0 (Not repeated)
hgs
parents: 57
diff changeset
   727
	if(choice == 0) {
hgs
parents: 57
diff changeset
   728
		mCalenEditor->updateReminderChoices();
hgs
parents: 57
diff changeset
   729
	}
51
hgs
parents: 45
diff changeset
   730
	OstTraceFunctionExit0( DUP1_CALENEDITORREPEATFIELD_UPDATEREPEATCHOICES_EXIT );
23
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   731
}
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   732
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   733
/*!
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   734
	Save RepeatRule to the edited entry
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   735
 */
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   736
void CalenEditorRepeatField::saveRepeatRule()
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   737
{
51
hgs
parents: 45
diff changeset
   738
	OstTraceFunctionEntry0( CALENEDITORREPEATFIELD_SAVEREPEATRULE_ENTRY );
23
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   739
	// saves repeat type of entry.
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   740
	if (mRepeatRuleType != AgendaRepeatRule::InvalidRule) {
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   741
		AgendaRepeatRule repeatRule(mRepeatRuleType);
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   742
70
hgs
parents: 64
diff changeset
   743
		//Set the week start day in the repeat rule.
hgs
parents: 64
diff changeset
   744
		HbExtendedLocale locale = HbExtendedLocale::system();
hgs
parents: 64
diff changeset
   745
		AgendaRepeatRule::Day wkStart = (AgendaRepeatRule::Day)locale.startOfWeek();
hgs
parents: 64
diff changeset
   746
		repeatRule.setWeekStart(wkStart);
hgs
parents: 64
diff changeset
   747
23
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   748
		//TODO : Set the repeat from and to dates
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   749
		QVariant dateVariant =
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   750
				mCustomRepeatUntilItem->contentWidgetData("text");
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   751
		QString dateString = dateVariant.toString();
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   752
		QDate untilDate = QDate::fromString(dateString, "dd/MM/yyyy");
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   753
		repeatRule.setRepeatRuleStart(mCalenEditor->editedEntry()->startTime());
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   754
		repeatRule.setInterval(1);
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   755
		QDateTime repeatUntil(mRepeatUntilDate, 
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   756
							  QTime(mCalenEditor->editedEntry()->endTime().time()));
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   757
		repeatRule.setUntil(repeatUntil);
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   758
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   759
		// need to set the day for weekly & monthly repeat rule.
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   760
		if (mRepeatRuleType == AgendaRepeatRule::WeeklyRule) {
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   761
			if (mIsWorkdays) {
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   762
				mIsWorkdays = false;
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   763
				HbExtendedLocale locale = HbExtendedLocale::system();
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   764
				// 0(Sun)0(sat)1(Fri)1(Thu)1(Wed)1(Tue)1(Mon)
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   765
				QString workDaysString = locale.workDays();
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   766
				bool ok;
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   767
				int fixedNum = 1;
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   768
				int ruleday = 0;
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   769
				uint workDays = workDaysString.toUInt(&ok, 2);
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   770
				if (ok) {
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   771
					QList<AgendaRepeatRule::Day> weekDaysFromLocale;
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   772
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   773
					// "workDays" is a bit mask of seven bits indicating
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   774
					// (by being set) which days are workdays. 
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   775
					// The least significant bit corresponds to Monday,
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   776
					// the next bit to Tuesday and so on. 
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   777
					for (TInt i = 0; i < KNoOfDaysInWeek; i++) {
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   778
						ruleday = fixedNum << i;
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   779
						if (workDays & ruleday) {
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   780
							weekDaysFromLocale.append(
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   781
									(AgendaRepeatRule::Day) i);
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   782
							repeatRule.setByDay(weekDaysFromLocale);
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   783
						}
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   784
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   785
					}
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   786
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   787
				} else {
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   788
					mCalenEditor->editedEntry()->setRepeatRule(AgendaRepeatRule(
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   789
							AgendaRepeatRule::InvalidRule));
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   790
				}
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   791
			} else {
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   792
				QList<AgendaRepeatRule::Day> days;
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   793
				if (mIsBiWeekly) {
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   794
					repeatRule.setInterval(2);
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   795
					mIsBiWeekly = false;
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   796
				}
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   797
				int dayOfWeek =
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   798
						mCalenEditor->editedEntry()->startTime().date().dayOfWeek();
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   799
				days.append(AgendaRepeatRule::Day(dayOfWeek - 1));
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   800
				repeatRule.setByDay(days);
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   801
			}
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   802
		} else if (mRepeatRuleType == AgendaRepeatRule::MonthlyRule) {
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   803
			QList<int> monthDays;
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   804
			int dayNoInMonth = mCalenEditor->editedEntry()->startTime().date().day();
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   805
			monthDays.append(dayNoInMonth);
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   806
			repeatRule.setByMonthDay(monthDays);
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   807
		} else if (mRepeatRuleType == AgendaRepeatRule::YearlyRule) {
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   808
		}
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   809
		mCalenEditor->editedEntry()->setRepeatRule(repeatRule);
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   810
	} else {
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   811
		mCalenEditor->editedEntry()->setRepeatRule( AgendaRepeatRule(
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   812
											AgendaRepeatRule::InvalidRule));
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   813
	}
55
hgs
parents: 51
diff changeset
   814
	// TODO: Need to update rDates here for 10.2 if required
51
hgs
parents: 45
diff changeset
   815
	OstTraceFunctionExit0( CALENEDITORREPEATFIELD_SAVEREPEATRULE_EXIT );
23
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   816
}
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   817
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   818
// End of file	--Don't remove this.