--- 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 <hbmainwindow.h>
#include <hbgroupbox.h>
#include <QGraphicsLinearLayout>
+#include <HbAction>
#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