searchui/stateproviders/searchstateprovider/src/settingswidget.cpp
changeset 17 7d8c8d8f5eab
parent 12 993ab30e92fc
child 23 af30d8015c58
--- a/searchui/stateproviders/searchstateprovider/src/settingswidget.cpp	Tue Jul 06 14:17:22 2010 +0300
+++ b/searchui/stateproviders/searchstateprovider/src/settingswidget.cpp	Wed Aug 18 09:49:49 2010 +0300
@@ -15,6 +15,7 @@
  *
  */
 #include "settingswidget.h"
+#include "onlinehandler.h"
 #include <hbdialog.h>
 #include <hbcheckbox.h>
 #include <qgraphicslinearlayout.h>
@@ -38,7 +39,7 @@
 #include <qsqldatabase.h>
 #include <qsqlquery.h>
 #include <cpixcontentinfocommon.h>
-#include "onlinehandler.h"
+
 const char *DELIMETER_DOCML = ":/xml/delimeterscreen.docml";
 const char *DIALOG = "dialog";
 const char *DATAFORM = "dataForm";
@@ -52,19 +53,16 @@
             mModel(NULL), mSelectedScope(0), mSelectedProvider(0), comboBox(
                     NULL), mInternetHandler(NULL)
     {
-    setSettingsFilePath();
     for (int i = 0; i < 8; i++)
         {
         mDeviceMapping.append(false);
         }
-
     mDeviceCategoryRefList = (QStringList() << "first" << "second" << "third"
             << "fourth" << "fifth" << "sixth" << "seventh" << "eigth");
 
     mchangestate = true;
     mInstialize = true;
     isInternetSelected = false;
-
     storeDefaultSettings();
     }
 //----------------------------------------------------------------------------------------------------------------------------
@@ -84,7 +82,6 @@
         {
         widget = mDocumentLoader->findWidget(DIALOG);
         Q_ASSERT_X(ok && (widget != 0), "DIALOG", "invalid view");
-
         popup = qobject_cast<HbDialog*> (widget);
         }
     if (!dataform)
@@ -101,7 +98,6 @@
         {
         signalMapper = new QSignalMapper(this);
         }
-
     createGui();
     }
 //----------------------------------------------------------------------------------------------------------------------------
@@ -237,6 +233,7 @@
         connect(mradiolist, SIGNAL(itemSelected(int)), this,
                 SLOT(slotitemSelected(int)));
         }
+    setActionVisibility();
     }
 //----------------------------------------------------------------------------------------------------------------------------
 //SettingsWidget::preparecategories()
@@ -245,15 +242,27 @@
 void SettingsWidget::preparecategories()
     {
     // read form database
-    QString mConnectionName("cpixcontentinfo.sq");
-    QString mDatabaseName("c:\\Private\\2001f6fb\\cpixcontentinfo.sq");
+
+    mDeviceListDisplay.clear();
+    mCategoryList.clear();
+    mDeviceMapping.clear();
+    for (int i = 0; i < 8; i++)
+        {
+        mDeviceMapping.append(false);
+        }
+    mCategoryDbMapping.clear();
+
+    QString mConnectionName(QString::fromUtf16(KContentInfoFileName().Ptr(),
+            KContentInfoFileName().Length()));
+    QString mDatabaseName(QString::fromUtf16(KCIDBPath().Ptr(),
+            KCIDBPath().Length()) + "\\" + mConnectionName);
 
     QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE", mConnectionName);
     db.setDatabaseName(mDatabaseName);
 
     QSqlQuery query(QSqlDatabase::database(mConnectionName));
-    QString statement = "SELECT NAME FROM table1";
-
+    QString statement = QString("SELECT * FROM ") + QString::fromUtf16(
+            KContentInfoTableName().Ptr(), KContentInfoTableName().Length());
     query.prepare(statement);
     query.exec();
     while (query.next())
@@ -268,7 +277,6 @@
             {
             mCategoryDbMapping.insert(category_name, true);
             }
-        qDebug() << "string db= " << category_name;
         }
     db.close();
 
@@ -284,8 +292,6 @@
      mCategoryDbMapping.insert("Bookmarks", true); 
      mCategoryDbMapping.insert("Files", true); */
 
-    // mCategoryDbMapping.insert("email", true); // to remove once email starts working
-
     mDeviceListDisplay.append(hbTrId("txt_search_list_select_all"));
     mDeviceMapping.insert(0, true);
 
@@ -294,46 +300,39 @@
         mDeviceMapping.insert(1, true);
         mDeviceListDisplay.append(hbTrId("txt_search_list_contatcs"));
         }
-
     if (mCategoryDbMapping.value("Audios") || mCategoryDbMapping.value(
             "Images") || mCategoryDbMapping.value("Videos"))
         {
         mDeviceListDisplay.append(hbTrId("txt_search_list_media"));
         mDeviceMapping.insert(2, true);
         }
-
     if (mCategoryDbMapping.value("Messages") || mCategoryDbMapping.value(
             "email"))
         {
         mDeviceListDisplay.append(hbTrId("txt_search_list_messagemail"));
         mDeviceMapping.insert(3, true);
         }
-
     if (mCategoryDbMapping.value("Calendar") || mCategoryDbMapping.value(
             "Notes"))
         {
         mDeviceListDisplay.append(hbTrId("txt_search_list_calendarnotes"));
         mDeviceMapping.insert(4, true);
         }
-
     if (mCategoryDbMapping.value("Applications"))
         {
         mDeviceListDisplay.append(hbTrId("txt_search_list_applications"));
         mDeviceMapping.insert(5, true);
         }
-
     if (mCategoryDbMapping.value("Bookmarks"))
         {
         mDeviceListDisplay.append(hbTrId("txt_search_list_bookmarks"));
         mDeviceMapping.insert(6, true);
         }
-
     if (mCategoryDbMapping.value("Files"))
         {
         mDeviceListDisplay.append(hbTrId("txt_search_list_all_other_files"));
         mDeviceMapping.insert(7, true);
         }
-    // internetCategoryList = (QStringList() << "Google" << "Bing" << "Yahoo");
 
     if (mServiceProviders.count())
         {
@@ -345,7 +344,6 @@
         mCategoryList = (QStringList() << hbTrId("txt_search_list_device"));
         }
     }
-
 //----------------------------------------------------------------------------------------------------------------------------
 //SettingsWidget::~SettingsWidget()
 //
@@ -353,17 +351,13 @@
 SettingsWidget::~SettingsWidget()
     {
     delete signalMapper;
-    //delete popup;
-    //delete dataform;
     delete mModel;
-    //delete mradiolist;
     mDeviceCheckBoxList.clear();
     mInternetCheckBoxList.clear();
     mModelItemList.clear();
     mActions.clear();
     delete mDocumentLoader;
     delete mInternetHandler;
-    //delete popup;
     }
 //----------------------------------------------------------------------------------------------------------------------------
 //SettingsWidget::launchSettingWidget()
@@ -376,6 +370,17 @@
         initialize();
         mInstialize = false;
         }
+    if (mDeviceListDisplay.count() != 7)
+        {
+        preparecategories();
+        q_currentIndexChanged(mSelectedScope);
+        QDir dir;
+        dir.remove(SETTINGS_INI_PATH);
+        storeDefaultSettings();
+        }
+    // refresh the screen to top     
+    QModelIndex index = mModel->index(0, 0);
+    dataform->scrollTo(index);
     comboBox->setCurrentIndex(mSelectedScope);
     loadDeviceSettings();
     setActionVisibility();
@@ -393,18 +398,21 @@
         if (mDeviceCheckBoxList.at(i)->checkState() == Qt::Checked)
             {
             noItemSelected = false;
+            break;
             }
         }
     if (!isInternetSelected)
         {
-        for (int i = 0; i < mActions.count(); i++)
-            popup->removeAction(mActions.at(i));
-        popup->addActions(mActions);
+        mActions.at(0)->setVisible(true);
         if (noItemSelected)
             {
-            popup->removeAction(mActions.at(0));
+            mActions.at(0)->setVisible(false);
             }
         }
+    else
+        {
+        mActions.at(0)->setVisible(true);
+        }
     }
 //----------------------------------------------------------------------------------------------------------------------------
 //SettingsWidget::itemChecked( int selectedIndex)
@@ -489,7 +497,7 @@
 
 void SettingsWidget::storeSettingsToiniFile()
     {
-    QSettings appSettings(mSettingFileName, QSettings::IniFormat);
+    QSettings appSettings(SETTINGS_INI_PATH, QSettings::IniFormat);
     isInternetSelected ? (mSelectedScope = 1) : (mSelectedScope = 0);
     appSettings.setValue("selectedcategory", mSelectedScope);
     appSettings.setValue("devicecount", mDeviceCategoryRefList.count());
@@ -517,10 +525,8 @@
                 appSettings.setValue(mDeviceCategoryRefList.at(i), 0);
                 emit selectedItemCategory(i, false);
                 }
-
             }
         }
-
     }
 //----------------------------------------------------------------------------------------------------------------------------
 //void SettingsWidget::loadBaseSettings()
@@ -528,7 +534,7 @@
 //----------------------------------------------------------------------------------------------------------------------------
 void SettingsWidget::loadBaseSettings()
     {
-    QSettings appSettings(mSettingFileName, QSettings::IniFormat);
+    QSettings appSettings(SETTINGS_INI_PATH, QSettings::IniFormat);
     mSelectedScope = appSettings.value("selectedcategory", 0).toInt();
     mSelectedScope ? (isInternetSelected = true) : (isInternetSelected
             = false);
@@ -540,7 +546,7 @@
 //----------------------------------------------------------------------------------------------------------------------------
 void SettingsWidget::loadDeviceSettings()
     {
-    QSettings appSettings(mSettingFileName, QSettings::IniFormat);
+    QSettings appSettings(SETTINGS_INI_PATH, QSettings::IniFormat);
     int value;
     if (!isInternetSelected)
         {
@@ -549,7 +555,6 @@
             {
             value
                     = appSettings.value(mDeviceCategoryRefList.at(i), 1).toInt();
-
             if (mDeviceMapping.count() && mDeviceCheckBoxList.count()
                     && mDeviceMapping.at(i))
                 {
@@ -566,7 +571,6 @@
             value
                   ? (emit selectedItemCategory(i, true))
                      : (emit selectedItemCategory(i, false));
-
             }
         }
     }
@@ -579,14 +583,13 @@
     loadBaseSettings();
     return isInternetSelected;
     }
-
 //----------------------------------------------------------------------------------------------------------------------------
 //void SettingsWidget::storeDefaultSettings()
 //
 //----------------------------------------------------------------------------------------------------------------------------
 void SettingsWidget::storeDefaultSettings()
     {
-    QSettings appSettings(mSettingFileName, QSettings::IniFormat);
+    QSettings appSettings(SETTINGS_INI_PATH, QSettings::IniFormat);
     if (!appSettings.contains("selectedcategory")) // change the settings for the first time only
         {
         mSelectedScope = 0;
@@ -596,15 +599,27 @@
             appSettings.setValue(mDeviceCategoryRefList.at(i), 1);
         }
     }
+//----------------------------------------------------------------------------------------------------------------------------
+//void SettingsWidget::slotproviderDetails()
+//
+//----------------------------------------------------------------------------------------------------------------------------
 void SettingsWidget::slotproviderDetails(QString name, HbIcon icon, int id)
     {
     mServiceProviders.insert(id, name);
     emit ISProvidersIcon(icon, id);
     }
+//----------------------------------------------------------------------------------------------------------------------------
+//void SettingsWidget::slotdefaultProvider()
+//
+//----------------------------------------------------------------------------------------------------------------------------
 void SettingsWidget::slotdefaultProvider(const int value)
     {
     mSelectedProvider = value;
     }
+//----------------------------------------------------------------------------------------------------------------------------
+//void SettingsWidget::slotitemSelected()
+//
+//----------------------------------------------------------------------------------------------------------------------------
 void SettingsWidget::slotitemSelected(int value)
     {
     QMapIterator<int, QString> i(mServiceProviders);
@@ -620,11 +635,10 @@
         selectedindex++;
         }
     }
-void SettingsWidget::setSettingsFilePath()
-    {
-    mSettingFileName.append(QDir::currentPath());
-    mSettingFileName.append(QString("/searchsettings.ini"));
-    }
+//----------------------------------------------------------------------------------------------------------------------------
+//void SettingsWidget::loadIS()
+//
+//----------------------------------------------------------------------------------------------------------------------------
 void SettingsWidget::loadIS()
     {
     if (!mInternetHandler)