cpsecplugins/cpadvancedsecplugin/src/cpsecurityview.cpp
branchGCC_SURGE
changeset 40 604cd42065d1
parent 37 7bad16cccaca
child 59 881d92421467
equal deleted inserted replaced
29:b63e8c2d8cff 40:604cd42065d1
    26 #include <hbdataform.h>
    26 #include <hbdataform.h>
    27 #include <hbdataformmodel.h>
    27 #include <hbdataformmodel.h>
    28 #include <hbdataformmodelitem.h>
    28 #include <hbdataformmodelitem.h>
    29 #include <hblabel.h>
    29 #include <hblabel.h>
    30 #include <hbpushbutton.h>
    30 #include <hbpushbutton.h>
    31 #include <HbMenu.h>
    31 #include <hbmenu.h>
    32 #include <hbaction.h>
    32 #include <hbaction.h>
    33 #include <HbMessageBox.h>
    33 #include <hbmessagebox.h>
    34 #include <HbListWidget>
    34 #include <HbListWidget>
    35 #include <HbListWidgetItem>
    35 #include <HbListWidgetItem>
    36 #include <HbGroupBox>
    36 #include <HbGroupBox>
    37 #include <hbpushbutton.h>
    37 #include <hbpushbutton.h>
    38 #include <hbmainwindow.h>
    38 #include <hbmainwindow.h>
    39 #include <hbabstractviewitem.h>
    39 #include <hbabstractviewitem.h>
    40 #include <HbMessageBox>
    40 #include <HbMessageBox>
    41 
    41 
    42 #include <memory>
    42 #include <memory>
    43 
    43 
       
    44 #include <../../inc/cpsecplugins.h>
       
    45 
    44 #include "cpsecurityview.h"
    46 #include "cpsecurityview.h"
    45 #include "cpsecmodview.h"
    47 #include "cpsecmodview.h"
    46 #include "cpcertview.h"
    48 #include "cpcertview.h"
    47 #include "cpsecmodmodel.h"
    49 #include "cpsecmodmodel.h"
    48 #include "cpsecmoduleinfoview.h"
    50 #include "cpsecmoduleinfoview.h"
    52 	  mSecModUIModel(NULL),
    54 	  mSecModUIModel(NULL),
    53 	  mSecModView(NULL),
    55 	  mSecModView(NULL),
    54 	  mPreView(NULL),
    56 	  mPreView(NULL),
    55 	  mCertView(NULL),
    57 	  mCertView(NULL),
    56 	  mCurrentView(NULL),
    58 	  mCurrentView(NULL),
    57 	  mPos(0)
    59 	  mPos(0),
    58 	{
    60 	  mNote(NULL)
       
    61 	{
       
    62 	RDEBUG("0", 0);
    59 	setTitle(hbTrId("txt_certificate_manager_setlabel_advanced_security"));
    63 	setTitle(hbTrId("txt_certificate_manager_setlabel_advanced_security"));
    60 	
    64 	
    61 	std::auto_ptr<QGraphicsLinearLayout> layout(q_check_ptr(new QGraphicsLinearLayout(Qt::Vertical)));
    65 	std::auto_ptr<QGraphicsLinearLayout> layout(q_check_ptr(new QGraphicsLinearLayout(Qt::Vertical)));
    62     HbListWidget* listCertView = q_check_ptr(new HbListWidget(this)); 
    66     HbListWidget* listCertView = q_check_ptr(new HbListWidget(this)); 
    63 
    67 
    84 
    88 
    85     connect(listCertView, SIGNAL(released(QModelIndex)), this, SLOT(displayCert(QModelIndex)));
    89     connect(listCertView, SIGNAL(released(QModelIndex)), this, SLOT(displayCert(QModelIndex)));
    86         
    90         
    87     HbListWidget* listSecView = q_check_ptr(new HbListWidget(this)); 
    91     HbListWidget* listSecView = q_check_ptr(new HbListWidget(this)); 
    88     QMap<QString,QString> keystoreLabels;
    92     QMap<QString,QString> keystoreLabels;
    89     
    93     RDEBUG("0", 0);
    90     try
    94     try
    91 		{
    95 		{
    92 		QT_TRAP_THROWING(
    96 		QT_TRAP_THROWING(
    93 		mSecModUIModel = CSecModUIModel::NewL();
    97 		mSecModUIModel = CSecModUIModel::NewL();
    94 		keystoreLabels = mSecModUIModel->LoadTokenLabelsL(); )
    98 		keystoreLabels = mSecModUIModel->LoadTokenLabelsL(); )
   120 		std::auto_ptr<HbListWidgetItem> emptyWidget(q_check_ptr(new HbListWidgetItem()));
   124 		std::auto_ptr<HbListWidgetItem> emptyWidget(q_check_ptr(new HbListWidgetItem()));
   121 		emptyWidget->setText("(no security modules)");
   125 		emptyWidget->setText("(no security modules)");
   122     	listSecView->addItem(emptyWidget.get());
   126     	listSecView->addItem(emptyWidget.get());
   123     	emptyWidget.release();
   127     	emptyWidget.release();
   124     	}
   128     	}
   125     
   129     RDEBUG("0", 0);
   126     std::auto_ptr<HbGroupBox> certificatesList(q_check_ptr(new HbGroupBox()));
   130     std::auto_ptr<HbGroupBox> certificatesList(q_check_ptr(new HbGroupBox()));
   127 	certificatesList->setHeading(hbTrId("txt_certificate_manager_setlabel_certificates"));
   131 	certificatesList->setHeading(hbTrId("txt_certificate_manager_setlabel_certificates"));
   128 	certificatesList->setContentWidget(listCertView);
   132 	certificatesList->setContentWidget(listCertView);
   129 	certificatesList->setCollapsed(true);
   133 	certificatesList->setCollapsed(true);
   130 	layout->addItem(certificatesList.get());
   134 	layout->addItem(certificatesList.get());
   141 	securityModuleList->setContentWidget(listSecView);
   145 	securityModuleList->setContentWidget(listSecView);
   142 	securityModuleList->setCollapsed(true);
   146 	securityModuleList->setCollapsed(true);
   143 	layout->addItem(securityModuleList.get());
   147 	layout->addItem(securityModuleList.get());
   144 	securityModuleList.release();
   148 	securityModuleList.release();
   145 	
   149 	
       
   150 	mContextMenu = q_check_ptr(new HbMenu());
       
   151 	
   146 	setLayout(layout.get()); 
   152 	setLayout(layout.get()); 
   147 	layout.release();
   153 	layout.release();
   148 	}
   154 	}
   149 
   155 
   150 
   156 
   151 CpSecurityView::~CpSecurityView()
   157 CpSecurityView::~CpSecurityView()
   152 	{
   158 	{
   153 	if(mSecModView)
   159 	if(mSecModView)
   154 		{
   160 		{
   155 		mSecModView->deleteLater();
   161 		mSecModView->deleteLater();
   156 		mSecModView= NULL;
       
   157 		}
   162 		}
   158 	
   163 	
   159 	if(mPreView)
   164 	if(mPreView)
   160 		{
   165 		{
   161 		mPreView->deleteLater();
   166 		mPreView->deleteLater();
   162 		mPreView= NULL;
       
   163 		}
   167 		}
   164 	
   168 	
   165 	if(mCertView)
   169 	if(mCertView)
   166 		{
   170 		{
   167 		mCertView->deleteLater();
   171 		mCertView->deleteLater();
   168 		mCertView= NULL;
       
   169 		}
   172 		}
   170 	
   173 	
   171 	if(mCurrentView)
   174 	if(mCurrentView)
   172 		{
   175 		{
   173 		mCurrentView->deleteLater();
   176 		mCurrentView->deleteLater();
   174 		mCurrentView= NULL;
       
   175 		}
   177 		}
   176 	
   178 	
   177 	delete mSecModUIModel;  
   179 	delete mSecModUIModel;  
   178 	mSecModUIModel = NULL;
   180 	
       
   181 	delete mNote;
       
   182 	delete mContextMenu;
   179 	}
   183 	}
   180 
   184 
   181 void CpSecurityView::showCodeView()
   185 void CpSecurityView::showCodeView()
   182 	{
   186 	{
       
   187 	RDEBUG("0", 0);
   183 	try
   188 	try
   184 		{
   189 		{
   185 		mSecModView = q_check_ptr(new CpSecModView(mPos, *mSecModUIModel));    
   190 		mSecModView = q_check_ptr(new CpSecModView(mPos, *mSecModUIModel));    
   186 		QObject::connect(mSecModView , SIGNAL(aboutToClose()), this, SLOT(viewDone()));
   191 		QObject::connect(mSecModView , SIGNAL(aboutToClose()), this, SLOT(viewDone()));
   187 		mPreView = mainWindow()->currentView();   //suppose mPreView  is member variable of CpSecurityView
   192 		mPreView = mainWindow()->currentView();   //suppose mPreView  is member variable of CpSecurityView
   200 	showCodeView();	
   205 	showCodeView();	
   201 	}
   206 	}
   202 
   207 
   203 void CpSecurityView::showWIMview()
   208 void CpSecurityView::showWIMview()
   204 	{
   209 	{
       
   210 	RDEBUG("0", 0);
   205 	try
   211 	try
   206 		{
   212 		{
   207 		QObject::connect(mSecModView , SIGNAL(aboutToClose()), this, SLOT(viewDone()));
   213 		QObject::connect(mSecModView , SIGNAL(aboutToClose()), this, SLOT(viewDone()));
   208 		mPreView = mainWindow()->currentView();   //suppose mPreView  is member variable of CpSecurityView
   214 		mPreView = mainWindow()->currentView();   //suppose mPreView  is member variable of CpSecurityView
   209 		mainWindow()->addView(mSecModView);
   215 		mainWindow()->addView(mSecModView);
   230 		}
   236 		}
   231 	}
   237 	}
   232 
   238 
   233 void CpSecurityView::displayCert(const QModelIndex& modelIndex)
   239 void CpSecurityView::displayCert(const QModelIndex& modelIndex)
   234 	{
   240 	{
       
   241 	RDEBUG("0", 0);
   235 	try
   242 	try
   236 	{
   243 	{
   237 	mCertView = q_check_ptr(new CpCertView(modelIndex));    
   244 	mCertView = q_check_ptr(new CpCertView(modelIndex));    
   238 	connect(mCertView , SIGNAL(aboutToClose()), this, SLOT(displayPrevious()));
   245 	connect(mCertView , SIGNAL(aboutToClose()), this, SLOT(displayPrevious()));
   239 	mPreView = mainWindow()->currentView();   
   246 	mPreView = mainWindow()->currentView();   
   246 		}
   253 		}
   247 	}
   254 	}
   248 
   255 
   249 void CpSecurityView::displayPrevious()  
   256 void CpSecurityView::displayPrevious()  
   250 	{
   257 	{
       
   258 	RDEBUG("0", 0);
   251 	try
   259 	try
   252 		{
   260 		{
   253 		mainWindow()->removeView(mCertView);    
   261 		mainWindow()->removeView(mCertView);    
   254 		mCertView->deleteLater();
   262 		mCertView->deleteLater();
   255 		mCertView= NULL;
   263 		mCertView= NULL;
   261 		}
   269 		}
   262 	}
   270 	}
   263 
   271 
   264 void CpSecurityView::indicateLongPress(HbAbstractViewItem *item,QPointF coords)
   272 void CpSecurityView::indicateLongPress(HbAbstractViewItem *item,QPointF coords)
   265 	{
   273 	{
   266 	try
   274 	RDEBUG("0", 0);
   267 		{
   275 	try
   268 		std::auto_ptr<HbMenu> contextMenu(q_check_ptr(new HbMenu()));
   276 		{
       
   277 		mContextMenu->clearActions();
   269 		mPos = item->modelIndex().row();   
   278 		mPos = item->modelIndex().row();   
   270 		
   279 		
   271 		std::auto_ptr<HbAction> openModule(q_check_ptr(new HbAction("Open")));     
   280 		std::auto_ptr<HbAction> openModule(q_check_ptr(new HbAction("Open")));     
   272 		connect(openModule.get(), SIGNAL(triggered()), this, SLOT( showCodeView()));    
   281 		connect(openModule.get(), SIGNAL(triggered()), this, SLOT( showCodeView()));    
   273 		contextMenu->addAction(openModule.get());
   282 		mContextMenu->addAction(openModule.get());
   274 		openModule.release();
   283 		openModule.release();
   275 		
   284 		
   276 		if(mSecModUIModel->IsTokenDeletable(mPos))
   285 		if(mSecModUIModel->IsTokenDeletable(mPos))
   277 			{
   286 			{
   278 			std::auto_ptr<HbAction> deleteModule(q_check_ptr(new HbAction("Delete")));     
   287 			std::auto_ptr<HbAction> deleteModule(q_check_ptr(new HbAction("Delete")));     
   279 			connect(deleteModule.get(), SIGNAL(triggered()), this, SLOT( deleteModule()));    
   288 			connect(deleteModule.get(), SIGNAL(triggered()), this, SLOT( deleteModule()));    
   280 			contextMenu->addAction(deleteModule.get());
   289 			mContextMenu->addAction(deleteModule.get());
   281 			deleteModule.release();
   290 			deleteModule.release();
   282 			}
   291 			}
   283 		
   292 		
   284 		std::auto_ptr<HbAction> moduleInfo(q_check_ptr(new HbAction("Module Info")));     
   293 		std::auto_ptr<HbAction> moduleInfo(q_check_ptr(new HbAction("Module Info")));     
   285 		connect(moduleInfo.get(), SIGNAL(triggered()), this, SLOT( moduleDetails()));    
   294 		connect(moduleInfo.get(), SIGNAL(triggered()), this, SLOT( moduleDetails()));    
   286 		contextMenu->addAction(moduleInfo.get());
   295 		mContextMenu->addAction(moduleInfo.get());
   287 		moduleInfo.release();
   296 		moduleInfo.release();
   288 				
   297 				
   289 		contextMenu->open();
   298 		mContextMenu->setPreferredPos(coords);
   290 		contextMenu->setPreferredPos(coords);
   299 		mContextMenu->open();
   291 		}
   300 		}
   292 	catch(const std::exception& exception)
   301 	catch(const std::exception& exception)
   293 		{
   302 		{
   294 		HbMessageBox::information(exception.what());
   303 		HbMessageBox::information(exception.what());
   295 		}
   304 		}
   296 	}
   305 	}
   297 
   306 
   298 void CpSecurityView::deleteModule()
   307 void CpSecurityView::deleteModule()
   299 	{
   308 	{
   300 	try
   309 	RDEBUG("0", 0);
   301 		{
   310 	try
   302 		HbMessageBox note(HbMessageBox::MessageTypeQuestion);
   311 		{
   303 		note.setHeadingWidget(q_check_ptr(new HbLabel(tr("Delete..."))));
   312 		
   304 		note.setText("Delete keystore and password?");
   313 		delete mNote;
   305 		note.setPrimaryAction(q_check_ptr(new HbAction("Yes")));
   314 		mNote = NULL;
   306 		note.setSecondaryAction(q_check_ptr(new HbAction("No")));
   315 		
   307 		note.setTimeout(HbPopup::NoTimeout);
   316 		mNote = new HbMessageBox(HbMessageBox::MessageTypeQuestion);
   308 		note.setIconVisible (EFalse);
   317 		mNote->setHeadingWidget(q_check_ptr(new HbLabel(tr("Delete..."))));
   309 		HbAction* result = note.exec();
   318 		mNote->setText("Delete keystore and password?");
   310 	
   319 		mNote->setPrimaryAction(q_check_ptr(new HbAction("Yes")));
   311 		if (result != note.primaryAction())
   320 		mNote->setSecondaryAction(q_check_ptr(new HbAction("No")));
   312 			{
   321 		mNote->setTimeout(HbPopup::NoTimeout);
   313 			return;
   322 		mNote->setIconVisible (EFalse);
   314 			}
   323 		mNote->open(this,SLOT(dialogClosed(HbAction*)));
   315 	
   324 		}
       
   325 	catch(const std::exception& exception)
       
   326 		{
       
   327 	    HbMessageBox *box = new HbMessageBox(exception.what());
       
   328     	box->setAttribute(Qt::WA_DeleteOnClose);
       
   329     	box->open();	
       
   330 		}
       
   331 
       
   332 }
       
   333 void CpSecurityView::dialogClosed(HbAction* action)
       
   334 {
       
   335 	RDEBUG("0", 0);
       
   336 	if (action != mNote->primaryAction())
       
   337 		{
       
   338 		return;
       
   339 		}
       
   340 		
       
   341 	try
       
   342 		{
   316 		QT_TRAP_THROWING(mSecModUIModel->DeleteKeysL(mPos));
   343 		QT_TRAP_THROWING(mSecModUIModel->DeleteKeysL(mPos));
   317 		}
   344    		}		
   318 	catch(const std::exception& exception)
   345 	catch(const std::exception& exception)
   319 		{
   346 		{
   320 		HbMessageBox::information(exception.what());
   347 	    HbMessageBox *box = new HbMessageBox(exception.what());
   321 		}
   348     	box->setAttribute(Qt::WA_DeleteOnClose);
   322 	// refresh current view
   349     	box->open();
       
   350 		}
   323 	}
   351 	}
   324 
   352 
   325 void CpSecurityView::moduleDetails()
   353 void CpSecurityView::moduleDetails()
   326 	{
   354 	{
       
   355 	RDEBUG("0", 0);
   327 	try
   356 	try
   328 		{
   357 		{
   329 		QVector< QPair<QString,QString> > securityDetails;
   358 		QVector< QPair<QString,QString> > securityDetails;
   330 		QT_TRAP_THROWING(securityDetails = mSecModUIModel->SecModDetailsL(mPos));
   359 		QT_TRAP_THROWING(securityDetails = mSecModUIModel->SecModDetailsL(mPos));
   331 		mModuleinfoView = q_check_ptr(new CpSecmoduleInfoView(securityDetails));
   360 		mModuleinfoView = q_check_ptr(new CpSecmoduleInfoView(securityDetails));
   341 		}
   370 		}
   342 	}
   371 	}
   343 
   372 
   344 void CpSecurityView::displayPreviousFromModInfo()  
   373 void CpSecurityView::displayPreviousFromModInfo()  
   345 	{
   374 	{
       
   375 	RDEBUG("0", 0);
   346 	try
   376 	try
   347 		{
   377 		{
   348 		mainWindow()->removeView(mModuleinfoView);    
   378 		mainWindow()->removeView(mModuleinfoView);    
   349 		mCertView->deleteLater();
   379 		mCertView->deleteLater();
   350 		mCertView= NULL;
   380 		mCertView= NULL;