9 * Initial Contributors: |
9 * Initial Contributors: |
10 * Nokia Corporation - initial contribution. |
10 * Nokia Corporation - initial contribution. |
11 * |
11 * |
12 * Contributors: |
12 * Contributors: |
13 * |
13 * |
14 * Description: Implementation of calendar context. |
14 * Description: Implementation of calendar context. |
15 * |
15 * |
16 */ |
16 */ |
|
17 |
17 |
18 |
18 |
19 |
19 #ifndef CALENCONTEXTIMPL_H |
20 #ifndef CALENCONTEXTIMPL_H |
20 #define CALENCONTEXTIMPL_H |
21 #define CALENCONTEXTIMPL_H |
21 |
22 |
22 // FORWARD DECLARATIONS |
23 // FORWARD DECLARATIONS |
23 class MCalenContextChangeObserver; |
24 class MCalenContextChangeObserver; |
24 |
25 |
25 // INCLUDES |
26 // INCLUDES |
26 #include "calencontext.h" |
27 #include <calencontext.h> |
27 #include "caleninstanceid.h" |
28 #include <caleninstanceid.h> // TCalenInstanceId |
|
29 #include <calentry.h> |
28 #include <vwsdef.h> |
30 #include <vwsdef.h> |
29 |
31 #include <EPos_CPosLandmark.h> |
30 #ifdef CALENGLOBALDATA_DLL |
|
31 #define CALENCONTEXTIMPL_EXPORT Q_DECL_EXPORT |
|
32 #else |
|
33 #define CALENCONTEXTIMPL_EXPORT Q_DECL_IMPORT |
|
34 #endif |
|
35 |
32 |
36 // CLASS DEFINITIONS |
33 // CLASS DEFINITIONS |
37 /** |
34 /** |
38 * The controller handles events from the rest of Calendar and delegates |
35 * The controller handles events from the rest of Calendar and delegates |
39 * them to the appropriate place (i.e. the action ui classes). |
36 * them to the appropriate place (i.e. the action ui classes). |
40 */ |
37 */ |
41 class CalenContextImpl : public MCalenContext |
38 class CCalenContextImpl : public CBase, public MCalenContext |
42 { |
39 { |
43 public: // Construction and destruction |
40 |
44 /** |
41 public: // Construction and destruction |
45 * The only reason this should be created outside of this dll is for |
42 |
46 * SCalenCommand, which needs a default constructor. Normal usage is |
43 /** |
47 * to use the accessor from the global data. Attempting to call |
44 * The only reason this should be created outside of this dll is for |
48 * "setters" on any context not from the global data will panic. |
45 * SCalenCommand, which needs a default constructor. Normal usage is |
49 */ |
46 * to use the accessor from the global data. Attempting to call |
50 CALENCONTEXTIMPL_EXPORT CalenContextImpl( MCalenContextChangeObserver* observer ); |
47 * "setters" on any context not from the global data will panic. |
51 CALENCONTEXTIMPL_EXPORT CalenContextImpl(); |
48 */ |
52 CALENCONTEXTIMPL_EXPORT CalenContextImpl( const CalenContextImpl& context ); |
49 CCalenContextImpl( MCalenContextChangeObserver* aObserver ); |
53 CALENCONTEXTIMPL_EXPORT ~CalenContextImpl(); |
50 CCalenContextImpl(); |
54 |
51 CCalenContextImpl( const CCalenContextImpl& aContext ); |
55 public: // from MCalenContext |
52 ~CCalenContextImpl(); |
|
53 |
|
54 public: // from MCalenContext |
|
55 |
56 // Utils |
56 // Utils |
57 /** |
57 /** |
58 * Returns the default time for views. (Normally 8am.) This would be |
58 * Returns the default time for views. (Normally 8am.) This would be |
59 * used for example by the month view, which sets the focus time to |
59 * used for example by the month view, which sets the focus time to |
60 * 8am on a day. Then when opening the week view, a sane time is shown. |
60 * 8am on a day. Then when opening the week view, a sane time is shown. |
61 */ |
61 */ |
62 int defaultTimeForViewsInMinnutes() const; |
62 TTimeIntervalMinutes DefaultTimeForViews() const; |
63 |
63 |
64 /** |
64 /** |
65 * Returns the default TCalTime for views. (Normally 8am today.) This |
65 * Returns the default TCalTime for views. (Normally 8am today.) This |
66 * would be used for example when a view is the first view loaded in |
66 * would be used for example when a view is the first view loaded in |
67 * Calendar. |
67 * Calendar. |
68 */ |
68 */ |
69 QDateTime defaultCalTimeForViewsL() const; |
69 TCalTime DefaultCalTimeForViewsL() const; |
70 |
70 |
71 // Setters |
71 // Setters |
72 /** |
72 /** |
73 * Sets the date and time currently focused. |
73 * Sets the date and time currently focused. |
74 * @param aFocusTime The new focus date and time. |
74 * @param aFocusTime The new focus date and time. |
75 */ |
75 * @param aViewId The view id of the currently active view. |
76 void setFocusDateAndTime( const QDateTime& focusDateTime); |
76 */ |
77 |
77 void SetFocusDateAndTimeL( const TCalTime& aFocusDateTime, |
78 /** |
78 const TVwsViewId& aViewId ); |
79 * Sets the date currently focused. When retrieving the focus |
79 |
80 * date and time after calling this function, the time component |
80 /** |
81 * will be set to the default of view. When retrieving the focus |
81 * Sets the date currently focused. When retrieving the focus |
82 * time only, it will be set to -1. |
82 * date and time after calling this function, the time component |
83 * @param aFocusDate The new focus date and time. |
83 * will be set to the default of view. When retrieving the focus |
84 */ |
84 * time only, it will be set to -1. |
85 void setFocusDate( const QDateTime& focusDateTime ); |
85 * @param aFocusDate The new focus date and time. |
86 |
86 * @param aViewId The view id of the currently active view. |
87 /** |
87 */ |
88 * Sets the id of the instance currently focused. |
88 void SetFocusDateL( const TCalTime& aFocusDate, |
89 * @param aInstanceId the id of the focused instance. |
89 const TVwsViewId& aViewId ); |
90 */ |
90 |
91 void setInstanceId( const TCalenInstanceId& instanceId ); |
91 /** |
92 |
92 * Sets the id of the instance currently focused. |
93 /** |
93 * @param aInstanceId the id of the focused instance. |
94 * Sets the time and instance currently focused. |
94 * @param aViewId The view id of the currently active view. |
95 * @param aFocusTime The new focus time. If no time is focused, set |
95 */ |
96 * the Utc time of this object to be Time::NullTTime. |
96 void SetInstanceIdL( const TCalenInstanceId& aInstanceId, |
97 * @param aInstanceId the id of the focused instance. |
97 const TVwsViewId& aViewId ); |
98 */ |
98 |
99 void setFocusDateAndTimeAndInstance( const QDateTime& focusDateTime, |
99 /** |
100 const TCalenInstanceId& aInstanceId); |
100 * Sets the time and instance currently focused. |
|
101 * @param aFocusTime The new focus time. If no time is focused, set |
|
102 * the Utc time of this object to be Time::NullTTime. |
|
103 * @param aInstanceId the id of the focused instance. |
|
104 * @param aViewId The view id of the currently active view. |
|
105 */ |
|
106 void SetFocusDateAndTimeAndInstanceL( const TCalTime& aFocusDateTime, |
|
107 const TCalenInstanceId& aInstanceId, |
|
108 const TVwsViewId& aViewId ); |
101 |
109 |
102 // Getters |
110 // Getters |
103 /** |
111 /** |
104 * Gets the date and time currently focused. |
112 * Gets the date and time currently focused. |
105 * @return The currently focused date and time. When no time is |
113 * @return The currently focused date and time. When no time is |
106 * focused, the default time on the current date will be returned. |
114 * focused, the default time on the current date will be returned. |
107 */ |
115 */ |
108 QDateTime focusDateAndTime() const; |
116 TCalTime FocusDateAndTimeL() const; |
109 |
117 |
110 /** |
118 /** |
111 * Gets the time currently focused. |
119 * Gets the time currently focused. |
112 * @return The currently focused time. When no time is |
120 * @return The currently focused time. When no time is |
113 * focused, -1 will be returned. |
121 * focused, -1 will be returned. |
114 */ |
122 */ |
115 int focusTime() const; |
123 TTimeIntervalMinutes FocusTime() const; |
116 |
124 |
117 /** |
125 /** |
118 * Gets the id of the instance currently focused. |
126 * Gets the id of the instance currently focused. |
119 * @return The instance id currently focused. When no instance is focused, |
127 * @return The instance id currently focused. When no instance is focused, |
120 * this will be TCalenInstanceId::NullInstanceIdL() |
128 * this will be TCalenInstanceId::NullInstanceIdL() |
121 */ |
129 */ |
122 TCalenInstanceId instanceId() const; |
130 TCalenInstanceId InstanceId() const; |
123 |
131 |
124 |
132 /** |
|
133 * Gets the id of the currently active view. |
|
134 * @return The view id of the currently active view. |
|
135 */ |
|
136 TVwsViewId ViewId() const; |
|
137 |
125 public: // Multiple Context support |
138 public: // Multiple Context support |
126 |
139 |
127 /** |
140 /** |
128 * Set multiple context ids |
141 * Set multiple context ids |
129 * |
142 * |
130 * @param aMutlipleContextIds |
143 * @param aMutlipleContextIds |
131 */ |
144 */ |
132 void setMutlipleContextIds(QList<TCalenInstanceId>& mutlipleContextIds); |
145 void SetMutlipleContextIds(RArray<TCalenInstanceId>& aMutlipleContextIds); |
133 |
146 |
134 /** |
147 /** |
135 * Remove multiple context id |
148 * Remove multiple context id |
136 * |
149 * |
137 * @param aInstanceId Instance Id for which context to be removed |
150 * @param aInstanceId Instance Id for which context to be removed |
138 */ |
151 */ |
139 void removeMultipleContextId(TCalenInstanceId instanceId); |
152 void RemoveMultipleContextId(TCalenInstanceId aInstanceId); |
140 |
153 |
141 /** |
154 /** |
142 * Resets all the multiple context ids |
155 * Resets all the multiple context ids |
143 * |
156 * |
144 */ |
157 */ |
145 void resetMultipleContextIds(int dbId=0); |
158 void ResetMultipleContextIds(TInt aDbId=0); |
146 |
159 |
147 /** |
160 /** |
148 * Getter for multiple context ids |
161 * Getter for multiple context ids |
149 * |
162 * |
150 * @return RArray<TCalenInstanceId>& |
163 * @return RArray<TCalenInstanceId>& |
151 */ |
164 */ |
152 QList<TCalenInstanceId>& getMutlipleContextIds(int dbId=0); |
165 RArray<TCalenInstanceId>& GetMutlipleContextIds(TInt aDbId=0); |
153 |
166 |
154 /** |
167 /** |
155 * Returns mutliple context's count |
168 * Returns mutliple context's count |
156 * |
169 * |
157 * @return |
170 * @return |
158 */ |
171 */ |
159 int mutlipleContextIdsCount(); |
172 TInt MutlipleContextIdsCount(); |
160 |
173 |
161 private: // Data |
174 /** |
162 MCalenContextChangeObserver* mObserver; |
175 * Sets the user selected landmark |
163 QDateTime mFocusDate; |
176 * @param aLandMark Landmark object |
164 int mFocusTime; |
177 */ |
165 TCalenInstanceId mInstanceId; |
178 void SetLandMark(CPosLandmark* aLandMark); |
166 int mViewId; |
179 |
167 // Multiple context ids |
180 /** |
168 QList<TCalenInstanceId> mMutlipleContextIds; |
181 * Returns the user selected landmark |
169 |
182 * @return Landmark object |
|
183 */ |
|
184 CPosLandmark* GetLandMark(); |
|
185 |
|
186 /** |
|
187 * Resets the landmark |
|
188 */ |
|
189 void ResetLandMark(); |
|
190 |
|
191 /** |
|
192 * Allows extending this API without breaking BC. |
|
193 * |
|
194 * @param aExtensionUid specifies |
|
195 * @return extension of the requested type |
|
196 */ |
|
197 TAny* CalenContextExtensionL( TUid aExtensionUid ); |
|
198 |
|
199 /** |
|
200 * @brief Get calendar filename |
|
201 * |
|
202 * @return TDesC& reference to calendar filename |
|
203 */ |
|
204 TDesC& GetCalendarFileNameL() const; |
|
205 |
|
206 /** |
|
207 * @brief Set the calendar filename |
|
208 * |
|
209 * @param aName referance to calendar file name |
|
210 */ |
|
211 void SetCalendarFileNameL(const TDesC& aName); |
|
212 |
|
213 /** |
|
214 * @brief Resets calendar file name in context |
|
215 */ |
|
216 void ResetCalendarFileName(); |
|
217 /** |
|
218 * @brief Set calendar file name of Alarm entry in context |
|
219 */ |
|
220 void SetCalAlarmEntryFileNameL(const TDesC& aName); |
|
221 |
|
222 /** |
|
223 * @brief Get calendar filename |
|
224 * |
|
225 * @return HBufC pointer to calendar filename of Alarm entry |
|
226 */ |
|
227 HBufC* GetCalAlarmEntryFileNameL() const; |
|
228 |
|
229 /** |
|
230 * @brief Resets Alarm Entry calendar file name in context |
|
231 */ |
|
232 void ResetCalAlarmEntryFileName(); |
|
233 |
|
234 /** |
|
235 * @brief set Alarm Entry LocalUid in context |
|
236 */ |
|
237 void SetCalAlarmEntryLocalUid(TCalLocalUid aLocalId); |
|
238 |
|
239 /** |
|
240 * @brief Get Alarm Entry LocalUid from context |
|
241 */ |
|
242 TCalLocalUid CalAlarmLocalUidL() const; |
|
243 |
|
244 private: // Data |
|
245 MCalenContextChangeObserver* iObserver; |
|
246 TCalTime iFocusDate; |
|
247 TTimeIntervalMinutes iFocusTime; |
|
248 TCalenInstanceId iInstanceId; |
|
249 TVwsViewId iViewId; |
|
250 CPosLandmark* iLandMark; |
|
251 CCalGeoValue* iGeoValue; |
|
252 HBufC* iLocation; |
|
253 // Multiple context ids |
|
254 RArray<TCalenInstanceId> iMutlipleContextIds; |
|
255 HBufC* iCalenFileName; |
|
256 HBufC* iCalAlarmEntryFileName; |
|
257 TCalLocalUid iCalAlarmLocalUid; |
170 }; |
258 }; |
171 |
259 |
172 #endif // CALENCONTEXTIMPL_H |
260 #endif // CALENCONTEXTIMPL_H |
173 |
261 |
174 // End of file |
262 // End of file |