20 |
20 |
21 #include <HbStyleLoader> |
21 #include <HbStyleLoader> |
22 #include <HbIconItem> |
22 #include <HbIconItem> |
23 #include <HbFrameItem> |
23 #include <HbFrameItem> |
24 #include <HbFrameDrawer> |
24 #include <HbFrameDrawer> |
25 #include <HbTouchArea> |
25 #include <HbTapGesture> |
26 #include <HbInstantFeedback> |
26 #include <HbInstantFeedback> |
27 |
27 |
28 #include "hsdigitalclockwidget.h" |
28 #include "hsdigitalclockwidget.h" |
|
29 #include "hsconfiguration.h" |
29 |
30 |
30 /*! |
31 /*! |
31 \class HsDigitalClockWidget |
32 \class HsDigitalClockWidget |
32 \ingroup group_hsclockwidgetplugin |
33 \ingroup group_hsclockwidgetplugin |
33 \brief Homescreen themable digital clock widget. |
34 \brief Homescreen themable digital clock widget. |
39 HsDigitalClockWidget::HsDigitalClockWidget(bool useAmPm, QGraphicsItem *parent) |
40 HsDigitalClockWidget::HsDigitalClockWidget(bool useAmPm, QGraphicsItem *parent) |
40 : HbWidget(parent), |
41 : HbWidget(parent), |
41 mBackground(0), |
42 mBackground(0), |
42 mDigit1(0), mDigit2(0), mDigit3(0), |
43 mDigit1(0), mDigit2(0), mDigit3(0), |
43 mDigit4(0), mDigit5(0), mDigit6(0), |
44 mDigit4(0), mDigit5(0), mDigit6(0), |
44 mAmPm(0), mTouchArea(0), mUseAmPm(useAmPm) |
45 mAmPm(0), mUseAmPm(useAmPm) |
45 { |
46 { |
46 HbStyleLoader::registerFilePath(":/hsdigitalclockwidget.widgetml"); |
47 HbStyleLoader::registerFilePath(":/hsdigitalclockwidget.widgetml"); |
47 HbStyleLoader::registerFilePath(":/hsdigitalclockwidget.css"); |
48 HbStyleLoader::registerFilePath(":/hsdigitalclockwidget.css"); |
48 /* |
49 /* |
49 mDigitMap.insert(QChar('0'), QString("clock_widget_zero")); |
50 mDigitMap.insert(QChar('0'), QString("clock_widget_zero")); |
67 mDigitMap.insert(QChar('7'), QString(":/clock_widget_seven.svg")); |
68 mDigitMap.insert(QChar('7'), QString(":/clock_widget_seven.svg")); |
68 mDigitMap.insert(QChar('8'), QString(":/clock_widget_eight.svg")); |
69 mDigitMap.insert(QChar('8'), QString(":/clock_widget_eight.svg")); |
69 mDigitMap.insert(QChar('9'), QString(":/clock_widget_nine.svg")); |
70 mDigitMap.insert(QChar('9'), QString(":/clock_widget_nine.svg")); |
70 |
71 |
71 createPrimitives(); |
72 createPrimitives(); |
|
73 grabGesture(Qt::TapGesture); |
72 } |
74 } |
73 |
75 |
74 /*! |
76 /*! |
75 Destructor. |
77 Destructor. |
76 */ |
78 */ |
77 HsDigitalClockWidget::~HsDigitalClockWidget() |
79 HsDigitalClockWidget::~HsDigitalClockWidget() |
78 { |
80 { |
79 HbStyleLoader::unregisterFilePath(":/hsdigitalclockwidget.widgetml"); |
81 HbStyleLoader::unregisterFilePath(":/hsdigitalclockwidget.widgetml"); |
80 HbStyleLoader::unregisterFilePath(":/hsdigitalclockwidget.css"); |
82 HbStyleLoader::unregisterFilePath(":/hsdigitalclockwidget.css"); |
81 mTouchArea->removeEventFilter(this); |
83 } |
82 } |
84 |
83 |
85 #ifdef COVERAGE_MEASUREMENT |
84 /*! |
86 #pragma CTC SKIP |
85 Filters touch area events. |
87 #endif //COVERAGE_MEASUREMENT |
86 */ |
88 void HsDigitalClockWidget::gestureEvent(QGestureEvent *event) |
87 bool HsDigitalClockWidget::eventFilter(QObject *watched, QEvent *event) |
89 { |
88 { |
90 HbTapGesture *gesture = qobject_cast<HbTapGesture *>(event->gesture(Qt::TapGesture)); |
89 Q_UNUSED(watched) |
91 if (gesture) { |
90 |
92 if (gesture->state() == Qt::GestureFinished) { |
91 switch (event->type()) { |
93 if (gesture->tapStyleHint() == HbTapGesture::Tap) { |
92 case QEvent::GraphicsSceneMousePress: |
94 HbInstantFeedback::play(HSCONFIGURATION_GET(clockWidgetTapFeedbackEffect)); |
93 return true; |
95 emit clockTapped(); |
94 case QEvent::GraphicsSceneMouseRelease: |
96 } |
95 handleMouseReleaseEvent(static_cast<QGraphicsSceneMouseEvent *>(event)); |
97 } |
96 return true; |
98 } |
97 default: |
99 } |
98 break; |
100 #ifdef COVERAGE_MEASUREMENT |
99 } |
101 #pragma CTC ENDSKIP |
100 |
102 #endif //COVERAGE_MEASUREMENT |
101 return false; |
|
102 } |
|
103 |
103 |
104 /*! |
104 /*! |
105 Return shape |
105 Return shape |
106 */ |
106 */ |
107 QPainterPath HsDigitalClockWidget::shape() const |
107 QPainterPath HsDigitalClockWidget::shape() const |
200 |
200 |
201 if (mUseAmPm) { |
201 if (mUseAmPm) { |
202 mAmPm = new HbIconItem(QLatin1String(":/clock_widget_am.svg"), this); |
202 mAmPm = new HbIconItem(QLatin1String(":/clock_widget_am.svg"), this); |
203 HbStyle::setItemName(mAmPm, QLatin1String("ampm")); |
203 HbStyle::setItemName(mAmPm, QLatin1String("ampm")); |
204 } |
204 } |
205 |
|
206 mTouchArea = new HbTouchArea(this); |
|
207 mTouchArea->installEventFilter(this); |
|
208 HbStyle::setItemName(mTouchArea, QLatin1String("toucharea")); |
|
209 } |
205 } |
210 |
206 |
211 /*! |
207 /*! |
212 @copydoc HbWidget::updatePrimitives() |
208 @copydoc HbWidget::updatePrimitives() |
213 */ |
209 */ |