perfapps/perfmon/ui/hb/app/src/mainview.cpp
author hgs
Fri, 17 Sep 2010 14:22:55 +0300
changeset 52 36d60d12b4af
parent 51 b048e15729d6
child 53 819e59dfc032
permissions -rw-r--r--
201037
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
51
hgs
parents:
diff changeset
     1
/*
hgs
parents:
diff changeset
     2
* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
hgs
parents:
diff changeset
     3
* All rights reserved.
hgs
parents:
diff changeset
     4
* This component and the accompanying materials are made available
hgs
parents:
diff changeset
     5
* under the terms of "Eclipse Public License v1.0"
hgs
parents:
diff changeset
     6
* which accompanies this distribution, and is available
hgs
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
hgs
parents:
diff changeset
     8
*
hgs
parents:
diff changeset
     9
* Initial Contributors:
hgs
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
hgs
parents:
diff changeset
    11
*
hgs
parents:
diff changeset
    12
* Contributors:
hgs
parents:
diff changeset
    13
*
hgs
parents:
diff changeset
    14
* Description:
hgs
parents:
diff changeset
    15
*
hgs
parents:
diff changeset
    16
*/
hgs
parents:
diff changeset
    17
hgs
parents:
diff changeset
    18
#include <QActionGroup>
hgs
parents:
diff changeset
    19
#include <HbApplication>
hgs
parents:
diff changeset
    20
#include <HbMenu>
hgs
parents:
diff changeset
    21
#include <HbToolBar>
hgs
parents:
diff changeset
    22
#include <HbAction>
hgs
parents:
diff changeset
    23
#include <HbMessageBox>
hgs
parents:
diff changeset
    24
#include <HbLabel>
hgs
parents:
diff changeset
    25
hgs
parents:
diff changeset
    26
#include "mainview.h"
hgs
parents:
diff changeset
    27
#include "enginewrapper.h"
hgs
parents:
diff changeset
    28
hgs
parents:
diff changeset
    29
hgs
parents:
diff changeset
    30
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
    31
hgs
parents:
diff changeset
    32
MainView::MainView(EngineWrapper &engine) :
hgs
parents:
diff changeset
    33
    mEngine(engine),
hgs
parents:
diff changeset
    34
    mValueDataContainer(0),
hgs
parents:
diff changeset
    35
    mGraphDataContainer(0)
hgs
parents:
diff changeset
    36
{
hgs
parents:
diff changeset
    37
    setTitle(tr("Perf. Monitor"));
hgs
parents:
diff changeset
    38
    mValueDataContainer = new ValueDataContainer(mEngine, this); 
hgs
parents:
diff changeset
    39
    mGraphDataContainer = new GraphDataContainer(mEngine, this);
hgs
parents:
diff changeset
    40
    createMenu();
hgs
parents:
diff changeset
    41
    showValues();
hgs
parents:
diff changeset
    42
}
hgs
parents:
diff changeset
    43
hgs
parents:
diff changeset
    44
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
    45
hgs
parents:
diff changeset
    46
MainView::~MainView()
hgs
parents:
diff changeset
    47
{
hgs
parents:
diff changeset
    48
}
hgs
parents:
diff changeset
    49
hgs
parents:
diff changeset
    50
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
    51
hgs
parents:
diff changeset
    52
void MainView::createMenu()
hgs
parents:
diff changeset
    53
{
hgs
parents:
diff changeset
    54
    HbMenu *menu = this->menu();
hgs
parents:
diff changeset
    55
    HbToolBar *toolbar = this->toolBar();
hgs
parents:
diff changeset
    56
hgs
parents:
diff changeset
    57
    if (menu && toolbar) {
hgs
parents:
diff changeset
    58
        mSwitchViewAction = new HbAction(toolbar);
hgs
parents:
diff changeset
    59
        toolbar->addAction(mSwitchViewAction);
hgs
parents:
diff changeset
    60
hgs
parents:
diff changeset
    61
        QActionGroup *viewGroup = new QActionGroup(this);
hgs
parents:
diff changeset
    62
        HbMenu *viewSubmenu = menu->addMenu(tr("View"));
hgs
parents:
diff changeset
    63
        mValuesAction = viewSubmenu->addAction(tr("Values"), this, SLOT(showValues()));
hgs
parents:
diff changeset
    64
        mValuesAction->setCheckable(true);
hgs
parents:
diff changeset
    65
        mValuesAction->setChecked(true);
hgs
parents:
diff changeset
    66
        viewGroup->addAction(mValuesAction);
hgs
parents:
diff changeset
    67
hgs
parents:
diff changeset
    68
        mGraphAction = viewSubmenu->addAction(tr("Graphs"), this, SLOT(showGraphs()));
hgs
parents:
diff changeset
    69
        mGraphAction->setCheckable(true);
hgs
parents:
diff changeset
    70
        viewGroup->addAction(mGraphAction);
hgs
parents:
diff changeset
    71
hgs
parents:
diff changeset
    72
        mLoggingAction = menu->addAction(QString(), this, SLOT(toggleLogging()));
hgs
parents:
diff changeset
    73
        toolbar->addAction(mLoggingAction);
hgs
parents:
diff changeset
    74
        updateLoggingAction();
hgs
parents:
diff changeset
    75
hgs
parents:
diff changeset
    76
        menu->addAction(tr("Settings..."), this, SIGNAL(settingsCommandInvoked()));
hgs
parents:
diff changeset
    77
        menu->addAction(tr("About..."), this, SLOT(showAbout()));
hgs
parents:
diff changeset
    78
        menu->addAction(tr("Exit"), qApp, SLOT(quit()));
hgs
parents:
diff changeset
    79
hgs
parents:
diff changeset
    80
    }
hgs
parents:
diff changeset
    81
}
hgs
parents:
diff changeset
    82
hgs
parents:
diff changeset
    83
void MainView::showValues()
hgs
parents:
diff changeset
    84
{
hgs
parents:
diff changeset
    85
    // remove old widget & take ownership
hgs
parents:
diff changeset
    86
    takeWidget();
hgs
parents:
diff changeset
    87
    mGraphDataContainer->hideContainer();
hgs
parents:
diff changeset
    88
    mValueDataContainer->showContainer(); 
hgs
parents:
diff changeset
    89
    // set new widget
hgs
parents:
diff changeset
    90
    this->setWidget(mValueDataContainer);
hgs
parents:
diff changeset
    91
    
hgs
parents:
diff changeset
    92
    mValuesAction->setChecked(true);
hgs
parents:
diff changeset
    93
hgs
parents:
diff changeset
    94
    mSwitchViewAction->setText(tr("View Graphs"));
hgs
parents:
diff changeset
    95
    disconnect(mSwitchViewAction, SIGNAL(triggered(bool)), this, SLOT(showValues()));
hgs
parents:
diff changeset
    96
    connect(mSwitchViewAction, SIGNAL(triggered(bool)), this, SLOT(showGraphs()));
hgs
parents:
diff changeset
    97
}
hgs
parents:
diff changeset
    98
hgs
parents:
diff changeset
    99
void MainView::showGraphs()
hgs
parents:
diff changeset
   100
{
hgs
parents:
diff changeset
   101
    // remove old widget & take ownership
hgs
parents:
diff changeset
   102
    takeWidget();
hgs
parents:
diff changeset
   103
    mValueDataContainer->hideContainer();    
hgs
parents:
diff changeset
   104
    mGraphDataContainer->showContainer();
hgs
parents:
diff changeset
   105
    // set new widget
hgs
parents:
diff changeset
   106
    this->setWidget(mGraphDataContainer);
hgs
parents:
diff changeset
   107
hgs
parents:
diff changeset
   108
    mGraphAction->setChecked(true);
hgs
parents:
diff changeset
   109
hgs
parents:
diff changeset
   110
    mSwitchViewAction->setText(tr("View Values"));
hgs
parents:
diff changeset
   111
    disconnect(mSwitchViewAction, SIGNAL(triggered(bool)), this, SLOT(showGraphs()));
hgs
parents:
diff changeset
   112
    connect(mSwitchViewAction, SIGNAL(triggered(bool)), this, SLOT(showValues()));
hgs
parents:
diff changeset
   113
}
hgs
parents:
diff changeset
   114
hgs
parents:
diff changeset
   115
void MainView::updateLoggingAction()
hgs
parents:
diff changeset
   116
{
hgs
parents:
diff changeset
   117
    mLoggingAction->setText(mEngine.settings().loggingEnabled() ?
hgs
parents:
diff changeset
   118
                            tr("Stop Logging") :
hgs
parents:
diff changeset
   119
                            tr("Start Logging"));
hgs
parents:
diff changeset
   120
}
hgs
parents:
diff changeset
   121
hgs
parents:
diff changeset
   122
void MainView::toggleLogging()
hgs
parents:
diff changeset
   123
{
hgs
parents:
diff changeset
   124
    mEngine.setLoggingEnabled(!mEngine.settings().loggingEnabled());
hgs
parents:
diff changeset
   125
    updateLoggingAction();
hgs
parents:
diff changeset
   126
}
hgs
parents:
diff changeset
   127
hgs
parents:
diff changeset
   128
void MainView::showAbout()
hgs
parents:
diff changeset
   129
{
hgs
parents:
diff changeset
   130
    HbMessageBox *messageBox = new HbMessageBox(HbMessageBox::MessageTypeInformation);
52
hgs
parents: 51
diff changeset
   131
    messageBox->setText("Version 1.2.1 - 10th September 2010. Copyright © 2010 Nokia Corporation and/or its subsidiary(-ies). All rights reserved. Licensed under Eclipse Public License v1.0.");
51
hgs
parents:
diff changeset
   132
    HbLabel *header = new HbLabel("About PerfMon", messageBox);
hgs
parents:
diff changeset
   133
    messageBox->setHeadingWidget(header);
hgs
parents:
diff changeset
   134
    messageBox->setAttribute(Qt::WA_DeleteOnClose);
hgs
parents:
diff changeset
   135
    messageBox->setTimeout(HbPopup::NoTimeout);
hgs
parents:
diff changeset
   136
    messageBox->open();
hgs
parents:
diff changeset
   137
}