memspyui/ui/hb/src/memspyview.cpp
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Fri, 14 May 2010 15:53:02 +0300
changeset 17 4f2773374eff
child 31 e7a04a6385be
permissions -rw-r--r--
Revision: 201017 Kit: 201019

/*
* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). 
* All rights reserved.
* This component and the accompanying materials are made available
* under the terms of "Eclipse Public License v1.0"
* which accompanies this distribution, and is available
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
*
* Initial Contributors:
* Nokia Corporation - initial contribution.
*
* Contributors:
*
* Description:
* 
*/

#include <HbMenu>
#include <HbToolBar>
#include <HbApplication>
#include <HbMessageBox>
#include <HbLabel>

#include "memspyview.h"


MemSpyView::MemSpyView(EngineWrapper &engine, ViewManager &viewManager) : 
	HbView(),
	mEngine(engine),
	mViewManager(viewManager),
	mOutputMenu(0), 
	mOutputGenInfoMenu(0), 
	mOutputHeapInfoMenu(0),
	mOutputStackInfoMenu(0),
	mToolBar(0)
{
	setWidget(&mListView);
}

MemSpyView::~MemSpyView()
{
	delete mToolBar;
	delete mOutputStackInfoMenu;
	delete mOutputHeapInfoMenu;
	delete mOutputGenInfoMenu; 
	delete mOutputMenu;
}

void MemSpyView::initialize(const QVariantMap& params)
{
	if (isRefreshable())
		menu()->addAction(tr("Refresh"));
	
	HbMenu* toolMenu = createToolMenu();
	if (toolMenu)
		menu()->addMenu(toolMenu);
	
	mOutputMenu = menu()->addMenu(tr("Output"));
	mOutputMenu->addActions(createOutputActions());
	mOutputGenInfoMenu = mOutputMenu->addMenu(tr("General Info"));
	mOutputHeapInfoMenu = mOutputMenu->addMenu(tr("Heap Info"));
	mOutputStackInfoMenu = mOutputMenu->addMenu(tr("Stack Info"));
	mOutputGenInfoMenu->addAction(tr("Summary"));
	mOutputGenInfoMenu->addAction(tr("Detailed Info"));
	mOutputGenInfoMenu->addAction(tr("Handle Info"));
	mOutputGenInfoMenu->addAction(tr("Kernel Containters"));
	mOutputHeapInfoMenu->addAction(tr("Detailed Summary"));
	mOutputHeapInfoMenu->addAction(tr("Compact Summary"));
	mOutputHeapInfoMenu->addAction(tr("Cell Listing"));
	mOutputHeapInfoMenu->addAction(tr("Data (Binary)"));
	mOutputStackInfoMenu->addAction(tr("Detailed Summary"));
	mOutputStackInfoMenu->addAction(tr("Compact Summary"));
	mOutputStackInfoMenu->addAction(tr("User Stacks (Binary)"));
	mOutputStackInfoMenu->addAction(tr("Kernel Stacks (Binary)"));
	menu()->addAction(tr("Start Auto Capture"));
	menu()->addAction(tr("Settings ..."));
	menu()->addAction(tr("About ..."), this, SLOT(showAbout()));
	menu()->addAction(tr("Exit"), qApp, SLOT(quit()));
	
	mToolBar = createToolBar();
	if (mToolBar)
		setToolBar(mToolBar);
}

QList<QAction*> MemSpyView::createOutputActions()
{
	return QList<QAction*>();
}

HbMenu* MemSpyView::createToolMenu()
{
	return 0;
}

HbToolBar* MemSpyView::createToolBar()
{
	return 0;
}

bool MemSpyView::isRefreshable() const
{
	return false;
}

void MemSpyView::refresh()
{
	// Empty default implementation
}

void MemSpyView::showAbout()
{
	HbMessageBox *messageBox = new HbMessageBox(HbMessageBox::MessageTypeInformation);
	messageBox->setText("Version 2.0.0 - 23th April 2010. Copyright © 2010 Nokia Corporation and/or its subsidiary(-ies). All rights reserved. Licensed under Eclipse Public License v1.0.");
	HbLabel *header = new HbLabel("About MemSpy", messageBox);
	messageBox->setHeadingWidget(header);
	messageBox->setAttribute(Qt::WA_DeleteOnClose);
	messageBox->setTimeout(HbPopup::NoTimeout);
	messageBox->open();
}