diff -r d8e625c87f33 -r e7a04a6385be memspyui/ui/hb/src/memspyview.cpp --- 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 +#include +#include #include +#include #include #include #include +#include #include #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; iviews().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); +}