telutils/dialpad/src/dialpad.cpp
changeset 32 1f002146abb4
parent 31 a2467631ae02
child 33 8d5d7fcf9b59
equal deleted inserted replaced
31:a2467631ae02 32:1f002146abb4
    34 #include "dialpadbutton.h"
    34 #include "dialpadbutton.h"
    35 #include "dialpadmultitaphandler.h"
    35 #include "dialpadmultitaphandler.h"
    36 #include "dialpadbackground.h"
    36 #include "dialpadbackground.h"
    37 #include "dialpadbutton.h"
    37 #include "dialpadbutton.h"
    38 
    38 
    39 static const QString backgroundGraphics("qtg_fr_input_v_bg");
    39 static const QLatin1String backgroundGraphics("qtg_fr_input_v_bg");
    40 static const QString backgroundGraphicsH("qtg_fr_input_h_bg");
    40 static const QLatin1String backgroundGraphicsH("qtg_fr_input_h_bg");
    41 static const QString minimizeIcon("qtg_graf_input_v_swipe");
    41 static const QLatin1String minimizeIcon("qtg_graf_input_v_swipe");
    42 static const QString minimizeIconH("qtg_graf_input_h_swipe");
    42 static const QLatin1String minimizeIconH("qtg_graf_input_h_swipe");
    43 static const int DialpadCloseAnimDuration = 200; // ms
    43 static const int DialpadCloseAnimDuration = 200; // ms
    44 static const int DialpadOpenAnimDuration = 200; // ms
    44 static const int DialpadOpenAnimDuration = 200; // ms
    45 static const qreal DialpadComponentMargin = 0.75; // units
    45 static const qreal DialpadComponentMargin = 0.75; // units
    46 static const qreal DialpadCloseHandleHeight = 2.23; // units
    46 static const qreal DialpadCloseHandleHeight = 2.23; // units
    47 static const qreal DialpadCloseHandleWidth = 18.8; // units
    47 static const qreal DialpadCloseHandleWidth = 18.8; // units
    48 static const qreal DialpadCallButtonHeight = 8.0; // units
    48 static const qreal DialpadCallButtonHeight = 8.0; // units
    49 static const qreal DialpadCallButtonHeightH = 6.0; // units
    49 static const qreal DialpadCallButtonHeightH = 6.0; // units
    50 
    50 
    51 static const QString handsetIcon("qtg_mono_call");
    51 static const QLatin1String handsetIcon("qtg_mono_call");
    52 static const QString vmbxIcon("qtg_mono_voice_mailbox");
    52 static const QLatin1String vmbxIcon("qtg_mono_voice_mailbox");
    53 
    53 
    54 const char *DIALPAD_TO_PRT_FXML = ":/dialpad_to_prt.fxml";
    54 const QLatin1String DIALPAD_TO_PRT_FXML(":/dialpad_to_prt.fxml");
    55 const char *DIALPAD_TO_LSC_FXML = ":/dialpad_to_lsc.fxml";
    55 const QLatin1String DIALPAD_TO_LSC_FXML(":/dialpad_to_lsc.fxml");
    56 const char *DIALPAD_TO_PRT_EVENT = "prt_activated";
    56 const QLatin1String DIALPAD_TO_PRT_EVENT("prt_activated");
    57 const char *DIALPAD_TO_LSC_EVENT = "lsc_activated";
    57 const QLatin1String DIALPAD_TO_LSC_EVENT("lsc_activated");
    58 
    58 
    59 Dialpad::Dialpad() :
    59 Dialpad::Dialpad() :
    60     mMainWindow(*hbInstance->allMainWindows().at(0)),
    60     mMainWindow(*hbInstance->allMainWindows().at(0)),
    61     mBackgroundItem(0),
    61     mBackgroundItem(0),
    62     mOpenTimeLine(DialpadOpenAnimDuration),
    62     mOpenTimeLine(DialpadOpenAnimDuration),
    83 
    83 
    84 void Dialpad::initialize()
    84 void Dialpad::initialize()
    85 {
    85 {
    86     setFocusPolicy(Qt::StrongFocus);
    86     setFocusPolicy(Qt::StrongFocus);
    87     setFlag(QGraphicsItem::ItemIsFocusable,true);
    87     setFlag(QGraphicsItem::ItemIsFocusable,true);
       
    88     setFlag(QGraphicsItem::ItemHasNoContents, false);
    88 
    89 
    89     // create input field
    90     // create input field
    90     mInputField = new DialpadInputField(this);
    91     mInputField = new DialpadInputField(this);
    91 
    92 
    92     // create keypad
    93     // create keypad
   141     setZValue(0x00004000); // Hb PopupZValueRangeStart
   142     setZValue(0x00004000); // Hb PopupZValueRangeStart
   142     hide();
   143     hide();
   143     mMainWindow.scene()->addItem(this);
   144     mMainWindow.scene()->addItem(this);
   144 
   145 
   145     // custom button style
   146     // custom button style
   146     HbStyleLoader::registerFilePath(":/dialpad.css");
   147     HbStyleLoader::registerFilePath(QLatin1String(":/dialpad.css"));
   147     HbStyleLoader::registerFilePath(":/dialpad_color.css");
   148     HbStyleLoader::registerFilePath(QLatin1String(":/dialpad_color.css"));
   148     HbStyleLoader::registerFilePath(":/dialpad.dialpadbutton.widgetml");
       
   149 
   149 
   150     // grab gestures so that those are not passed to widgets behind dialpad
   150     // grab gestures so that those are not passed to widgets behind dialpad
   151     grabGesture(Qt::TapGesture);
   151     grabGesture(Qt::TapGesture);
   152     grabGesture(Qt::TapAndHoldGesture);
   152     grabGesture(Qt::TapAndHoldGesture);
   153     grabGesture(Qt::PanGesture);
   153     grabGesture(Qt::PanGesture);
   217 bool Dialpad::isOpen() const
   217 bool Dialpad::isOpen() const
   218 {
   218 {
   219     return mIsOpen;
   219     return mIsOpen;
   220 }
   220 }
   221 
   221 
       
   222 bool Dialpad::isCallButtonEnabled() const
       
   223 {
       
   224     return mKeypad->callButton().isEnabled();
       
   225 }
       
   226 
   222 void Dialpad::openDialpad()
   227 void Dialpad::openDialpad()
   223 {
   228 {
   224     mKeypad->resetButtons();
   229     mKeypad->resetButtons();
   225     
   230     
   226     if (mIsOpen) {
   231     if (mIsOpen) {
   300     if (dismiss) {
   305     if (dismiss) {
   301         mBackgroundItem = new DialpadBackground(*this);
   306         mBackgroundItem = new DialpadBackground(*this);
   302         mBackgroundItem->setZValue(zValue()-1);
   307         mBackgroundItem->setZValue(zValue()-1);
   303         mMainWindow.scene()->addItem(mBackgroundItem);
   308         mMainWindow.scene()->addItem(mBackgroundItem);
   304         qreal chromeHeight = 0;
   309         qreal chromeHeight = 0;
   305         hbInstance->style()->parameter("hb-param-widget-chrome-height",
   310         hbInstance->style()->parameter(QLatin1String("hb-param-widget-chrome-height"),
   306                                        chromeHeight);
   311                                        chromeHeight);
   307         mTitleBarHeight = chromeHeight;
   312         mTitleBarHeight = chromeHeight;
   308     } else {
   313     } else {
   309         delete mBackgroundItem;
   314         delete mBackgroundItem;
   310         mBackgroundItem = 0;
   315         mBackgroundItem = 0;