13 * |
13 * |
14 * Description: |
14 * Description: |
15 * |
15 * |
16 */ |
16 */ |
17 |
17 |
|
18 #include <QGraphicsSceneMouseEvent> |
|
19 |
18 #include <HbStyle> |
20 #include <HbStyle> |
19 #include <HbStyleLoader> |
21 #include <HbStyleLoader> |
20 #include <HbFrameItem> |
22 #include <HbFrameItem> |
21 #include <HbFrameDrawer> |
23 #include <HbFrameDrawer> |
22 #include <HbIconItem> |
24 #include <HbIconItem> |
23 #include <HbTextItem> |
25 #include <HbTextItem> |
24 #include <HbTouchArea> |
26 #include <HbTouchArea> |
|
27 #include <HbInstantFeedback> |
25 #include "dialerwidgetengine.h" |
28 #include "dialerwidgetengine.h" |
26 #include "dialerwidget.h" |
29 #include "dialerwidget.h" |
27 #include "qtphonelog.h" |
30 #include "qtphonelog.h" |
28 |
31 |
29 #ifdef Q_OS_SYMBIAN |
32 #ifdef Q_OS_SYMBIAN |
36 #include <xqrequestinfo.h> |
39 #include <xqrequestinfo.h> |
37 #endif |
40 #endif |
38 |
41 |
39 namespace |
42 namespace |
40 { |
43 { |
41 const char KDialerWidgetIcon[] = ":/icons/resource/qtg_graf_hs_dialer"; |
44 const char KDialerWidgetIconNormal[] = "qtg_graf_hs_dialer_normal"; |
42 const char KMissedCallShortcutBadge[] = ":/icons/resource/qtg_fr_shortcut_badge_bg"; |
45 const char KDialerWidgetIconPressed[] = "qtg_graf_hs_dialer_pressed"; |
|
46 const char KMissedCallShortcutBadge[] = "qtg_fr_shortcut_badge_bg"; |
43 const char KDialerWidgetWidgetml[] = ":/data/resource/dialerwidget.widgetml"; |
47 const char KDialerWidgetWidgetml[] = ":/data/resource/dialerwidget.widgetml"; |
44 const char KDialerWidgetCss[] = ":/data/resource/dialerwidget.css"; |
48 const char KDialerWidgetCss[] = ":/data/resource/dialerwidget.css"; |
45 } |
49 } |
46 |
50 |
47 /*! |
51 /*! |
55 /*! |
59 /*! |
56 Constructs dialer widget with given \a parent and given window \a flags. |
60 Constructs dialer widget with given \a parent and given window \a flags. |
57 */ |
61 */ |
58 DialerWidget::DialerWidget(QGraphicsItem *parent, Qt::WindowFlags flags) |
62 DialerWidget::DialerWidget(QGraphicsItem *parent, Qt::WindowFlags flags) |
59 : HsWidget(parent, flags), |
63 : HsWidget(parent, flags), |
60 m_background(0), m_badgeBackground(0), m_text(0), m_touchArea(0) |
64 m_background(0), m_badgeBackground(0), m_text(0), m_touchArea(0), |
|
65 m_engine(0) |
61 { |
66 { |
62 PHONE_TRACE |
67 PHONE_TRACE |
63 } |
68 } |
64 |
69 |
65 /*! |
70 /*! |
192 m_text->setVisible(false); |
197 m_text->setVisible(false); |
193 m_badgeBackground->setVisible(false); |
198 m_badgeBackground->setVisible(false); |
194 } |
199 } |
195 } |
200 } |
196 |
201 |
197 /*! |
202 void DialerWidget::mousePressEvent(QGraphicsSceneMouseEvent *event) |
198 \fn void DialerWidget::mouseReleaseEvent(QGraphicsSceneMouseEvent* event) |
203 { |
199 |
204 PHONE_TRACE; |
200 Dialer widget start is triggered from release \a event. |
205 Q_UNUSED(event) |
201 \sa startDialer() |
206 setBackgroundToPressed(); |
202 */ |
207 } |
|
208 |
|
209 void DialerWidget::handleMouseMoveEvent(QGraphicsSceneMouseEvent *event) |
|
210 { |
|
211 if (contains(event->pos())) { |
|
212 setBackgroundToPressed(); |
|
213 } else { |
|
214 setBackgroundToNormal(); |
|
215 } |
|
216 } |
|
217 |
203 void DialerWidget::mouseReleaseEvent(QGraphicsSceneMouseEvent* event) |
218 void DialerWidget::mouseReleaseEvent(QGraphicsSceneMouseEvent* event) |
204 { |
219 { |
|
220 PHONE_TRACE; |
205 Q_UNUSED(event); |
221 Q_UNUSED(event); |
206 startDialer(); |
222 HbInstantFeedback::play(HbFeedback::Basic); |
|
223 setBackgroundToNormal(); |
|
224 startDialer(); |
|
225 } |
|
226 |
|
227 bool DialerWidget::sceneEvent(QEvent *event) |
|
228 { |
|
229 if (event->type() == QEvent::UngrabMouse) { |
|
230 setBackgroundToNormal(); |
|
231 } |
|
232 |
|
233 return HsWidget::sceneEvent(event);; |
207 } |
234 } |
208 |
235 |
209 HsWidget::StartResult DialerWidget::onStart() |
236 HsWidget::StartResult DialerWidget::onStart() |
210 { |
237 { |
211 return StartResultRunning; |
238 return StartResultRunning; |
227 { |
254 { |
228 setPreferredSize(100,100); |
255 setPreferredSize(100,100); |
229 // Background |
256 // Background |
230 if (!m_background) { |
257 if (!m_background) { |
231 HbFrameDrawer *drawer = new HbFrameDrawer( |
258 HbFrameDrawer *drawer = new HbFrameDrawer( |
232 KDialerWidgetIcon, HbFrameDrawer::OnePiece); |
259 KDialerWidgetIconNormal, HbFrameDrawer::OnePiece); |
233 m_background = new HbFrameItem(drawer, this); |
260 m_background = new HbFrameItem(drawer, this); |
234 style()->setItemName(m_background, /*QLatin1String(*/"background"/*)*/); |
261 style()->setItemName(m_background, QLatin1String("background")); |
235 m_background->moveBy(0,10); |
262 m_background->moveBy(0,10); |
236 m_background->resize(81,81); |
263 m_background->resize(81,81); |
237 } |
264 } |
238 |
265 |
239 // Badge background |
266 // Badge background |
240 if (!m_badgeBackground) { |
267 if (!m_badgeBackground) { |
241 HbFrameDrawer *badgedrawer = new HbFrameDrawer( |
268 HbFrameDrawer *badgedrawer = new HbFrameDrawer( |
242 KMissedCallShortcutBadge, HbFrameDrawer::ThreePiecesHorizontal); |
269 KMissedCallShortcutBadge, HbFrameDrawer::ThreePiecesHorizontal); |
243 m_badgeBackground = new HbFrameItem(badgedrawer, this); |
270 m_badgeBackground = new HbFrameItem(badgedrawer, this); |
244 style()->setItemName(m_background, QLatin1String("badgeBackground")); |
271 style()->setItemName(m_background, QLatin1String("badgeBackground")); |
245 m_badgeBackground->resize(20,20); |
272 m_badgeBackground->resize(20,20); |
246 m_badgeBackground->moveBy(70,0); |
273 m_badgeBackground->moveBy(70,0); |
247 m_badgeBackground->setVisible(true); |
274 m_badgeBackground->setVisible(true); |
270 m_touchArea->moveBy(0,10); |
297 m_touchArea->moveBy(0,10); |
271 m_touchArea->resize(81,81); |
298 m_touchArea->resize(81,81); |
272 } |
299 } |
273 } |
300 } |
274 |
301 |
|
302 void DialerWidget::setBackgroundToNormal() |
|
303 { |
|
304 if (m_background) { |
|
305 m_background->frameDrawer(). |
|
306 setFrameGraphicsName(KDialerWidgetIconNormal); |
|
307 } |
|
308 } |
|
309 |
|
310 void DialerWidget::setBackgroundToPressed() |
|
311 { |
|
312 if (m_background) { |
|
313 m_background->frameDrawer(). |
|
314 setFrameGraphicsName(KDialerWidgetIconPressed); |
|
315 } |
|
316 } |
|
317 |