mediasettings/videosettingsplugin/src/videosettingsaccesspointentry.cpp
author hgs
Thu, 24 Jun 2010 09:49:13 +0300
changeset 41 229f037ce963
parent 40 13331705e488
child 67 72c709219fcd
permissions -rw-r--r--
201025
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
40
hgs
parents:
diff changeset
     1
/*
hgs
parents:
diff changeset
     2
 * Copyright (c) 2009 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 "mpxvideo_debug.h"
hgs
parents:
diff changeset
    19
#include "videosettingsaccesspointentry.h"
hgs
parents:
diff changeset
    20
#include "videosettingsgroup.h"
hgs
parents:
diff changeset
    21
#include <cmmanager_shim.h>
hgs
parents:
diff changeset
    22
#include <cmconnectionmethod_shim.h>
hgs
parents:
diff changeset
    23
#include <cpitemdatahelper.h>
hgs
parents:
diff changeset
    24
hgs
parents:
diff changeset
    25
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
    26
// Constructor
hgs
parents:
diff changeset
    27
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
    28
//
hgs
parents:
diff changeset
    29
VideoSettingsAccessPointEntry::VideoSettingsAccessPointEntry(
hgs
parents:
diff changeset
    30
    CpItemDataHelper &itemDataHelper,
hgs
parents:
diff changeset
    31
    const QString& text,
hgs
parents:
diff changeset
    32
    VideoSettingsGroup *parent) :
hgs
parents:
diff changeset
    33
    CpSettingFormEntryItemData(CpSettingFormEntryItemData::ButtonEntryItem, 
hgs
parents:
diff changeset
    34
        itemDataHelper, text, QString(), QString(), parent),
hgs
parents:
diff changeset
    35
    mParent(parent)
hgs
parents:
diff changeset
    36
{
hgs
parents:
diff changeset
    37
    MPX_ENTER_EXIT(_L("VideoSettingsAccessPointEntry::VideoSettingsAccessPointEntry()"));
hgs
parents:
diff changeset
    38
    
hgs
parents:
diff changeset
    39
    itemDataHelper.addConnection(this,SIGNAL(clicked()),this,SLOT(openSelectionDialogSlot()));
hgs
parents:
diff changeset
    40
    mApplSettings = new CmApplSettingsUi(this);
hgs
parents:
diff changeset
    41
    connect(mApplSettings, SIGNAL(finished(uint)), this, SLOT(accessPointDialogFinished(uint)));
hgs
parents:
diff changeset
    42
    mSelection.result = CmApplSettingsUi::SelectionTypeConnectionMethod;
hgs
parents:
diff changeset
    43
    mSelection.id = 0;
hgs
parents:
diff changeset
    44
    mCmManager = new CmManagerShim();
hgs
parents:
diff changeset
    45
}
hgs
parents:
diff changeset
    46
hgs
parents:
diff changeset
    47
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
    48
// Destructor
hgs
parents:
diff changeset
    49
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
    50
//
hgs
parents:
diff changeset
    51
VideoSettingsAccessPointEntry::~VideoSettingsAccessPointEntry()
hgs
parents:
diff changeset
    52
{
hgs
parents:
diff changeset
    53
    MPX_ENTER_EXIT(_L("VideoSettingsAccessPointEntry::~VideoSettingsAccessPointEntry()"));
hgs
parents:
diff changeset
    54
    
hgs
parents:
diff changeset
    55
    delete mCmManager;
hgs
parents:
diff changeset
    56
}
hgs
parents:
diff changeset
    57
hgs
parents:
diff changeset
    58
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
    59
// accessPointNameFromIapId
hgs
parents:
diff changeset
    60
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
    61
//
hgs
parents:
diff changeset
    62
void VideoSettingsAccessPointEntry::setIapId(const uint& apId)
hgs
parents:
diff changeset
    63
{
hgs
parents:
diff changeset
    64
    MPX_ENTER_EXIT(_L("VideoSettingsAccessPointEntry::accessPointNameFromIapId()"), 
hgs
parents:
diff changeset
    65
        _L("apId = %i"), apId);
hgs
parents:
diff changeset
    66
    
hgs
parents:
diff changeset
    67
    QList<uint> cmArray;
hgs
parents:
diff changeset
    68
    mCmManager->connectionMethod(cmArray, false);
hgs
parents:
diff changeset
    69
    
hgs
parents:
diff changeset
    70
    bool found = false;
hgs
parents:
diff changeset
    71
    foreach(uint id, cmArray)
hgs
parents:
diff changeset
    72
    {
hgs
parents:
diff changeset
    73
        CmConnectionMethodShim* connMethod = getConnectionMethod(id);
hgs
parents:
diff changeset
    74
        if(connMethod && connMethod->getIntAttribute(CMManagerShim::CmIapId) == apId)
hgs
parents:
diff changeset
    75
        {
hgs
parents:
diff changeset
    76
            mSelection.id = connMethod->getIntAttribute(CMManagerShim::CmId);
hgs
parents:
diff changeset
    77
            setAccessPointName(connMethod);
hgs
parents:
diff changeset
    78
            found = true;
hgs
parents:
diff changeset
    79
            break;
hgs
parents:
diff changeset
    80
        }
hgs
parents:
diff changeset
    81
    }
hgs
parents:
diff changeset
    82
    
hgs
parents:
diff changeset
    83
    if(!found)
hgs
parents:
diff changeset
    84
    {
hgs
parents:
diff changeset
    85
        this->setDescription(hbTrId("txt_videos_dblist_none"));
hgs
parents:
diff changeset
    86
    }
hgs
parents:
diff changeset
    87
}
hgs
parents:
diff changeset
    88
hgs
parents:
diff changeset
    89
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
    90
// createSettingView
hgs
parents:
diff changeset
    91
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
    92
//
hgs
parents:
diff changeset
    93
CpBaseSettingView* VideoSettingsAccessPointEntry::createSettingView() const
hgs
parents:
diff changeset
    94
{
hgs
parents:
diff changeset
    95
    MPX_ENTER_EXIT(_L("VideoSettingsAccessPointEntry::createSettingView()"));
hgs
parents:
diff changeset
    96
    
hgs
parents:
diff changeset
    97
    // does not create a new view.
hgs
parents:
diff changeset
    98
    return 0;
hgs
parents:
diff changeset
    99
}
hgs
parents:
diff changeset
   100
hgs
parents:
diff changeset
   101
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   102
// getConnectionMethod
hgs
parents:
diff changeset
   103
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   104
//
hgs
parents:
diff changeset
   105
CmConnectionMethodShim* VideoSettingsAccessPointEntry::getConnectionMethod(const uint& id)
hgs
parents:
diff changeset
   106
{
hgs
parents:
diff changeset
   107
    MPX_ENTER_EXIT(_L("VideoSettingsAccessPointEntry::getConnectionMethod()"));
hgs
parents:
diff changeset
   108
    
hgs
parents:
diff changeset
   109
    CmConnectionMethodShim* connMethod = 0;
hgs
parents:
diff changeset
   110
    try {
hgs
parents:
diff changeset
   111
        connMethod = mCmManager->connectionMethod(id);
hgs
parents:
diff changeset
   112
    } catch (const std::exception& exc) {
hgs
parents:
diff changeset
   113
        MPX_DEBUG(_L("Caught exception while fetching connection method. Exception: %s"), exc.what());
hgs
parents:
diff changeset
   114
        return 0;
hgs
parents:
diff changeset
   115
    }
hgs
parents:
diff changeset
   116
    
hgs
parents:
diff changeset
   117
    return connMethod;
hgs
parents:
diff changeset
   118
}
hgs
parents:
diff changeset
   119
hgs
parents:
diff changeset
   120
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   121
// setName
hgs
parents:
diff changeset
   122
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   123
//
hgs
parents:
diff changeset
   124
void VideoSettingsAccessPointEntry::setAccessPointName(CmConnectionMethodShim* connMethod)
hgs
parents:
diff changeset
   125
{
hgs
parents:
diff changeset
   126
    MPX_ENTER_EXIT(_L("VideoSettingsAccessPointEntry::setAccessPointName()"));
hgs
parents:
diff changeset
   127
    
hgs
parents:
diff changeset
   128
    QString name = connMethod->getStringAttribute(CMManagerShim::CmName);
hgs
parents:
diff changeset
   129
    this->setDescription(name);
hgs
parents:
diff changeset
   130
}
hgs
parents:
diff changeset
   131
hgs
parents:
diff changeset
   132
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   133
// openSelectionDialogSlot
hgs
parents:
diff changeset
   134
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   135
//
hgs
parents:
diff changeset
   136
void VideoSettingsAccessPointEntry::openSelectionDialogSlot()
hgs
parents:
diff changeset
   137
{
hgs
parents:
diff changeset
   138
    MPX_ENTER_EXIT(_L("VideoSettingsAccessPointEntry::openSelectionDialogSlot()"));
hgs
parents:
diff changeset
   139
    
hgs
parents:
diff changeset
   140
    QFlags<CmApplSettingsUi::SelectionDialogItems> listItems;
hgs
parents:
diff changeset
   141
    QSet<CmApplSettingsUi::BearerTypeFilter> filter;
hgs
parents:
diff changeset
   142
    
hgs
parents:
diff changeset
   143
    listItems |= CmApplSettingsUi::ShowConnectionMethods;
hgs
parents:
diff changeset
   144
    
hgs
parents:
diff changeset
   145
    mApplSettings->setOptions(listItems, filter);
hgs
parents:
diff changeset
   146
    mApplSettings->setSelection(mSelection);
hgs
parents:
diff changeset
   147
    
hgs
parents:
diff changeset
   148
    mApplSettings->open();
hgs
parents:
diff changeset
   149
}
hgs
parents:
diff changeset
   150
hgs
parents:
diff changeset
   151
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   152
// accessPointDialogFinished
hgs
parents:
diff changeset
   153
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   154
//
hgs
parents:
diff changeset
   155
void VideoSettingsAccessPointEntry::accessPointDialogFinished(uint error)
hgs
parents:
diff changeset
   156
{
hgs
parents:
diff changeset
   157
    MPX_ENTER_EXIT(_L("VideoSettingsAccessPointEntry::accessPointDialogFinished()"), 
hgs
parents:
diff changeset
   158
        _L("error = %i"), error);
hgs
parents:
diff changeset
   159
    
hgs
parents:
diff changeset
   160
    if(error == CmApplSettingsUi::ApplSettingsErrorNone)
hgs
parents:
diff changeset
   161
    {
hgs
parents:
diff changeset
   162
        CmApplSettingsUi::SettingSelection selection =
hgs
parents:
diff changeset
   163
            mApplSettings->selection();
hgs
parents:
diff changeset
   164
        MPX_DEBUG(_L("New access point connection method id = %i"), selection.id);
hgs
parents:
diff changeset
   165
        CmConnectionMethodShim* connMethod = getConnectionMethod(selection.id);
hgs
parents:
diff changeset
   166
        if(connMethod)
hgs
parents:
diff changeset
   167
        {
hgs
parents:
diff changeset
   168
            mSelection.id = selection.id;
hgs
parents:
diff changeset
   169
            mParent->setAccessPointId(connMethod->getIntAttribute(CMManagerShim::CmIapId));
hgs
parents:
diff changeset
   170
            setAccessPointName(connMethod);
hgs
parents:
diff changeset
   171
        }
hgs
parents:
diff changeset
   172
        else
hgs
parents:
diff changeset
   173
        {
hgs
parents:
diff changeset
   174
            MPX_DEBUG(_L("FATAL: Could not find connection method with id %i"), selection.id);
hgs
parents:
diff changeset
   175
        }
hgs
parents:
diff changeset
   176
    }
hgs
parents:
diff changeset
   177
}