diff -r 36f374c67aa8 -r 12db4185673b messagingapp/msgsettings/settingsview/src/msgsettingsview.cpp --- a/messagingapp/msgsettings/settingsview/src/msgsettingsview.cpp Tue Jul 06 14:12:40 2010 +0300 +++ b/messagingapp/msgsettings/settingsview/src/msgsettingsview.cpp Wed Aug 18 09:45:25 2010 +0300 @@ -17,6 +17,7 @@ #include #include #include +#include #include "msgsettingsview.h" #include "msgsettingsform.h" @@ -26,9 +27,11 @@ //LOCALAIZED CONSTANTS #define LOC_MESSAGE_SETTINGS_HEADING hbTrId("txt_messaging_title_messaging_settings") -MsgSettingsView::MsgSettingsView(SettingsView settingsView, - QGraphicsItem *parent) : - MsgBaseView(parent), mSMSCenterView(0), mSettingsForm(0) +MsgSettingsView::MsgSettingsView(SettingsView settingsView,QGraphicsItem *parent): +MsgBaseView(parent), +mSMSCenterView(0), +mSettingsForm(0), +mCurrentView(settingsView) { mMainWindow = this->mainWindow(); @@ -47,11 +50,18 @@ SIGNAL(newSMSCCenterClicked(int)), this, SLOT(onNewSMSCCenterClicked(int))); + mainLayout->addItem(viewHeading); mainLayout->addItem(mSettingsForm); this->setLayout(mainLayout); + + //sms settings need to be created so launch MsgSMSCenterView in edit mode. + if(settingsView == SMSView) + { + onNewSMSCCenterClicked(-1); + } } MsgSettingsView::~MsgSettingsView() @@ -81,14 +91,28 @@ void MsgSettingsView::onSmsCenterEditViewClosed() { + + //sms center view was directly launched, no need to go back to settings view. + if(mCurrentView == SMSView) + { + this->navigationAction()->trigger(); + return; + } //remove the view mMainWindow->removeView(mSMSCenterView); - - //refresh the form - mSettingsForm->refreshViewForm(); - - //add the current view on top - mMainWindow->setCurrentView(this); + + // This check is needed in case when smsc center view is + // launched directly + if(mMainWindow->views().count() > 0) + { + QCRITICAL_WRITE("MsgViewManager::onSmsCenterEditViewClosed count>0"); + + //refresh the form + mSettingsForm->refreshViewForm(); + + //add the current view on top + mMainWindow->setCurrentView(this); + } } //eof