diff -r 4697dfb2d7ad -r 238255e8b033 messagingapp/msgui/conversationview/src/msgconversationbaseview.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/messagingapp/msgui/conversationview/src/msgconversationbaseview.cpp Fri Apr 16 14:56:15 2010 +0300 @@ -0,0 +1,167 @@ +/* + * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). + * All rights reserved. + * This component and the accompanying materials are made available + * under the terms of "Eclipse Public License v1.0" + * which accompanies this distribution, and is available + * at the URL "http://www.eclipse.org/legal/epl-v10.html". + * + * Initial Contributors: + * Nokia Corporation - initial contribution. + * + * Contributors: + * + * Description:Conversation Base view. + * + */ + +#include "msgconversationbaseview.h" +#include "msguiutilsmanager.h" + +// SYSTEM INCLUDES +#include +#include +#include +#include +#include + +// USER INCLUDES +#include "msgconversationview.h" +//#include "convergedmessage.h" +#include "conversationsengine.h" +#include "msgviewdefines.h" +#include "conversationsenginedefines.h" +#include "msgcontactcardwidget.h" + +//--------------------------------------------------------------- +// MsgConversationBaseView::MsgConversationBaseView +// Constructor +//--------------------------------------------------------------- +MsgConversationBaseView::MsgConversationBaseView(QGraphicsItem* parent) : +MsgBaseView(parent), +mConversationView(NULL), +mConversationId(-1) +{ + initView(); +} + +//--------------------------------------------------------------- +// MsgConversationBaseView::~MsgConversationBaseView +// Destructor +//--------------------------------------------------------------- +MsgConversationBaseView::~MsgConversationBaseView() +{ +} + +//--------------------------------------------------------------- +// MsgConversationBaseView::openConversationView +// Launches conversation view for entry id and mode +//--------------------------------------------------------------- +void MsgConversationBaseView::openConversation(qint64 convId) +{ + ConversationsEngine::instance()->getConversations(convId); + mConversationId = convId; + mConversationView->refreshView(); +} + +//--------------------------------------------------------------- +// MsgConversationBaseView::initView +// create and initialise the conversationview +//--------------------------------------------------------------- +void MsgConversationBaseView::initView() + { + // Create header widget + MsgContactCardWidget *contactCardWidget = new MsgContactCardWidget(); + + connect(contactCardWidget, SIGNAL(clicked()), this, SLOT(openContactDetails())); + + QGraphicsLinearLayout *mainLayout = new QGraphicsLinearLayout(Qt::Vertical); + + mainLayout->setContentsMargins(CONTENT_MARGIN, CONTENT_MARGIN, + CONTENT_MARGIN, CONTENT_MARGIN); + + mainLayout->setSpacing(CONTENT_SPACING); + + mainLayout->addItem(contactCardWidget); + + /** + * Create conversation view and connect to proper signals. + * NOTE: contactCardWidget is NOT parent of MsgConversationView. + * Just passing reference to MsgConversationView. + */ + mConversationView = new MsgConversationView(contactCardWidget); + + connect(mConversationView, SIGNAL(closeConversationView()), + this, SLOT(closeConversationView())); + + connect(mConversationView,SIGNAL(replyStarted()), + this,SLOT(markMessagesAsRead())); + + connect(mConversationView, SIGNAL(switchView(const QVariantList&)), + this, SIGNAL(switchView(const QVariantList&))); + + this->setMenu(mConversationView->menu()); + + mainLayout->addItem(mConversationView); + + this->setLayout(mainLayout); + +} + +//--------------------------------------------------------------- +// MsgConversationBaseView::closeConversationView +// close conversation view +//--------------------------------------------------------------- +void MsgConversationBaseView::closeConversationView() +{ + markMessagesAsRead(); +} + +//--------------------------------------------------------------- +// MsgConversationBaseView::markMessagesAsRead +// Mark unread msgs in cv as read +//--------------------------------------------------------------- +void MsgConversationBaseView::markMessagesAsRead() + { + if( mConversationId >= 0) + { + ConversationsEngine::instance()->markConversationRead(mConversationId); + } + } + +//--------------------------------------------------------------- +// MsgConversationBaseView::saveContentToDrafts +// saves the editors content to drafts +//--------------------------------------------------------------- +bool MsgConversationBaseView::saveContentToDrafts() + { + bool result = false; + if( mConversationId >= 0) + { + result = mConversationView->saveContentToDrafts(); + } + return result; + } + +//--------------------------------------------------------------- +// MsgConversationBaseView::openContactDetails +// close conversation view +//--------------------------------------------------------------- +void MsgConversationBaseView::openContactDetails() +{ + MsgUiUtilsManager uiUtilsManager(this); + QModelIndex aIndex = ConversationsEngine::instance()->getConversationsModel()->index(0, 0); + qint32 contactId = aIndex.data(ContactId).toLongLong(); + uiUtilsManager.openContactDetails(contactId); +} + +//--------------------------------------------------------------- +// MsgConversationBaseView::clearContent +// clears conversation view content +//--------------------------------------------------------------- +void MsgConversationBaseView::clearContent() +{ + ConversationsEngine::instance()->clearConversations(); + mConversationView->clearEditors(); +} +// EOF