controlpanelui/src/cpplugins/communicationplugin/src/cpcommunicationgroupitemdata.cpp
author hgs
Thu, 10 Jun 2010 16:07:41 +0800
changeset 21 2883a5458389
parent 11 10d0dd0e43f1
child 22 a5692c68d772
permissions -rw-r--r--
201023
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>
hgs
parents: 11
diff changeset
    20
#include <settingsinternalcrkeys.h>
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
{
hgs
parents: 11
diff changeset
    51
    mAirplaneModeItem = new HbDataFormModelItem(HbDataFormModelItem::ToggleValueItem,
hgs
parents: 11
diff changeset
    52
                                              hbTrId("txt_cp_setlabel_offline_airplane_mode"));
hgs
parents: 11
diff changeset
    53
    mAirplaneModeItem->setDescription(hbTrId("txt_cp_info_in_offline_mode_all_wireless_communica"));
hgs
parents: 11
diff changeset
    54
    
hgs
parents: 11
diff changeset
    55
    itemDataHelper.addConnection(mAirplaneModeItem,
hgs
parents: 11
diff changeset
    56
            SIGNAL(clicked()),
hgs
parents: 11
diff changeset
    57
            this,
hgs
parents: 11
diff changeset
    58
            SLOT(toggleAirplaneMode()));
hgs
parents: 11
diff changeset
    59
    
hgs
parents: 11
diff changeset
    60
    XQCentralRepositorySettingsKey key(KCRUidCommunicationSettings.iUid,KSettingsAirplaneMode);
hgs
parents: 11
diff changeset
    61
    QVariant airplaneMode = mSettingManager->readItemValue(key,XQSettingsManager::TypeInt);
hgs
parents: 11
diff changeset
    62
    settingValueChanged(key,airplaneMode);
hgs
parents: 11
diff changeset
    63
    
hgs
parents: 11
diff changeset
    64
    mSettingManager->startMonitoring(key,XQSettingsManager::TypeInt);
hgs
parents: 11
diff changeset
    65
    connect(mSettingManager, SIGNAL(valueChanged (XQSettingsKey, QVariant)),
hgs
parents: 11
diff changeset
    66
            this, SLOT(settingValueChanged(XQSettingsKey, QVariant)));
hgs
parents: 11
diff changeset
    67
    
hgs
parents: 11
diff changeset
    68
    this->appendChild(mAirplaneModeItem);
10
0a74be98a8bc Revision: 201005
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    69
    
0a74be98a8bc Revision: 201005
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    70
}
21
hgs
parents: 11
diff changeset
    71
hgs
parents: 11
diff changeset
    72
void CpCommunicationGroupItemData::toggleAirplaneMode()
hgs
parents: 11
diff changeset
    73
{
hgs
parents: 11
diff changeset
    74
    XQCentralRepositorySettingsKey key(KCRUidCommunicationSettings.iUid,KSettingsAirplaneMode);
hgs
parents: 11
diff changeset
    75
    QVariant airplaneMode = mSettingManager->readItemValue(key,XQSettingsManager::TypeInt);
hgs
parents: 11
diff changeset
    76
        
hgs
parents: 11
diff changeset
    77
    airplaneMode.setValue( static_cast<int> (!airplaneMode.toBool()) );
hgs
parents: 11
diff changeset
    78
hgs
parents: 11
diff changeset
    79
    mSettingManager->writeItemValue(key,airplaneMode);
hgs
parents: 11
diff changeset
    80
}
hgs
parents: 11
diff changeset
    81
hgs
parents: 11
diff changeset
    82
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
    83
{
21
hgs
parents: 11
diff changeset
    84
    if (mAirplaneModeItem 
hgs
parents: 11
diff changeset
    85
        && key.uid() == KCRUidCommunicationSettings.iUid 
hgs
parents: 11
diff changeset
    86
        && key.key() == KSettingsAirplaneMode 
hgs
parents: 11
diff changeset
    87
        && value.isValid()) {
hgs
parents: 11
diff changeset
    88
        QString text = hbTrId("txt_cp_setlabel_offline_mode_val_on");
hgs
parents: 11
diff changeset
    89
        QString additionalText = hbTrId("txt_cp_setlabel_offline_mode_val_off");
hgs
parents: 11
diff changeset
    90
        if (!value.toBool()) {
hgs
parents: 11
diff changeset
    91
            ::qSwap (text, additionalText);
hgs
parents: 11
diff changeset
    92
        }
hgs
parents: 11
diff changeset
    93
        mAirplaneModeItem->setContentWidgetData("text",text);
hgs
parents: 11
diff changeset
    94
        mAirplaneModeItem->setContentWidgetData("additionalText",additionalText);
hgs
parents: 11
diff changeset
    95
    }
hgs
parents: 11
diff changeset
    96
}
10
0a74be98a8bc Revision: 201005
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    97
21
hgs
parents: 11
diff changeset
    98
//End of File