phonebookui/pbkcommonui/src/cntsettingsmodel.cpp
changeset 47 7cbcb2896f0e
parent 46 efe85016a067
child 66 554fe4dbbb59
--- a/phonebookui/pbkcommonui/src/cntsettingsmodel.cpp	Wed Jun 23 18:02:44 2010 +0300
+++ b/phonebookui/pbkcommonui/src/cntsettingsmodel.cpp	Tue Jul 06 14:05:47 2010 +0300
@@ -22,10 +22,23 @@
 #include "cntdebug.h"
 
 CntSettingsModel::CntSettingsModel() :
-HbDataFormModel()
+HbDataFormModel(),
+mNameOrderkey(NULL),
+mNameListRowSettingkey(NULL)
 {
-    //create a model class    
-    HbDataFormModelItem* ord = new HbDataFormModelItem(HbDataFormModelItem::ComboBoxItem, hbTrId("txt_phob_setlabel_name_display_order"));
+    // Create name ordering setting item
+    createNameOrderSettingsItem();
+    
+    // Create names list row (1-row or 2-rows) setting item
+    createNamesListRowSettingItem();
+    
+    connect(this, SIGNAL(dataChanged(QModelIndex , QModelIndex)), this, SLOT(handleDataChanged(QModelIndex , QModelIndex)));
+}
+
+void CntSettingsModel::createNameOrderSettingsItem()
+{
+    HbDataFormModelItem* ord = new HbDataFormModelItem(HbDataFormModelItem::ComboBoxItem, hbTrId(
+    "txt_phob_setlabel_name_display_order"));
     
     QStringList orderList;
     // This order should be maintained as per the UI spec
@@ -36,8 +49,8 @@
     ord->setContentWidgetData( "items", orderList );
     appendDataFormItem(ord, invisibleRootItem());
     mNameOrderkey = new XQSettingsKey(XQSettingsKey::TargetCentralRepository,
-                             KCRUiContacts.iUid,
-                             KCntNameOrdering);
+                            KCRCntSettings.iUid,
+                            KCntNameOrdering);
     int settingValue = mSettings.readItemValue(*mNameOrderkey, XQSettingsManager::TypeInt).toInt();
 
     if (settingValue == CntOrderLastFirst) {
@@ -47,13 +60,36 @@
     } else if (settingValue == CntOrderFirstLast) {
         ord->setContentWidgetData("currentIndex", 2 );
     }
+}
+
+void CntSettingsModel::createNamesListRowSettingItem()
+{
+    HbDataFormModelItem* rowSetting = new HbDataFormModelItem(HbDataFormModelItem::ComboBoxItem, hbTrId(
+        "txt_phob_setlabel_show"));
     
-    connect(this, SIGNAL(dataChanged(QModelIndex , QModelIndex)), this, SLOT(handleDataChanged(QModelIndex , QModelIndex)));
+    QStringList rowSettingList;
+    // This order should be maintained as per the UI spec
+    rowSettingList.append( hbTrId("txt_phob_setlabel_show_val_name_only") );
+    rowSettingList.append( hbTrId("txt_phob_setlabel_show_val_name_and_phonenumber") );
+
+    rowSetting->setContentWidgetData( "items", rowSettingList );
+    appendDataFormItem(rowSetting, invisibleRootItem());
+    mNameListRowSettingkey = new XQSettingsKey(XQSettingsKey::TargetCentralRepository,
+                            KCRCntSettings.iUid,
+                            KCntNameListRowSetting);
+    int settingValue = mSettings.readItemValue(*mNameListRowSettingkey, XQSettingsManager::TypeInt).toInt();
+    
+    if (settingValue == CntOneRowNameOnly) {
+        rowSetting->setContentWidgetData("currentIndex", 0 );
+    } else if (settingValue == CntTwoRowsNameAndPhoneNumber) {
+        rowSetting->setContentWidgetData("currentIndex", 1 );
+    }    
 }
 
 CntSettingsModel::~CntSettingsModel()
 {
     delete mNameOrderkey;
+    delete mNameListRowSettingkey;
 }
 
 void CntSettingsModel::handleDataChanged(QModelIndex topLeft, QModelIndex bottomRight)
@@ -74,4 +110,15 @@
             CNT_LOG_ARGS(QString("failed writting cenrep key"))
         }
     }
+    else if (topLeft.row() == 1) {
+        int selected = itemFromIndex(topLeft)->contentWidgetData( "currentIndex" ).toInt();
+        if (selected == 0) {
+            written = mSettings.writeItemValue(*mNameListRowSettingkey, QVariant(CntOneRowNameOnly));
+        } else if (selected == 1) {
+            written = mSettings.writeItemValue(*mNameListRowSettingkey, QVariant(CntTwoRowsNameAndPhoneNumber));
+        }
+        if (!written) {
+            CNT_LOG_ARGS(QString("failed writting cenrep key"))
+        }
+    }
 }