phoneplugins/dialerwidgetplugin/src/dialerwidget.cpp
changeset 56 5bcb308bd24d
parent 46 bc5a64e5bc3c
child 64 6aaf0276100e
equal deleted inserted replaced
46:bc5a64e5bc3c 56:5bcb308bd24d
    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