cpsecplugins/cpadvancedsecplugin/src/cpsecurityview.cpp
branchGCC_SURGE
changeset 40 604cd42065d1
parent 37 7bad16cccaca
child 59 881d92421467
--- a/cpsecplugins/cpadvancedsecplugin/src/cpsecurityview.cpp	Thu Jun 17 12:11:51 2010 +0100
+++ b/cpsecplugins/cpadvancedsecplugin/src/cpsecurityview.cpp	Thu Jul 22 16:43:28 2010 +0100
@@ -28,9 +28,9 @@
 #include <hbdataformmodelitem.h>
 #include <hblabel.h>
 #include <hbpushbutton.h>
-#include <HbMenu.h>
+#include <hbmenu.h>
 #include <hbaction.h>
-#include <HbMessageBox.h>
+#include <hbmessagebox.h>
 #include <HbListWidget>
 #include <HbListWidgetItem>
 #include <HbGroupBox>
@@ -41,6 +41,8 @@
 
 #include <memory>
 
+#include <../../inc/cpsecplugins.h>
+
 #include "cpsecurityview.h"
 #include "cpsecmodview.h"
 #include "cpcertview.h"
@@ -54,8 +56,10 @@
 	  mPreView(NULL),
 	  mCertView(NULL),
 	  mCurrentView(NULL),
-	  mPos(0)
+	  mPos(0),
+	  mNote(NULL)
 	{
+	RDEBUG("0", 0);
 	setTitle(hbTrId("txt_certificate_manager_setlabel_advanced_security"));
 	
 	std::auto_ptr<QGraphicsLinearLayout> layout(q_check_ptr(new QGraphicsLinearLayout(Qt::Vertical)));
@@ -86,7 +90,7 @@
         
     HbListWidget* listSecView = q_check_ptr(new HbListWidget(this)); 
     QMap<QString,QString> keystoreLabels;
-    
+    RDEBUG("0", 0);
     try
 		{
 		QT_TRAP_THROWING(
@@ -122,7 +126,7 @@
     	listSecView->addItem(emptyWidget.get());
     	emptyWidget.release();
     	}
-    
+    RDEBUG("0", 0);
     std::auto_ptr<HbGroupBox> certificatesList(q_check_ptr(new HbGroupBox()));
 	certificatesList->setHeading(hbTrId("txt_certificate_manager_setlabel_certificates"));
 	certificatesList->setContentWidget(listCertView);
@@ -143,6 +147,8 @@
 	layout->addItem(securityModuleList.get());
 	securityModuleList.release();
 	
+	mContextMenu = q_check_ptr(new HbMenu());
+	
 	setLayout(layout.get()); 
 	layout.release();
 	}
@@ -153,33 +159,32 @@
 	if(mSecModView)
 		{
 		mSecModView->deleteLater();
-		mSecModView= NULL;
 		}
 	
 	if(mPreView)
 		{
 		mPreView->deleteLater();
-		mPreView= NULL;
 		}
 	
 	if(mCertView)
 		{
 		mCertView->deleteLater();
-		mCertView= NULL;
 		}
 	
 	if(mCurrentView)
 		{
 		mCurrentView->deleteLater();
-		mCurrentView= NULL;
 		}
 	
 	delete mSecModUIModel;  
-	mSecModUIModel = NULL;
+	
+	delete mNote;
+	delete mContextMenu;
 	}
 
 void CpSecurityView::showCodeView()
 	{
+	RDEBUG("0", 0);
 	try
 		{
 		mSecModView = q_check_ptr(new CpSecModView(mPos, *mSecModUIModel));    
@@ -202,6 +207,7 @@
 
 void CpSecurityView::showWIMview()
 	{
+	RDEBUG("0", 0);
 	try
 		{
 		QObject::connect(mSecModView , SIGNAL(aboutToClose()), this, SLOT(viewDone()));
@@ -232,6 +238,7 @@
 
 void CpSecurityView::displayCert(const QModelIndex& modelIndex)
 	{
+	RDEBUG("0", 0);
 	try
 	{
 	mCertView = q_check_ptr(new CpCertView(modelIndex));    
@@ -248,6 +255,7 @@
 
 void CpSecurityView::displayPrevious()  
 	{
+	RDEBUG("0", 0);
 	try
 		{
 		mainWindow()->removeView(mCertView);    
@@ -263,31 +271,32 @@
 
 void CpSecurityView::indicateLongPress(HbAbstractViewItem *item,QPointF coords)
 	{
+	RDEBUG("0", 0);
 	try
 		{
-		std::auto_ptr<HbMenu> contextMenu(q_check_ptr(new HbMenu()));
+		mContextMenu->clearActions();
 		mPos = item->modelIndex().row();   
 		
 		std::auto_ptr<HbAction> openModule(q_check_ptr(new HbAction("Open")));     
 		connect(openModule.get(), SIGNAL(triggered()), this, SLOT( showCodeView()));    
-		contextMenu->addAction(openModule.get());
+		mContextMenu->addAction(openModule.get());
 		openModule.release();
 		
 		if(mSecModUIModel->IsTokenDeletable(mPos))
 			{
 			std::auto_ptr<HbAction> deleteModule(q_check_ptr(new HbAction("Delete")));     
 			connect(deleteModule.get(), SIGNAL(triggered()), this, SLOT( deleteModule()));    
-			contextMenu->addAction(deleteModule.get());
+			mContextMenu->addAction(deleteModule.get());
 			deleteModule.release();
 			}
 		
 		std::auto_ptr<HbAction> moduleInfo(q_check_ptr(new HbAction("Module Info")));     
 		connect(moduleInfo.get(), SIGNAL(triggered()), this, SLOT( moduleDetails()));    
-		contextMenu->addAction(moduleInfo.get());
+		mContextMenu->addAction(moduleInfo.get());
 		moduleInfo.release();
 				
-		contextMenu->open();
-		contextMenu->setPreferredPos(coords);
+		mContextMenu->setPreferredPos(coords);
+		mContextMenu->open();
 		}
 	catch(const std::exception& exception)
 		{
@@ -297,33 +306,53 @@
 
 void CpSecurityView::deleteModule()
 	{
+	RDEBUG("0", 0);
 	try
 		{
-		HbMessageBox note(HbMessageBox::MessageTypeQuestion);
-		note.setHeadingWidget(q_check_ptr(new HbLabel(tr("Delete..."))));
-		note.setText("Delete keystore and password?");
-		note.setPrimaryAction(q_check_ptr(new HbAction("Yes")));
-		note.setSecondaryAction(q_check_ptr(new HbAction("No")));
-		note.setTimeout(HbPopup::NoTimeout);
-		note.setIconVisible (EFalse);
-		HbAction* result = note.exec();
-	
-		if (result != note.primaryAction())
-			{
-			return;
-			}
-	
-		QT_TRAP_THROWING(mSecModUIModel->DeleteKeysL(mPos));
+		
+		delete mNote;
+		mNote = NULL;
+		
+		mNote = new HbMessageBox(HbMessageBox::MessageTypeQuestion);
+		mNote->setHeadingWidget(q_check_ptr(new HbLabel(tr("Delete..."))));
+		mNote->setText("Delete keystore and password?");
+		mNote->setPrimaryAction(q_check_ptr(new HbAction("Yes")));
+		mNote->setSecondaryAction(q_check_ptr(new HbAction("No")));
+		mNote->setTimeout(HbPopup::NoTimeout);
+		mNote->setIconVisible (EFalse);
+		mNote->open(this,SLOT(dialogClosed(HbAction*)));
 		}
 	catch(const std::exception& exception)
 		{
-		HbMessageBox::information(exception.what());
+	    HbMessageBox *box = new HbMessageBox(exception.what());
+    	box->setAttribute(Qt::WA_DeleteOnClose);
+    	box->open();	
 		}
-	// refresh current view
+
+}
+void CpSecurityView::dialogClosed(HbAction* action)
+{
+	RDEBUG("0", 0);
+	if (action != mNote->primaryAction())
+		{
+		return;
+		}
+		
+	try
+		{
+		QT_TRAP_THROWING(mSecModUIModel->DeleteKeysL(mPos));
+   		}		
+	catch(const std::exception& exception)
+		{
+	    HbMessageBox *box = new HbMessageBox(exception.what());
+    	box->setAttribute(Qt::WA_DeleteOnClose);
+    	box->open();
+		}
 	}
 
 void CpSecurityView::moduleDetails()
 	{
+	RDEBUG("0", 0);
 	try
 		{
 		QVector< QPair<QString,QString> > securityDetails;
@@ -343,6 +372,7 @@
 
 void CpSecurityView::displayPreviousFromModInfo()  
 	{
+	RDEBUG("0", 0);
 	try
 		{
 		mainWindow()->removeView(mModuleinfoView);