equal
deleted
inserted
replaced
20 #include <HbStyleLoader> |
20 #include <HbStyleLoader> |
21 #include <HbFrameItem> |
21 #include <HbFrameItem> |
22 #include <HbFrameDrawer> |
22 #include <HbFrameDrawer> |
23 #include <HbIconItem> |
23 #include <HbIconItem> |
24 #include <HbTextItem> |
24 #include <HbTextItem> |
25 #include <HbTouchArea> |
25 #include <HbTapGesture> |
26 #include <HbInstantFeedback> |
26 #include <HbInstantFeedback> |
27 |
27 |
28 #include <QDir> |
28 #include <QDir> |
29 #include <qdesktopservices.h> |
29 #include <qdesktopservices.h> |
30 #include <qurl.h> |
30 #include <qurl.h> |
43 /*! |
43 /*! |
44 Constructs a widget which is a child of \a parent, with widget flags set to \a flags. |
44 Constructs a widget which is a child of \a parent, with widget flags set to \a flags. |
45 */ |
45 */ |
46 HsBookmarkWidget::HsBookmarkWidget(QGraphicsItem* parent, Qt::WindowFlags flags) |
46 HsBookmarkWidget::HsBookmarkWidget(QGraphicsItem* parent, Qt::WindowFlags flags) |
47 : HbWidget(parent, flags), |
47 : HbWidget(parent, flags), |
48 mBackground(0), mIcon(0), mText(0), mTouchArea(0) |
48 mBackground(0), mIcon(0), mText(0) |
49 { |
49 { |
|
50 grabGesture(Qt::TapGesture); |
|
51 |
50 HbStyleLoader::registerFilePath(":/hsbookmarkwidget.widgetml"); |
52 HbStyleLoader::registerFilePath(":/hsbookmarkwidget.widgetml"); |
51 HbStyleLoader::registerFilePath(":/hsbookmarkwidget.css"); |
53 HbStyleLoader::registerFilePath(":/hsbookmarkwidget.css"); |
52 |
54 |
53 createPrimitives(); |
55 createPrimitives(); |
54 } |
56 } |
143 { |
145 { |
144 return mFaviconPath; |
146 return mFaviconPath; |
145 } |
147 } |
146 |
148 |
147 /*! |
149 /*! |
148 Filters touch area events. |
150 Process gesture events. |
149 */ |
151 */ |
150 bool HsBookmarkWidget::eventFilter(QObject *watched, QEvent *event) |
152 void HsBookmarkWidget::gestureEvent(QGestureEvent *event) |
151 { |
153 { |
152 Q_UNUSED(watched) |
154 HbTapGesture *gesture = qobject_cast<HbTapGesture *>(event->gesture(Qt::TapGesture)); |
153 |
155 if (gesture) { |
154 switch (event->type()) { |
156 switch (gesture->state()) { |
155 case QEvent::GraphicsSceneMousePress: |
157 case Qt::GestureStarted: |
156 handleMousePressEvent(static_cast<QGraphicsSceneMouseEvent *>(event)); |
158 setBackgroundToPressed(); |
157 return true; |
159 break; |
158 case QEvent::GraphicsSceneMouseMove: |
160 case Qt::GestureCanceled: |
159 handleMouseMoveEvent(static_cast<QGraphicsSceneMouseEvent *>(event)); |
161 setBackgroundToNormal(); |
160 return true; |
162 break; |
161 case QEvent::GraphicsSceneMouseRelease: |
163 case Qt::GestureFinished: |
162 handleMouseReleaseEvent(static_cast<QGraphicsSceneMouseEvent *>(event)); |
164 setBackgroundToNormal(); |
163 return true; |
165 if (gesture->tapStyleHint() == HbTapGesture::Tap) { |
164 case QEvent::UngrabMouse: |
166 launch(); |
165 setBackgroundToNormal(); |
167 } |
166 return true; |
168 break; |
167 default: |
169 default: |
168 break; |
170 break; |
169 } |
171 } |
170 |
172 } |
171 return false; |
|
172 } |
173 } |
173 |
174 |
174 void HsBookmarkWidget::onInitialize() |
175 void HsBookmarkWidget::onInitialize() |
175 { |
176 { |
176 if (mFaviconFileName.isNull()) |
177 if (mFaviconFileName.isNull()) |
212 |
213 |
213 void HsBookmarkWidget::onHide() |
214 void HsBookmarkWidget::onHide() |
214 { |
215 { |
215 } |
216 } |
216 |
217 |
217 /*! |
218 |
218 \internal |
219 |
219 */ |
220 /*! |
220 void HsBookmarkWidget::handleMousePressEvent(QGraphicsSceneMouseEvent *event) |
221 \internal |
221 { |
222 */ |
222 Q_UNUSED(event) |
223 void HsBookmarkWidget::launch() |
223 setBackgroundToPressed(); |
224 { |
224 } |
|
225 |
|
226 /*! |
|
227 \internal |
|
228 */ |
|
229 void HsBookmarkWidget::handleMouseMoveEvent(QGraphicsSceneMouseEvent *event) |
|
230 { |
|
231 if (contains(event->pos())) { |
|
232 setBackgroundToPressed(); |
|
233 } else { |
|
234 setBackgroundToNormal(); |
|
235 } |
|
236 } |
|
237 |
|
238 /*! |
|
239 \internal |
|
240 */ |
|
241 void HsBookmarkWidget::handleMouseReleaseEvent(QGraphicsSceneMouseEvent *event) |
|
242 { |
|
243 setBackgroundToNormal(); |
|
244 |
|
245 if (!contains(event->pos())) { |
|
246 return; |
|
247 } |
|
248 |
|
249 //HbInstantFeedback::play(HSCONFIGURATION_GET(bookmarkWidgetTapFeedbackEffect)); |
225 //HbInstantFeedback::play(HSCONFIGURATION_GET(bookmarkWidgetTapFeedbackEffect)); |
250 |
226 |
251 QUrl url = QUrl(mBookmarkUrl); |
227 QUrl url = QUrl(mBookmarkUrl); |
252 qDebug() << "hsBookmarkWidget - opening url - " << url << ", " << stat; |
228 qDebug() << "hsBookmarkWidget - opening url - " << url << ", " << stat; |
253 bool stat = QDesktopServices::openUrl(url); |
229 bool stat = QDesktopServices::openUrl(url); |
276 // Text |
252 // Text |
277 if (!mText) { |
253 if (!mText) { |
278 mText = new HbTextItem(this); |
254 mText = new HbTextItem(this); |
279 HbStyle::setItemName(mText, QLatin1String("text")); |
255 HbStyle::setItemName(mText, QLatin1String("text")); |
280 } |
256 } |
281 |
|
282 // Touch AreaOK |
|
283 if (!mTouchArea) { |
|
284 mTouchArea = new HbTouchArea(this); |
|
285 mTouchArea->installEventFilter(this); |
|
286 HbStyle::setItemName(mTouchArea, QLatin1String("toucharea")); |
|
287 } |
|
288 } |
257 } |
289 |
258 |
290 /*! |
259 /*! |
291 \internal |
260 \internal |
292 */ |
261 */ |