controlpanelui/src/cpplugins/communicationplugin/src/cpcommunicationgroupitemdata.cpp
author hgs
Fri, 25 Jun 2010 17:12:20 +0800
changeset 22 a5692c68d772
parent 21 2883a5458389
child 26 808caa51b78b
child 40 593f946f4fec
permissions -rw-r--r--
201025
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
10
0a74be98a8bc Revision: 201005
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     1
/*
0a74be98a8bc Revision: 201005
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     2
 * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
0a74be98a8bc Revision: 201005
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     3
 * All rights reserved.
0a74be98a8bc Revision: 201005
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     4
 * This component and the accompanying materials are made available
0a74be98a8bc Revision: 201005
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     5
 * under the terms of "Eclipse Public License v1.0""
0a74be98a8bc Revision: 201005
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     6
 * which accompanies this distribution, and is available
0a74be98a8bc Revision: 201005
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     7
 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
0a74be98a8bc Revision: 201005
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     8
 *
0a74be98a8bc Revision: 201005
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     9
 * Initial Contributors:
0a74be98a8bc Revision: 201005
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    10
 * Nokia Corporation - initial contribution.
0a74be98a8bc Revision: 201005
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    11
 *
0a74be98a8bc Revision: 201005
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    12
 * Contributors:
0a74be98a8bc Revision: 201005
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    13
 *
0a74be98a8bc Revision: 201005
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    14
 * Description:  
0a74be98a8bc Revision: 201005
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    15
 *
0a74be98a8bc Revision: 201005
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    16
 */
0a74be98a8bc Revision: 201005
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    17
#include "cpcommunicationgroupitemdata.h"
0a74be98a8bc Revision: 201005
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    18
#include <QStringList>
21
hgs
parents: 11
diff changeset
    19
#include <QtAlgorithms>
22
hgs
parents: 21
diff changeset
    20
#include <CoreApplicationUIsSDKCRKeys.h>
21
hgs
parents: 11
diff changeset
    21
#include <xqsettingsmanager.h>
hgs
parents: 11
diff changeset
    22
#include <cpitemdatahelper.h>
10
0a74be98a8bc Revision: 201005
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    23
0a74be98a8bc Revision: 201005
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    24
CpCommunicationGroupItemData::CpCommunicationGroupItemData(const QString &configFile,
0a74be98a8bc Revision: 201005
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    25
                                                           const HbDataFormModelItem *parent):
21
hgs
parents: 11
diff changeset
    26
                                                           CpCategorySettingFormItemData(configFile,parent),
hgs
parents: 11
diff changeset
    27
                                                           mAirplaneModeItem(0),
hgs
parents: 11
diff changeset
    28
                                                           mSettingManager(new XQSettingsManager())
10
0a74be98a8bc Revision: 201005
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    29
{
0a74be98a8bc Revision: 201005
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    30
0a74be98a8bc Revision: 201005
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    31
}
0a74be98a8bc Revision: 201005
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    32
0a74be98a8bc Revision: 201005
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    33
CpCommunicationGroupItemData::CpCommunicationGroupItemData(HbDataFormModelItem::DataItemType type,
0a74be98a8bc Revision: 201005
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    34
                                                           const QString &label,
0a74be98a8bc Revision: 201005
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    35
                                                           const QString &configFile,
0a74be98a8bc Revision: 201005
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    36
                                                           const HbDataFormModelItem *parent):
21
hgs
parents: 11
diff changeset
    37
                                                           CpCategorySettingFormItemData(type, label, configFile, parent),
hgs
parents: 11
diff changeset
    38
                                                           mAirplaneModeItem(0),
hgs
parents: 11
diff changeset
    39
                                                           mSettingManager(new XQSettingsManager())
10
0a74be98a8bc Revision: 201005
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    40
{
0a74be98a8bc Revision: 201005
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    41
0a74be98a8bc Revision: 201005
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    42
}
21
hgs
parents: 11
diff changeset
    43
10
0a74be98a8bc Revision: 201005
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    44
CpCommunicationGroupItemData::~CpCommunicationGroupItemData()
0a74be98a8bc Revision: 201005
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    45
{
21
hgs
parents: 11
diff changeset
    46
    delete mSettingManager;
hgs
parents: 11
diff changeset
    47
}
hgs
parents: 11
diff changeset
    48
hgs
parents: 11
diff changeset
    49
void CpCommunicationGroupItemData::beforeLoadingConfigPlugins(CpItemDataHelper &itemDataHelper)
hgs
parents: 11
diff changeset
    50
{
22
hgs
parents: 21
diff changeset
    51
    mAirplaneModeItem = new HbDataFormModelItem(HbDataFormModelItem::ToggleValueItem);
21
hgs
parents: 11
diff changeset
    52
    mAirplaneModeItem->setDescription(hbTrId("txt_cp_info_in_offline_mode_all_wireless_communica"));
hgs
parents: 11
diff changeset
    53
    
hgs
parents: 11
diff changeset
    54
    itemDataHelper.addConnection(mAirplaneModeItem,
hgs
parents: 11
diff changeset
    55
            SIGNAL(clicked()),
hgs
parents: 11
diff changeset
    56
            this,
hgs
parents: 11
diff changeset
    57
            SLOT(toggleAirplaneMode()));
hgs
parents: 11
diff changeset
    58
    
22
hgs
parents: 21
diff changeset
    59
    XQCentralRepositorySettingsKey key(KCRUidCoreApplicationUIs.iUid,KCoreAppUIsNetworkConnectionAllowed);
21
hgs
parents: 11
diff changeset
    60
    QVariant airplaneMode = mSettingManager->readItemValue(key,XQSettingsManager::TypeInt);
hgs
parents: 11
diff changeset
    61
    settingValueChanged(key,airplaneMode);
hgs
parents: 11
diff changeset
    62
    
hgs
parents: 11
diff changeset
    63
    mSettingManager->startMonitoring(key,XQSettingsManager::TypeInt);
hgs
parents: 11
diff changeset
    64
    connect(mSettingManager, SIGNAL(valueChanged (XQSettingsKey, QVariant)),
hgs
parents: 11
diff changeset
    65
            this, SLOT(settingValueChanged(XQSettingsKey, QVariant)));
hgs
parents: 11
diff changeset
    66
    
hgs
parents: 11
diff changeset
    67
    this->appendChild(mAirplaneModeItem);
10
0a74be98a8bc Revision: 201005
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    68
    
0a74be98a8bc Revision: 201005
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    69
}
21
hgs
parents: 11
diff changeset
    70
hgs
parents: 11
diff changeset
    71
void CpCommunicationGroupItemData::toggleAirplaneMode()
hgs
parents: 11
diff changeset
    72
{
22
hgs
parents: 21
diff changeset
    73
    XQCentralRepositorySettingsKey key(KCRUidCoreApplicationUIs.iUid,KCoreAppUIsNetworkConnectionAllowed);
21
hgs
parents: 11
diff changeset
    74
    QVariant airplaneMode = mSettingManager->readItemValue(key,XQSettingsManager::TypeInt);
hgs
parents: 11
diff changeset
    75
        
hgs
parents: 11
diff changeset
    76
    airplaneMode.setValue( static_cast<int> (!airplaneMode.toBool()) );
hgs
parents: 11
diff changeset
    77
hgs
parents: 11
diff changeset
    78
    mSettingManager->writeItemValue(key,airplaneMode);
hgs
parents: 11
diff changeset
    79
}
hgs
parents: 11
diff changeset
    80
hgs
parents: 11
diff changeset
    81
void CpCommunicationGroupItemData::settingValueChanged(const XQSettingsKey &key, const QVariant &value)
10
0a74be98a8bc Revision: 201005
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    82
{
21
hgs
parents: 11
diff changeset
    83
    if (mAirplaneModeItem 
22
hgs
parents: 21
diff changeset
    84
        && key.uid() == KCRUidCoreApplicationUIs.iUid 
hgs
parents: 21
diff changeset
    85
        && key.key() == KCoreAppUIsNetworkConnectionAllowed 
21
hgs
parents: 11
diff changeset
    86
        && value.isValid()) {
hgs
parents: 11
diff changeset
    87
        QString text = hbTrId("txt_cp_setlabel_offline_mode_val_on");
hgs
parents: 11
diff changeset
    88
        QString additionalText = hbTrId("txt_cp_setlabel_offline_mode_val_off");
22
hgs
parents: 21
diff changeset
    89
        if (ECoreAppUIsNetworkConnectionAllowed == value.toInt()) {
21
hgs
parents: 11
diff changeset
    90
            ::qSwap (text, additionalText);
hgs
parents: 11
diff changeset
    91
        }
hgs
parents: 11
diff changeset
    92
        mAirplaneModeItem->setContentWidgetData("text",text);
hgs
parents: 11
diff changeset
    93
        mAirplaneModeItem->setContentWidgetData("additionalText",additionalText);
hgs
parents: 11
diff changeset
    94
    }
hgs
parents: 11
diff changeset
    95
}
10
0a74be98a8bc Revision: 201005
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    96
21
hgs
parents: 11
diff changeset
    97
//End of File