src/hbwidgets/dataform/hbdataform_p.cpp
changeset 3 11d3954df52a
parent 2 06ff229162e9
child 6 c3690ec91ef8
equal deleted inserted replaced
2:06ff229162e9 3:11d3954df52a
    23 **
    23 **
    24 ****************************************************************************/
    24 ****************************************************************************/
    25 
    25 
    26 #include "hbdataform_p.h"
    26 #include "hbdataform_p.h"
    27 #include <hbdataformviewitem.h>
    27 #include <hbdataformviewitem.h>
       
    28 #include "hbdataformviewitem_p.h"
    28 #include "hbdataitemcontainer_p.h"
    29 #include "hbdataitemcontainer_p.h"
    29 #include <hbcombobox.h>
    30 #include <hbcombobox.h>
    30 #include <hbapplication.h>
    31 #include <hbapplication.h>
    31 #include <hbdataformmodel.h>
    32 #include <hbdataformmodel.h>
    32 #include "hbdataformheadingwidget_p.h"
    33 #include "hbdataformheadingwidget_p.h"
   205         if(modelItem){
   206         if(modelItem){
   206             QList<ItemSignal> signalList = mConnectionList.values(modelItem);
   207             QList<ItemSignal> signalList = mConnectionList.values(modelItem);
   207             if(signalList.count() > 0){
   208             if(signalList.count() > 0){
   208                 HbDataFormViewItem *viewItem = static_cast<HbDataFormViewItem*>(q->itemByIndex(index));
   209                 HbDataFormViewItem *viewItem = static_cast<HbDataFormViewItem*>(q->itemByIndex(index));
   209                 if(viewItem){
   210                 if(viewItem){
   210                     HbWidget *contentWidget = viewItem->dataItemContentWidget();
   211                     HbWidget *contentWidget = HbDataFormViewItemPrivate::d_ptr(viewItem)->mContentWidget;
   211                     if(contentWidget){
   212                     if(contentWidget){
   212                         foreach(ItemSignal signal, signalList) {
   213                         foreach(ItemSignal signal, signalList) {
   213                             QObject *objct = signal.reciever;
   214                             QObject *objct = signal.reciever;
   214                             QString signalName = signal.signal;
   215                             QString signalName = signal.signal;
   215                             QString slot = signal.slot;
   216                             QString slot = signal.slot;
   240             if(signalList.count() > 0){
   241             if(signalList.count() > 0){
   241             QModelIndex index = 
   242             QModelIndex index = 
   242                 static_cast<HbDataFormModel*>(q->model())->indexFromItem(modelItem);
   243                 static_cast<HbDataFormModel*>(q->model())->indexFromItem(modelItem);
   243                 HbDataFormViewItem *viewItem = static_cast<HbDataFormViewItem*>(q->itemByIndex(index));
   244                 HbDataFormViewItem *viewItem = static_cast<HbDataFormViewItem*>(q->itemByIndex(index));
   244                 if(viewItem){
   245                 if(viewItem){
   245                     HbWidget *contentWidget = viewItem->dataItemContentWidget();
   246                     HbWidget *contentWidget = HbDataFormViewItemPrivate::d_ptr(viewItem)->mContentWidget;
   246                     if(contentWidget){
   247                     if(contentWidget){
   247                         //foreach(ItemSignal signalItem, signalList) {
   248                         //foreach(ItemSignal signalItem, signalList) {
   248                         for(int i = 0; i < signalList.count() ;i++){
   249                         for(int i = 0; i < signalList.count() ;i++){
   249                             ItemSignal signalItem = signalList.at(i);
   250                             ItemSignal signalItem = signalList.at(i);
   250                             if(reciever == signalItem.reciever &&
   251                             if(reciever == signalItem.reciever &&
   275     Q_Q( HbDataForm);    
   276     Q_Q( HbDataForm);    
   276     
   277     
   277     if(q->model()) {
   278     if(q->model()) {
   278         QModelIndex index = static_cast<HbDataFormModel*>(q->model())->indexFromItem(modelItem);
   279         QModelIndex index = static_cast<HbDataFormModel*>(q->model())->indexFromItem(modelItem);
   279         if(modelItem){
   280         if(modelItem){
   280                 HbDataFormViewItem *viewItem =static_cast<HbDataFormViewItem*>( q->itemByIndex(index) );
   281             HbDataFormViewItem *viewItem =static_cast<HbDataFormViewItem*>( q->itemByIndex(index) );
   281                 if(viewItem){
   282             if(viewItem){
   282                     HbWidget *contentWidget = viewItem->dataItemContentWidget();
   283                 if(HbDataFormViewItemPrivate::d_ptr(viewItem)->mContentWidget) {
   283                         // Make connection
   284                     // Make connection
   284                     if(contentWidget){
   285                         QObject::connect(HbDataFormViewItemPrivate::d_ptr(viewItem)->mContentWidget, signal.toAscii().data(), 
   285                         QObject::connect(contentWidget, signal.toAscii().data(), 
       
   286                             reciever,slot.toAscii().data());
   286                             reciever,slot.toAscii().data());
   287                     }
   287                 }
   288             }
   288             }
   289         }
   289         }
   290     }
   290     }
   291 }
   291 }
   292 
   292 
   301             mConnectionList.remove(item);
   301             mConnectionList.remove(item);
   302             if(signalList.count() > 0){
   302             if(signalList.count() > 0){
   303                 QModelIndex index = static_cast<HbDataFormModel*>(q->model())->indexFromItem(item);
   303                 QModelIndex index = static_cast<HbDataFormModel*>(q->model())->indexFromItem(item);
   304                 HbDataFormViewItem *viewItem = static_cast<HbDataFormViewItem*> (q->itemByIndex(index));
   304                 HbDataFormViewItem *viewItem = static_cast<HbDataFormViewItem*> (q->itemByIndex(index));
   305                 if(viewItem){
   305                 if(viewItem){
   306                     HbWidget *contentWidget = viewItem->dataItemContentWidget();
   306                     HbWidget *contentWidget = HbDataFormViewItemPrivate::d_ptr(viewItem)->mContentWidget;
   307                     // disconnect signal and remove signal from list
   307                     // disconnect signal and remove signal from list
   308                     for(int i = 0;i<signalList.count();) {
   308                     for(int i = 0;i<signalList.count();) {
   309                         ItemSignal signalItem = signalList.takeAt(i);
   309                         ItemSignal signalItem = signalList.takeAt(i);
   310                             // Make connection
   310                             // Make connection
   311                         QObject::disconnect(contentWidget, signalItem.signal.toAscii().data(), 
   311                         QObject::disconnect(contentWidget, signalItem.signal.toAscii().data(), 
   328             mConnectionList.remove(modelItem);
   328             mConnectionList.remove(modelItem);
   329             if(signalList.count() > 0){
   329             if(signalList.count() > 0){
   330                 QModelIndex index = static_cast<HbDataFormModel*>(q->model())->indexFromItem(modelItem);
   330                 QModelIndex index = static_cast<HbDataFormModel*>(q->model())->indexFromItem(modelItem);
   331                 HbDataFormViewItem *viewItem =static_cast<HbDataFormViewItem*>( q->itemByIndex(index));
   331                 HbDataFormViewItem *viewItem =static_cast<HbDataFormViewItem*>( q->itemByIndex(index));
   332                 if(viewItem){
   332                 if(viewItem){
   333                     HbWidget *contentWidget = viewItem->dataItemContentWidget();
   333                     HbWidget *contentWidget = HbDataFormViewItemPrivate::d_ptr(viewItem)->mContentWidget;
   334                     // disconnect signal and remove signal from list
   334                     // disconnect signal and remove signal from list
   335                     for(int i = 0;i<signalList.count(); ) {
   335                     for(int i = 0;i<signalList.count(); ) {
   336                         ItemSignal signalItem = signalList.takeAt(i);
   336                         ItemSignal signalItem = signalList.takeAt(i);
   337                             // Make connection
   337                             // Make connection
   338                         QObject::disconnect(contentWidget, signalItem.signal.toAscii().data(), 
   338                         QObject::disconnect(contentWidget, signalItem.signal.toAscii().data(), 
   342             }
   342             }
   343         }
   343         }
   344     }
   344     }
   345 }
   345 }
   346 
   346 
       
   347 void HbDataFormPrivate::emitActivated(const QModelIndex &modelIndex)
       
   348 {
       
   349     Q_Q( HbDataForm);
       
   350     emit q->activated(modelIndex);
       
   351 }
       
   352