bluetoothengine/btui/btcpplugin/btcpuideviceview.cpp
branchRCL_3
changeset 56 9386f31cc85b
parent 55 613943a21004
child 61 269724087bed
--- a/bluetoothengine/btui/btcpplugin/btcpuideviceview.cpp	Tue Aug 31 15:25:10 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,672 +0,0 @@
-/*
- * 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:  
- *
- */
-
-#include "btcpuideviceview.h"
-#include "btuiviewutil.h"
-#include <QtGui/QGraphicsLinearLayout>
-#include <HbInstance>
-#include <hbdocumentloader.h>
-#include <hbdataform.h>
-#include <hbdataformmodel.h>
-#include <hbdataformmodelitem.h>
-#include <hbgroupbox.h>
-#include <hbpushbutton.h>
-#include <hblabel.h>
-#include <hbicon.h>
-#include <hblineedit.h>
-#include <hblistview.h>
-#include <hbmenu.h>
-#include <qstring>
-#include <qstringlist>
-#include <qdebug>
-#include <bluetoothuitrace.h>
-#include "btcpuimainview.h"
-#include <btabstractdelegate.h>
-#include <btdelegatefactory.h>
-#include <QModelIndex>
-#include "btuiiconutil.h"
-#include "btuidevtypemap.h"
-
-#include "btcpuidevicedetail.h"
-
-// docml to load
-const char* BTUI_DEVICEVIEW_DOCML = ":/docml/bt-device-view.docml";
-
-
-BtCpUiDeviceView::BtCpUiDeviceView(
-        BtSettingModel &settingModel, 
-        BtDeviceModel &deviceModel, 
-        QGraphicsItem *parent) :
-    BtCpUiBaseView(settingModel,deviceModel,parent),
-    mPairedStatus(false), mConnectedStatus(false),mPreviousConnectedStatus(false), mTrustedStatus(false), 
-    mBlockedStatus(false), mConnectable(false), mAbstractDelegate(0), mDeviceDetail(0)   
-{
-    mDeviceIndex = QModelIndex();//is it needed to initialize mIndex???
-    
-    mMainView = (BtCpUiMainView *) parent;
-    
-    mMainWindow = hbInstance->allMainWindows().first();
-    
-    mSoftKeyBackAction = new HbAction(Hb::BackNaviAction, this);
-    BTUI_ASSERT_X(mSoftKeyBackAction, "BtCpUiBaseView::BtCpUiBaseView", "can't create back action");
-
-    // read view info from docml file
-
-    // Create view for the application.
-    // Set the name for the view. The name should be same as the view's
-    // name in docml.
-    setObjectName("bt_device_view");
-
-    mLoader = new HbDocumentLoader();
-    // Pass the view to documentloader. Document loader uses this view
-    // when docml is parsed, instead of creating new view.
-    QObjectList objectList;
-    objectList.append(this);
-    mLoader->setObjectTree(objectList);
-    
-    bool ret = false;
-
-    bool ok = false;
-    mLoader->load( BTUI_DEVICEVIEW_DOCML, &ok );
-    // Exit if the file format is invalid
-    BTUI_ASSERT_X( ok, "bt-device-view", "Invalid docml file" );
-    
-    mOrientation = mMainWindow->orientation();
-        
-    if (mOrientation == Qt::Horizontal) {
-        mLoader->load(BTUI_DEVICEVIEW_DOCML, "landscape", &ok);
-        BTUI_ASSERT_X( ok, "bt-device-view", "Invalid docml file: landscape section problem" );
-    }
-    else {
-        mLoader->load(BTUI_DEVICEVIEW_DOCML, "portrait", &ok);
-        BTUI_ASSERT_X( ok, "bt-device-view", "Invalid docml file: landscape section problem" );        
-    }
-    
-    // listen for orientation changes
-    ret = connect(mMainWindow, SIGNAL(orientationChanged(Qt::Orientation)),
-            this, SLOT(changeOrientation(Qt::Orientation)));
-    BTUI_ASSERT_X( ret, "BtCpUiDeviceView::BtCpUiDeviceView()", "connect orientationChanged() failed");
-
-    
-    // assign automatically created widgets to local variables
-    /*
-    mGroupBox = 0;
-    mGroupBox = qobject_cast<HbGroupBox *>( mLoader->findWidget( "groupBox_deviceView" ) );
-    BTUI_ASSERT_X( mGroupBox != 0, "bt-device-view", "Device groupbox not found" );
-    */
-    mDeviceIcon=0;
-    //can't use qobject_cast since HbIcon is not derived from QObject!
-    mDeviceIcon = qobject_cast<HbLabel *>( mLoader->findWidget( "deviceIcon" ) );  
-    BTUI_ASSERT_X( mDeviceIcon != 0, "bt-device-view", "Device Icon not found" );
-    
-    mDeviceName=0;
-    mDeviceName = qobject_cast<HbLineEdit *>( mLoader->findWidget( "deviceName" ) );
-    BTUI_ASSERT_X( mDeviceName != 0, "bt-device-view", "Device Name not found" );
-    ret = connect(mDeviceName, SIGNAL(editingFinished ()), this, SLOT(changeBtDeviceName()));
-    
-    mDeviceCategory=0;
-    mDeviceCategory = qobject_cast<HbLabel *>( mLoader->findWidget( "deviceCategory" ) );  
-    BTUI_ASSERT_X( mDeviceCategory != 0, "bt-device-view", "Device Category not found" );
-    
-    mDeviceStatus=0;
-    mDeviceStatus = qobject_cast<HbLabel *>( mLoader->findWidget( "deviceStatus" ) );  
-    BTUI_ASSERT_X( mDeviceStatus != 0, "bt-device-view", "Device status not found" );
-    
-    
-    mConnectionCombobox = 0;
-    mConnectionCombobox = qobject_cast<HbDataForm *>( mLoader->findWidget( "connectionCombobox" ) );
-    BTUI_ASSERT_X( mConnectionCombobox != 0, "bt-device-view", "connection combobox not found" );
-    
-    mConnectionComboboxModel = new HbDataFormModel();
-    
-    mPair_Unpair=0;
-    mPair_Unpair = qobject_cast<HbPushButton *>( mLoader->findWidget( "pushButton_0" ) );
-    BTUI_ASSERT_X( mPair_Unpair != 0, "bt-device-view", "pair/unpair button not found" );
-    ret =  connect(mPair_Unpair, SIGNAL(clicked()), this, SLOT(pairUnpair()));
-    BTUI_ASSERT_X( ret, "BtCpUiDeviceView::BtCpUiDeviceView", "can't connect pair button" );
- 
-    mConnect_Disconnect=0;
-    mConnect_Disconnect = qobject_cast<HbPushButton *>( mLoader->findWidget( "pushButton_1" ) );
-    BTUI_ASSERT_X( mConnect_Disconnect != 0, "bt-device-view", "connect/disconnect button not found" );
-    ret =  connect(mConnect_Disconnect, SIGNAL(clicked()), this, SLOT(connectDisconnect()));
-    BTUI_ASSERT_X( ret, "BtCpUiDeviceView::BtCpUiDeviceView", "can't connect disconnect button" );
-      
-    mDeviceSetting = 0;
-    mDeviceSetting = qobject_cast<HbPushButton *>( mLoader->findWidget( "pushButton_2" ) );
-    BTUI_ASSERT_X( mDeviceSetting != 0, "bt-device-view", "settings button not found" );
-    
-    
-    ret = connect(mDeviceSetting, SIGNAL(clicked()), this,
-            SLOT(handleDeviceSetting()));
-    BTUI_ASSERT_X( ret, "Btui, BtCpUiDeviceView::BtCpUiDeviceView", "clicked() connect failed");
-
-    setConnectionCombobox();
-     
-}
-
-BtCpUiDeviceView::~BtCpUiDeviceView()
-{
-    delete mLoader; // Also deletes all widgets that it constructed.
-    
-    delete mConnectionComboboxModel;
-    
-    setNavigationAction(0);
-    delete mSoftKeyBackAction;
-    if(mAbstractDelegate)
-    {
-        delete mAbstractDelegate;
-        mAbstractDelegate = 0;
-    }
-
-}
-
-
-void BtCpUiDeviceView::setSoftkeyBack()
-{
-    if (navigationAction() != mSoftKeyBackAction) {
-        setNavigationAction(mSoftKeyBackAction);
-        connect( mSoftKeyBackAction, SIGNAL(triggered()), this, SLOT(switchToPreviousView()) );
-    }
-}
-
-void BtCpUiDeviceView::switchToPreviousView()
-{
-    BTUI_ASSERT_X(mMainView, "BtCpUiSearchView::switchToPreviousView", "invalid mMainView");
-    mMainView->switchToPreviousView();
-
-    if(mDeviceDetail) {
-        mDeviceDetail->sendCloseEvent();
-    }
-    unloadDeviceDetails();
-}
-
-void BtCpUiDeviceView::loadDeviceDetails()
-{
-    bool ret(false);
-    
-    unloadDeviceDetails();
-    
-    mDeviceDetail = new BtCpUiDeviceDetail();
-    
-    ret=connect(mDeviceDetail, SIGNAL(deviceSettingsChanged(bool)),
-           this, SLOT(handleDeviceSettingsChange(bool)));
-    BTUI_ASSERT_X( ret, "Btui, BtCpUiDeviceView::loadDeviceDetails", "deviceSettingsChanged() connect failed");
-
-    mDeviceDetail->loadDeviceDetailPlugins(mDeviceBdAddr.toString(), mDeviceName->text());
-}
-
-void BtCpUiDeviceView::unloadDeviceDetails()
-{
-    if(mDeviceDetail) {
-        disconnect(mDeviceDetail);
-        delete mDeviceDetail;
-        mDeviceDetail = 0;
-    }
-}
-
-void BtCpUiDeviceView::activateView( const QVariant& value, bool fromBackButton )
-{
-    
-    Q_UNUSED( fromBackButton );  
-    
-    mConnectedStatus = false;
-    setSoftkeyBack();
-    
-    
-    QModelIndex index = value.value<QModelIndex>();
-    mDeviceBdAddr = (mDeviceModel->data(index, BtDeviceModel::ReadableBdaddrRole));
-    
-    //activate view is called when device is selected
-    //clearViewData();
-    updateDeviceData();
-    
-    mDeviceSetting->setVisible(false);
-        
-    bool ret(false);
-    ret=connect(mDeviceModel, SIGNAL(dataChanged(QModelIndex,QModelIndex)),
-           this, SLOT(updateDeviceData()));
-    BTUI_ASSERT_X( ret, "Btui, BtCpUiDeviceView::activateView", "dataChanged() connect failed");
-
-}
-
-void BtCpUiDeviceView::handleDeviceSettingsChange(bool status)
-{
-    mDeviceSetting->setVisible(status);
-}
-
-void BtCpUiDeviceView::handleDeviceSetting()
-{
-    if(mDeviceDetail) {
-        mDeviceDetail->loadDeviceDetailsView();
-    }
-}
-
-void BtCpUiDeviceView::deactivateView()
-{
-}
-
-// called due to real orientation change event coming from main window
-void BtCpUiDeviceView::changeOrientation( Qt::Orientation orientation )
-{
-    bool ok = false;
-    mOrientation = orientation;
-    if( orientation == Qt::Vertical ) {
-        // load "portrait" section
-        mLoader->load( BTUI_DEVICEVIEW_DOCML, "portrait", &ok );
-        BTUI_ASSERT_X( ok, "bt-device-view", "Invalid docml file: portrait section problem" );
-    } else {
-        // load "landscape" section
-        mLoader->load( BTUI_DEVICEVIEW_DOCML, "landscape", &ok );
-        BTUI_ASSERT_X( ok, "bt-device-view", "Invalid docml file: landscape section problem" );
-    }
-}
-
-void BtCpUiDeviceView::clearViewData()
-{
-    mDeviceIcon->clear();
-    mDeviceCategory->clear();
-    mDeviceStatus->clear();
-    mConnectable = false;
-    /*
-    mPairedStatus = false;
-    mConnectedStatus = false;
-    mTrustedStatus = false;
-    mBlockedStatus = false;
-    
-    mConnectable = false;
-    */
-}
-    
-void BtCpUiDeviceView::updateDeviceData()
-{
-    clearViewData();
-    //Get the QModelIndex of the device using the device BDAddres
-    QModelIndex start = mDeviceModel->index(0,0);
-    QModelIndexList indexList = mDeviceModel->match(start,BtDeviceModel::ReadableBdaddrRole, mDeviceBdAddr);
-    mDeviceIndex = indexList.at(0);
-    
-    //populate device view with device data fetched from UiModel
-    QString deviceName = (mDeviceModel->data(mDeviceIndex, 
-             BtDeviceModel::NameAliasRole)).toString(); 
-    mDeviceName->setText(deviceName);
-     
-    int cod = (mDeviceModel->data(mDeviceIndex,BtDeviceModel::CoDRole)).toInt();
-     
-    int majorRole = (mDeviceModel->data(mDeviceIndex,BtDeviceModel::MajorPropertyRole)).toInt();
-    
-	setDeviceCategory(cod, majorRole);
-    setDeviceStatus(majorRole);
-    setTextAndVisibilityOfButtons();
-}
-
-void BtCpUiDeviceView::setDeviceCategory(int cod,int majorRole)
-{
-    mDeviceCategory->setPlainText( getDeviceTypeString( cod ));
-    HbIcon icon =
-    getBadgedDeviceTypeIcon(cod, majorRole,
-                            BtuiBottomLeft | BtuiBottomRight | BtuiTopLeft | BtuiTopRight );
-    mDeviceIcon->setIcon(icon);
-
-    if (majorRole & BtuiDevProperty::Connectable ) {
-        mConnectable = true;
-    } 
-}
-
-void BtCpUiDeviceView::setDeviceStatus(int majorRole)
-{
-    QString deviceStatus;
-    
-    updateStatusVariables(majorRole);  // should we use bitmap instead??
-    
-    if (majorRole & BtuiDevProperty::Bonded && 
-        majorRole & BtuiDevProperty::Trusted &&
-        majorRole & BtuiDevProperty::Connected ) {
-        mDeviceStatus->setPlainText(hbTrId("txt_bt_info_paired_trused_connected"));
-    } 
-    else if (majorRole & BtuiDevProperty::Bonded && 
-             majorRole & BtuiDevProperty::Connected ) {
-        mDeviceStatus->setPlainText(hbTrId("txt_bt_info_paired_connected"));
-    }
-    else if (majorRole & BtuiDevProperty::Bonded && 
-             majorRole & BtuiDevProperty::Trusted ) {
-        mDeviceStatus->setPlainText(hbTrId("txt_bt_info_paired_trusted"));
-    } 
-    else if (majorRole & BtuiDevProperty::Bonded) {
-        mDeviceStatus->setPlainText(hbTrId("txt_bt_info_paired"));
-    }
-    else if (majorRole & BtuiDevProperty::Connected) {
-        mDeviceStatus->setPlainText(hbTrId("txt_bt_info_connected"));
-    }
-    else if (majorRole & BtuiDevProperty::Blocked) {
-        mDeviceStatus->setPlainText(hbTrId("txt_bt_info_blocked"));
-    }
-    else {
-        // device not paired, connected, trusted or blocked.  is this ok?
-    }
-
-}
-
-void BtCpUiDeviceView::setConnectionCombobox(){
-    
-    //create a model class
-    
-    mConnectionComboboxModel->appendDataFormItem(
-    HbDataFormModelItem::ComboBoxItem, QString("Connection"), mConnectionComboboxModel->invisibleRootItem());
-    
-    //set the model to the view, once model and data class are created
-    mConnectionCombobox->setModel(mConnectionComboboxModel);
-
-
-
-}
-
-
-/*!
- *  instead of using separate boolean variables we could use bitmap in single variable
- */
-void BtCpUiDeviceView::updateStatusVariables(int majorRole)
-{
-    mPreviousConnectedStatus = mConnectedStatus;
-    
-    if (majorRole & BtuiDevProperty::Trusted ) {
-        mTrustedStatus = true;
-    } 
-    else {
-        mTrustedStatus = false;
-    }
-    if (majorRole & BtuiDevProperty::Bonded) {
-        mPairedStatus = true;
-    }
-    else {
-        mPairedStatus = false;
-    }
-    if (majorRole & BtuiDevProperty::Connected) {
-        mConnectedStatus = true;
-        if (!mPreviousConnectedStatus){
-            //Loading device detail plugins after successfull connection.
-            loadDeviceDetails();
-        }
-    }
-    else {
-        mConnectedStatus = false;
-    }
-    if (majorRole & BtuiDevProperty::Blocked) {
-        mBlockedStatus = true;
-    }
-    else {
-        mBlockedStatus = false;
-    }
-}
-
-void BtCpUiDeviceView::setTextAndVisibilityOfButtons()
-{
-    mPair_Unpair->setStretched(true);
-    if (mPairedStatus)
-    {
-        HbIcon icon("qtg_mono_bt_unpair");
-        icon.setIconName("qtg_mono_bt_unpair");
-        mPair_Unpair->setIcon(icon);
-        mPair_Unpair->setText(hbTrId("txt_bt_button_unpair"));
-				
-    }
-    else
-    {
-        HbIcon icon("qtg_mono_bt_pair");
-        icon.setIconName("qtg_mono_bt_pair");
-        mPair_Unpair->setIcon(icon);
-        mPair_Unpair->setText(hbTrId("txt_bt_button_pair"));
-    }
-    
-    if (mConnectable)
-    {
-        mConnect_Disconnect->setVisible(true);
-        mConnect_Disconnect->setStretched(true);
-        if (mConnectedStatus)
-        {
-            HbIcon icon("qtg_mono_speaker_off");
-            icon.setIconName("qtg_mono_speaker_off");
-            mConnect_Disconnect->setIcon(icon);
-            mConnect_Disconnect->setText(hbTrId("txt_bt_button_disconnect"));
-        }
-        else
-        {
-            HbIcon icon("qtg_mono_speaker");
-            icon.setIconName("qtg_mono_speaker");
-            mConnect_Disconnect->setIcon(icon);
-            mConnect_Disconnect->setText(hbTrId("txt_bt_button_connect"));
-        }
-        
-    }
-    else
-    {
-        //it is not possible to connect, set the button invisible
-        mConnect_Disconnect->setVisible(false);
-    }
-    
-}
-
-
-void BtCpUiDeviceView::pairUnpair()
-{
-    if (mPairedStatus)
-    {
-        //if the device is paired, call unpairDevice() when the button is tabbed
-        unpairDevice();
-    }
-    else
-    {
-        //if the device is unpaired, call pairDevice() when the button is tabbed
-        pairDevice();
-
-    }
-    
-    
-}
-
-void BtCpUiDeviceView::connectDisconnect()
-{
-    if (mConnectedStatus)
-    {
-        //if the device is connected, call disconnectDevice() when the button is tabbed
-        disconnectDevice();
-    }
-    else
-    {
-        //if the device is disconnected, call connectDevice() when the button is tabbed
-        connectDevice();
-
-    }
-}
-
-void BtCpUiDeviceView::pairDevice()
-{
-    if (!mAbstractDelegate)//if there is no other delegate running
-    { 
-        QVariant params;
-        params.setValue(mDeviceIndex);
-        mAbstractDelegate = BtDelegateFactory::newDelegate(
-                BtDelegate::Pair, mSettingModel, mDeviceModel); 
-        connect( mAbstractDelegate, SIGNAL(commandCompleted(int)), this, SLOT(pairDelegateCompleted(int)) );
-        mAbstractDelegate->exec(params);
-    }
-    
-}
-
-void BtCpUiDeviceView::pairDelegateCompleted(int status)
-{
-    Q_UNUSED(status);
-    //TODO: handle the error here
-    if (mAbstractDelegate)
-    {
-        disconnect(mAbstractDelegate);
-        delete mAbstractDelegate;
-        mAbstractDelegate = 0;
-    }
-}
-
-void BtCpUiDeviceView::unpairDevice()
-{
-    if (!mAbstractDelegate)//if there is no other delegate running
-    { 
-        QVariant params;
-        params.setValue(mDeviceIndex);
-        mAbstractDelegate = BtDelegateFactory::newDelegate(
-                BtDelegate::Unpair, mSettingModel, mDeviceModel); 
-        connect( mAbstractDelegate, SIGNAL(commandCompleted(int)), this, SLOT(unpairDelegateCompleted(int)) );
-        mAbstractDelegate->exec(params);
-    }
-        
-    
-}
-
-void BtCpUiDeviceView::unpairDelegateCompleted(int status)
-{
-    Q_UNUSED(status);
-    //TODO: handle the error here 
-    if (mAbstractDelegate)
-    {
-        disconnect(mAbstractDelegate);
-        delete mAbstractDelegate;
-        mAbstractDelegate = 0;
-    }
-}
-
-void BtCpUiDeviceView::connectDevice()
-{
-    
-    
-    if (!mAbstractDelegate)//if there is no other delegate running
-    { 
-        QVariant params;
-        params.setValue(mDeviceIndex);
-        mAbstractDelegate = BtDelegateFactory::newDelegate(
-                BtDelegate::Connect, mSettingModel, mDeviceModel); 
-        connect( mAbstractDelegate, SIGNAL(commandCompleted(int)), this, SLOT(connectDelegateCompleted(int)) );
-        mAbstractDelegate->exec(params);
-    }
-    
-    
-}
-
-void BtCpUiDeviceView::connectDelegateCompleted(int status)
-{
-    Q_UNUSED(status);
-    if (mAbstractDelegate)
-    {
-        disconnect(mAbstractDelegate);
-        delete mAbstractDelegate;
-        mAbstractDelegate = 0;
-    }   
-}
-
-void BtCpUiDeviceView::disconnectDevice()
-{
-    if (!mAbstractDelegate)//if there is no other delegate running
-        { 
-           
-            
-            DisconnectOption discoOpt = ServiceLevel;
-                    
-            QList<QVariant>list;
-            QVariant paramFirst;
-            paramFirst.setValue(mDeviceIndex);
-            
-            QVariant paramSecond;
-            paramSecond.setValue((int)discoOpt);
-                    
-            list.append(paramFirst);
-            list.append(paramSecond);
-                    
-            QVariant params;
-            params.setValue(list);
-            
-            
-            //params.setValue(mDeviceIndex);
-            mAbstractDelegate = BtDelegateFactory::newDelegate(
-                    BtDelegate::Disconnect, mSettingModel, mDeviceModel); 
-            connect( mAbstractDelegate, SIGNAL(commandCompleted(int)), this, SLOT(disconnectDelegateCompleted(int)) );
-            mAbstractDelegate->exec(params);
-        }
-    
-}
-
-void BtCpUiDeviceView::disconnectDelegateCompleted(int status)
-{
-    Q_UNUSED(status);
-    if (mAbstractDelegate)
-    {
-        disconnect(mAbstractDelegate);
-        delete mAbstractDelegate;
-        mAbstractDelegate = 0;
-    }
-}
-
-void BtCpUiDeviceView::setPrevBtDeviceName()
-{
-    QString deviceName = (mDeviceModel->data(mDeviceIndex, 
-                BtDeviceModel::NameAliasRole)).toString(); 
-   mDeviceName->setText(deviceName);
-}
-
-void BtCpUiDeviceView::changeBtDeviceName(){
-    if (!mAbstractDelegate)//if there is no other delegate running
-    { 
-        QList<QVariant>list;
-        
-        QVariant index;
-        index.setValue(mDeviceIndex);
-        
-        QVariant name;
-        name.setValue(mDeviceName->text());
-        
-        list.append(index);
-        list.append(name);
-        
-        QVariant params;
-        params.setValue(list);
-        
-        mAbstractDelegate = BtDelegateFactory::newDelegate(
-                BtDelegate::RemoteDevName, mSettingModel, mDeviceModel); 
-        connect( mAbstractDelegate, SIGNAL(commandCompleted(int, QVariant)), this, SLOT(changeDevNameDelegateCompleted(int, QVariant)) );
-        mAbstractDelegate->exec(params);
-    }
-    else {
-        setPrevBtDeviceName();
-    }
-    
-}
-
-void BtCpUiDeviceView::changeDevNameDelegateCompleted(int status, QVariant param)
-{
-    
-    
-    if(KErrNone == status) {
-        mDeviceName->setText(param.toString());
-    }
-    else {
-        setPrevBtDeviceName();
-    }
-    //TODO:Error handling has to be done.    
-    if (mAbstractDelegate)
-    {
-        disconnect(mAbstractDelegate);
-        delete mAbstractDelegate;
-        mAbstractDelegate = 0;
-    }
-    
-    
-}