bluetoothengine/btui/inc/btabstractdelegate.h
author hgs
Fri, 03 Sep 2010 16:17:59 +0300
changeset 57 5ebadcda06cb
permissions -rw-r--r--
201035_7
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
57
5ebadcda06cb 201035_7
hgs
parents:
diff changeset
     1
/*
5ebadcda06cb 201035_7
hgs
parents:
diff changeset
     2
* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
5ebadcda06cb 201035_7
hgs
parents:
diff changeset
     3
* All rights reserved.
5ebadcda06cb 201035_7
hgs
parents:
diff changeset
     4
* This component and the accompanying materials are made available
5ebadcda06cb 201035_7
hgs
parents:
diff changeset
     5
* under the terms of "Eclipse Public License v1.0"
5ebadcda06cb 201035_7
hgs
parents:
diff changeset
     6
* which accompanies this distribution, and is available
5ebadcda06cb 201035_7
hgs
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
5ebadcda06cb 201035_7
hgs
parents:
diff changeset
     8
*
5ebadcda06cb 201035_7
hgs
parents:
diff changeset
     9
* Initial Contributors:
5ebadcda06cb 201035_7
hgs
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
5ebadcda06cb 201035_7
hgs
parents:
diff changeset
    11
*
5ebadcda06cb 201035_7
hgs
parents:
diff changeset
    12
* Contributors:
5ebadcda06cb 201035_7
hgs
parents:
diff changeset
    13
*
5ebadcda06cb 201035_7
hgs
parents:
diff changeset
    14
* Description: 
5ebadcda06cb 201035_7
hgs
parents:
diff changeset
    15
*
5ebadcda06cb 201035_7
hgs
parents:
diff changeset
    16
*/
5ebadcda06cb 201035_7
hgs
parents:
diff changeset
    17
5ebadcda06cb 201035_7
hgs
parents:
diff changeset
    18
#ifndef BTABSTRACTDELEGATE_H
5ebadcda06cb 201035_7
hgs
parents:
diff changeset
    19
#define BTABSTRACTDELEGATE_H
5ebadcda06cb 201035_7
hgs
parents:
diff changeset
    20
5ebadcda06cb 201035_7
hgs
parents:
diff changeset
    21
#include <QObject>
5ebadcda06cb 201035_7
hgs
parents:
diff changeset
    22
#include <QVariant>
5ebadcda06cb 201035_7
hgs
parents:
diff changeset
    23
#include <QModelIndex>
5ebadcda06cb 201035_7
hgs
parents:
diff changeset
    24
#include <btdelegateconsts.h>
5ebadcda06cb 201035_7
hgs
parents:
diff changeset
    25
5ebadcda06cb 201035_7
hgs
parents:
diff changeset
    26
class BtSettingModel;
5ebadcda06cb 201035_7
hgs
parents:
diff changeset
    27
class BtDeviceModel;
5ebadcda06cb 201035_7
hgs
parents:
diff changeset
    28
5ebadcda06cb 201035_7
hgs
parents:
diff changeset
    29
#ifdef BUILD_BTUIDELEGATE
5ebadcda06cb 201035_7
hgs
parents:
diff changeset
    30
#define BTUIDELEGATE_IMEXPORT Q_DECL_EXPORT
5ebadcda06cb 201035_7
hgs
parents:
diff changeset
    31
#else
5ebadcda06cb 201035_7
hgs
parents:
diff changeset
    32
#define BTUIDELEGATE_IMEXPORT Q_DECL_IMPORT
5ebadcda06cb 201035_7
hgs
parents:
diff changeset
    33
#endif
5ebadcda06cb 201035_7
hgs
parents:
diff changeset
    34
5ebadcda06cb 201035_7
hgs
parents:
diff changeset
    35
5ebadcda06cb 201035_7
hgs
parents:
diff changeset
    36
/*!
5ebadcda06cb 201035_7
hgs
parents:
diff changeset
    37
    \class BtAbstractDelegate
5ebadcda06cb 201035_7
hgs
parents:
diff changeset
    38
    \brief the base class for handling user requests from BT application.
5ebadcda06cb 201035_7
hgs
parents:
diff changeset
    39
5ebadcda06cb 201035_7
hgs
parents:
diff changeset
    40
5ebadcda06cb 201035_7
hgs
parents:
diff changeset
    41
    \\sa btuidelegate
5ebadcda06cb 201035_7
hgs
parents:
diff changeset
    42
 */
5ebadcda06cb 201035_7
hgs
parents:
diff changeset
    43
class BTUIDELEGATE_IMEXPORT BtAbstractDelegate : public QObject
5ebadcda06cb 201035_7
hgs
parents:
diff changeset
    44
{
5ebadcda06cb 201035_7
hgs
parents:
diff changeset
    45
    Q_OBJECT
5ebadcda06cb 201035_7
hgs
parents:
diff changeset
    46
5ebadcda06cb 201035_7
hgs
parents:
diff changeset
    47
public:
5ebadcda06cb 201035_7
hgs
parents:
diff changeset
    48
    explicit BtAbstractDelegate( BtSettingModel* settingModel, 
5ebadcda06cb 201035_7
hgs
parents:
diff changeset
    49
            BtDeviceModel* deviceModel, QObject *parent = 0 );
5ebadcda06cb 201035_7
hgs
parents:
diff changeset
    50
    
5ebadcda06cb 201035_7
hgs
parents:
diff changeset
    51
    virtual ~BtAbstractDelegate();
5ebadcda06cb 201035_7
hgs
parents:
diff changeset
    52
5ebadcda06cb 201035_7
hgs
parents:
diff changeset
    53
    /*!
5ebadcda06cb 201035_7
hgs
parents:
diff changeset
    54
     * Tells whether this is executing an operation.
5ebadcda06cb 201035_7
hgs
parents:
diff changeset
    55
     */
5ebadcda06cb 201035_7
hgs
parents:
diff changeset
    56
    bool isExecuting();
5ebadcda06cb 201035_7
hgs
parents:
diff changeset
    57
    
5ebadcda06cb 201035_7
hgs
parents:
diff changeset
    58
    /*!
5ebadcda06cb 201035_7
hgs
parents:
diff changeset
    59
     * Returns the sum of supported editor types
5ebadcda06cb 201035_7
hgs
parents:
diff changeset
    60
     */
5ebadcda06cb 201035_7
hgs
parents:
diff changeset
    61
    virtual int supportedEditorTypes() const = 0;
5ebadcda06cb 201035_7
hgs
parents:
diff changeset
    62
5ebadcda06cb 201035_7
hgs
parents:
diff changeset
    63
    /*!
5ebadcda06cb 201035_7
hgs
parents:
diff changeset
    64
     * Execute an operation, e.g., powering BT.
5ebadcda06cb 201035_7
hgs
parents:
diff changeset
    65
     * \param params the parameters which is specific per
5ebadcda06cb 201035_7
hgs
parents:
diff changeset
    66
     * delegate.
5ebadcda06cb 201035_7
hgs
parents:
diff changeset
    67
     */
5ebadcda06cb 201035_7
hgs
parents:
diff changeset
    68
    virtual void exec( const QVariant &params ) = 0;
5ebadcda06cb 201035_7
hgs
parents:
diff changeset
    69
5ebadcda06cb 201035_7
hgs
parents:
diff changeset
    70
    /*!
5ebadcda06cb 201035_7
hgs
parents:
diff changeset
    71
     * Cancels an ongoing operation upon receiving the cancelling 
5ebadcda06cb 201035_7
hgs
parents:
diff changeset
    72
     * request from end user.
5ebadcda06cb 201035_7
hgs
parents:
diff changeset
    73
     */
5ebadcda06cb 201035_7
hgs
parents:
diff changeset
    74
    virtual void cancel();
5ebadcda06cb 201035_7
hgs
parents:
diff changeset
    75
    
5ebadcda06cb 201035_7
hgs
parents:
diff changeset
    76
signals:
5ebadcda06cb 201035_7
hgs
parents:
diff changeset
    77
5ebadcda06cb 201035_7
hgs
parents:
diff changeset
    78
    /*!
5ebadcda06cb 201035_7
hgs
parents:
diff changeset
    79
     * Signal for informing the relevant party that Ui Edit mode
5ebadcda06cb 201035_7
hgs
parents:
diff changeset
    80
     * for the current operation should be activated.
5ebadcda06cb 201035_7
hgs
parents:
diff changeset
    81
     */
5ebadcda06cb 201035_7
hgs
parents:
diff changeset
    82
    void beginUiEditMode();
5ebadcda06cb 201035_7
hgs
parents:
diff changeset
    83
    
5ebadcda06cb 201035_7
hgs
parents:
diff changeset
    84
    /*!
5ebadcda06cb 201035_7
hgs
parents:
diff changeset
    85
     * Signal for informing the relevant party that Ui Edit mode
5ebadcda06cb 201035_7
hgs
parents:
diff changeset
    86
     * for the current operation should be deactivated.
5ebadcda06cb 201035_7
hgs
parents:
diff changeset
    87
     */
5ebadcda06cb 201035_7
hgs
parents:
diff changeset
    88
    void endUiEditMode();
5ebadcda06cb 201035_7
hgs
parents:
diff changeset
    89
    
5ebadcda06cb 201035_7
hgs
parents:
diff changeset
    90
    /*!
5ebadcda06cb 201035_7
hgs
parents:
diff changeset
    91
     * Signal for informing that this delegate has completed the operation.
5ebadcda06cb 201035_7
hgs
parents:
diff changeset
    92
     * \param error the result of the operation - 0 if the operation
5ebadcda06cb 201035_7
hgs
parents:
diff changeset
    93
     * was successful; some error code, otherwise.
5ebadcda06cb 201035_7
hgs
parents:
diff changeset
    94
     */
5ebadcda06cb 201035_7
hgs
parents:
diff changeset
    95
    void delegateCompleted(int error, BtAbstractDelegate *delegate);
5ebadcda06cb 201035_7
hgs
parents:
diff changeset
    96
    
5ebadcda06cb 201035_7
hgs
parents:
diff changeset
    97
protected:
5ebadcda06cb 201035_7
hgs
parents:
diff changeset
    98
    
5ebadcda06cb 201035_7
hgs
parents:
diff changeset
    99
    /*!
5ebadcda06cb 201035_7
hgs
parents:
diff changeset
   100
     * access to setting model.
5ebadcda06cb 201035_7
hgs
parents:
diff changeset
   101
     */
5ebadcda06cb 201035_7
hgs
parents:
diff changeset
   102
    BtSettingModel *settingModel();
5ebadcda06cb 201035_7
hgs
parents:
diff changeset
   103
    
5ebadcda06cb 201035_7
hgs
parents:
diff changeset
   104
    /*!
5ebadcda06cb 201035_7
hgs
parents:
diff changeset
   105
     * access to device model.
5ebadcda06cb 201035_7
hgs
parents:
diff changeset
   106
     */
5ebadcda06cb 201035_7
hgs
parents:
diff changeset
   107
    BtDeviceModel *deviceModel();
5ebadcda06cb 201035_7
hgs
parents:
diff changeset
   108
    
5ebadcda06cb 201035_7
hgs
parents:
diff changeset
   109
    /*!
5ebadcda06cb 201035_7
hgs
parents:
diff changeset
   110
     * Tells whether BT is on.
5ebadcda06cb 201035_7
hgs
parents:
diff changeset
   111
     * \return true if BT is on; false otherwise
5ebadcda06cb 201035_7
hgs
parents:
diff changeset
   112
     */
5ebadcda06cb 201035_7
hgs
parents:
diff changeset
   113
    bool isBtPowerOn();
5ebadcda06cb 201035_7
hgs
parents:
diff changeset
   114
    
5ebadcda06cb 201035_7
hgs
parents:
diff changeset
   115
    void completeDelegateExecution(int error);
5ebadcda06cb 201035_7
hgs
parents:
diff changeset
   116
    
5ebadcda06cb 201035_7
hgs
parents:
diff changeset
   117
    void setExecuting(bool executing);
5ebadcda06cb 201035_7
hgs
parents:
diff changeset
   118
    
5ebadcda06cb 201035_7
hgs
parents:
diff changeset
   119
public slots:
5ebadcda06cb 201035_7
hgs
parents:
diff changeset
   120
5ebadcda06cb 201035_7
hgs
parents:
diff changeset
   121
private:
5ebadcda06cb 201035_7
hgs
parents:
diff changeset
   122
5ebadcda06cb 201035_7
hgs
parents:
diff changeset
   123
    // pointer to models. do not own. 
5ebadcda06cb 201035_7
hgs
parents:
diff changeset
   124
    BtSettingModel *mSettingModel;
5ebadcda06cb 201035_7
hgs
parents:
diff changeset
   125
    
5ebadcda06cb 201035_7
hgs
parents:
diff changeset
   126
    BtDeviceModel *mDeviceModel;
5ebadcda06cb 201035_7
hgs
parents:
diff changeset
   127
    
5ebadcda06cb 201035_7
hgs
parents:
diff changeset
   128
    bool mExecuting;
5ebadcda06cb 201035_7
hgs
parents:
diff changeset
   129
    
5ebadcda06cb 201035_7
hgs
parents:
diff changeset
   130
    Q_DISABLE_COPY(BtAbstractDelegate)
5ebadcda06cb 201035_7
hgs
parents:
diff changeset
   131
5ebadcda06cb 201035_7
hgs
parents:
diff changeset
   132
};
5ebadcda06cb 201035_7
hgs
parents:
diff changeset
   133
5ebadcda06cb 201035_7
hgs
parents:
diff changeset
   134
Q_DECLARE_METATYPE(QModelIndex)
5ebadcda06cb 201035_7
hgs
parents:
diff changeset
   135
5ebadcda06cb 201035_7
hgs
parents:
diff changeset
   136
#endif // BTABSTRACTDELEGATE_H