diff -r de1630741fbe -r 2a11b5b00470 phonebookui/pbkcommonui/src/cntdateeditorviewitem.cpp --- a/phonebookui/pbkcommonui/src/cntdateeditorviewitem.cpp Mon May 03 12:24:20 2010 +0300 +++ b/phonebookui/pbkcommonui/src/cntdateeditorviewitem.cpp Fri May 14 15:42:23 2010 +0300 @@ -30,118 +30,141 @@ #include #include #include -#include +#include #include -#include - CntDateEditorViewItem::CntDateEditorViewItem( QGraphicsItem* aParent ) : -CntDetailViewItem( aParent ), -mButton(NULL) - { + CntDetailViewItem( aParent ), + mButton(NULL) +{ mLocale = QLocale::system(); - } +} CntDateEditorViewItem::~CntDateEditorViewItem() - { - } +{ +} HbAbstractViewItem* CntDateEditorViewItem::createItem() - { +{ return new CntDateEditorViewItem( *this ); - } +} void CntDateEditorViewItem::clicked() - { +{ HbDataFormModel* model = static_cast(itemView()->model()); CntDetailModelItem* item = static_cast( model->itemFromIndex(modelIndex()) ); QContactDetail detail = item->detail(); - - QString buttonText = qtTrId( "No date set" ); + if ( detail.definitionName() == QContactBirthday::DefinitionName ) - { + { QContactBirthday bd = detail; - QDate date = editDate( bd.date(), qtTrId("Birthday") ); - if ( date != bd.date() ) - { - bd.setDate( date ); - item->setDetail( bd ); - } - buttonText = mLocale.toString( date ); - } - - if ( detail.definitionName() == QContactAnniversary::DefinitionName ) - { - QContactAnniversary anniversary = detail; - QDate date = editDate( anniversary.originalDate(), qtTrId("Anniversary") ); - if ( date != anniversary.originalDate() ) - { - anniversary.setOriginalDate( date ); - item->setDetail( anniversary ); - } - buttonText = mLocale.toString( date ); - } - - mButton->setText( buttonText ); + editDate( bd.date(), hbTrId("txt_phob_formlabel_birthday") ); } + if ( detail.definitionName() == QContactAnniversary::DefinitionName ) + { + QContactAnniversary anniversary = detail; + editDate( anniversary.originalDate(), hbTrId("txt_phob_formlabel_anniversary") ); + } +} + HbWidget* CntDateEditorViewItem::createCustomWidget() - { +{ mButton = new HbPushButton(); connect( mButton, SIGNAL(clicked(bool)), this, SLOT(clicked()) ); - + HbDataFormModel* model = static_cast(itemView()->model()); CntDetailModelItem* item = static_cast( model->itemFromIndex(modelIndex()) ); - + QContactDetail detail = item->detail(); - QString text( qtTrId("No date set") ); - + QString text("No date set"); // loc missing + if ( detail.definitionName() == QContactBirthday::DefinitionName ) - { + { QContactBirthday birthday = detail; if ( !birthday.isEmpty() ) - { + { text = mLocale.toString( birthday.date() ); - } } - + } + if ( detail.definitionName() == QContactAnniversary::DefinitionName ) - { + { QContactAnniversary anniversary = detail; if ( !anniversary.isEmpty() ) - { + { text = mLocale.toString( anniversary.originalDate() ); - } } + } mButton->setText( text ); return mButton; - } +} -QDate CntDateEditorViewItem::editDate( QDate aCurrent, QString aTitle ) - { - QPointer popup = new HbDialog(); +void CntDateEditorViewItem::editDate( QDate aCurrent, QString aTitle ) +{ + HbDialog *popup = new HbDialog(); popup->setDismissPolicy(HbDialog::NoDismiss); popup->setTimeout(HbPopup::NoTimeout); + popup->setAttribute(Qt::WA_DeleteOnClose, true); HbDateTimePicker *picker = new HbDateTimePicker( popup ); picker->setDisplayFormat( mLocale.dateFormat() ); picker->setDateRange(CNT_DATEPICKER_FROM, CNT_DATEPICKER_TO ); picker->setDate( aCurrent ); - - HbTextItem *headingText = new HbTextItem( popup ); - headingText->setFontSpec( HbFontSpec(HbFontSpec::Title) ); - headingText->setText( aTitle ); - + + HbLabel *headingText = new HbLabel( popup ); + headingText->setPlainText( aTitle ); + popup->setHeadingWidget(headingText); popup->setContentWidget(picker); - popup->setPrimaryAction(new HbAction(qtTrId("Ok"), popup)); - popup->setSecondaryAction(new HbAction(qtTrId("Cancel"), popup)); + popup->addAction(new HbAction(hbTrId("txt_common_button_ok"), popup)); + popup->addAction(new HbAction(hbTrId("txt_common_button_cancel"), popup)); + + popup->open(this, SLOT(handleEditDate(HbAction*))); +} - HbAction *selected = popup->exec(); - QDate date = (selected == popup->primaryAction()) ? picker->date() : aCurrent; - delete popup; - - return date; +void CntDateEditorViewItem::changeDate( QDate aNewDate ) +{ + HbDataFormModel* model = static_cast(itemView()->model()); + CntDetailModelItem* item = static_cast( model->itemFromIndex(modelIndex()) ); + QContactDetail detail = item->detail(); + + QString buttonText("No date set"); // loc missing + if ( detail.definitionName() == QContactBirthday::DefinitionName ) + { + QContactBirthday bd = detail; + if ( aNewDate != bd.date() ) + { + bd.setDate( aNewDate ); + item->setDetail( bd ); + } + buttonText = mLocale.toString( aNewDate ); } + if ( detail.definitionName() == QContactAnniversary::DefinitionName ) + { + QContactAnniversary anniversary = detail; + if ( aNewDate != anniversary.originalDate() ) + { + anniversary.setOriginalDate( aNewDate ); + item->setDetail( anniversary ); + } + buttonText = mLocale.toString( aNewDate ); + } + + mButton->setText( buttonText ); +} + +void CntDateEditorViewItem::handleEditDate( HbAction *aAction ) +{ + HbDialog *popup = static_cast(sender()); + + if (popup && aAction == popup->actions().first()) + { + QDate date = static_cast(popup->contentWidget())->date(); + changeDate(date); + } + +} + // End of File