locationsystemui/locationsysui/possettings/posmethodsplugin/inc/pospsysettingsplugin.h
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Tue, 31 Aug 2010 15:37:04 +0300
branchRCL_3
changeset 44 2b4ea9893b66
permissions -rw-r--r--
Revision: 201033 Kit: 201035

/*
 * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of "Eclipse Public License v1.0"
 * which accompanies this distribution, and is available
 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
 *
 * Initial Contributors:
 * Nokia Corporation - initial contribution.
 *
 * Contributors:
 *
 * Description: Declaration of the Positioning Methods plugin to the 
 *							Avanced settings view
 *
 */

#ifndef POSPSYSETTINGSPLUGIN_H
#define POSPSYSETTINGSPLUGIN_H


#include "possettingsadvinterface.h"
#include "pospsysettingscommon.h"
#include "possettingssignalmapper.h"

#include <QObject>
#include <QSignalMapper>
#include <hbdataformmodelitem.h>

// Forward Declaration
class PosPsySettingsEngine;
class PosSettingsAdvOp;
class PosSettingsSignalMapper;

class PosPsySettingsPlugin : public QObject, public PosSettingsAdvInterface
{
Q_OBJECT
    Q_INTERFACES( PosSettingsAdvInterface )
public: 
   /**
   * Constructor
   */
    PosPsySettingsPlugin();
  /**
   * Destructor
   */
   ~PosPsySettingsPlugin();
public:
    /**
     * Derived from PosSettingsAdvInterface   
     */ 
    int initialise( PosSettingsAdvOp* operation );
    
private slots:
		/**
		* This will be called when any of the positioning methods checkbox is clicked.
		* @param[in] state - indicates the state of the checkbox,whether enabled/disabled
		* @param[in] psyUid - indicates the Uid of the Psy that has been clciked.
		*/
		void onPsyPressed(int index);
		/**
		 * This method will be called on a change in any of the psy info.
		 * It willbe used to update the positioning methods group to reflect
		 * the latest available info of psys.
		 */
		void updateGroup();
		
private:
		/**
		 * adds items to the group & make connections
		 */
		void addItems();
		
		
private:
		/**
		* Pointer to the PosPsySettingsEngine
		* Owns
		*/
		PosPsySettingsEngine* mEngine;
		/**
		* List of available Positioning methods
		*/
		QList<PosPsyInfo> mPsyList;
		/**
		 * pointer to the HbDataFormModelItem
		 * Does not own
		 */
		HbDataFormModelItem* mGroup;
		/**
		 * Signal mapper used to map the signal emitted from
		 * each of the psy check box to the slot
		 * Owns
		 */
		QSignalMapper *mSignalMapper;
		/**
		 * List of psy signal mapper class
		 */
		QList<PosSettingsSignalMapper*> mPsySignalMapperList;
		/**
		 * reference to PosSettingsAdvOp
		 */
		PosSettingsAdvOp* mOperation;
   
};
#endif // POSPSYSETTINGSPLUGIN_H