--- a/memspyui/ui/hb/src/memspyview.cpp Fri Jun 11 16:29:34 2010 +0100
+++ b/memspyui/ui/hb/src/memspyview.cpp Thu Jul 22 16:33:59 2010 +0100
@@ -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);
+}