diff -r 35b64624a9e7 -r 36f374c67aa8 messagingapp/msgui/conversationview/src/msgconversationview.cpp --- a/messagingapp/msgui/conversationview/src/msgconversationview.cpp Wed Jun 23 18:09:17 2010 +0300 +++ b/messagingapp/msgui/conversationview/src/msgconversationview.cpp Tue Jul 06 14:12:40 2010 +0300 @@ -67,9 +67,6 @@ #define LOC_COMMON_DOWNLOAD hbTrId("txt_messaging_menu_download") #define LOC_COMMON_SEND hbTrId("txt_common_button_send") #define LOC_COMMON_SAVE hbTrId("txt_common_menu_save") -#define LOC_BUTTON_DELETE hbTrId("txt_common_button_delete") -#define LOC_BUTTON_CANCEL hbTrId("txt_common_button_cancel") -#define LOC_BUTTON_OK hbTrId("txt_common_button_ok") #define LOC_DELETE_MESSAGE hbTrId("txt_messaging_dialog_delete_message") #define LOC_SAVE_TO_CONTACTS hbTrId("txt_messaging_menu_save_to_contacts") @@ -85,7 +82,7 @@ #define LOC_MSG_SEND_FAILED hbTrId("txt_messaging_dialog_message_sending_failed") #define LOC_DIALOG_SMS_SETTINGS_INCOMPLETE hbTrId("txt_messaging_dialog_sms_settings_incomplete") #define LOC_DIALOG_SAVE_RINGTONE hbTrId("txt_conversations_dialog_save_ringing_tone") -#define LOC_CONTACT_SAVED hbTrId("txt_messaging_dpopinfo_contact_saved") + const int INVALID_MSGID = -1; const int INVALID_CONVID = -1; @@ -105,15 +102,26 @@ mContactCardWidget(contactCardWidget), mSendUtil(NULL), mVkbHost(NULL), + mVisibleIndex(), mVkbopened(false), - mVisibleIndex() + mModelPopulated(false), + mViewReady(false) { - connect(this->mainWindow(),SIGNAL(viewReady()),this,SLOT(onViewReady())); //create send utils mSendUtil = new MsgSendUtil(this); //initialize view setupView(); setupMenu(); + + connect(ConversationsEngine::instance(), + SIGNAL(conversationModelUpdated()), + this, + SLOT(scrollToBottom())); + + connect(ConversationsEngine::instance(), + SIGNAL(conversationViewEmpty()), + this, + SLOT(onConversationViewEmpty())); } //--------------------------------------------------------------- @@ -209,6 +217,18 @@ } //--------------------------------------------------------------- +// MsgConversationView::fetchMoreConversations +// @see header file +//--------------------------------------------------------------- +void MsgConversationView::fetchMoreConversations() +{ + if (mViewReady && mModelPopulated) { + ConversationsEngine::instance()->fetchMoreConversations(); + mViewReady = mModelPopulated = false; + } +} + +//--------------------------------------------------------------- // MsgConversationView::refreshView() // @see header file //--------------------------------------------------------------- @@ -242,6 +262,14 @@ mMessageModel->index(rowCnt - 1, 0)); } +void MsgConversationView::onConversationViewEmpty() +{ + QVariantList param; + param << MsgBaseView::CLV; // target view + param << MsgBaseView::CV; // source view + emit switchView(param); +} + //--------------------------------------------------------------- // MsgConversationView::longPressed // @see header file @@ -334,8 +362,6 @@ return; } if( (sendingState == ConvergedMessage::SentState ) || - (sendingState == ConvergedMessage::Resend ) || - (sendingState == ConvergedMessage::Failed ) || (direction == ConvergedMessage::Incoming)) { HbAction *contextItem = contextMenu->addAction(LOC_COMMON_OPEN); @@ -478,7 +504,9 @@ deactivateInputBlocker(); if( sendResult == KErrNotFound) { - HbMessageBox::question(LOC_DIALOG_SMS_SETTINGS_INCOMPLETE, this, SLOT(onDialogSettingsLaunch(HbAction*)), LOC_BUTTON_OK, LOC_BUTTON_CANCEL); + HbMessageBox::question(LOC_DIALOG_SMS_SETTINGS_INCOMPLETE, this, + SLOT(onDialogSettingsLaunch(HbAction*)), + HbMessageBox::Ok | HbMessageBox::Cancel); } } @@ -586,8 +614,22 @@ { // Launch Audio fetcher view QVariantList params; + QByteArray dataArray; + QDataStream messageStream + (&dataArray, QIODevice::WriteOnly | QIODevice::Append); + + ConvergedMessage message; + message.setBodyText(mEditorWidget->content()); + // add address from contact-card to to-field + ConvergedMessageAddress address; + address.setAlias(mContactCardWidget->address().at(0)->alias()); + address.setAddress(mContactCardWidget->address().at(0)->address()); + message.addToRecipient(address); + message.serialize(messageStream); + params << MsgBaseView::AUDIOFETCHER; // target view params << MsgBaseView::CV; // source view + params << dataArray; emit switchView(params); } @@ -711,8 +753,7 @@ void MsgConversationView::deleteItem() { HbMessageBox::question(LOC_DELETE_MESSAGE,this,SLOT(onDialogdeleteMsg(HbAction*)), - LOC_BUTTON_DELETE, - LOC_BUTTON_CANCEL); + HbMessageBox::Delete | HbMessageBox::Cancel); } //--------------------------------------------------------------- @@ -788,11 +829,11 @@ qint32 messageId = index.data(ConvergedMsgId).toLongLong(); QList args; - QString serviceName("com.nokia.services.btmsgdispservices.displaymsg"); + QString serviceName("com.nokia.services.btmsgdispservices"); QString operation("displaymsg(int)"); XQAiwRequest* request; XQApplicationManager appManager; - request = appManager.create(serviceName, "displaymsg", operation, true); // embedded + request = appManager.create(serviceName, "displaymsg", operation, false); // embedded if ( request == NULL ) { @@ -800,6 +841,7 @@ } args << QVariant(messageId); + request->setSynchronous(true); request->setArguments(args); request->send(); @@ -859,7 +901,8 @@ if (ConvergedMessage::RingingTone == messageSubType) { HbMessageBox::question(LOC_DIALOG_SAVE_RINGTONE, this, - SLOT(onDialogSaveTone(HbAction*)), LOC_COMMON_SAVE, LOC_BUTTON_CANCEL); + SLOT(onDialogSaveTone(HbAction*)), + HbMessageBox::Save | HbMessageBox::Cancel); return; } else if(ConvergedMessage::Provisioning == messageSubType) @@ -881,7 +924,7 @@ bool result = MsgContactsUtil::launchVCardViewer(filepath); if(result) { - HbNotificationDialog::launchDialog(LOC_CONTACT_SAVED); + int messageId = index.data(ConvergedMsgId).toInt(); QList msgIdList; if(index.data(UnReadStatus).toInt()) @@ -901,6 +944,13 @@ else if (ConvergedMessage::BT == messageType) { launchBtDisplayService(index); + QList msgIdList; + if(index.data(UnReadStatus).toInt()) + { + msgIdList.clear(); + msgIdList << messageId; + ConversationsEngine::instance()->markMessagesRead(msgIdList); + } return; } else if(ConvergedMessage::MmsNotification == messageType) @@ -918,9 +968,9 @@ else { //TODO: use logical str name - HbMessageBox::question("Download Message?",this,SLOT(onDialogDownLoadMsg(HbAction*)), - LOC_COMMON_DOWNLOAD, - LOC_BUTTON_CANCEL); + HbMessageBox::question("Download Message?",this, + SLOT(onDialogDownLoadMsg(HbAction*)), + HbMessageBox::Yes | HbMessageBox::Cancel); return; } } @@ -937,33 +987,15 @@ int location = index.data(MessageLocation).toInt(); int sendingState = index.data(SendingState).toInt(); - //If message is in Sending state or is Scheduled to be sent later, + //If message is in any other state other than 'Sent' //do not open the message - if(sendingState == ConvergedMessage::Suspended || - sendingState == ConvergedMessage::Scheduled || - sendingState == ConvergedMessage::Sending || - sendingState == ConvergedMessage::Waiting) + if(direction == ConvergedMessage::Outgoing + && sendingState != ConvergedMessage::SentState ) + { return; } - //TODO: sendingState check should be removed once msg - // movement lock issue is resolved from mw - if( !((location == ConvergedMessage::Inbox) || - (location == ConvergedMessage::Sent) || - (sendingState == ConvergedMessage::SentState)|| - (sendingState == ConvergedMessage::Failed) || - (sendingState == ConvergedMessage::Resend))) - {// do not launch viewer, show a note - HbNotificationDialog* dlg = new HbNotificationDialog(); - dlg->setFocusPolicy(Qt::NoFocus); - QString text(tr("Message Locked")); - dlg->setText(text); - dlg->setDismissPolicy(HbPopup::TapAnywhere); - dlg->setAttribute(Qt::WA_DeleteOnClose, true); - dlg->show(); - return; - } // contact Id @@ -1063,7 +1095,14 @@ { ConvergedMessageAddress* address = new ConvergedMessageAddress; address->setAlias(contactList[i].mDisplayName); - address->setAddress(contactList[i].mPhoneNumber); + if(!contactList[i].mPhoneNumber.isEmpty()) + { + address->setAddress(contactList[i].mPhoneNumber); + } + else + { + address->setAddress(contactList[i].mEmailAddress); + } addresses.append(address); } message.addToRecipients(addresses); @@ -1095,16 +1134,13 @@ // @see header file //--------------------------------------------------------------- void MsgConversationView::populateConversationsView() -{ - bool b = connect(ConversationsEngine::instance(), - SIGNAL(conversationModelUpdated()), - this, - SLOT(scrollToBottom())); - +{ + mModelPopulated = true; mConversationList->setModel(mMessageModel); refreshView(); scrollToBottom(); + fetchMoreConversations(); } //--------------------------------------------------------------- @@ -1359,8 +1395,11 @@ //--------------------------------------------------------------- void MsgConversationView::onViewReady() { + mViewReady = true; //Disconnect list View's signals, for avoiding execution of the default implementaion disconnect(mainWindow(), SIGNAL(aboutToChangeOrientation()), mConversationList, 0); disconnect(mainWindow(), SIGNAL(orientationChanged(Qt: rientation)), mConversationList, 0); + + fetchMoreConversations(); } // EOF