bluetoothengine/btui/btuimodel/btsettingmodel.cpp
changeset 41 0b2439c3e397
parent 33 837dcc42fd6a
equal deleted inserted replaced
40:997690c3397a 41:0b2439c3e397
    14 * Description: 
    14 * Description: 
    15 *
    15 *
    16 */
    16 */
    17 
    17 
    18 #include <btsettingmodel.h>
    18 #include <btsettingmodel.h>
    19 #include "btlocalsetting.h"
    19 #include "btsettingmodel_p.h"
    20 #include "bluetoothuitrace.h"
    20 #include "bluetoothuitrace.h"
    21 
    21 
    22 /*!
    22 /*!
    23     This Constructor creates new instances of model data structure.
    23     This Constructor creates new instances of model data structure.
    24  */
    24  */
    25 BtSettingModel::BtSettingModel( QObject *parent )
    25 BtSettingModel::BtSettingModel( QObject *parent )
    26     : QAbstractItemModel( parent )
    26     : QAbstractItemModel( parent )
    27 {
    27 {
    28    mLocalSetting = QSharedPointer<BtLocalSetting>( new BtLocalSetting( *this ) );
    28    d = QSharedPointer<BtSettingModelPrivate>( new BtSettingModelPrivate( *this ) );
       
    29    connectModelSignals();
    29 }
    30 }
    30 
    31 
    31 /*!
    32 /*!
    32     This Constructor shares the instances of model data structure with the
    33     This Constructor shares the private implementation of the setting model.
    33     given model.
       
    34  */
    34  */
    35 BtSettingModel::BtSettingModel( const BtSettingModel &model, QObject *parent )
    35 BtSettingModel::BtSettingModel( const BtSettingModel &model, QObject *parent )
    36     : QAbstractItemModel( parent )
    36     : QAbstractItemModel( parent )
    37 {
    37 {
    38     mLocalSetting = model.mLocalSetting;
    38     d = model.d;
       
    39     connectModelSignals();
    39 }
    40 }
    40 
    41 
    41 /*!
    42 /*!
    42     Destructor.
    43     Destructor.
    43  */
    44  */
    49     \reimp
    50     \reimp
    50  */
    51  */
    51 QModelIndex BtSettingModel::index( int row, int column, const QModelIndex &parent ) const
    52 QModelIndex BtSettingModel::index( int row, int column, const QModelIndex &parent ) const
    52 {
    53 {
    53     Q_UNUSED( parent );
    54     Q_UNUSED( parent );
    54     if ( mLocalSetting->isValid( row, column ) ) {
    55     if ( d->isValid( row, column ) ) {
    55         return createIndex( row, column, mLocalSetting.data() );
    56         return createIndex( row, column, d.data() );
    56     }
    57     }
    57     // invalid row and column:
    58     // invalid row and column:
    58     return QModelIndex();
    59     return QModelIndex();
    59 }
    60 }
    60 
    61 
    72     \reimp
    73     \reimp
    73  */
    74  */
    74 int BtSettingModel::rowCount( const QModelIndex &parent ) const
    75 int BtSettingModel::rowCount( const QModelIndex &parent ) const
    75 {
    76 {
    76     Q_UNUSED( parent );
    77     Q_UNUSED( parent );
    77     return mLocalSetting->rowCount();
    78     return d->rowCount();
    78 }
    79 }
    79 
    80 
    80 /*!
    81 /*!
    81     \reimp
    82     \reimp
    82  */
    83  */
    83 int BtSettingModel::columnCount( const QModelIndex &parent ) const
    84 int BtSettingModel::columnCount( const QModelIndex &parent ) const
    84 {
    85 {
    85     Q_UNUSED( parent );
    86     Q_UNUSED( parent );
    86     return mLocalSetting->columnCount();
    87     return d->columnCount();
    87 }
    88 }
    88 
    89 
    89 /*!
    90 /*!
    90     \reimp
    91     \reimp
    91  */
    92  */
    92 QVariant BtSettingModel::data( const QModelIndex &index, int role ) const
    93 QVariant BtSettingModel::data( const QModelIndex &index, int role ) const
    93 {
    94 {
    94     QVariant val( QVariant::Invalid );
    95     QVariant val( QVariant::Invalid );
    95     mLocalSetting.data()->data( val, index.row(), index.column(), role );
    96     d.data()->data( val, index.row(), index.column(), role );
    96     return val;
    97     return val;
    97 }
    98 }
    98 
    99 
    99 QMap<int, QVariant> BtSettingModel::itemData( const QModelIndex & index ) const
   100 QMap<int, QVariant> BtSettingModel::itemData( const QModelIndex & index ) const
   100 {
   101 {
   101     return mLocalSetting.data()->itemData( index.row(), index.column() );
   102     return d.data()->itemData( index.row(), index.column() );
   102 }
   103 }
   103 
   104 
   104 /*!
   105 /*!
   105     emits dataChanged signal.
   106     emits dataChanged signal.
   106  */
   107  */
   107 void BtSettingModel::emitDataChanged( int row, int column, void *parent )
   108 void BtSettingModel::settingDataChanged( int row, void *parent )
   108 {
   109 {
   109     QModelIndex idx = createIndex( row, column, parent );
   110     QModelIndex idx = createIndex( row, 0, parent );
   110     emit dataChanged( idx, idx );
   111     emit dataChanged( idx, idx );
   111 }
   112 }
   112 
   113 
   113 void BtSettingModel::emitDataChanged(const QModelIndex &top, const QModelIndex &bottom )
   114 /*!
       
   115     emits dataChanged signal.
       
   116  */
       
   117 void BtSettingModel::settingDataChanged(int first, int last, void *parent )
   114     {
   118     {
       
   119     QModelIndex top = createIndex( first, 0, parent );
       
   120     QModelIndex bottom = createIndex( last, 0, parent );
   115     emit dataChanged( top, bottom );
   121     emit dataChanged( top, bottom );
   116     }
   122     }
       
   123 
       
   124 /*!
       
   125  connects all signals of private impl to slots of this
       
   126  */
       
   127 void BtSettingModel::connectModelSignals()
       
   128 {
       
   129     bool ok = connect(d.data(), SIGNAL(settingDataChanged(int,void*)), SLOT(settingDataChanged(int,void*)));
       
   130     BTUI_ASSERT_X( ok, "BtSettingModel", "settingDataChanged can't connect" );
       
   131     ok = connect(d.data(), SIGNAL(settingDataChanged(int,int,void*)), SLOT(settingDataChanged(int,int,void*)));
       
   132     BTUI_ASSERT_X( ok, "BtSettingModel", "settingDataChanged can't connect 2" );
       
   133 }