wlanutilities/wlanwizard/src/wlanwizardpagenetworkmode.cpp
author hgs
Mon, 24 May 2010 21:11:39 +0300
changeset 31 e8f4211554fb
child 39 7b3e49e4608a
permissions -rw-r--r--
201021
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
31
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
 *   WLAN Wizard Page: Network mode Selection.
hgs
parents:
diff changeset
    16
 *
hgs
parents:
diff changeset
    17
 */
hgs
parents:
diff changeset
    18
hgs
parents:
diff changeset
    19
// System includes
hgs
parents:
diff changeset
    20
#include <HbDocumentLoader>
hgs
parents:
diff changeset
    21
#include <HbWidget>
hgs
parents:
diff changeset
    22
#include <HbRadioButtonList>
hgs
parents:
diff changeset
    23
#include <HbMainWindow>
hgs
parents:
diff changeset
    24
#include <HbLabel>
hgs
parents:
diff changeset
    25
#include <cmmanagerdefines_shim.h>
hgs
parents:
diff changeset
    26
hgs
parents:
diff changeset
    27
// User includes
hgs
parents:
diff changeset
    28
#include "wlanwizard_p.h"
hgs
parents:
diff changeset
    29
#include "wlanwizard.h"
hgs
parents:
diff changeset
    30
#include "wlanwizardpagenetworkmode.h"
hgs
parents:
diff changeset
    31
#include "OstTraceDefinitions.h"
hgs
parents:
diff changeset
    32
#ifdef OST_TRACE_COMPILER_IN_USE
hgs
parents:
diff changeset
    33
#include "wlanwizardpagenetworkmodeTraces.h"
hgs
parents:
diff changeset
    34
#endif
hgs
parents:
diff changeset
    35
hgs
parents:
diff changeset
    36
/*!
hgs
parents:
diff changeset
    37
 * Contructor. Member initialization.
hgs
parents:
diff changeset
    38
 */
hgs
parents:
diff changeset
    39
WlanWizardPageNetworkMode::WlanWizardPageNetworkMode(
hgs
parents:
diff changeset
    40
    WlanWizardPrivate* parent) :
hgs
parents:
diff changeset
    41
    WlanWizardPageInternal(parent),
hgs
parents:
diff changeset
    42
    mWidget(NULL),
hgs
parents:
diff changeset
    43
    mList(NULL),
hgs
parents:
diff changeset
    44
    mLabel(NULL),
hgs
parents:
diff changeset
    45
    mLoader(NULL),
hgs
parents:
diff changeset
    46
    mValid(false)
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
 * Destructor. Loader widget is deleted.
hgs
parents:
diff changeset
    52
 * All document widgets are deleted by wlanwizard_p destructor. 
hgs
parents:
diff changeset
    53
 */
hgs
parents:
diff changeset
    54
WlanWizardPageNetworkMode::~WlanWizardPageNetworkMode()
hgs
parents:
diff changeset
    55
{
hgs
parents:
diff changeset
    56
    delete mLoader;
hgs
parents:
diff changeset
    57
}
hgs
parents:
diff changeset
    58
hgs
parents:
diff changeset
    59
/*!
hgs
parents:
diff changeset
    60
 * Page initialization. If view is already loaded, does nothing.
hgs
parents:
diff changeset
    61
 */
hgs
parents:
diff changeset
    62
HbWidget* WlanWizardPageNetworkMode::initializePage()
hgs
parents:
diff changeset
    63
{
hgs
parents:
diff changeset
    64
    OstTrace0( TRACE_NORMAL, WLANWIZARDPAGENETWORKMODE_INITIALIZEPAGE,
hgs
parents:
diff changeset
    65
        "WlanWizardPageNetworkMode::initializePage" );
hgs
parents:
diff changeset
    66
hgs
parents:
diff changeset
    67
    if (mWidget == NULL) {
hgs
parents:
diff changeset
    68
        mLoader = new HbDocumentLoader(mWizard->mainWindow());
hgs
parents:
diff changeset
    69
hgs
parents:
diff changeset
    70
        bool ok;
hgs
parents:
diff changeset
    71
hgs
parents:
diff changeset
    72
        mLoader->load(":/docml/occ_add_wlan_02_03.docml", &ok);
hgs
parents:
diff changeset
    73
        Q_ASSERT_X(ok, "WLAN Wizard", "Invalid docml file");
hgs
parents:
diff changeset
    74
hgs
parents:
diff changeset
    75
        loadDocml(mWizard->mainWindow()->orientation());
hgs
parents:
diff changeset
    76
hgs
parents:
diff changeset
    77
        mWidget = qobject_cast<HbWidget*> (mLoader->findWidget(
hgs
parents:
diff changeset
    78
            "occ_add_wlan_02"));
hgs
parents:
diff changeset
    79
        Q_ASSERT_X(mWidget != NULL, "WlanWizardPageNetworkMode", "View not found");
hgs
parents:
diff changeset
    80
hgs
parents:
diff changeset
    81
        mList = qobject_cast<HbRadioButtonList*> (mLoader->findWidget("list"));
hgs
parents:
diff changeset
    82
        Q_ASSERT_X(mList != NULL, "WlanWizardPageNetworkMode", "List not found");
hgs
parents:
diff changeset
    83
hgs
parents:
diff changeset
    84
        mLabel = qobject_cast<HbLabel*> (mLoader->findWidget("dialog_6"));
hgs
parents:
diff changeset
    85
        Q_ASSERT_X(mLabel != NULL, "WlanWizardPageNetworkMode", "Label not found");
hgs
parents:
diff changeset
    86
hgs
parents:
diff changeset
    87
        // Connect document loading to main window orientation changes.
hgs
parents:
diff changeset
    88
        ok &= connect(mWizard->mainWindow(),
hgs
parents:
diff changeset
    89
            SIGNAL(orientationChanged(Qt::Orientation)), this,
hgs
parents:
diff changeset
    90
            SLOT(loadDocml(Qt::Orientation)));
hgs
parents:
diff changeset
    91
hgs
parents:
diff changeset
    92
        // Connect a function to a radio button selection.
hgs
parents:
diff changeset
    93
        ok &= connect(mList, SIGNAL(itemSelected(int)), this,
hgs
parents:
diff changeset
    94
            SLOT(itemSelected(int)));
hgs
parents:
diff changeset
    95
hgs
parents:
diff changeset
    96
        Q_ASSERT_X(ok, "WLAN Wizard", "orientationChanged slot connection failed");
hgs
parents:
diff changeset
    97
hgs
parents:
diff changeset
    98
        mLabel->setPlainText(hbTrId(
hgs
parents:
diff changeset
    99
            "txt_occ_dialog_select_network_mode_and_status"));
hgs
parents:
diff changeset
   100
hgs
parents:
diff changeset
   101
        QStringList items;
hgs
parents:
diff changeset
   102
hgs
parents:
diff changeset
   103
        addToList(items, hbTrId("txt_occ_dblist_val_infrastructure_public"),
hgs
parents:
diff changeset
   104
            CMManagerShim::Infra, false);
hgs
parents:
diff changeset
   105
hgs
parents:
diff changeset
   106
        addToList(items, hbTrId("txt_occ_list_infrastructure_hidden"),
hgs
parents:
diff changeset
   107
            CMManagerShim::Infra, true);
hgs
parents:
diff changeset
   108
hgs
parents:
diff changeset
   109
        addToList(items, hbTrId("txt_occ_list_adhoc_1"), CMManagerShim::Adhoc,
hgs
parents:
diff changeset
   110
            false);
hgs
parents:
diff changeset
   111
hgs
parents:
diff changeset
   112
        mList->setItems(items);
hgs
parents:
diff changeset
   113
hgs
parents:
diff changeset
   114
    }
hgs
parents:
diff changeset
   115
    return mWidget;
hgs
parents:
diff changeset
   116
}
hgs
parents:
diff changeset
   117
hgs
parents:
diff changeset
   118
/*!
hgs
parents:
diff changeset
   119
 * When moving to next page, write user selections to the wizard and return
hgs
parents:
diff changeset
   120
 * Security mode query page id.
hgs
parents:
diff changeset
   121
 */
hgs
parents:
diff changeset
   122
int WlanWizardPageNetworkMode::nextId(bool &removeFromStack) const
hgs
parents:
diff changeset
   123
{
hgs
parents:
diff changeset
   124
    removeFromStack = false;
hgs
parents:
diff changeset
   125
    // TODO: wk18: proper code
hgs
parents:
diff changeset
   126
    mWizard->setConfiguration(WlanWizardPrivate::ConfNetworkMode,
hgs
parents:
diff changeset
   127
        mNetworkModes.at(mList->selected()));
hgs
parents:
diff changeset
   128
    
hgs
parents:
diff changeset
   129
    mWizard->setConfiguration(WlanWizardPrivate::ConfHiddenWlan,
hgs
parents:
diff changeset
   130
        mIsHidden.at(mList->selected()));
hgs
parents:
diff changeset
   131
hgs
parents:
diff changeset
   132
    return WlanWizardPageInternal::PageNetworkSecurity;
hgs
parents:
diff changeset
   133
}
hgs
parents:
diff changeset
   134
hgs
parents:
diff changeset
   135
/*!
hgs
parents:
diff changeset
   136
 * Indicates the validity of the network mode page.
hgs
parents:
diff changeset
   137
 * @see WlanWizardPage
hgs
parents:
diff changeset
   138
 */
hgs
parents:
diff changeset
   139
bool WlanWizardPageNetworkMode::showPage()
hgs
parents:
diff changeset
   140
{
hgs
parents:
diff changeset
   141
    return mValid;
hgs
parents:
diff changeset
   142
}
hgs
parents:
diff changeset
   143
hgs
parents:
diff changeset
   144
/*!
hgs
parents:
diff changeset
   145
 * Sets the page as valid, if any mode is selected.
hgs
parents:
diff changeset
   146
 * (Initially none is selected.) 
hgs
parents:
diff changeset
   147
 */
hgs
parents:
diff changeset
   148
void WlanWizardPageNetworkMode::itemSelected(int /* index */)
hgs
parents:
diff changeset
   149
{
hgs
parents:
diff changeset
   150
    OstTrace0( TRACE_BORDER, WLANWIZARDPAGENETWORKMODE_ITEMSELECTED,
hgs
parents:
diff changeset
   151
        "WlanWizardPageNetworkMode::itemSelected" );
hgs
parents:
diff changeset
   152
hgs
parents:
diff changeset
   153
    mValid = true;
hgs
parents:
diff changeset
   154
    mWizard->enableNextButton(mValid);
hgs
parents:
diff changeset
   155
}
hgs
parents:
diff changeset
   156
hgs
parents:
diff changeset
   157
/*!
hgs
parents:
diff changeset
   158
 * Loads the ui layout file with current orientation.
hgs
parents:
diff changeset
   159
 */
hgs
parents:
diff changeset
   160
void WlanWizardPageNetworkMode::loadDocml(Qt::Orientation orientation)
hgs
parents:
diff changeset
   161
{
hgs
parents:
diff changeset
   162
    OstTrace1( TRACE_NORMAL, WLANWIZARDPAGENETWORKMODE_LOADDOCML,
hgs
parents:
diff changeset
   163
        "WlanWizardPageNetworkMode::loadDocml - Orientation;orientation=%x",
hgs
parents:
diff changeset
   164
        ( TUint )( orientation ) );
hgs
parents:
diff changeset
   165
hgs
parents:
diff changeset
   166
    bool ok;
hgs
parents:
diff changeset
   167
    if (orientation == Qt::Horizontal) {
hgs
parents:
diff changeset
   168
        mLoader->load(":/docml/occ_add_wlan_02_03.docml", "landscape_section",
hgs
parents:
diff changeset
   169
            &ok);
hgs
parents:
diff changeset
   170
        Q_ASSERT_X(ok, "WLAN Wizard", "Landscape section not found");
hgs
parents:
diff changeset
   171
    }
hgs
parents:
diff changeset
   172
    else {
hgs
parents:
diff changeset
   173
        mLoader->load(":/docml/occ_add_wlan_02_03.docml", "portrait_section",
hgs
parents:
diff changeset
   174
            &ok);
hgs
parents:
diff changeset
   175
        Q_ASSERT_X(ok, "WLAN Wizard", "Portrait section not found");
hgs
parents:
diff changeset
   176
    }
hgs
parents:
diff changeset
   177
}
hgs
parents:
diff changeset
   178
hgs
parents:
diff changeset
   179
/*!
hgs
parents:
diff changeset
   180
 * Mode and visibility lists are populated to the same order as the radio
hgs
parents:
diff changeset
   181
 * button list.
hgs
parents:
diff changeset
   182
 */
hgs
parents:
diff changeset
   183
void WlanWizardPageNetworkMode::addToList(QStringList &list,
hgs
parents:
diff changeset
   184
    const QString &item, int mode, bool isHidden)
hgs
parents:
diff changeset
   185
{
hgs
parents:
diff changeset
   186
    list << item;
hgs
parents:
diff changeset
   187
    mNetworkModes.append(mode);
hgs
parents:
diff changeset
   188
    mIsHidden.append(isHidden);
hgs
parents:
diff changeset
   189
}
hgs
parents:
diff changeset
   190