controlpanelui/src/cpplugins/ringtoneplugin/src/cppersonalizationentryitemdata.cpp
author hgs
Fri, 25 Jun 2010 17:12:20 +0800
changeset 22 a5692c68d772
parent 19 36aa4756ee82
child 28 e0b83131558d
child 40 593f946f4fec
permissions -rw-r--r--
201025
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
12
624337f114fe Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     1
/*
624337f114fe Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     2
 * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
624337f114fe Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     3
 * All rights reserved.
624337f114fe Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     4
 * This component and the accompanying materials are made available
624337f114fe Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     5
 * under the terms of "Eclipse Public License v1.0""
624337f114fe Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     6
 * which accompanies this distribution, and is available
624337f114fe Revision: 201015
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".
624337f114fe Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     8
 *
624337f114fe Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     9
 * Initial Contributors:
624337f114fe Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    10
 * Nokia Corporation - initial contribution.
624337f114fe Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    11
 *
624337f114fe Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    12
 * Contributors:
624337f114fe Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    13
 *
624337f114fe Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    14
 * Description:
624337f114fe Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    15
 *
624337f114fe Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    16
 */
624337f114fe Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    17
#include "cppersonalizationentryitemdata.h"
624337f114fe Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    18
#include <cpitemdatahelper.h>
624337f114fe Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    19
#include <cpprofilemodel.h>
624337f114fe Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    20
#include <cplogger.h>
624337f114fe Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    21
#include <qdir.h>
19
hgs
parents: 12
diff changeset
    22
#include <xqsettingsmanager.h>
hgs
parents: 12
diff changeset
    23
#include <xqcentralrepositoryutils.h>
hgs
parents: 12
diff changeset
    24
#include <xqcentralrepositorysearchcriteria.h>
hgs
parents: 12
diff changeset
    25
#include <ProfileEngineInternalCRKeys.h>
12
624337f114fe Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    26
19
hgs
parents: 12
diff changeset
    27
#include "cpringtoneview.h"
hgs
parents: 12
diff changeset
    28
hgs
parents: 12
diff changeset
    29
hgs
parents: 12
diff changeset
    30
const QString g_strNoTone("Z:\\resource\\No_Sound.wav");
12
624337f114fe Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    31
CpPersonalizationEntryItemData::CpPersonalizationEntryItemData(CpItemDataHelper &itemDataHelper,
624337f114fe Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    32
                const QString &text,
624337f114fe Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    33
                const QString &description,
22
hgs
parents: 19
diff changeset
    34
                const QString &icon,
19
hgs
parents: 12
diff changeset
    35
                Profile_Tone_Types toneType,
hgs
parents: 12
diff changeset
    36
                int profileId,
12
624337f114fe Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    37
                const HbDataFormModelItem *parent)
22
hgs
parents: 19
diff changeset
    38
                :CpSettingFormEntryItemData(CpSettingFormEntryItemData::ListEntryItem, itemDataHelper,text,description,icon,parent),
19
hgs
parents: 12
diff changeset
    39
                mProfileModel(0),
hgs
parents: 12
diff changeset
    40
                m_profileID(profileId),
hgs
parents: 12
diff changeset
    41
                mToneType(toneType),
hgs
parents: 12
diff changeset
    42
                mSettingManager(0)
12
624337f114fe Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    43
{
19
hgs
parents: 12
diff changeset
    44
    Q_UNUSED(itemDataHelper);   //reserve for future
12
624337f114fe Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    45
    CPFW_LOG("CpPersonalizationEntryItemData::CpPersonalizationEntryItemData(), START");
624337f114fe Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    46
    mProfileModel = new CpProfileModel();
19
hgs
parents: 12
diff changeset
    47
    if( mProfileModel )
12
624337f114fe Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    48
    {
19
hgs
parents: 12
diff changeset
    49
        QString strRing = loadStringValue();
hgs
parents: 12
diff changeset
    50
        if( strRing.contains( "No_Sound.wav", Qt::CaseInsensitive) )
hgs
parents: 12
diff changeset
    51
        {
hgs
parents: 12
diff changeset
    52
            setDescription( hbTrId("txt_cp_list_no_tone" ) );   //sepcial handling about NoTone
hgs
parents: 12
diff changeset
    53
        }
hgs
parents: 12
diff changeset
    54
        else
hgs
parents: 12
diff changeset
    55
        {
hgs
parents: 12
diff changeset
    56
            setDescription( strRing.section(QDir::separator (),-1) );
hgs
parents: 12
diff changeset
    57
        }
12
624337f114fe Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    58
    }
624337f114fe Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    59
    else
624337f114fe Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    60
    {
624337f114fe Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    61
        CPFW_LOG("CpPersonalizationEntryItemData::mProfileModel:NULL!");
624337f114fe Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    62
    }
19
hgs
parents: 12
diff changeset
    63
    mSettingManager = new XQSettingsManager();
hgs
parents: 12
diff changeset
    64
    XQCentralRepositorySettingsKey key(KCRUidProfileEngine.iUid,KProEngSilenceMode);
hgs
parents: 12
diff changeset
    65
hgs
parents: 12
diff changeset
    66
    QVariant silenceMode = mSettingManager->readItemValue( key,XQSettingsManager::TypeInt );
hgs
parents: 12
diff changeset
    67
    setEnabled( !silenceMode.toInt() );
hgs
parents: 12
diff changeset
    68
    mSettingManager->startMonitoring( key,XQSettingsManager::TypeInt );
hgs
parents: 12
diff changeset
    69
    connect(mSettingManager, SIGNAL(valueChanged (XQSettingsKey, QVariant)),
hgs
parents: 12
diff changeset
    70
            this, SLOT(settingValueChanged(XQSettingsKey, QVariant)));
hgs
parents: 12
diff changeset
    71
12
624337f114fe Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    72
}
19
hgs
parents: 12
diff changeset
    73
void CpPersonalizationEntryItemData::settingValueChanged( const XQSettingsKey& key, const QVariant& value )
hgs
parents: 12
diff changeset
    74
{
hgs
parents: 12
diff changeset
    75
    Q_UNUSED(key);
hgs
parents: 12
diff changeset
    76
    setEnabled( !value.toInt() );
hgs
parents: 12
diff changeset
    77
}
hgs
parents: 12
diff changeset
    78
12
624337f114fe Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    79
CpPersonalizationEntryItemData::~CpPersonalizationEntryItemData()
624337f114fe Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    80
{
624337f114fe Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    81
    if( mProfileModel )
624337f114fe Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    82
    {
624337f114fe Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    83
        delete mProfileModel;
19
hgs
parents: 12
diff changeset
    84
        mProfileModel = 0;
hgs
parents: 12
diff changeset
    85
    }
hgs
parents: 12
diff changeset
    86
    if( mSettingManager )
hgs
parents: 12
diff changeset
    87
    {
hgs
parents: 12
diff changeset
    88
        delete mSettingManager;
12
624337f114fe Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    89
    }
624337f114fe Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    90
}
19
hgs
parents: 12
diff changeset
    91
hgs
parents: 12
diff changeset
    92
QString CpPersonalizationEntryItemData::loadStringValue() const
12
624337f114fe Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    93
{
19
hgs
parents: 12
diff changeset
    94
    QString strRing;
hgs
parents: 12
diff changeset
    95
    switch( mToneType )
12
624337f114fe Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    96
    {
19
hgs
parents: 12
diff changeset
    97
    case TONE_Message:
hgs
parents: 12
diff changeset
    98
        if( m_profileID>=0 )
hgs
parents: 12
diff changeset
    99
        {
hgs
parents: 12
diff changeset
   100
            strRing = mProfileModel->messageTone( m_profileID );
hgs
parents: 12
diff changeset
   101
        }
hgs
parents: 12
diff changeset
   102
        break;
hgs
parents: 12
diff changeset
   103
    case TONE_Email:
hgs
parents: 12
diff changeset
   104
        if( m_profileID >=0 )
12
624337f114fe Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   105
        {
19
hgs
parents: 12
diff changeset
   106
            strRing = mProfileModel->emailTone( m_profileID );
hgs
parents: 12
diff changeset
   107
        }
hgs
parents: 12
diff changeset
   108
        break;
hgs
parents: 12
diff changeset
   109
    case TONE_Reminder:
hgs
parents: 12
diff changeset
   110
        if( m_profileID >=0 )
hgs
parents: 12
diff changeset
   111
        {
hgs
parents: 12
diff changeset
   112
            strRing = mProfileModel->reminderTone( m_profileID );
hgs
parents: 12
diff changeset
   113
        }
hgs
parents: 12
diff changeset
   114
        break;
hgs
parents: 12
diff changeset
   115
    case TONE_Ring:
hgs
parents: 12
diff changeset
   116
    default:
hgs
parents: 12
diff changeset
   117
        if( m_profileID <0 )
hgs
parents: 12
diff changeset
   118
        {
hgs
parents: 12
diff changeset
   119
            strRing = mProfileModel->ringTone();
12
624337f114fe Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   120
        }
624337f114fe Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   121
        else
624337f114fe Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   122
        {
19
hgs
parents: 12
diff changeset
   123
            strRing = mProfileModel->ringTone( m_profileID );
12
624337f114fe Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   124
        }
19
hgs
parents: 12
diff changeset
   125
        break;
12
624337f114fe Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   126
    }
624337f114fe Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   127
19
hgs
parents: 12
diff changeset
   128
    return strRing;
hgs
parents: 12
diff changeset
   129
}
hgs
parents: 12
diff changeset
   130
void CpPersonalizationEntryItemData::storeStringValue( const QString &strValue ) const
hgs
parents: 12
diff changeset
   131
{
hgs
parents: 12
diff changeset
   132
    QString strInput = strValue;
hgs
parents: 12
diff changeset
   133
    if( strInput.length() == 0 )
hgs
parents: 12
diff changeset
   134
    {
hgs
parents: 12
diff changeset
   135
        strInput = g_strNoTone;
hgs
parents: 12
diff changeset
   136
    }
hgs
parents: 12
diff changeset
   137
    switch( mToneType )
12
624337f114fe Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   138
    {
19
hgs
parents: 12
diff changeset
   139
    case TONE_Message:
hgs
parents: 12
diff changeset
   140
        if( m_profileID >=0 )
hgs
parents: 12
diff changeset
   141
        {
hgs
parents: 12
diff changeset
   142
            mProfileModel->setMessageTone( m_profileID, strInput );
hgs
parents: 12
diff changeset
   143
        }
hgs
parents: 12
diff changeset
   144
        break;
hgs
parents: 12
diff changeset
   145
    case TONE_Email:
hgs
parents: 12
diff changeset
   146
        if( m_profileID >=0 )
hgs
parents: 12
diff changeset
   147
        {
hgs
parents: 12
diff changeset
   148
            mProfileModel->setEmailTone( m_profileID, strInput );
hgs
parents: 12
diff changeset
   149
        }
hgs
parents: 12
diff changeset
   150
        break;
hgs
parents: 12
diff changeset
   151
    case TONE_Reminder:
hgs
parents: 12
diff changeset
   152
        if( m_profileID >=0 )
hgs
parents: 12
diff changeset
   153
        {
hgs
parents: 12
diff changeset
   154
            mProfileModel->setReminderTone( m_profileID, strInput );
hgs
parents: 12
diff changeset
   155
        }
hgs
parents: 12
diff changeset
   156
        break;
hgs
parents: 12
diff changeset
   157
    case TONE_Ring:
hgs
parents: 12
diff changeset
   158
    default:
hgs
parents: 12
diff changeset
   159
        if( m_profileID <0 )
hgs
parents: 12
diff changeset
   160
        {
hgs
parents: 12
diff changeset
   161
            mProfileModel->setRingTone( strInput );
hgs
parents: 12
diff changeset
   162
        }
hgs
parents: 12
diff changeset
   163
        else
hgs
parents: 12
diff changeset
   164
        {
hgs
parents: 12
diff changeset
   165
            mProfileModel->setRingTone( m_profileID, strInput );
hgs
parents: 12
diff changeset
   166
        }
hgs
parents: 12
diff changeset
   167
        break;
12
624337f114fe Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   168
    }
624337f114fe Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   169
}
19
hgs
parents: 12
diff changeset
   170
hgs
parents: 12
diff changeset
   171
void CpPersonalizationEntryItemData::handleOk(const QString &strFname)
12
624337f114fe Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   172
{
19
hgs
parents: 12
diff changeset
   173
    if(strFname.length())
12
624337f114fe Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   174
    {
19
hgs
parents: 12
diff changeset
   175
        setDescription( strFname.section(QDir::separator (),-1) );
12
624337f114fe Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   176
    }
624337f114fe Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   177
    else
624337f114fe Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   178
    {
19
hgs
parents: 12
diff changeset
   179
        setDescription( hbTrId("txt_cp_list_no_tone" ) );
12
624337f114fe Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   180
    }
19
hgs
parents: 12
diff changeset
   181
    storeStringValue(strFname);
12
624337f114fe Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   182
}
19
hgs
parents: 12
diff changeset
   183
hgs
parents: 12
diff changeset
   184
12
624337f114fe Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   185
void CpPersonalizationEntryItemData::handleError(int errorCode, const QString& errorMessage)
624337f114fe Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   186
{
624337f114fe Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   187
    Q_UNUSED(errorCode);
624337f114fe Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   188
    Q_UNUSED(errorMessage);
624337f114fe Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   189
}
624337f114fe Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   190
624337f114fe Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   191
CpBaseSettingView *CpPersonalizationEntryItemData::createSettingView() const
624337f114fe Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   192
{
19
hgs
parents: 12
diff changeset
   193
    CpRingToneView *pView = new CpRingToneView( );
hgs
parents: 12
diff changeset
   194
    connect( pView, SIGNAL( selOK( const QString&)),SLOT(handleOk(const QString &)) );
hgs
parents: 12
diff changeset
   195
    connect( pView, SIGNAL( selError( int, const QString& ) ), SLOT( handleOk(const QString &)) );
hgs
parents: 12
diff changeset
   196
    return pView;
12
624337f114fe Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   197
}