diff -r 4697dfb2d7ad -r 238255e8b033 messagingapp/msgui/unifiedviewer/src/univieweraddresswidget.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/messagingapp/msgui/unifiedviewer/src/univieweraddresswidget.cpp Fri Apr 16 14:56:15 2010 +0300 @@ -0,0 +1,170 @@ +/* + * 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: + * + */ + +#include "univieweraddresswidget.h" +#include "univiewerfeeder_p.h" +// SYSTEM INCLUDES +#include +#include +#include +#include + +// USER INCLUDES +#include "unitexteditor.h" +#include "debugtraces.h" + +// LOCAL CONSTANTS +const QString ADDRESS_SEPARATOR("; "); + +//---------------------------------------------------------------------------- +// UniViewerAddressWidget::UniViewerAddressWidget +// @see header file +//---------------------------------------------------------------------------- +UniViewerAddressWidget::UniViewerAddressWidget(QGraphicsItem *parent) : + HbWidget(parent), mAddress(NULL) +{ + mAddress = new UniTextEditor(this); + HbStyle::setItemName(mAddress, "addressField"); + + connect(mAddress, SIGNAL(aboutToShowContextMenu(HbMenu *,QPointF)), this, + SLOT(handleAboutToShowContextMenu(HbMenu *,QPointF))); + +} + +//---------------------------------------------------------------------------- +// UniViewerAddressWidget::~UniViewerAddressWidget +// @see header file +//---------------------------------------------------------------------------- +UniViewerAddressWidget::~UniViewerAddressWidget() +{ +} + +//---------------------------------------------------------------------------- +// UniViewerAddressWidget::populate +// @see header file +//---------------------------------------------------------------------------- +void UniViewerAddressWidget::populate(const QString &label, + const QString &address, + const QString &alias) +{ + + QTextCursor cursor(mAddress->document()); + + QTextCharFormat addressFormat = cursor.charFormat(); + addressFormat.setFontWeight(QFont::Bold); + addressFormat.setForeground(QApplication::palette().link()); + addressFormat.setUnderlineStyle(QTextCharFormat::SingleUnderline); + + // Insert the label then the addresses + cursor.insertText(label); + QString address1 = QString(); + if (!(alias.isEmpty())) + { + address1.append(alias); + QString alias1 = QString(); + if (UniViewerFeederPrivate::GetNameFromContacts(address, alias1) > 1) + { + address1.append(" ("); + address1.append(address); + address1.append(")"); + } + } + else + { + address1.append(address); + } + addressFormat.setAnchorHref(address); + cursor.insertText(address1, addressFormat); + repolish(); +} + +//---------------------------------------------------------------------------- +// UniViewerAddressWidget::populate +// @see header file +//---------------------------------------------------------------------------- +void UniViewerAddressWidget::populate(const QString &label, + ConvergedMessageAddressList addressList) +{ + QTextCursor cursor(mAddress->document()); + + QTextCharFormat defaultFormat = cursor.charFormat(); + defaultFormat.setFontWeight(QFont::Bold); + defaultFormat.setForeground(QApplication::palette().link()); + + QTextCharFormat addressFormat = cursor.charFormat(); + addressFormat.setFontWeight(QFont::Bold); + addressFormat.setForeground(QApplication::palette().link()); + addressFormat.setUnderlineStyle(QTextCharFormat::SingleUnderline); + + // Insert the label then the addresses + cursor.insertText(label); + + int addressCount = addressList.count(); + + for (int i = 0; i < addressCount; ++i) + { + + QString address = QString(); + if (! (addressList[i]->alias().isEmpty())) + { + address.append(addressList[i]->alias()); + QString alias = QString(); + if (UniViewerFeederPrivate::GetNameFromContacts(addressList[i]->address(), + alias) > 1) + { + address.append(" ("); + address.append(addressList[i]->address()); + address.append(")"); + } + } + else + { + address.append(addressList[i]->address()); + } + + addressFormat.setAnchorHref(addressList[i]->address()); + cursor.insertText(address, addressFormat); + + if (addressCount - 1 != i) + { + cursor.insertText(ADDRESS_SEPARATOR, defaultFormat); + } + + } + repolish(); +} + +//---------------------------------------------------------------------------- +// UniViewerAddressWidget::clearContent +// @see header file +//---------------------------------------------------------------------------- +void UniViewerAddressWidget::clearContent() +{ + mAddress->document()->clear(); +} + +//---------------------------------------------------------------------------- +// UniViewerAddressWidget::handleAboutToShowContextMenu +// @see header file +//---------------------------------------------------------------------------- +void UniViewerAddressWidget::handleAboutToShowContextMenu(HbMenu *contextMenu, const QPointF &pos) +{ + Q_UNUSED(pos) + contextMenu->clearActions(); +} + +// EOF