diff -r 4697dfb2d7ad -r 238255e8b033 messagingapp/msgui/unifiededitor/src/msgunieditorsubject.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/messagingapp/msgui/unifiededitor/src/msgunieditorsubject.cpp Fri Apr 16 14:56:15 2010 +0300 @@ -0,0 +1,181 @@ +/* + * 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: + * + */ + +// INCLUDES +#include "debugtraces.h" +#include +#include +#include + +// USER INCLUDES +#include "msgunieditorsubject.h" +#include "UniEditorGenUtils.h" + +// Localized Constants +#define LOC_SUBJECT hbTrId("txt_messaging_formlabel_subject") + +//--------------------------------------------------------------- +// MsgUnifiedEditorSubject::MsgUnifiedEditorSubject +// @see header file +//--------------------------------------------------------------- +MsgUnifiedEditorSubject::MsgUnifiedEditorSubject( const QString& pluginPath, QGraphicsItem *parent ) : +HbWidget(parent), +mPluginPath(pluginPath), +mPriorityIcon(NULL), +mGenUtils(0) +{ +#ifdef _DEBUG_TRACES_ + qDebug() << "MsgUnifiedEditorSubject calling HbStyle::registerPlugin"; +#endif + + setPluginBaseId(style()->registerPlugin(mPluginPath)); + + mSubjectLabel = new HbTextItem(LOC_SUBJECT,this); + HbStyle::setItemName(mSubjectLabel,"subjectLabel"); + + mSubjectEdit = new HbLineEdit(this); + HbStyle::setItemName(mSubjectEdit,"subjectEdit"); + mSubjectEdit->setMinRows(1); + mSubjectEdit->setMaxRows(10); + + mGenUtils = new UniEditorGenUtils(); + + connect(mSubjectEdit, SIGNAL(textChanged(const QString&)), + this, SLOT(onTextChanged(const QString&))); +} + +//--------------------------------------------------------------- +// MsgUnifiedEditorSubject::~MsgUnifiedEditorSubject +// @see header file +//--------------------------------------------------------------- +MsgUnifiedEditorSubject::~MsgUnifiedEditorSubject() +{ + style()->unregisterPlugin(mPluginPath); + + if(mGenUtils) + { + delete mGenUtils; + mGenUtils = NULL; + } +} + +void MsgUnifiedEditorSubject::setPriority(ConvergedMessage::Priority priority) +{ + mPriority = priority; + if(mPriorityIcon) + {// Transition from low/high => low/normal/high + mPriorityIcon->setParent(NULL); + delete mPriorityIcon; + mPriorityIcon = NULL; + } + else + {// Transition from normal + if(mPriority == ConvergedMessage::Normal) + {// to normal + return; + } + else + {// to high/low + emit mmContentAdded(true); + } + } + + switch(priority) + { + case ConvergedMessage::High : + { + mPriorityIcon = new HbIconItem(":/qtg_small_priority_high.svg", this); + HbStyle::setItemName(mPriorityIcon,"priorityIcon"); + } + break; + case ConvergedMessage::Low : + { + mPriorityIcon = new HbIconItem(":/qtg_small_priority_low.svg", this); + HbStyle::setItemName(mPriorityIcon,"priorityIcon"); + } + break; + case ConvergedMessage::Normal : + { + emit mmContentAdded(false); + } + break; + default: + break; + } + + this->repolish(); +} + +QString MsgUnifiedEditorSubject::text() +{ + return mSubjectEdit->text(); +} + +ConvergedMessage::Priority MsgUnifiedEditorSubject::priority() +{ + return mPriority; +} + +void MsgUnifiedEditorSubject::onTextChanged(const QString& text) +{ + if(!text.isEmpty()) + { + disconnect(mSubjectEdit, SIGNAL(textChanged(const QString&)), + this, SLOT(onTextChanged(const QString&))); + if(!subjectOkInSms()) + { + emit mmContentAdded(true); + } + connect(mSubjectEdit, SIGNAL(textChanged(const QString&)), + this, SLOT(onTextRemoved(const QString&))); + } +} + +void MsgUnifiedEditorSubject::onTextRemoved(const QString& text) +{ + if(text.isEmpty()) + { + disconnect(mSubjectEdit, SIGNAL(textChanged(const QString&)), + this, SLOT(onTextRemoved(const QString&))); + if(!subjectOkInSms()) + { + emit mmContentAdded(false); + } + connect(mSubjectEdit, SIGNAL(textChanged(const QString&)), + this, SLOT(onTextChanged(const QString&))); + } +} + +bool MsgUnifiedEditorSubject::subjectOkInSms() +{ + bool result = false; + int error; + TRAP(error, result = mGenUtils->AcceptEmailAddressesL()); + return result; +} + +int MsgUnifiedEditorSubject::subjectSize() +{ + return mGenUtils->UTF8Size(mSubjectEdit->text()); +} + +void MsgUnifiedEditorSubject::setText(const QString& text) +{ + mSubjectEdit->setText(text); +} + +//EOF