memspyui/ui/hb/src/memspyview.cpp
changeset 31 e7a04a6385be
parent 17 4f2773374eff
--- a/memspyui/ui/hb/src/memspyview.cpp	Thu Jun 17 15:34:52 2010 +0300
+++ b/memspyui/ui/hb/src/memspyview.cpp	Thu Jun 24 14:55:55 2010 +0300
@@ -15,14 +15,21 @@
 * 
 */
 
+#include <QSignalMapper>
+#include <QGraphicsLinearLayout>
+#include <QDebug>
 #include <HbMenu>
+#include <HbAction>
 #include <HbToolBar>
 #include <HbApplication>
 #include <HbMessageBox>
+#include <HbMainWindow>
 #include <HbLabel>
 
 #include "memspyview.h"
+#include "enginewrapper.h"
 
+#include "memspysettingsview.h"
 
 MemSpyView::MemSpyView(EngineWrapper &engine, ViewManager &viewManager) : 
 	HbView(),
@@ -32,13 +39,14 @@
 	mOutputGenInfoMenu(0), 
 	mOutputHeapInfoMenu(0),
 	mOutputStackInfoMenu(0),
-	mToolBar(0)
+	mToolBar(0),
+	mBreadCrumb(0)
 {
-	setWidget(&mListView);
 }
 
 MemSpyView::~MemSpyView()
 {
+	delete mBreadCrumb;
 	delete mToolBar;
 	delete mOutputStackInfoMenu;
 	delete mOutputHeapInfoMenu;
@@ -48,32 +56,29 @@
 
 void MemSpyView::initialize(const QVariantMap& params)
 {
+	Q_UNUSED(params);
+	QGraphicsLinearLayout *layout = new QGraphicsLinearLayout(Qt::Vertical, this);
+	
+	if (isBreadCrumbVisible()) {
+		mBreadCrumb = new HbLabel(this);
+		mBreadCrumb->setTextWrapping(Hb::TextWordWrap);
+		mBreadCrumb->setElideMode(Qt::ElideLeft);
+		mBreadCrumb->setPlainText(getBreadCrumbText());
+		HbFontSpec spec(HbFontSpec::PrimarySmall);
+		mBreadCrumb->setFontSpec(spec);
+		layout->addItem(mBreadCrumb);
+	}
+	layout->addItem(createCentralWidget());
+	setLayout(layout); 
+	
 	if (isRefreshable())
-		menu()->addAction(tr("Refresh"));
+		menu()->addAction(tr("Refresh"), this, SLOT(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("Settings ..."), this, SLOT(showSettings()));
 	menu()->addAction(tr("About ..."), this, SLOT(showAbout()));
 	menu()->addAction(tr("Exit"), qApp, SLOT(quit()));
 	
@@ -102,18 +107,51 @@
 	return false;
 }
 
+bool MemSpyView::isBreadCrumbVisible() const
+{
+    return false;
+}
+
+QString MemSpyView::getBreadCrumbText() const
+{
+	QStringList views;
+	for (int i=1; i<mainWindow()->views().count() - 1; i++)	{
+		const HbView *view = mainWindow()->views().at(i);
+		if (view == this)
+			break;
+		views.append(view->title());
+	}
+	views.append(title());
+	
+	return views.join(" > ");
+}
+
 void MemSpyView::refresh()
 {
 	// Empty default implementation
 }
 
+void MemSpyView::showSettings()
+{
+	MemSpySettingsView* settings = new MemSpySettingsView(mEngine);
+	connect(settings, SIGNAL(finished(bool)), this, SLOT(closeSettings()));
+	mainWindow()->addView(settings);
+	mainWindow()->setCurrentView(settings);
+}
+
 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.");
+	messageBox->setText("Version 2.1.0 - 15th June 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();
 }
+
+void MemSpyView::closeSettings()
+{
+	sender()->deleteLater();
+	mainWindow()->setCurrentView(this);
+}