phonebookui/pbkcommonui/src/cntmycardview.cpp
changeset 25 76a2435edfd4
parent 24 0ba2181d7c28
child 27 de1630741fbe
--- a/phonebookui/pbkcommonui/src/cntmycardview.cpp	Fri Mar 19 09:27:18 2010 +0200
+++ b/phonebookui/pbkcommonui/src/cntmycardview.cpp	Fri Apr 16 14:53:18 2010 +0300
@@ -16,73 +16,101 @@
 */
 
 #include "cntmycardview.h"
+#include "qtpbkglobal.h"
 #include <hbpushbutton.h>
+#include <hbaction.h>
+#include <hbview.h>
+#include <hbmainwindow.h>
 
 const char *CNT_MYCARD_UI_XML = ":/xml/contacts_mc.docml";
 
-CntMyCardView::CntMyCardView(CntViewManager *viewManager, QGraphicsItem *parent) : CntBaseView(viewManager, parent), mContact(0)
-{   
+CntMyCardView::CntMyCardView() :
+    mContact(0),
+    mViewManager(0),
+    mView(0),
+    mSoftkey(0)
+{
     bool ok = false;
-    ok=loadDocument(CNT_MYCARD_UI_XML);
+    mDocumentLoader.load(CNT_MYCARD_UI_XML, &ok);
 
     if (ok)
     {
-    
-        QGraphicsWidget *w = findWidget(QString("view"));
-        setWidget(w);
+        mView = static_cast<HbView*>(mDocumentLoader.findWidget(QString("view")));
     }
     else
     {
         qFatal("Unable to read :/xml/contacts_mc.docml");
     }
+
+    //back button
+    mSoftkey = new HbAction(Hb::BackNaviAction, mView);
+    connect(mSoftkey, SIGNAL(triggered()), this, SLOT(showPreviousView()));
 }
 
 CntMyCardView::~CntMyCardView()
 {
+    mView->deleteLater();
+    
     delete mContact;
+    mContact = 0;
 }
 
 /*!
 Activates a previous view
 */
-void CntMyCardView::aboutToCloseView()
+void CntMyCardView::showPreviousView()
 {
-    viewManager()->onActivateView(CntViewParameters::namesView);
+	CntViewParameters args;
+    mViewManager->back(args);
 }
 
 /*
 Activates a default view
 */
-void CntMyCardView::activateView(const CntViewParameters &aViewParameters)
+void CntMyCardView::activate(CntAbstractViewManager* aMgr, const CntViewParameters& aArgs)
 {
-    mContact = new QContact(aViewParameters.selectedContact());
+    if (mView->navigationAction() != mSoftkey)
+        mView->setNavigationAction(mSoftkey);
     
-    HbPushButton *newButton = static_cast<HbPushButton*>(findWidget(QString("cnt_button_new")));
+    HbMainWindow* window = mView->mainWindow();
+    connect(window, SIGNAL(orientationChanged(Qt::Orientation)), this, SLOT(setOrientation(Qt::Orientation)));
+    setOrientation(window->orientation());
+    
+    mContact = new QContact(aArgs.selectedContact());
+    mViewManager = aMgr;
+    
+    HbPushButton *newButton = static_cast<HbPushButton*>(mDocumentLoader.findWidget(QString("cnt_button_new")));
     connect(newButton, SIGNAL(clicked()), this, SLOT(openNameEditor()));
 
-    HbPushButton *chooseButton = static_cast<HbPushButton*>(findWidget(QString("cnt_button_choose")));
+    HbPushButton *chooseButton = static_cast<HbPushButton*>(mDocumentLoader.findWidget(QString("cnt_button_choose")));
     connect(chooseButton, SIGNAL(clicked()), this, SLOT(openMyCardSelectionView()));
 
     QContactDetailFilter filter;
     filter.setDetailDefinitionName(QContactType::DefinitionName, QContactType::FieldType);
     filter.setValue(QLatin1String(QContactType::TypeContact));
-    if (contactManager()->contacts(filter).isEmpty())
+
+    if (mViewManager->contactManager( SYMBIAN_BACKEND )->contactIds(filter).isEmpty())
     {
         chooseButton->setEnabled(false);
     }
 }
 
+void CntMyCardView::deactivate()
+{
+
+}
+
 void CntMyCardView::setOrientation(Qt::Orientation orientation)
 {
-    if( orientation == Qt::Vertical ) 
+    if (orientation == Qt::Vertical) 
     {
         // reading "portrait" section
-        loadDocument(CNT_MYCARD_UI_XML, "portrait");
+        mDocumentLoader.load(CNT_MYCARD_UI_XML, "portrait");
     } 
     else 
     {
         // reading "landscape" section
-        loadDocument(CNT_MYCARD_UI_XML, "landscape");
+        mDocumentLoader.load(CNT_MYCARD_UI_XML, "landscape");
     }
 }
 
@@ -92,12 +120,13 @@
 void CntMyCardView::openNameEditor()
 {
     //create a new my card contact
-    contactManager()->saveContact(mContact);
-    contactManager()->setSelfContactId(mContact->localId());
+    QContactManager* mgr = mViewManager->contactManager( SYMBIAN_BACKEND );
+    mgr->saveContact(mContact);
+    mgr->setSelfContactId(mContact->localId());
     //open the contact editor
     CntViewParameters viewParameters(CntViewParameters::editView);
     viewParameters.setSelectedContact(*mContact);
-    viewManager()->onActivateView(viewParameters);
+    mViewManager->changeView(viewParameters);
 }
 
 /*!
@@ -106,7 +135,7 @@
 void CntMyCardView::openMyCardSelectionView()
 {
     CntViewParameters viewParameters(CntViewParameters::myCardSelectionView);
-    viewManager()->onActivateView(viewParameters);
+    mViewManager->changeView(viewParameters);
 }
 
 // EOF