javamanager/javasettings/appsettingsview_qt/src/javaapplicationsettingsview_p.cpp
changeset 26 dc7c549001d5
parent 23 98ccebc37403
child 35 85266cc22c7f
equal deleted inserted replaced
23:98ccebc37403 26:dc7c549001d5
    15 *
    15 *
    16 */
    16 */
    17 #include <hbmessagebox.h>
    17 #include <hbmessagebox.h>
    18 #include <hbdataformviewitem.h>
    18 #include <hbdataformviewitem.h>
    19 #include <hbcombobox.h>
    19 #include <hbcombobox.h>
       
    20 #include <hbpushbutton.h>
    20 #include <hbdataform.h>
    21 #include <hbdataform.h>
    21 #include <hbdataformmodel.h>
    22 #include <hbdataformmodel.h>
    22 #include <hbdataformmodelitem.h>
    23 #include <hbdataformmodelitem.h>
    23 #include <hblabel.h>
    24 #include <hblabel.h>
       
    25 #include <hbaction.h>
    24 #include <QApplication>
    26 #include <QApplication>
    25 #include <QTranslator>
    27 #include <QTranslator>
       
    28 #include <qnetworkconfigmanager.h>
       
    29 #include <qnetworkconfiguration.h>
    26 
    30 
    27 #include "javaapplicationsettings.h"
    31 #include "javaapplicationsettings.h"
    28 #include "javaapplicationsettingsview.h"
    32 #include "javaapplicationsettingsview.h"
    29 #include "javaapplicationsettingsview_p.h"
    33 #include "javaapplicationsettingsview_p.h"
       
    34 #include "connectionmanager.h"
       
    35 #include "javacommonutils.h"
    30 
    36 
    31 #include "securitystoragedatadefs.h"
    37 #include "securitystoragedatadefs.h"
    32 #include "javastoragenames.h"
    38 #include "javastoragenames.h"
    33 
    39 
       
    40 QTM_USE_NAMESPACE
       
    41 
    34 using namespace java::storage;
    42 using namespace java::storage;
       
    43 using namespace java::util;
    35 using namespace std;
    44 using namespace std;
    36 
    45 
    37 const wchar_t ON_SCREEN_KEYPAD_VALUE_NO[] = L"0";
    46 const wchar_t ON_SCREEN_KEYPAD_VALUE_NO[] = L"0";
    38 const wchar_t ON_SCREEN_KEYPAD_VALUE_GAMEACTIONS[] = L"1";
    47 const wchar_t ON_SCREEN_KEYPAD_VALUE_GAMEACTIONS[] = L"1";
    39 const wchar_t ON_SCREEN_KEYPAD_VALUE_NAVIGATION[] = L"2";
    48 const wchar_t ON_SCREEN_KEYPAD_VALUE_NAVIGATION[] = L"2";
    40 
    49 
    41 JavaApplicationSettingsViewPrivate::JavaApplicationSettingsViewPrivate(const QString& aJavaAppUid):
    50 JavaApplicationSettingsViewPrivate::JavaApplicationSettingsViewPrivate(const QString& aJavaAppUid):
    42         mainForm(0), model(0), generalSettingsGroup(0), securitySettingsGroup(0), iJavaAppUid(aJavaAppUid.toStdWString())
    51         mainForm(0), model(0), generalSettingsGroup(0), securitySettingsGroup(0)
    43 {
    52 {
    44     // load the correct translation of the localized strings
    53     // init access point settings ui
       
    54     netConnSettingsUi = new CmApplSettingsUi(this);
       
    55     
       
    56     // init storage
       
    57     iStorage.reset(JavaStorage::createInstance());
       
    58     try
       
    59     {
       
    60         iStorage->open();
       
    61     }
       
    62     catch (JavaStorageException& aJse) {}
       
    63     
       
    64     // init the suite UID from the application UID
       
    65     readSuiteUid(aJavaAppUid);
       
    66     if (iSuiteUid.size() <= 0)
       
    67     {
       
    68         // TODO: display a no settings available message
       
    69         return;
       
    70     }
    45     QTranslator translator;
    71     QTranslator translator;
       
    72     // load the correct translation of the localized strings for the cmmanager. 
       
    73     // Load this one first since it contains the smallest amount of strings 
       
    74     // (so it's ok to be searched last)
       
    75     if (translator.load("z:/resource/qt/translations/cmapplsettingsui_" + QLocale::system().name()))
       
    76     {
       
    77         qApp->installTranslator(&translator);
       
    78     }
       
    79     if (translator.load("z:/resource/qt/translations/cmmanager_" + QLocale::system().name()))
       
    80     {
       
    81         qApp->installTranslator(&translator);
       
    82     }
       
    83     // load the correct translation of the localized strings for the java settings
    46     // Current solution reads it from Z only (this does not work with IAD)
    84     // Current solution reads it from Z only (this does not work with IAD)
    47     // -> check if translator can handle path without drive letter (e.g. the resource
    85     // -> check if translator can handle path without drive letter (e.g. the resource
    48     // is loaded from the same drive where the DLL is loaded)
    86     // is loaded from the same drive where the DLL is loaded)
    49     if (translator.load("z:/resource/qt/translations/javaruntimeapplicationsettings_" + QLocale::system().name()))
    87     if (translator.load("z:/resource/qt/translations/javaruntimeapplicationsettings_" + QLocale::system().name()))
    50     {
    88     {
    63     OK = hbTrId("txt_java_sett_button_settings_ok");
   101     OK = hbTrId("txt_java_sett_button_settings_ok");
    64     CANCEL = hbTrId("txt_java_sett_button_settings_cancel");
   102     CANCEL = hbTrId("txt_java_sett_button_settings_cancel");
    65     SECURITY_WARNING_TITLE = hbTrId("txt_java_sett_title_note_security_warn");
   103     SECURITY_WARNING_TITLE = hbTrId("txt_java_sett_title_note_security_warn");
    66     NET_ACCESS = hbTrId("txt_java_sett_setlabel_net_access");
   104     NET_ACCESS = hbTrId("txt_java_sett_setlabel_net_access");
    67     LOW_LEVEL_NET_ACCESS = hbTrId("txt_java_sett_setlabel_low_level_net_access");
   105     LOW_LEVEL_NET_ACCESS = hbTrId("txt_java_sett_setlabel_low_level_net_access");
    68 
   106     NETWORK_CONNECTION = hbTrId("txt_occ_title_network_connection");
    69     // storage
       
    70     iStorage.reset(JavaStorage::createInstance());
       
    71     try
       
    72     {
       
    73         iStorage->open();
       
    74     }
       
    75     catch (JavaStorageException& aJse) {}
       
    76 
   107 
    77     // read all settings
   108     // read all settings
    78     readAllSettings();
   109     readAllSettings();
    79 
   110 
    80     // init form
   111     // init form
   119 
   150 
   120 JavaApplicationSettingsViewPrivate::~JavaApplicationSettingsViewPrivate()
   151 JavaApplicationSettingsViewPrivate::~JavaApplicationSettingsViewPrivate()
   121 {
   152 {
   122     delete mainForm;
   153     delete mainForm;
   123     delete model;
   154     delete model;
       
   155     delete netConnSettingsUi;
   124 }
   156 }
   125 
   157 
   126 void JavaApplicationSettingsViewPrivate::readAllSettings()
   158 void JavaApplicationSettingsViewPrivate::readAllSettings()
   127 {
   159 {
   128     // general settings
   160     // general settings
   136         settingsValues<<hbTrId("txt_java_sett_setlabel_osk_val_no")<<hbTrId("txt_java_sett_setlabel_osk_val_game")<<hbTrId("txt_java_sett_setlabel_osk_val_navigation");
   168         settingsValues<<hbTrId("txt_java_sett_setlabel_osk_val_no")<<hbTrId("txt_java_sett_setlabel_osk_val_game")<<hbTrId("txt_java_sett_setlabel_osk_val_navigation");
   137         storageValues.push_back(ON_SCREEN_KEYPAD_VALUE_NO);
   169         storageValues.push_back(ON_SCREEN_KEYPAD_VALUE_NO);
   138         storageValues.push_back(ON_SCREEN_KEYPAD_VALUE_GAMEACTIONS);
   170         storageValues.push_back(ON_SCREEN_KEYPAD_VALUE_GAMEACTIONS);
   139         storageValues.push_back(ON_SCREEN_KEYPAD_VALUE_NAVIGATION);
   171         storageValues.push_back(ON_SCREEN_KEYPAD_VALUE_NAVIGATION);
   140         generalSettings.append(JavaApplicationSettings(hbTrId("txt_java_sett_setlabel_osk"), settingsValues, ON_SCREEN_KEYPAD, MIDP_PACKAGE_TABLE, storageValues));
   172         generalSettings.append(JavaApplicationSettings(hbTrId("txt_java_sett_setlabel_osk"), settingsValues, ON_SCREEN_KEYPAD, MIDP_PACKAGE_TABLE, storageValues));
       
   173         readFromStorage(generalSettings[0]);
   141     }
   174     }
   142     settingsValues = QStringList();
   175     settingsValues = QStringList();
   143     settingsValues<<hbTrId("txt_java_sett_setlabel_network_conn_val_default")<<hbTrId("txt_java_sett_setlabel_network_conn_val_ask_user");
   176     netConn.id = ConnectionManager::getDestinationNetworkIdL(iSuiteUid);
   144     generalSettings.append(JavaApplicationSettings(hbTrId("txt_java_sett_setlabel_network_conn"), settingsValues));
   177     readNetworkConnectionName();
       
   178     settingsValues<<netConn.name;
       
   179     generalSettings.append(JavaApplicationSettings(NETWORK_CONNECTION, settingsValues));
       
   180     netSettIndex = generalSettings.size() - 1;
   145 
   181 
   146     // security settings
   182     // security settings
   147     settingsValues = QStringList();
   183     settingsValues = QStringList();
   148     storageValues.clear();
   184     storageValues.clear();
   149     settingsValues<<hbTrId("txt_java_sett_setlabel_security_level_val_default")<<hbTrId("txt_java_sett_setlabel_security_level_val_user_defined");
   185     settingsValues<<hbTrId("txt_java_sett_setlabel_security_level_val_default")<<USER_DEFINED;
   150     storageValues.push_back(SECURITY_WARNINGS_DEFAULT_MODE);
   186     storageValues.push_back(SECURITY_WARNINGS_DEFAULT_MODE);
   151     storageValues.push_back(SECURITY_WARNINGS_USER_DEFINED_MODE);
   187     storageValues.push_back(SECURITY_WARNINGS_USER_DEFINED_MODE);
   152     securitySettings.append(JavaApplicationSettings(hbTrId("txt_java_sett_setlabel_security_level"), settingsValues, SECURITY_WARNINGS, MIDP_PACKAGE_TABLE, storageValues));
   188     securitySettings.append(JavaApplicationSettings(SECURITY_LEVEL, settingsValues, SECURITY_WARNINGS, MIDP_PACKAGE_TABLE, storageValues));
       
   189     readFromStorage(securitySettings[0]);
   153 
   190 
   154     // extra settings
   191     // extra settings
   155     int i=0;
   192     int i=0;
   156     settingsValues = QStringList();
   193     settingsValues = QStringList();
   157     storageValues.clear();
   194     storageValues.clear();
   158     settingsValues<<hbTrId("txt_java_sett_setlabel_permission_val_oneshot")<<hbTrId("txt_java_sett_setlabel_permission_val_session")<<hbTrId("txt_java_sett_setlabel_permission_val_blanket")<<hbTrId("txt_java_sett_setlabel_permission_val_no");
   195     settingsValues<<ONESHOT<<SESSION<<BLANKET<<DENIED;
   159     storageValues.push_back(ONESHOT_INTERACTION_MODE);
   196     storageValues.push_back(ONESHOT_INTERACTION_MODE);
   160     storageValues.push_back(SESSION_INTERACTION_MODE);
   197     storageValues.push_back(SESSION_INTERACTION_MODE);
   161     storageValues.push_back(BLANKET_INTERACTION_MODE);
   198     storageValues.push_back(BLANKET_INTERACTION_MODE);
   162     storageValues.push_back(DENIED_INTERACTION_MODE);
   199     storageValues.push_back(DENIED_INTERACTION_MODE);
   163     extraSettings.append(JavaApplicationSettings(NET_ACCESS, settingsValues, CURRENT_SETTING, MIDP_FUNC_GRP_SETTINGS_TABLE, storageValues, FUNCTION_GROUP, NET_ACCESS_SETTINGS));
   200     extraSettings.append(JavaApplicationSettings(NET_ACCESS, settingsValues, CURRENT_SETTING, MIDP_FUNC_GRP_SETTINGS_TABLE, storageValues, FUNCTION_GROUP, NET_ACCESS_SETTINGS, ALLOWED_SETTINGS));
   164     readFromStorage(extraSettings[i]);
   201     readFromStorage(extraSettings[i]);
   165     i++;
   202     i++;
   166     extraSettings.append(JavaApplicationSettings(LOW_LEVEL_NET_ACCESS, settingsValues, CURRENT_SETTING, MIDP_FUNC_GRP_SETTINGS_TABLE, storageValues, FUNCTION_GROUP, LOW_LEVEL_NET_ACCESS_SETTINGS));
   203     extraSettings.append(JavaApplicationSettings(LOW_LEVEL_NET_ACCESS, settingsValues, CURRENT_SETTING, MIDP_FUNC_GRP_SETTINGS_TABLE, storageValues, FUNCTION_GROUP, LOW_LEVEL_NET_ACCESS_SETTINGS, ALLOWED_SETTINGS));
   167     readFromStorage(extraSettings[i]);
   204     readFromStorage(extraSettings[i]);
   168     i++;
   205     i++;
   169     extraSettings.append(JavaApplicationSettings(hbTrId("txt_java_sett_setlabel_messaging"), settingsValues, CURRENT_SETTING, MIDP_FUNC_GRP_SETTINGS_TABLE, storageValues, FUNCTION_GROUP, MESSAGING_SETTINGS));
   206     extraSettings.append(JavaApplicationSettings(hbTrId("txt_java_sett_setlabel_messaging"), settingsValues, CURRENT_SETTING, MIDP_FUNC_GRP_SETTINGS_TABLE, storageValues, FUNCTION_GROUP, MESSAGING_SETTINGS, ALLOWED_SETTINGS));
   170     readFromStorage(extraSettings[i]);
   207     readFromStorage(extraSettings[i]);
   171     i++;
   208     i++;
   172     extraSettings.append(JavaApplicationSettings(hbTrId("txt_java_sett_setlabel_restricted_messaging"), settingsValues, CURRENT_SETTING, MIDP_FUNC_GRP_SETTINGS_TABLE, storageValues, FUNCTION_GROUP, RESTRICTED_MESSAGING_SETTINGS));
   209     extraSettings.append(JavaApplicationSettings(hbTrId("txt_java_sett_setlabel_restricted_messaging"), settingsValues, CURRENT_SETTING, MIDP_FUNC_GRP_SETTINGS_TABLE, storageValues, FUNCTION_GROUP, RESTRICTED_MESSAGING_SETTINGS, ALLOWED_SETTINGS));
   173     readFromStorage(extraSettings[i]);
   210     readFromStorage(extraSettings[i]);
   174     i++;
   211     i++;
   175     extraSettings.append(JavaApplicationSettings(hbTrId("txt_java_sett_setlabel_call_control"), settingsValues, CURRENT_SETTING, MIDP_FUNC_GRP_SETTINGS_TABLE, storageValues, FUNCTION_GROUP, CALL_CONTROL_SETTINGS));
   212     extraSettings.append(JavaApplicationSettings(hbTrId("txt_java_sett_setlabel_call_control"), settingsValues, CURRENT_SETTING, MIDP_FUNC_GRP_SETTINGS_TABLE, storageValues, FUNCTION_GROUP, CALL_CONTROL_SETTINGS, ALLOWED_SETTINGS));
   176     readFromStorage(extraSettings[i]);
   213     readFromStorage(extraSettings[i]);
   177     i++;
   214     i++;
   178     extraSettings.append(JavaApplicationSettings(hbTrId("txt_java_sett_setlabel_local_conn"), settingsValues, CURRENT_SETTING, MIDP_FUNC_GRP_SETTINGS_TABLE, storageValues, FUNCTION_GROUP, LOCAL_CONNECTIVITY_SETTINGS));
   215     extraSettings.append(JavaApplicationSettings(hbTrId("txt_java_sett_setlabel_local_conn"), settingsValues, CURRENT_SETTING, MIDP_FUNC_GRP_SETTINGS_TABLE, storageValues, FUNCTION_GROUP, LOCAL_CONNECTIVITY_SETTINGS, ALLOWED_SETTINGS));
   179     readFromStorage(extraSettings[i]);
   216     readFromStorage(extraSettings[i]);
   180     i++;
   217     i++;
   181     extraSettings.append(JavaApplicationSettings(hbTrId("txt_java_sett_setlabel_mm_record"), settingsValues, CURRENT_SETTING, MIDP_FUNC_GRP_SETTINGS_TABLE, storageValues, FUNCTION_GROUP, MULTIMEDIA_RECORDING_SETTINGS));
   218     extraSettings.append(JavaApplicationSettings(hbTrId("txt_java_sett_setlabel_mm_record"), settingsValues, CURRENT_SETTING, MIDP_FUNC_GRP_SETTINGS_TABLE, storageValues, FUNCTION_GROUP, MULTIMEDIA_RECORDING_SETTINGS, ALLOWED_SETTINGS));
   182     readFromStorage(extraSettings[i]);
   219     readFromStorage(extraSettings[i]);
   183     i++;
   220     i++;
   184     extraSettings.append(JavaApplicationSettings(hbTrId("txt_java_sett_setlabel_write_data"), settingsValues, CURRENT_SETTING, MIDP_FUNC_GRP_SETTINGS_TABLE, storageValues, FUNCTION_GROUP, WRITE_USER_DATA_ACCESS_SETTINGS));
   221     extraSettings.append(JavaApplicationSettings(hbTrId("txt_java_sett_setlabel_write_data"), settingsValues, CURRENT_SETTING, MIDP_FUNC_GRP_SETTINGS_TABLE, storageValues, FUNCTION_GROUP, WRITE_USER_DATA_ACCESS_SETTINGS, ALLOWED_SETTINGS));
   185     readFromStorage(extraSettings[i]);
   222     readFromStorage(extraSettings[i]);
   186     i++;
   223     i++;
   187     extraSettings.append(JavaApplicationSettings(hbTrId("txt_java_sett_setlabel_read_data"), settingsValues, CURRENT_SETTING, MIDP_FUNC_GRP_SETTINGS_TABLE, storageValues, FUNCTION_GROUP, READ_USER_DATA_ACCESS_SETTINGS));
   224     extraSettings.append(JavaApplicationSettings(hbTrId("txt_java_sett_setlabel_read_data"), settingsValues, CURRENT_SETTING, MIDP_FUNC_GRP_SETTINGS_TABLE, storageValues, FUNCTION_GROUP, READ_USER_DATA_ACCESS_SETTINGS, ALLOWED_SETTINGS));
   188     readFromStorage(extraSettings[i]);
   225     readFromStorage(extraSettings[i]);
   189     i++;
   226     i++;
   190     extraSettings.append(JavaApplicationSettings(hbTrId("txt_java_sett_setlabel_location"), settingsValues, CURRENT_SETTING, MIDP_FUNC_GRP_SETTINGS_TABLE, storageValues, FUNCTION_GROUP, LOCATION_SETTINGS));
   227     extraSettings.append(JavaApplicationSettings(hbTrId("txt_java_sett_setlabel_location"), settingsValues, CURRENT_SETTING, MIDP_FUNC_GRP_SETTINGS_TABLE, storageValues, FUNCTION_GROUP, LOCATION_SETTINGS, ALLOWED_SETTINGS));
   191     readFromStorage(extraSettings[i]);
   228     readFromStorage(extraSettings[i]);
   192     i++;
   229     i++;
   193     extraSettings.append(JavaApplicationSettings(hbTrId("txt_java_sett_setlabel_landmarks"), settingsValues, CURRENT_SETTING, MIDP_FUNC_GRP_SETTINGS_TABLE, storageValues, FUNCTION_GROUP, LANDMARK_SETTINGS));
   230     extraSettings.append(JavaApplicationSettings(hbTrId("txt_java_sett_setlabel_landmarks"), settingsValues, CURRENT_SETTING, MIDP_FUNC_GRP_SETTINGS_TABLE, storageValues, FUNCTION_GROUP, LANDMARK_SETTINGS, ALLOWED_SETTINGS));
   194     readFromStorage(extraSettings[i]);
   231     readFromStorage(extraSettings[i]);
   195     i++;
   232     i++;
   196     extraSettings.append(JavaApplicationSettings(hbTrId("txt_java_sett_setlabel_auth"), settingsValues, CURRENT_SETTING, MIDP_FUNC_GRP_SETTINGS_TABLE, storageValues, FUNCTION_GROUP, AUTHENTICATION_SETTINGS));
   233     extraSettings.append(JavaApplicationSettings(hbTrId("txt_java_sett_setlabel_auth"), settingsValues, CURRENT_SETTING, MIDP_FUNC_GRP_SETTINGS_TABLE, storageValues, FUNCTION_GROUP, AUTHENTICATION_SETTINGS, ALLOWED_SETTINGS));
   197     readFromStorage(extraSettings[i]);
   234     readFromStorage(extraSettings[i]);
   198     i++;
   235     i++;
   199     extraSettings.append(JavaApplicationSettings(hbTrId("txt_java_sett_setlabel_smartcard"), settingsValues, CURRENT_SETTING, MIDP_FUNC_GRP_SETTINGS_TABLE, storageValues, FUNCTION_GROUP, SMART_CARD_COMMUNICATION_SETTINGS));
   236     extraSettings.append(JavaApplicationSettings(hbTrId("txt_java_sett_setlabel_smartcard"), settingsValues, CURRENT_SETTING, MIDP_FUNC_GRP_SETTINGS_TABLE, storageValues, FUNCTION_GROUP, SMART_CARD_COMMUNICATION_SETTINGS, ALLOWED_SETTINGS));
   200     readFromStorage(extraSettings[i]);
   237     readFromStorage(extraSettings[i]);
   201     i++;
   238     i++;
   202     extraSettings.append(JavaApplicationSettings(hbTrId("txt_java_sett_setlabel_app_auto_invoc"), settingsValues, CURRENT_SETTING, MIDP_FUNC_GRP_SETTINGS_TABLE, storageValues, FUNCTION_GROUP, APPLICATION_AUTO_INVOCATION_SETTINGS));
   239     extraSettings.append(JavaApplicationSettings(hbTrId("txt_java_sett_setlabel_app_auto_invoc"), settingsValues, CURRENT_SETTING, MIDP_FUNC_GRP_SETTINGS_TABLE, storageValues, FUNCTION_GROUP, APPLICATION_AUTO_INVOCATION_SETTINGS, ALLOWED_SETTINGS));
   203     readFromStorage(extraSettings[i]);
   240     readFromStorage(extraSettings[i]);
   204     i++;
   241     i++;
   205     extraSettings.append(JavaApplicationSettings(hbTrId("txt_java_sett_setlabel_broadcast"), settingsValues, CURRENT_SETTING, MIDP_FUNC_GRP_SETTINGS_TABLE, storageValues, FUNCTION_GROUP, BROADCAST_SETTINGS));
   242     extraSettings.append(JavaApplicationSettings(hbTrId("txt_java_sett_setlabel_broadcast"), settingsValues, CURRENT_SETTING, MIDP_FUNC_GRP_SETTINGS_TABLE, storageValues, FUNCTION_GROUP, BROADCAST_SETTINGS, ALLOWED_SETTINGS));
   206     readFromStorage(extraSettings[i]);
   243     readFromStorage(extraSettings[i]);
   207     i++;
   244     i++;
   208     extraSettings.append(JavaApplicationSettings(hbTrId("txt_java_sett_setlabel_nfc_write_access"), settingsValues, CURRENT_SETTING, MIDP_FUNC_GRP_SETTINGS_TABLE, storageValues, FUNCTION_GROUP, NFC_WRITE_ACCESS_SETTINGS));
   245     extraSettings.append(JavaApplicationSettings(hbTrId("txt_java_sett_setlabel_nfc_write_access"), settingsValues, CURRENT_SETTING, MIDP_FUNC_GRP_SETTINGS_TABLE, storageValues, FUNCTION_GROUP, NFC_WRITE_ACCESS_SETTINGS, ALLOWED_SETTINGS));
   209     readFromStorage(extraSettings[i]);
   246     readFromStorage(extraSettings[i]);
   210     i++;
   247     i++;
   211 
   248 
   212     // configure the high risk lists
   249     // configure the high risk lists
   213     QList<JavaApplicationSettings*> highRiskList;
   250     QList<JavaApplicationSettings*> highRiskList;
   250 
   287 
   251 void JavaApplicationSettingsViewPrivate::initSettings(QVector<JavaApplicationSettings>& settings, HbDataFormModelItem * parent)
   288 void JavaApplicationSettingsViewPrivate::initSettings(QVector<JavaApplicationSettings>& settings, HbDataFormModelItem * parent)
   252 {
   289 {
   253     for (int i=0; i<settings.size(); i++)
   290     for (int i=0; i<settings.size(); i++)
   254     {
   291     {
   255         HbDataFormModelItem * appSettings = model->appendDataFormItem(
   292         HbDataFormModelItem * appSettings = NULL;
   256                                                 HbDataFormModelItem::ComboBoxItem,
   293         int storageValue = 0;
   257                                                 settings[i].getName(), parent);
   294         int currentValue = 0;        
       
   295         switch(settings[i].getValues().size())
       
   296         {
       
   297             case 1:
       
   298                 appSettings  = model->appendDataFormItem(
       
   299                         HbDataFormModelItem::ToggleValueItem,
       
   300                         settings[i].getName(), parent);
       
   301                 appSettings->setContentWidgetData(QString("text"), settings[i].getValues()[0]);
       
   302                 appSettings->setContentWidgetData(QString("additionalText"), settings[i].getValues()[0]);
       
   303                 break;
       
   304             case 2:
       
   305                 appSettings  = model->appendDataFormItem(
       
   306                         HbDataFormModelItem::ToggleValueItem,
       
   307                         settings[i].getName(), parent);
       
   308                 storageValue = readFromStorage(settings[i]);
       
   309                 if (storageValue >= 0)
       
   310                 {
       
   311                     currentValue = storageValue;
       
   312                 }
       
   313                 // make it a toogle button (-> get rid of the "pressed" ui effect)
       
   314                 appSettings->setContentWidgetData(QString("text"), settings[i].getValues()[settings[i].getCurrentValue()]);
       
   315                 appSettings->setContentWidgetData(QString("additionalText"),settings[i].getValues()[1 - currentValue]);
       
   316                 break;
       
   317             default:
       
   318                 appSettings  = model->appendDataFormItem(
       
   319                         HbDataFormModelItem::ComboBoxItem,
       
   320                         settings[i].getName(), parent);
       
   321                 appSettings->setContentWidgetData(QString("items"), settings[i].getValues());
       
   322                 appSettings->setContentWidgetData(QString("currentIndex"),settings[i].getCurrentValue());
       
   323         }
   258         settings[i].setId(appSettings);
   324         settings[i].setId(appSettings);
   259         appSettings->setContentWidgetData(QString("items"), settings[i].getValues());
       
   260         appSettings->setContentWidgetData(QString("currentIndex"),readFromStorage(settings[i]));
       
   261     }
   325     }
   262 }
   326 }
   263 
   327 
   264 void JavaApplicationSettingsViewPrivate::writeSettings(JavaApplicationSettings& settings, const QString &aNewValue)
   328 void JavaApplicationSettingsViewPrivate::writeSettings(JavaApplicationSettings& settings, const QString &aNewValue)
   265 {
   329 {
   273         {
   337         {
   274             // check blanket settings
   338             // check blanket settings
   275             if (!blanketAllowed(settings))
   339             if (!blanketAllowed(settings))
   276             {
   340             {
   277                 // change back to the old value
   341                 // change back to the old value
   278                 HbComboBox * settingsCombo = itemToComboBox(settings.getId());
   342                 HbComboBox * settingsCombo = static_cast<HbComboBox*>(itemToWidget(settings.getId()));
   279                 settingsCombo->setCurrentIndex(currentValue);
   343                 settingsCombo->setCurrentIndex(currentValue);
   280                 return;
   344                 return;
   281             }
   345             }
   282         }
   346         }
   283         settings.setCurrentValue(newValue);
   347         settings.setCurrentValue(newValue);
   303                         || settings.getName() == LOW_LEVEL_NET_ACCESS
   367                         || settings.getName() == LOW_LEVEL_NET_ACCESS
   304                         || highRiskList[i]->getName() == LOW_LEVEL_NET_ACCESS)
   368                         || highRiskList[i]->getName() == LOW_LEVEL_NET_ACCESS)
   305                 {
   369                 {
   306                     secWarning = SENSITIVE_SETTINGS_NET_USAGE;
   370                     secWarning = SENSITIVE_SETTINGS_NET_USAGE;
   307                 }
   371                 }
   308                 /*if (!(HbMessageBox::launchQuestionMessageBox(
   372                 if (!securityWarningAccepted(
   309                         secWarning,OK,CANCEL ,new HbLabel(SECURITY_WARNING_TITLE))))
   373                     secWarning,OK,CANCEL ,SECURITY_WARNING_TITLE))
   310                 {
   374                 {
   311                     return false;
   375                     return false;
   312                 }*/
   376                 }
   313                 break;
   377                 break;
   314             }
   378             }
   315         }
   379         }
   316     }
   380     }
   317     // handle the mutually exclusive rules
   381     // handle the mutually exclusive rules
   323         for (int i=0; i<mutuallyExclusiveList.size(); i++)
   387         for (int i=0; i<mutuallyExclusiveList.size(); i++)
   324         {
   388         {
   325             if (mutuallyExclusiveList[i]->getValue(
   389             if (mutuallyExclusiveList[i]->getValue(
   326                         mutuallyExclusiveList[i]->getCurrentValue()) == BLANKET)
   390                         mutuallyExclusiveList[i]->getCurrentValue()) == BLANKET)
   327             {
   391             {
   328                 bool isBlanketAllowed = true /*(HbMessageBox::launchQuestionMessageBox(
   392                 bool isBlanketAllowed = securityWarningAccepted(
   329                         MUTUALLY_EXCLUSIVE_SETTINGS,OK,CANCEL, new HbLabel(SECURITY_WARNING_TITLE)))*/;
   393                     MUTUALLY_EXCLUSIVE_SETTINGS, OK, CANCEL, SECURITY_WARNING_TITLE);
   330                 if (isBlanketAllowed)
   394                 if (isBlanketAllowed)
   331                 {
   395                 {
   332                     // change  the current value to the maximum allowed
   396                     // change  the current value to the maximum allowed
   333                     bool isBlanket = true;
   397                     bool isBlanket = true;
   334                     do
   398                     do
   355                                     selectedValue = j;
   419                                     selectedValue = j;
   356                                 }
   420                                 }
   357                             }
   421                             }
   358                             // set the maximum allowed value
   422                             // set the maximum allowed value
   359                             mutuallyExclusiveList[i]->setCurrentValue(selectedValue);
   423                             mutuallyExclusiveList[i]->setCurrentValue(selectedValue);
   360                             HbComboBox * settingsCombo = itemToComboBox(
   424                             HbComboBox * settingsCombo = static_cast<HbComboBox*>(itemToWidget(
   361                                                              mutuallyExclusiveList[i]->getId());
   425                                                              mutuallyExclusiveList[i]->getId()));
   362                             settingsCombo->setCurrentIndex(selectedValue);
   426                             settingsCombo->setCurrentIndex(selectedValue);
   363                             writeToStorage(*mutuallyExclusiveList[i]);
   427                             writeToStorage(*mutuallyExclusiveList[i]);
   364                         }
   428                         }
   365                         i++;
   429                         i++;
   366                         // end of list?
   430                         // end of list?
   379         }
   443         }
   380     }
   444     }
   381     return true;
   445     return true;
   382 }
   446 }
   383 
   447 
       
   448 void JavaApplicationSettingsViewPrivate::_q_settingsChanged(bool)
       
   449 {
       
   450     HbPushButton * sender = static_cast<HbPushButton*>(iPublicView->sender());
       
   451     if (sender)
       
   452     {
       
   453         JavaApplicationSettings* settings = findSettings(sender);
       
   454         if (settings->getName() == SECURITY_LEVEL)
       
   455         {
       
   456             QString newValue = settings->getValue(1 - settings->getCurrentValue());
       
   457             securityWarningsChanged(newValue);
       
   458             writeSettings(*settings, newValue);
       
   459         }
       
   460         else if (settings->getName() == NETWORK_CONNECTION)
       
   461         {
       
   462             handleNetworkSettings();
       
   463         }
       
   464     }
       
   465 }
   384 void JavaApplicationSettingsViewPrivate::_q_settingsChanged(const QString &newValue)
   466 void JavaApplicationSettingsViewPrivate::_q_settingsChanged(const QString &newValue)
   385 {
   467 {
   386     HbComboBox * sender = static_cast<HbComboBox*>(iPublicView->sender());
   468     HbComboBox * sender = static_cast<HbComboBox*>(iPublicView->sender());
   387     if (sender)
   469     if (sender)
   388     {
   470     {
   389         JavaApplicationSettings* settings = findSettings(sender);
   471         JavaApplicationSettings* settings = findSettings(sender);
   390         if (settings != NULL)
   472         if (settings != NULL)
   391         {
   473         {
   392             // security warnings
       
   393             if (settings->getName() == SECURITY_LEVEL)
       
   394             {
       
   395                 securityWarningsChanged(newValue);
       
   396 //                return;
       
   397             }
       
   398             // any other settings are treated same
   474             // any other settings are treated same
   399             writeSettings(*settings, newValue);
   475             writeSettings(*settings, newValue);
   400         }
   476         }
   401     }
   477     }
   402 }
   478 }
   406     if (newValue == USER_DEFINED)
   482     if (newValue == USER_DEFINED)
   407     {
   483     {
   408         // append the extra settings and values
   484         // append the extra settings and values
   409         for (int i=0; i<extraSettings.size(); i++)
   485         for (int i=0; i<extraSettings.size(); i++)
   410         {
   486         {
   411             if (extraSettings[i].getCurrentValue() >= 0)
   487             if (extraSettings[i].getCurrentValue() >= 0 && extraSettings[i].getId() == 0)
   412             {
   488             {
   413                 HbDataFormModelItem * appSettings = model->appendDataFormItem(
   489                 HbDataFormModelItem * appSettings = model->appendDataFormItem(
   414                                                         HbDataFormModelItem::ComboBoxItem,
   490                                                         HbDataFormModelItem::ComboBoxItem,
   415                                                         extraSettings[i].getName(), securitySettingsGroup);
   491                                                         extraSettings[i].getName(), securitySettingsGroup);
   416                 extraSettings[i].setId(appSettings);
   492                 extraSettings[i].setId(appSettings);
       
   493                 // when settings the items, the settingsChanged signal gets emitted with the first value 
       
   494                 // as being the current value. This signal should be discarded (the first value is just 
       
   495                 // an intermediate value towards the actual current value which gets set shortly). 
       
   496                 // Therefore set the first value as the current value (this way the settingsChanged 
       
   497                 // signal gets discarded) and change the current value back to the real current value
       
   498                 int currentValue = extraSettings[i].getCurrentValue();
       
   499                 extraSettings[i].setCurrentValue(0);
       
   500                 appSettings->setContentWidgetData(QString("items"), extraSettings[i].getValues());                
       
   501                 extraSettings[i].setCurrentValue(currentValue);
   417                 appSettings->setContentWidgetData(QString("currentIndex"),extraSettings[i].getCurrentValue());
   502                 appSettings->setContentWidgetData(QString("currentIndex"),extraSettings[i].getCurrentValue());
   418             }
   503             }
   419         }
   504         }
   420     }
   505     }
   421     else
   506     else
   423         // remove the extra settings
   508         // remove the extra settings
   424         for (int i=0; i<extraSettings.size(); i++)
   509         for (int i=0; i<extraSettings.size(); i++)
   425         {
   510         {
   426             if (extraSettings[i].getId())
   511             if (extraSettings[i].getId())
   427             {
   512             {
   428                 HbComboBox * extraSettingsId = itemToComboBox(extraSettings[i].getId());
   513                 HbComboBox * extraSettingsId = static_cast<HbComboBox*>(itemToWidget(extraSettings[i].getId()));
   429                 if (extraSettingsId)
   514                 if (extraSettingsId)
   430                 {
   515                 {
   431                     JavaApplicationSettingsView::disconnect(extraSettingsId, 0, 0, 0);
   516                     iPublicView->disconnect(extraSettingsId, 0, 0, 0);
   432                     model->removeItem(model->indexFromItem(extraSettings[i].getId()));
   517                     model->removeItem(model->indexFromItem(extraSettings[i].getId()));
   433                     extraSettings[i].setId(0);
   518                     extraSettings[i].setId(0);
   434                 }
   519                 }
   435             }
   520             }
   436         }
   521         }
   437     }
   522     }
   438 }
   523 }
   439 
   524 
       
   525 void JavaApplicationSettingsViewPrivate::handleNetworkSettings()
       
   526 {
       
   527     // init flags to show destinations and connection methods
       
   528     QFlags<CmApplSettingsUi::SelectionDialogItems> listItems;
       
   529     listItems |= CmApplSettingsUi::ShowDestinations;
       
   530     listItems |= CmApplSettingsUi::ShowConnectionMethods;
       
   531         
       
   532     // empty filter -> all bearer types included
       
   533     QSet<CmApplSettingsUi::BearerTypeFilter> filter;
       
   534     // reset the result
       
   535     netConnSelection.result = CmApplSettingsUi::SelectionTypeDestination;       
       
   536     netConnSelection.id = netConn.id;
       
   537     // init settings ui with destinations, filter and initial selection
       
   538     netConnSettingsUi->setOptions(listItems, filter);
       
   539     netConnSettingsUi->setSelection(netConnSelection);
       
   540     // Connect the setting ui's signal with own slot where the netConnSelection is stored
       
   541     connect(netConnSettingsUi, SIGNAL(finished(uint)), this, SLOT(netConnSelected(uint)));
       
   542     // launch the setting ui    
       
   543     netConnSettingsUi->open();
       
   544 }
       
   545 
   440 void JavaApplicationSettingsViewPrivate::_q_dataItemDisplayed(const QModelIndex dataItemIndex)
   546 void JavaApplicationSettingsViewPrivate::_q_dataItemDisplayed(const QModelIndex dataItemIndex)
   441 {
   547 {
   442     HbDataFormModelItem *item = static_cast<HbDataFormModel*>(
   548     HbDataFormModelItem *item = static_cast<HbDataFormModel*>(
   443                                     mainForm->model())->itemFromIndex(dataItemIndex);
   549                                     mainForm->model())->itemFromIndex(dataItemIndex);
   444     int itemType = item->data(HbDataFormModelItem::ItemTypeRole).toInt();
   550     int itemType = item->data(HbDataFormModelItem::ItemTypeRole).toInt();
   445     if (HbDataFormModelItem::DataItemType(itemType)
   551     HbComboBox * comboBox = NULL;
   446             == HbDataFormModelItem::ComboBoxItem)
   552     HbPushButton * pushButton = NULL;    
   447     {
   553     switch(HbDataFormModelItem::DataItemType(itemType))
   448         HbComboBox * comboBox = static_cast<HbComboBox*>(
   554     {
   449             (qobject_cast<HbDataFormViewItem *> 
   555         case HbDataFormModelItem::ComboBoxItem:
   450             (mainForm->itemByIndex(dataItemIndex)))->dataItemContentWidget());
   556             comboBox = static_cast<HbComboBox*>(
   451         // add the extra settings values
   557                 (qobject_cast<HbDataFormViewItem *> 
   452         for (int i=0; i<extraSettings.size(); i++)
   558                 (mainForm->itemByIndex(dataItemIndex)))->dataItemContentWidget());
   453         {
   559             iPublicView->connect(comboBox,
   454             if (extraSettings[i].getId() == item)
   560                                  SIGNAL(currentIndexChanged(const QString &)),
   455             {
   561                                  iPublicView, SLOT(_q_settingsChanged(const QString &)),
   456                 if (comboBox->count() == 0)
   562                                  Qt::UniqueConnection);
   457                 {
   563             break;
   458                     comboBox->addItems(extraSettings[i].getValues());
   564         case HbDataFormModelItem::ToggleValueItem:
   459                 }
   565             pushButton = static_cast< HbPushButton*>(
   460                 comboBox->setCurrentIndex(extraSettings[i].getCurrentValue());
   566                 (qobject_cast<HbDataFormViewItem *> 
   461                 break;
   567                 (mainForm->itemByIndex(dataItemIndex)))->dataItemContentWidget());
   462             }
   568             iPublicView->connect(pushButton,
   463         }
   569                                  SIGNAL(clicked(bool)),
   464         iPublicView->connect(comboBox,
   570                                  iPublicView, SLOT(_q_settingsChanged(bool)),
   465                              SIGNAL(currentIndexChanged(const QString &)),
   571                                  Qt::UniqueConnection);
   466                              iPublicView, SLOT(_q_settingsChanged(const QString &)));
   572             break;
   467     }
   573     }
   468 }
   574 }
   469 
   575 
   470 JavaApplicationSettings* JavaApplicationSettingsViewPrivate::findSettings(HbComboBox* id)
   576 void JavaApplicationSettingsViewPrivate::netConnSelected(uint netConnSelectionStatus)
       
   577 {
       
   578     if (netConnSelectionStatus == CmApplSettingsUi::ApplSettingsErrorNone) 
       
   579     {    
       
   580         netConnSelection = netConnSettingsUi->selection();
       
   581         // store the selection
       
   582         if (netConnSelection.id != netConn.id)
       
   583         {
       
   584             ConnectionManager::setDestinationNetworkIdL(iSuiteUid, netConnSelection.id);
       
   585             netConn.id = netConnSelection.id;
       
   586             readNetworkConnectionName();
       
   587             generalSettings[netSettIndex].getId()->setContentWidgetData(QString("text"), netConn.name);
       
   588             generalSettings[netSettIndex].getId()->setContentWidgetData(QString("additionalText"), netConn.name);
       
   589         }
       
   590     }
       
   591 }
       
   592 
       
   593 void JavaApplicationSettingsViewPrivate::readNetworkConnectionName()
       
   594 {
       
   595     QNetworkConfigurationManager manager;
       
   596     QNetworkConfiguration cfg;    
       
   597     if (netConn.id == 0)
       
   598     {
       
   599         // figure out the default configuration
       
   600         cfg = manager.defaultConfiguration();
       
   601     }
       
   602     else
       
   603     {
       
   604         cfg = manager.configurationFromIdentifier(QString::number(netConn.id));
       
   605     }
       
   606     if (cfg.isValid())
       
   607     {
       
   608         netConn.name = hbTrId(cfg.name().toUtf8());
       
   609     }
       
   610 }
       
   611 
       
   612 JavaApplicationSettings* JavaApplicationSettingsViewPrivate::findSettings(HbWidget* id)
   471 {
   613 {
   472     JavaApplicationSettings* settings = findSettings(id, generalSettings);
   614     JavaApplicationSettings* settings = findSettings(id, generalSettings);
   473     if (settings == NULL)
   615     if (settings == NULL)
   474     {
   616     {
   475         settings = findSettings(id, securitySettings);
   617         settings = findSettings(id, securitySettings);
   479         }
   621         }
   480     }
   622     }
   481     return settings;
   623     return settings;
   482 }
   624 }
   483 
   625 
   484 JavaApplicationSettings* JavaApplicationSettingsViewPrivate::findSettings(HbComboBox* id, QVector<JavaApplicationSettings>& allSettings)
   626 JavaApplicationSettings* JavaApplicationSettingsViewPrivate::findSettings(HbWidget* id, QVector<JavaApplicationSettings>& allSettings)
   485 {
   627 {
   486     for (int i=0; i<allSettings.size(); i++)
   628     for (int i=0; i<allSettings.size(); i++)
   487     {
   629     {
   488         if (itemToComboBox(allSettings[i].getId()) == id)
   630         if (itemToWidget(allSettings[i].getId()) == id)
   489         {
   631         {
   490             return &allSettings[i];
   632             return &allSettings[i];
   491         }
   633         }
   492     }
   634     }
   493     return NULL;
   635     return NULL;
   494 }
   636 }
   495 
   637 
   496 HbComboBox * JavaApplicationSettingsViewPrivate::itemToComboBox(const HbDataFormModelItem * item)
   638 HbWidget * JavaApplicationSettingsViewPrivate::itemToWidget(const HbDataFormModelItem * item)
   497 {
   639 {
   498 
       
   499     HbDataFormViewItem * viewItem = qobject_cast<HbDataFormViewItem *> (mainForm->itemByIndex(
   640     HbDataFormViewItem * viewItem = qobject_cast<HbDataFormViewItem *> (mainForm->itemByIndex(
   500                                         model->indexFromItem(item)));
   641                                         model->indexFromItem(item)));
   501     if (viewItem)
   642     if (viewItem)
   502     {
   643     {
   503         return static_cast<HbComboBox*>(viewItem->dataItemContentWidget());
   644         return static_cast<HbWidget*>(viewItem->dataItemContentWidget());
   504     }
   645     }
   505     return NULL;
   646     return NULL;
   506 }
   647 }
   507 
   648 
       
   649 bool JavaApplicationSettingsViewPrivate::securityWarningAccepted(const QString& text, const QString& acceptActionLabel, const QString& rejectActionLabel, const QString& headingText)
       
   650 {
       
   651     return true;
       
   652 /*    HbMessageBox securityWarning(HbMessageBox::MessageTypeQuestion);
       
   653     securityWarning.setDismissPolicy(HbDialog::NoDismiss);
       
   654     securityWarning.setTimeout(HbDialog::NoTimeout);
       
   655     securityWarning.setIconVisible(false);
       
   656     securityWarning.setText(text);
       
   657     securityWarning.addAction(new HbAction(
       
   658             acceptActionLabel, &securityWarning));
       
   659     securityWarning.addAction(new HbAction(
       
   660            rejectActionLabel, &securityWarning));
       
   661    securityWarning.setHeadingWidget(new HbLabel(headingText));
       
   662    HbAction *selected = securityWarning.exec();
       
   663    return (selected == securityWarning.primaryAction());*/
       
   664 }
       
   665 
   508 int JavaApplicationSettingsViewPrivate::readFromStorage(JavaApplicationSettings& settings)
   666 int JavaApplicationSettingsViewPrivate::readFromStorage(JavaApplicationSettings& settings)
   509 {
   667 {
   510     int currentValue = -1;
   668     int currentValue = -1;
   511     if (settings.getColumnName().size() > 0 && settings.getTableName().size() > 0)
   669     if (settings.getColumnName().size() > 0 
       
   670             && settings.getTableName().size() > 0)
   512     {
   671     {
   513         wstring value = L"";
   672         wstring value = L"";
   514 
   673 
   515         JavaStorageApplicationEntry_t query;
   674         JavaStorageApplicationEntry_t query;
   516         JavaStorageApplicationList_t queryResult;
   675         JavaStorageApplicationList_t queryResult;
   517         JavaStorageEntry attr;
   676         JavaStorageEntry attr;
   518         attr.setEntry(ID, iJavaAppUid);
   677         attr.setEntry(ID, iSuiteUid);
   519         query.insert(attr);
   678         query.insert(attr);
   520         if (settings.getFilterColumnName().size() > 0)
   679         if (settings.getFilterColumnName().size() > 0)
   521         {
   680         {
   522             attr.setEntry(settings.getFilterColumnName(), settings.getFilterColumnValue());
   681             attr.setEntry(settings.getFilterColumnName(), settings.getFilterColumnValue());
   523             query.insert(attr);
   682             query.insert(attr);
   524         }
   683         }
   525         attr.setEntry(settings.getColumnName(), L"");
   684         attr.setEntry(settings.getColumnName(), L"");
   526         query.insert(attr);
   685         query.insert(attr);
       
   686         if (settings.getValuesColumnName().size() > 0)
       
   687         {
       
   688             attr.setEntry(settings.getValuesColumnName(), L"");
       
   689             query.insert(attr);
       
   690         }
   527 
   691 
   528         try
   692         try
   529         {
   693         {
   530             iStorage->search(settings.getTableName(), query, queryResult);
   694             iStorage->search(settings.getTableName(), query, queryResult);
   531         }
   695         }
   532         catch (JavaStorageException& aJse)
   696         catch (JavaStorageException& aJse)
   533         {
   697         {
   534             // Don't leave. Set defaults.
   698             // Don't leave. Set defaults.
   535         }
   699         }
   536 
   700 
       
   701         if (settings.getValuesColumnName().size() > 0)
       
   702         {
       
   703             findEntry(queryResult, settings.getValuesColumnName(), value);
       
   704             if (value.size() > 0)
       
   705             {
       
   706                 settings.setStorageValuesFilter(value);
       
   707                 filterSecuritySettings(settings);
       
   708             }
       
   709         }
       
   710         
       
   711         value = L"";
   537         findEntry(queryResult, settings.getColumnName(), value);
   712         findEntry(queryResult, settings.getColumnName(), value);
   538 
   713 
   539         if (value.size() > 0)
   714         if (value.size() > 0)
   540         {
   715         {
   541             vector<wstring> storageValues = settings.getStorageValues();
   716             vector<wstring> storageValues = settings.getStorageValues();
   552 
   727 
   553     settings.setCurrentValue(currentValue);
   728     settings.setCurrentValue(currentValue);
   554     return currentValue;
   729     return currentValue;
   555 }
   730 }
   556 
   731 
       
   732 void JavaApplicationSettingsViewPrivate::filterSecuritySettings(JavaApplicationSettings& settings)
       
   733 {
       
   734     std::wstring allowedModes = settings.getStorageValuesFilter();
       
   735     if (allowedModes.size() <= 0)
       
   736     {
       
   737             return;
       
   738     }
       
   739     // The allowed modes info is stored as a 4-bit constant:
       
   740     //    X(oneshot)X(session)X(blanket)X(no)
       
   741     // e.g. 1011 (=11) means that oneshot, blanket and no are allowed.
       
   742     // The following constants are used to encode/decode the allowed modes
       
   743     // into/from a 4-bit number
       
   744     int INTERACTION_MODE_DENIED = 1;
       
   745     int INTERACTION_MODE_BLANKET = 2;
       
   746     int INTERACTION_MODE_SESSION = 4;
       
   747     int INTERACTION_MODE_ONESHOT = 8;
       
   748     TInt allowedInteractionModes = JavaCommonUtils::wstringToInt(allowedModes);
       
   749     int index = 0;
       
   750     int tmp = allowedInteractionModes & INTERACTION_MODE_ONESHOT;
       
   751     if (tmp <= 0)
       
   752     {
       
   753         settings.removeValue(index); 
       
   754         index--;
       
   755     }
       
   756     index++;
       
   757     tmp = allowedInteractionModes & INTERACTION_MODE_SESSION;
       
   758     if (tmp <= 0)
       
   759     {
       
   760         settings.removeValue(index); 
       
   761         index--;
       
   762     }
       
   763     index++;
       
   764     tmp = allowedInteractionModes & INTERACTION_MODE_BLANKET;
       
   765     if (tmp <= 0)
       
   766     {
       
   767         settings.removeValue(index); 
       
   768         index--;
       
   769     }
       
   770     index++;
       
   771     tmp = allowedInteractionModes & INTERACTION_MODE_DENIED;
       
   772     if (tmp <= 0)
       
   773     {
       
   774         settings.removeValue(index); 
       
   775     }
       
   776 }
       
   777 
   557 void JavaApplicationSettingsViewPrivate::writeToStorage(JavaApplicationSettings& settings)
   778 void JavaApplicationSettingsViewPrivate::writeToStorage(JavaApplicationSettings& settings)
   558 {
   779 {
       
   780     if (settings.getTableName().size() <= 0 
       
   781             || settings.getColumnName().size() <= 0)
       
   782     {
       
   783         // storage details are not provided -> no point in going further
       
   784         return;
       
   785     }
   559     JavaStorageApplicationEntry_t oldEntry;
   786     JavaStorageApplicationEntry_t oldEntry;
   560     JavaStorageEntry attr;
   787     JavaStorageEntry attr;
   561     attr.setEntry(ID, iJavaAppUid);
   788     attr.setEntry(ID, iSuiteUid);
   562     oldEntry.insert(attr);
   789     oldEntry.insert(attr);
   563     JavaStorageApplicationEntry_t entry;
   790     JavaStorageApplicationEntry_t entry;
   564     if (settings.getFilterColumnName().size() > 0)
   791     if (settings.getFilterColumnName().size() > 0)
   565     {
   792     {
   566         attr.setEntry(settings.getFilterColumnName(), settings.getFilterColumnValue());
   793         attr.setEntry(settings.getFilterColumnName(), settings.getFilterColumnValue());
   608     wstring value = L"";
   835     wstring value = L"";
   609 
   836 
   610     JavaStorageApplicationEntry_t query;
   837     JavaStorageApplicationEntry_t query;
   611     JavaStorageApplicationList_t queryResult;
   838     JavaStorageApplicationList_t queryResult;
   612     JavaStorageEntry attr;
   839     JavaStorageEntry attr;
   613     attr.setEntry(ID, iJavaAppUid);
   840     attr.setEntry(ID, iSuiteUid);
   614     query.insert(attr);
   841     query.insert(attr);
   615     if (aColumnFilterName.size() > 0)
   842     if (aColumnFilterName.size() > 0)
   616     {
   843     {
   617         attr.setEntry(aColumnFilterName, aColumnFilterValue);
   844         attr.setEntry(aColumnFilterName, aColumnFilterValue);
   618         query.insert(attr);
   845         query.insert(attr);
   630     }
   857     }
   631 
   858 
   632     findEntry(queryResult, aColumnName, value);
   859     findEntry(queryResult, aColumnName, value);
   633 
   860 
   634     return value;
   861     return value;
       
   862 }
       
   863 
       
   864 void JavaApplicationSettingsViewPrivate::readSuiteUid(const QString& aAppUid)
       
   865 {
       
   866     iSuiteUid = L"";
       
   867     bool ok;
       
   868     int tmp = aAppUid.toInt( &ok, 10 );
       
   869     if (!ok)
       
   870     {
       
   871         return;
       
   872     }
       
   873     wstring appUid = L""; 
       
   874     appUid.append(L"[").append(QString("%1").arg(tmp, 0, 16).toStdWString()).append(L"]");
       
   875 
       
   876     JavaStorageApplicationEntry_t query;
       
   877     JavaStorageApplicationList_t queryResult;
       
   878     JavaStorageEntry attr;
       
   879     attr.setEntry(ID, appUid);
       
   880     query.insert(attr);
       
   881     attr.setEntry(PACKAGE_ID, L"");
       
   882     query.insert(attr);
       
   883     try
       
   884     {
       
   885         iStorage->search(APPLICATION_TABLE, query, queryResult);
       
   886     }
       
   887     catch (JavaStorageException& aJse)
       
   888     {
       
   889         // Don't leave. Set defaults.
       
   890     }
       
   891     findEntry(queryResult, PACKAGE_ID, iSuiteUid);
   635 }
   892 }
   636 
   893 
   637 
   894 
   638 #ifdef WIN32
   895 #ifdef WIN32
   639 #include "./moc/moc_javaapplicationsettingsview.cpp"
   896 #include "./moc/moc_javaapplicationsettingsview.cpp"