javamanager/javasettings/appsettingsview_qt/src/javaapplicationsettingsview_p.cpp
changeset 35 85266cc22c7f
parent 26 dc7c549001d5
child 47 f40128debb5d
child 49 35baca0e7a2e
equal deleted inserted replaced
26:dc7c549001d5 35:85266cc22c7f
    25 #include <hbaction.h>
    25 #include <hbaction.h>
    26 #include <QApplication>
    26 #include <QApplication>
    27 #include <QTranslator>
    27 #include <QTranslator>
    28 #include <qnetworkconfigmanager.h>
    28 #include <qnetworkconfigmanager.h>
    29 #include <qnetworkconfiguration.h>
    29 #include <qnetworkconfiguration.h>
       
    30 #include <algorithm>
    30 
    31 
    31 #include "javaapplicationsettings.h"
    32 #include "javaapplicationsettings.h"
    32 #include "javaapplicationsettingsview.h"
    33 #include "javaapplicationsettingsview.h"
    33 #include "javaapplicationsettingsview_p.h"
    34 #include "javaapplicationsettingsview_p.h"
    34 #include "connectionmanager.h"
    35 #include "connectionmanager.h"
    46 const wchar_t ON_SCREEN_KEYPAD_VALUE_NO[] = L"0";
    47 const wchar_t ON_SCREEN_KEYPAD_VALUE_NO[] = L"0";
    47 const wchar_t ON_SCREEN_KEYPAD_VALUE_GAMEACTIONS[] = L"1";
    48 const wchar_t ON_SCREEN_KEYPAD_VALUE_GAMEACTIONS[] = L"1";
    48 const wchar_t ON_SCREEN_KEYPAD_VALUE_NAVIGATION[] = L"2";
    49 const wchar_t ON_SCREEN_KEYPAD_VALUE_NAVIGATION[] = L"2";
    49 
    50 
    50 JavaApplicationSettingsViewPrivate::JavaApplicationSettingsViewPrivate(const QString& aJavaAppUid):
    51 JavaApplicationSettingsViewPrivate::JavaApplicationSettingsViewPrivate(const QString& aJavaAppUid):
    51         mainForm(0), model(0), generalSettingsGroup(0), securitySettingsGroup(0)
    52         mainForm(0), model(0), generalSettingsGroup(0), securitySettingsGroup(0), netConnSettingsUi(0), asyncToSyncCallEventLoop(0), secWarningAccepted(false), defaultConnId(0)
    52 {
    53 {
    53     // init access point settings ui
       
    54     netConnSettingsUi = new CmApplSettingsUi(this);
       
    55     
       
    56     // init storage
    54     // init storage
    57     iStorage.reset(JavaStorage::createInstance());
    55     iStorage.reset(JavaStorage::createInstance());
    58     try
    56     try
    59     {
    57     {
    60         iStorage->open();
    58         iStorage->open();
    61     }
    59     }
    62     catch (JavaStorageException& aJse) {}
    60     catch (JavaStorageException& aJse) {}
    63     
    61     
    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     }
       
    71     QTranslator translator;
    62     QTranslator translator;
    72     // load the correct translation of the localized strings for the cmmanager. 
    63     // load the correct translation of the localized strings for the cmmanager. 
    73     // Load this one first since it contains the smallest amount of strings 
    64     // Load this one first since it contains the smallest amount of strings 
    74     // (so it's ok to be searched last)
    65     // (so it's ok to be searched last)
    75     if (translator.load("z:/resource/qt/translations/cmapplsettingsui_" + QLocale::system().name()))
    66     installTranslator("cmapplsettingsui");
    76     {
    67     installTranslator("cmmanager");
    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
    68     // load the correct translation of the localized strings for the java settings
    84     // Current solution reads it from Z only (this does not work with IAD)
    69     // Current solution reads it from Z only (this does not work with IAD)
    85     // -> check if translator can handle path without drive letter (e.g. the resource
    70     // -> check if translator can handle path without drive letter (e.g. the resource
    86     // is loaded from the same drive where the DLL is loaded)
    71     // is loaded from the same drive where the DLL is loaded)
    87     if (translator.load("z:/resource/qt/translations/javaruntimeapplicationsettings_" + QLocale::system().name()))
    72     installTranslator("javaruntimeapplicationsettings");
    88     {
       
    89         qApp->installTranslator(&translator);
       
    90     }
       
    91     // init strings
    73     // init strings
    92     BLANKET = hbTrId("txt_java_sett_setlabel_permission_val_blanket");
    74     BLANKET = QString(hbTrId("txt_java_sett_setlabel_permission_val_blanket"));
    93     SESSION = hbTrId("txt_java_sett_setlabel_permission_val_session");
    75     SESSION = QString(hbTrId("txt_java_sett_setlabel_permission_val_session"));
    94     ONESHOT = hbTrId("txt_java_sett_setlabel_permission_val_oneshot");
    76     ONESHOT = QString(hbTrId("txt_java_sett_setlabel_permission_val_oneshot"));
    95     DENIED = hbTrId("txt_java_sett_setlabel_permission_val_no");
    77     DENIED = QString(hbTrId("txt_java_sett_setlabel_permission_val_no"));
    96     SECURITY_LEVEL = hbTrId("txt_java_sett_setlabel_security_level");
    78     SECURITY_LEVEL = QString(hbTrId("txt_java_sett_setlabel_security_level"));
    97     USER_DEFINED = hbTrId("txt_java_sett_setlabel_security_level_val_user_defined");
    79     USER_DEFINED = QString(hbTrId("txt_java_sett_setlabel_security_level_val_user_defined"));
    98     SENSITIVE_SETTINGS = hbTrId("txt_java_sett_info_query_perm_sec");
    80     SENSITIVE_SETTINGS = QString(hbTrId("txt_java_sett_info_query_perm_sec"));
    99     SENSITIVE_SETTINGS_NET_USAGE = hbTrId("txt_java_sett_info_query_perm_net");
    81     SENSITIVE_SETTINGS_NET_USAGE = QString(hbTrId("txt_java_sett_info_query_perm_net"));
   100     MUTUALLY_EXCLUSIVE_SETTINGS = hbTrId("txt_java_sett_info_query_perm_warn");
    82     MUTUALLY_EXCLUSIVE_SETTINGS = QString(hbTrId("txt_java_sett_info_query_perm_warn"));
   101     OK = hbTrId("txt_java_sett_button_settings_ok");
    83     OK = QString(hbTrId("txt_java_sett_button_settings_ok"));
   102     CANCEL = hbTrId("txt_java_sett_button_settings_cancel");
    84     CANCEL = QString(hbTrId("txt_java_sett_button_settings_cancel"));
   103     SECURITY_WARNING_TITLE = hbTrId("txt_java_sett_title_note_security_warn");
    85     SECURITY_WARNING_TITLE = QString(hbTrId("txt_java_sett_title_note_security_warn"));
   104     NET_ACCESS = hbTrId("txt_java_sett_setlabel_net_access");
    86     NET_ACCESS = QString(hbTrId("txt_java_sett_setlabel_net_access"));
   105     LOW_LEVEL_NET_ACCESS = hbTrId("txt_java_sett_setlabel_low_level_net_access");
    87     LOW_LEVEL_NET_ACCESS = QString(hbTrId("txt_java_sett_setlabel_low_level_net_access"));
   106     NETWORK_CONNECTION = hbTrId("txt_occ_title_network_connection");
    88     NETWORK_CONNECTION = QString(hbTrId("txt_occ_title_network_connection"));
   107 
    89     SETTINGS_TITLE = QString(hbTrId("txt_java_sett_title_settings"));
       
    90     SETTINGS_NOT_AVAILABLE = QString(hbTrId("txt_java_sett_info_settings_not_available"));
       
    91 
       
    92     // init the suite UID from the application UID
       
    93     readSuiteUid(aJavaAppUid);
       
    94     if (iSuiteUid.size() <= 0)
       
    95     {
       
    96         return;
       
    97     }
       
    98     
       
    99     // init access point settings ui
       
   100     netConnSettingsUi = new CmApplSettingsUi(this);
       
   101     asyncToSyncCallEventLoop = new QEventLoop();
       
   102     
   108     // read all settings
   103     // read all settings
   109     readAllSettings();
   104     readAllSettings();
   110 
   105 
   111     // init form
   106     // init form
   112     mainForm = new HbDataForm();
   107     mainForm = new HbDataForm();
   113     mainForm->setHeading(hbTrId("txt_java_sett_title_settings"));
   108     mainForm->setHeading(QString::fromStdWString(readFromStorage(PACKAGE_NAME, L"", L"", APPLICATION_PACKAGE_TABLE)));
   114     model = new HbDataFormModel();
   109     model = new HbDataFormModel();
   115 
   110 
   116     // init settings
   111     // init settings
   117     generalSettingsGroup = model->appendDataFormGroup(
   112     generalSettingsGroup = model->appendDataFormGroup(
   118                                hbTrId("txt_java_sett_subtitle_general"), model->invisibleRootItem());
   113         QString(hbTrId("txt_java_sett_subtitle_general")), model->invisibleRootItem());
   119     initSettings(generalSettings, generalSettingsGroup);
   114     initSettings(generalSettings, generalSettingsGroup);
   120     securitySettingsGroup = model->appendDataFormGroup(
   115     // append the security settings only if there are any user settings
   121                                 hbTrId("txt_java_sett_subtitle_security"), model->invisibleRootItem());
   116     if (extraSettings.size() > 0)
   122     initSettings(securitySettings, securitySettingsGroup);
   117     {
   123 
   118         securitySettingsGroup = model->appendDataFormGroup(
   124     // if security warnings is user defined -> add the extra settings, expand
   119             QString(hbTrId("txt_java_sett_subtitle_security")), model->invisibleRootItem());
   125     if (securitySettings[0].getCurrentValue() == 1)
   120         initSettings(securitySettings, securitySettingsGroup);
   126     {
   121 
   127         securityWarningsChanged(USER_DEFINED);
   122         // if security warnings is user defined -> add the extra settings, expand
       
   123         if (securitySettings[0].getCurrentValue() == 1)
       
   124         {
       
   125             securityWarningsChanged(USER_DEFINED);
       
   126         }
   128     }
   127     }
   129 
   128 
   130     // link form and model
   129     // link form and model
   131     mainForm->setModel(model);
   130     mainForm->setModel(model);
   132     mainForm->setExpanded(model->indexFromItem(generalSettingsGroup), true);
   131     mainForm->setExpanded(model->indexFromItem(generalSettingsGroup), true);
   133     mainForm->setExpanded(model->indexFromItem(securitySettingsGroup), (securitySettings[0].getCurrentValue() == 1));
   132     if (extraSettings.size() > 0)
       
   133     {
       
   134         mainForm->setExpanded(model->indexFromItem(securitySettingsGroup), (securitySettings[0].getCurrentValue() == 1));
       
   135     }
   134 }
   136 }
   135 
   137 
   136 void JavaApplicationSettingsViewPrivate::init(JavaApplicationSettingsView* aPublicView)
   138 void JavaApplicationSettingsViewPrivate::init(JavaApplicationSettingsView* aPublicView)
   137 {
   139 {
   138     iPublicView = aPublicView;
   140     iPublicView = aPublicView;
   139 
   141 
   140     // do the connect for the main form
   142     if (mainForm)
   141     iPublicView->connect(mainForm, SIGNAL(activated(const QModelIndex)),
   143     {        
   142                          iPublicView, SLOT(_q_dataItemDisplayed(const QModelIndex)));
   144         // do the connect for the main form
   143 
   145         iPublicView->connect(mainForm, SIGNAL(activated(const QModelIndex)),
   144     // set the form as view's widget
   146                              iPublicView, SLOT(_q_dataItemDisplayed(const QModelIndex)));
   145     iPublicView->setWidget(mainForm);
   147     
       
   148         // set the form as view's widget
       
   149         iPublicView->setWidget(mainForm);
       
   150     }
       
   151     else
       
   152     {
       
   153         // no settings available
       
   154         HbLabel* label = new HbLabel(SETTINGS_NOT_AVAILABLE, iPublicView);
       
   155         label->setAlignment(Qt::AlignVCenter);
       
   156     }        
   146 
   157 
   147     // set title
   158     // set title
   148     iPublicView->setTitle(QString::fromStdWString(readFromStorage(PACKAGE_NAME, L"", L"", APPLICATION_PACKAGE_TABLE)));
   159     iPublicView->setTitle(SETTINGS_TITLE);
   149 }
   160 }
   150 
   161 
   151 JavaApplicationSettingsViewPrivate::~JavaApplicationSettingsViewPrivate()
   162 JavaApplicationSettingsViewPrivate::~JavaApplicationSettingsViewPrivate()
   152 {
   163 {
   153     delete mainForm;
   164     delete mainForm;
   154     delete model;
   165     delete model;
   155     delete netConnSettingsUi;
   166     delete netConnSettingsUi;
       
   167     delete asyncToSyncCallEventLoop;
       
   168     foreach (QTranslator *translator, translators) {
       
   169         qApp->removeTranslator(translator);
       
   170     }    
       
   171     qDeleteAll(translators);
       
   172     translators.clear();
   156 }
   173 }
   157 
   174 
   158 void JavaApplicationSettingsViewPrivate::readAllSettings()
   175 void JavaApplicationSettingsViewPrivate::readAllSettings()
   159 {
   176 {
   160     // general settings
   177     // general settings
   163     if (!findFromStorage(VALUE, NAME, L"Nokia-MIDlet-On-Screen-Keypad", APPLICATION_PACKAGE_ATTRIBUTES_TABLE))
   180     if (!findFromStorage(VALUE, NAME, L"Nokia-MIDlet-On-Screen-Keypad", APPLICATION_PACKAGE_ATTRIBUTES_TABLE))
   164     {
   181     {
   165         // if the on screen keypad is predefined, it should not be changable by user
   182         // if the on screen keypad is predefined, it should not be changable by user
   166         // -> right now it is not added to settings list. It should be changed so that
   183         // -> right now it is not added to settings list. It should be changed so that
   167         // the setting should not be editable by user
   184         // the setting should not be editable by user
   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");
   185         settingsValues<<QString(hbTrId("txt_java_sett_setlabel_osk_val_no"))<<QString(hbTrId("txt_java_sett_setlabel_osk_val_game"))<<QString(hbTrId("txt_java_sett_setlabel_osk_val_navigation"));
   169         storageValues.push_back(ON_SCREEN_KEYPAD_VALUE_NO);
   186         storageValues.push_back(ON_SCREEN_KEYPAD_VALUE_NO);
   170         storageValues.push_back(ON_SCREEN_KEYPAD_VALUE_GAMEACTIONS);
   187         storageValues.push_back(ON_SCREEN_KEYPAD_VALUE_GAMEACTIONS);
   171         storageValues.push_back(ON_SCREEN_KEYPAD_VALUE_NAVIGATION);
   188         storageValues.push_back(ON_SCREEN_KEYPAD_VALUE_NAVIGATION);
   172         generalSettings.append(JavaApplicationSettings(hbTrId("txt_java_sett_setlabel_osk"), settingsValues, ON_SCREEN_KEYPAD, MIDP_PACKAGE_TABLE, storageValues));
   189         generalSettings.append(JavaApplicationSettings(QString(hbTrId("txt_java_sett_setlabel_osk")), settingsValues, ON_SCREEN_KEYPAD, MIDP_PACKAGE_TABLE, storageValues));
   173         readFromStorage(generalSettings[0]);
   190         readFromStorage(generalSettings[0]);
   174     }
   191     }
   175     settingsValues = QStringList();
   192     settingsValues = QStringList();
   176     netConn.id = ConnectionManager::getDestinationNetworkIdL(iSuiteUid);
   193     initNetworkConnection();
   177     readNetworkConnectionName();
       
   178     settingsValues<<netConn.name;
   194     settingsValues<<netConn.name;
   179     generalSettings.append(JavaApplicationSettings(NETWORK_CONNECTION, settingsValues));
   195     generalSettings.append(JavaApplicationSettings(NETWORK_CONNECTION, settingsValues));
   180     netSettIndex = generalSettings.size() - 1;
   196     netSettIndex = generalSettings.size() - 1;
   181 
   197 
   182     // security settings
   198     // security settings
   183     settingsValues = QStringList();
   199     settingsValues = QStringList();
   184     storageValues.clear();
   200     storageValues.clear();
   185     settingsValues<<hbTrId("txt_java_sett_setlabel_security_level_val_default")<<USER_DEFINED;
   201     settingsValues<<QString(hbTrId("txt_java_sett_setlabel_security_level_val_default"))<<USER_DEFINED;
   186     storageValues.push_back(SECURITY_WARNINGS_DEFAULT_MODE);
   202     storageValues.push_back(SECURITY_WARNINGS_DEFAULT_MODE);
   187     storageValues.push_back(SECURITY_WARNINGS_USER_DEFINED_MODE);
   203     storageValues.push_back(SECURITY_WARNINGS_USER_DEFINED_MODE);
   188     securitySettings.append(JavaApplicationSettings(SECURITY_LEVEL, settingsValues, SECURITY_WARNINGS, MIDP_PACKAGE_TABLE, storageValues));
   204     securitySettings.append(JavaApplicationSettings(SECURITY_LEVEL, settingsValues, SECURITY_WARNINGS, MIDP_PACKAGE_TABLE, storageValues));
   189     readFromStorage(securitySettings[0]);
   205     readFromStorage(securitySettings[0]);
   190 
   206 
   191     // extra settings
   207     // extra settings
   192     int i=0;
       
   193     settingsValues = QStringList();
   208     settingsValues = QStringList();
   194     storageValues.clear();
   209     storageValues.clear();
   195     settingsValues<<ONESHOT<<SESSION<<BLANKET<<DENIED;
   210     settingsValues<<ONESHOT<<SESSION<<BLANKET<<DENIED;
   196     storageValues.push_back(ONESHOT_INTERACTION_MODE);
   211     storageValues.push_back(ONESHOT_INTERACTION_MODE);
   197     storageValues.push_back(SESSION_INTERACTION_MODE);
   212     storageValues.push_back(SESSION_INTERACTION_MODE);
   198     storageValues.push_back(BLANKET_INTERACTION_MODE);
   213     storageValues.push_back(BLANKET_INTERACTION_MODE);
   199     storageValues.push_back(DENIED_INTERACTION_MODE);
   214     storageValues.push_back(DENIED_INTERACTION_MODE);
   200     extraSettings.append(JavaApplicationSettings(NET_ACCESS, settingsValues, CURRENT_SETTING, MIDP_FUNC_GRP_SETTINGS_TABLE, storageValues, FUNCTION_GROUP, NET_ACCESS_SETTINGS, ALLOWED_SETTINGS));
   215     // init the known localized settings names
   201     readFromStorage(extraSettings[i]);
   216     QHash<QString, QString> localizedSettingsNames;
   202     i++;
   217     localizedSettingsNames[QString::fromStdWString(NET_ACCESS_SETTINGS)] = NET_ACCESS; 
   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));
   218     localizedSettingsNames[QString::fromStdWString(LOW_LEVEL_NET_ACCESS_SETTINGS)] = LOW_LEVEL_NET_ACCESS;
   204     readFromStorage(extraSettings[i]);
   219     localizedSettingsNames[QString::fromStdWString(MESSAGING_SETTINGS)] = QString(hbTrId("txt_java_sett_setlabel_messaging"));
   205     i++;
   220     localizedSettingsNames[QString::fromStdWString(RESTRICTED_MESSAGING_SETTINGS)] = QString(hbTrId("txt_java_sett_setlabel_restricted_messaging"));
   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));
   221     localizedSettingsNames[QString::fromStdWString(CALL_CONTROL_SETTINGS)] = QString(hbTrId("txt_java_sett_setlabel_call_control"));
   207     readFromStorage(extraSettings[i]);
   222     localizedSettingsNames[QString::fromStdWString(LOCAL_CONNECTIVITY_SETTINGS)] = QString(hbTrId("txt_java_sett_setlabel_local_conn"));
   208     i++;
   223     localizedSettingsNames[QString::fromStdWString(MULTIMEDIA_RECORDING_SETTINGS)] = QString(hbTrId("txt_java_sett_setlabel_mm_record"));
   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));
   224     localizedSettingsNames[QString::fromStdWString(WRITE_USER_DATA_ACCESS_SETTINGS)] = QString(hbTrId("txt_java_sett_setlabel_write_data"));
   210     readFromStorage(extraSettings[i]);
   225     localizedSettingsNames[QString::fromStdWString(READ_USER_DATA_ACCESS_SETTINGS)] = QString(hbTrId("txt_java_sett_setlabel_read_data"));
   211     i++;
   226     localizedSettingsNames[QString::fromStdWString(LOCATION_SETTINGS)] = QString(hbTrId("txt_java_sett_setlabel_location"));
   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));
   227     localizedSettingsNames[QString::fromStdWString(LANDMARK_SETTINGS)] = QString(hbTrId("txt_java_sett_setlabel_landmarks"));
   213     readFromStorage(extraSettings[i]);
   228     localizedSettingsNames[QString::fromStdWString(AUTHENTICATION_SETTINGS)] = QString(hbTrId("txt_java_sett_setlabel_auth"));
   214     i++;
   229     localizedSettingsNames[QString::fromStdWString(SMART_CARD_COMMUNICATION_SETTINGS)] = QString(hbTrId("txt_java_sett_setlabel_smartcard"));
   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));
   230     localizedSettingsNames[QString::fromStdWString(APPLICATION_AUTO_INVOCATION_SETTINGS)] = QString(hbTrId("txt_java_sett_setlabel_app_auto_invoc"));
   216     readFromStorage(extraSettings[i]);
   231     localizedSettingsNames[QString::fromStdWString(BROADCAST_SETTINGS)] = QString(hbTrId("txt_java_sett_setlabel_broadcast"));
   217     i++;
   232     localizedSettingsNames[QString::fromStdWString(NFC_WRITE_ACCESS_SETTINGS)] = QString(hbTrId("txt_java_sett_setlabel_nfc_write_access"));
   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));
   233     localizedSettingsNames[QString::fromStdWString(URL_START_SETTINGS)] = QString(hbTrId("txt_java_sett_setlabel_url_start"));
   219     readFromStorage(extraSettings[i]);
   234     vector<IndexedSettingsName> allSecuritySettings = readFromStorage(FUNCTION_GROUP, MIDP_FUNC_GRP_SETTINGS_TABLE);
   220     i++;
   235     // sort the security settings according to how they should be displayed
   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));
   236     std::sort(allSecuritySettings.begin(), allSecuritySettings.end(), AscendingSort());
   222     readFromStorage(extraSettings[i]);
   237     QHash<QString, int> settingsIndexes;
   223     i++;
   238     for(int i=0; i<allSecuritySettings.size(); i++)
   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));
   239     {
   225     readFromStorage(extraSettings[i]);
   240         QString rawSettingsName = QString::fromStdWString(allSecuritySettings[i].name);
   226     i++;
   241         QString localizedSettingsName = rawSettingsName;
   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));
   242         if (localizedSettingsNames.contains(rawSettingsName))
   228     readFromStorage(extraSettings[i]);
   243             localizedSettingsName = localizedSettingsNames.value(rawSettingsName);
   229     i++;
   244         extraSettings.append(JavaApplicationSettings(
   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));
   245             localizedSettingsName, settingsValues, CURRENT_SETTING, 
   231     readFromStorage(extraSettings[i]);
   246             MIDP_FUNC_GRP_SETTINGS_TABLE, storageValues, FUNCTION_GROUP, 
   232     i++;
   247             allSecuritySettings[i].name, ALLOWED_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));
   248         readFromStorage(extraSettings[i]);
   234     readFromStorage(extraSettings[i]);
   249         settingsIndexes[rawSettingsName] = i;
   235     i++;
   250     }
   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));
       
   237     readFromStorage(extraSettings[i]);
       
   238     i++;
       
   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));
       
   240     readFromStorage(extraSettings[i]);
       
   241     i++;
       
   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));
       
   243     readFromStorage(extraSettings[i]);
       
   244     i++;
       
   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));
       
   246     readFromStorage(extraSettings[i]);
       
   247     i++;
       
   248 
   251 
   249     // configure the high risk lists
   252     // configure the high risk lists
   250     QList<JavaApplicationSettings*> highRiskList;
   253     QList<JavaApplicationSettings*> highRiskList;
       
   254     QStringList highRiskSettingsNames;
       
   255     highRiskSettingsNames
       
   256         <<QString::fromStdWString(MULTIMEDIA_RECORDING_SETTINGS)
       
   257         <<QString::fromStdWString(READ_USER_DATA_ACCESS_SETTINGS);
       
   258     configureList(highRiskList, highRiskSettingsNames, settingsIndexes);
   251     // net access with multimedia and read user data
   259     // net access with multimedia and read user data
   252     highRiskList << &(extraSettings[6]) << &(extraSettings[8]);
   260     attachList(QString::fromStdWString(NET_ACCESS_SETTINGS),highRiskList, settingsIndexes);
   253     extraSettings[0].setHighRiskList(highRiskList);
       
   254     // low level net access with multimedia and read user data
   261     // low level net access with multimedia and read user data
   255     extraSettings[1].setHighRiskList(highRiskList);
   262     attachList(QString::fromStdWString(LOW_LEVEL_NET_ACCESS_SETTINGS),highRiskList, settingsIndexes);
   256     // messaging with multimedia and read user data
   263     // messaging with multimedia and read user data
   257     extraSettings[2].setHighRiskList(highRiskList);
   264     attachList(QString::fromStdWString(MESSAGING_SETTINGS),highRiskList, settingsIndexes);
   258     // restricted messaging with multimedia and read user data
   265     // restricted messaging with multimedia and read user data
   259     extraSettings[3].setHighRiskList(highRiskList);
   266     attachList(QString::fromStdWString(RESTRICTED_MESSAGING_SETTINGS),highRiskList, settingsIndexes);
   260     // call control with multimedia and read user data
   267     // call control with multimedia and read user data
   261     extraSettings[4].setHighRiskList(highRiskList);
   268     attachList(QString::fromStdWString(CALL_CONTROL_SETTINGS),highRiskList, settingsIndexes);
   262     // local connectivity with multimedia and read user data
   269     // local connectivity with multimedia and read user data
   263     extraSettings[5].setHighRiskList(highRiskList);
   270     attachList(QString::fromStdWString(LOCAL_CONNECTIVITY_SETTINGS),highRiskList, settingsIndexes);
   264     // multimedia with net access, low level net access, messaging,
   271     // multimedia with net access, low level net access, messaging,
   265     // restricted messaging, call control and local connectivity
   272     // restricted messaging, call control and local connectivity
   266     highRiskList.clear();
   273     highRiskList.clear();
   267     highRiskList << &(extraSettings[0]) << &(extraSettings[1])
   274     highRiskSettingsNames.clear();
   268     << &(extraSettings[2]) << &(extraSettings[3])
   275     highRiskSettingsNames
   269     << &(extraSettings[4]) << &(extraSettings[5]);
   276         <<QString::fromStdWString(NET_ACCESS_SETTINGS)
   270     extraSettings[6].setHighRiskList(highRiskList);
   277         <<QString::fromStdWString(LOW_LEVEL_NET_ACCESS_SETTINGS)
       
   278         <<QString::fromStdWString(MESSAGING_SETTINGS)
       
   279         <<QString::fromStdWString(RESTRICTED_MESSAGING_SETTINGS)
       
   280         <<QString::fromStdWString(CALL_CONTROL_SETTINGS)
       
   281         <<QString::fromStdWString(LOCAL_CONNECTIVITY_SETTINGS)
       
   282         <<QString::fromStdWString(MULTIMEDIA_RECORDING_SETTINGS);
       
   283     configureList(highRiskList, highRiskSettingsNames, settingsIndexes);
       
   284     attachList(QString::fromStdWString(MULTIMEDIA_RECORDING_SETTINGS),highRiskList, settingsIndexes);
   271     // read user data with net access, low level net access, messaging,
   285     // read user data with net access, low level net access, messaging,
   272     // restricted messaging, call control and local connectivity
   286     // restricted messaging, call control and local connectivity
   273     extraSettings[8].setHighRiskList(highRiskList);
   287     attachList(QString::fromStdWString(READ_USER_DATA_ACCESS_SETTINGS),highRiskList, settingsIndexes);
   274 
   288 
   275     // configure the mutually exclusive list
   289     // configure the mutually exclusive list
   276     QList<JavaApplicationSettings*> mutuallyExclusiveList;
   290     QList<JavaApplicationSettings*> mutuallyExclusiveList;
       
   291     QStringList mutuallyExclusiveSettingsNames;
       
   292     mutuallyExclusiveSettingsNames
       
   293         <<QString::fromStdWString(APPLICATION_AUTO_INVOCATION_SETTINGS);
       
   294     configureList(mutuallyExclusiveList, mutuallyExclusiveSettingsNames, settingsIndexes);
   277     //net access with application auto invocation
   295     //net access with application auto invocation
   278     mutuallyExclusiveList << &(extraSettings[13]);
   296     attachList(QString::fromStdWString(NET_ACCESS_SETTINGS),mutuallyExclusiveList, settingsIndexes, false /* is high risk list */);
   279     extraSettings[0].setMutuallyExclusiveList(mutuallyExclusiveList);
       
   280     //low level net access with application auto invocation
   297     //low level net access with application auto invocation
   281     extraSettings[1].setMutuallyExclusiveList(mutuallyExclusiveList);
   298     attachList(QString::fromStdWString(LOW_LEVEL_NET_ACCESS_SETTINGS),mutuallyExclusiveList, settingsIndexes, false /* is high risk list */);
   282     //application auto invocation with net access and low level net access
   299     //application auto invocation with net access and low level net access
   283     mutuallyExclusiveList.clear();
   300     mutuallyExclusiveList.clear();
   284     mutuallyExclusiveList << &(extraSettings[0]) << &(extraSettings[1]);
   301     mutuallyExclusiveSettingsNames.clear();
   285     extraSettings[13].setMutuallyExclusiveList(mutuallyExclusiveList);
   302     mutuallyExclusiveSettingsNames
       
   303         <<QString::fromStdWString(NET_ACCESS_SETTINGS)
       
   304         <<QString::fromStdWString(LOW_LEVEL_NET_ACCESS_SETTINGS);
       
   305     configureList(mutuallyExclusiveList, mutuallyExclusiveSettingsNames, settingsIndexes);
       
   306     attachList(QString::fromStdWString(APPLICATION_AUTO_INVOCATION_SETTINGS),mutuallyExclusiveList, settingsIndexes, false /* is high risk list */);
   286 }
   307 }
   287 
   308 
   288 void JavaApplicationSettingsViewPrivate::initSettings(QVector<JavaApplicationSettings>& settings, HbDataFormModelItem * parent)
   309 void JavaApplicationSettingsViewPrivate::initSettings(QVector<JavaApplicationSettings>& settings, HbDataFormModelItem * parent)
   289 {
   310 {
   290     for (int i=0; i<settings.size(); i++)
   311     for (int i=0; i<settings.size(); i++)
   291     {
   312     {
   292         HbDataFormModelItem * appSettings = NULL;
   313         HbDataFormModelItem * appSettings = NULL;
   293         int storageValue = 0;
   314         int currentValue = 0;  
   294         int currentValue = 0;        
       
   295         switch(settings[i].getValues().size())
   315         switch(settings[i].getValues().size())
   296         {
   316         {
   297             case 1:
   317             case 1:
   298                 appSettings  = model->appendDataFormItem(
   318                 appSettings  = model->appendDataFormItem(
   299                         HbDataFormModelItem::ToggleValueItem,
   319                         HbDataFormModelItem::ToggleValueItem,
   303                 break;
   323                 break;
   304             case 2:
   324             case 2:
   305                 appSettings  = model->appendDataFormItem(
   325                 appSettings  = model->appendDataFormItem(
   306                         HbDataFormModelItem::ToggleValueItem,
   326                         HbDataFormModelItem::ToggleValueItem,
   307                         settings[i].getName(), parent);
   327                         settings[i].getName(), parent);
   308                 storageValue = readFromStorage(settings[i]);
   328                 currentValue = settings[i].getCurrentValue();
   309                 if (storageValue >= 0)
   329                 if (currentValue < 0)
   310                 {
   330                 {
   311                     currentValue = storageValue;
   331                     currentValue = 0;
   312                 }
   332                 }
   313                 // make it a toogle button (-> get rid of the "pressed" ui effect)
   333                 // make it a toogle button (-> get rid of the "pressed" ui effect)
   314                 appSettings->setContentWidgetData(QString("text"), settings[i].getValues()[settings[i].getCurrentValue()]);
   334                 appSettings->setContentWidgetData(QString("text"), settings[i].getValues()[currentValue]);
   315                 appSettings->setContentWidgetData(QString("additionalText"),settings[i].getValues()[1 - currentValue]);
   335                 appSettings->setContentWidgetData(QString("additionalText"),settings[i].getValues()[1 - currentValue]);
   316                 break;
   336                 break;
   317             default:
   337             default:
   318                 appSettings  = model->appendDataFormItem(
   338                 appSettings  = model->appendDataFormItem(
   319                         HbDataFormModelItem::ComboBoxItem,
   339                         HbDataFormModelItem::ComboBoxItem,
   514                 if (extraSettingsId)
   534                 if (extraSettingsId)
   515                 {
   535                 {
   516                     iPublicView->disconnect(extraSettingsId, 0, 0, 0);
   536                     iPublicView->disconnect(extraSettingsId, 0, 0, 0);
   517                     model->removeItem(model->indexFromItem(extraSettings[i].getId()));
   537                     model->removeItem(model->indexFromItem(extraSettings[i].getId()));
   518                     extraSettings[i].setId(0);
   538                     extraSettings[i].setId(0);
       
   539                     extraSettings[i].disconnectFromUi();
   519                 }
   540                 }
   520             }
   541             }
   521         }
   542         }
   522     }
   543     }
   523 }
   544 }
   530     listItems |= CmApplSettingsUi::ShowConnectionMethods;
   551     listItems |= CmApplSettingsUi::ShowConnectionMethods;
   531         
   552         
   532     // empty filter -> all bearer types included
   553     // empty filter -> all bearer types included
   533     QSet<CmApplSettingsUi::BearerTypeFilter> filter;
   554     QSet<CmApplSettingsUi::BearerTypeFilter> filter;
   534     // reset the result
   555     // reset the result
   535     netConnSelection.result = CmApplSettingsUi::SelectionTypeDestination;       
   556     netConnSelection.result = netConn.type;       
   536     netConnSelection.id = netConn.id;
   557     netConnSelection.id = netConn.id;
   537     // init settings ui with destinations, filter and initial selection
   558     // init settings ui with destinations, filter and initial selection
   538     netConnSettingsUi->setOptions(listItems, filter);
   559     netConnSettingsUi->setOptions(listItems, filter);
   539     netConnSettingsUi->setSelection(netConnSelection);
   560     netConnSettingsUi->setSelection(netConnSelection);
   540     // Connect the setting ui's signal with own slot where the netConnSelection is stored
   561     // Connect the setting ui's signal with own slot where the netConnSelection is stored
   547 {
   568 {
   548     HbDataFormModelItem *item = static_cast<HbDataFormModel*>(
   569     HbDataFormModelItem *item = static_cast<HbDataFormModel*>(
   549                                     mainForm->model())->itemFromIndex(dataItemIndex);
   570                                     mainForm->model())->itemFromIndex(dataItemIndex);
   550     int itemType = item->data(HbDataFormModelItem::ItemTypeRole).toInt();
   571     int itemType = item->data(HbDataFormModelItem::ItemTypeRole).toInt();
   551     HbComboBox * comboBox = NULL;
   572     HbComboBox * comboBox = NULL;
   552     HbPushButton * pushButton = NULL;    
   573     HbPushButton * pushButton = NULL;
       
   574     HbWidget * widget = (qobject_cast<HbDataFormViewItem *> 
       
   575         (mainForm->itemByIndex(dataItemIndex)))->dataItemContentWidget();
       
   576     JavaApplicationSettings* settings = findSettings(widget);
       
   577     if (settings == NULL || settings->isConnectedToUi())
       
   578     {
       
   579         return;
       
   580     }
       
   581     settings->connectToUi();
   553     switch(HbDataFormModelItem::DataItemType(itemType))
   582     switch(HbDataFormModelItem::DataItemType(itemType))
   554     {
   583     {
   555         case HbDataFormModelItem::ComboBoxItem:
   584         case HbDataFormModelItem::ComboBoxItem:
   556             comboBox = static_cast<HbComboBox*>(
   585             comboBox = static_cast<HbComboBox*>(widget);
   557                 (qobject_cast<HbDataFormViewItem *> 
       
   558                 (mainForm->itemByIndex(dataItemIndex)))->dataItemContentWidget());
       
   559             iPublicView->connect(comboBox,
   586             iPublicView->connect(comboBox,
   560                                  SIGNAL(currentIndexChanged(const QString &)),
   587                                  SIGNAL(currentIndexChanged(const QString &)),
   561                                  iPublicView, SLOT(_q_settingsChanged(const QString &)),
   588                                  iPublicView, SLOT(_q_settingsChanged(const QString &)),
   562                                  Qt::UniqueConnection);
   589                                  Qt::UniqueConnection);
   563             break;
   590             break;
   564         case HbDataFormModelItem::ToggleValueItem:
   591         case HbDataFormModelItem::ToggleValueItem:
   565             pushButton = static_cast< HbPushButton*>(
   592             pushButton = static_cast< HbPushButton*>(widget);
   566                 (qobject_cast<HbDataFormViewItem *> 
       
   567                 (mainForm->itemByIndex(dataItemIndex)))->dataItemContentWidget());
       
   568             iPublicView->connect(pushButton,
   593             iPublicView->connect(pushButton,
   569                                  SIGNAL(clicked(bool)),
   594                                  SIGNAL(clicked(bool)),
   570                                  iPublicView, SLOT(_q_settingsChanged(bool)),
   595                                  iPublicView, SLOT(_q_settingsChanged(bool)),
   571                                  Qt::UniqueConnection);
   596                                  Qt::UniqueConnection);
   572             break;
   597             break;
   577 {
   602 {
   578     if (netConnSelectionStatus == CmApplSettingsUi::ApplSettingsErrorNone) 
   603     if (netConnSelectionStatus == CmApplSettingsUi::ApplSettingsErrorNone) 
   579     {    
   604     {    
   580         netConnSelection = netConnSettingsUi->selection();
   605         netConnSelection = netConnSettingsUi->selection();
   581         // store the selection
   606         // store the selection
   582         if (netConnSelection.id != netConn.id)
   607         if (netConnSelection.id != netConn.id 
   583         {
   608             && netConnSelection.id != defaultConnId)
   584             ConnectionManager::setDestinationNetworkIdL(iSuiteUid, netConnSelection.id);
   609         {
   585             netConn.id = netConnSelection.id;
   610             TRAPD(err, 
   586             readNetworkConnectionName();
   611                 switch(netConnSelection.result)
   587             generalSettings[netSettIndex].getId()->setContentWidgetData(QString("text"), netConn.name);
   612                 {
   588             generalSettings[netSettIndex].getId()->setContentWidgetData(QString("additionalText"), netConn.name);
   613                     case CmApplSettingsUi::SelectionTypeDestination:
   589         }
   614                         ConnectionManager::setDestinationNetworkIdL(iSuiteUid, netConnSelection.id);
   590     }
   615                         break;
       
   616                     case CmApplSettingsUi::SelectionTypeConnectionMethod:
       
   617                         ConnectionManager::setApnIdL(iSuiteUid, netConnSelection.id);
       
   618                         break;
       
   619                 }                
       
   620             );
       
   621             if (err == KErrNone)
       
   622             {
       
   623                 netConn.id = netConnSelection.id;
       
   624                 netConn.type = netConnSelection.result;
       
   625                 readNetworkConnectionName();
       
   626                 generalSettings[netSettIndex].getId()->setContentWidgetData(QString("text"), netConn.name);
       
   627                 generalSettings[netSettIndex].getId()->setContentWidgetData(QString("additionalText"), netConn.name);
       
   628             }
       
   629         }
       
   630     }
       
   631 }
       
   632 
       
   633 void JavaApplicationSettingsViewPrivate::securityWarningDismissed(HbAction* action)
       
   634 {
       
   635     HbMessageBox *dlg = static_cast<HbMessageBox*>(sender());
       
   636     secWarningAccepted = (action == dlg->actions().at(0));
       
   637     asyncToSyncCallEventLoop->exit();
       
   638 }
       
   639 
       
   640 void JavaApplicationSettingsViewPrivate::initNetworkConnection()
       
   641 {
       
   642     TRAP_IGNORE(
       
   643         netConn.id = ConnectionManager::getDestinationNetworkIdL(iSuiteUid);
       
   644         if (netConn.id == (uint)KJavaNetworkAccessNotSpecified)
       
   645         {
       
   646             netConn.id = ConnectionManager::getApnIdL(iSuiteUid);
       
   647         }
       
   648     );
       
   649     QNetworkConfigurationManager manager;
       
   650     QNetworkConfiguration defaultCfg = manager.defaultConfiguration();
       
   651     defaultConnId = defaultCfg.identifier().toInt();
       
   652     QNetworkConfiguration cfg = manager.configurationFromIdentifier(
       
   653         QString::number(netConn.id));
       
   654     if (!cfg.isValid())
       
   655     {
       
   656         cfg = defaultCfg;
       
   657     }
       
   658     netConn.name = QString(hbTrId(cfg.name().toUtf8()));
   591 }
   659 }
   592 
   660 
   593 void JavaApplicationSettingsViewPrivate::readNetworkConnectionName()
   661 void JavaApplicationSettingsViewPrivate::readNetworkConnectionName()
   594 {
   662 {
   595     QNetworkConfigurationManager manager;
   663     QNetworkConfigurationManager manager;
   596     QNetworkConfiguration cfg;    
   664     QNetworkConfiguration cfg = manager.configurationFromIdentifier(
   597     if (netConn.id == 0)
   665         QString::number(netConn.id));
   598     {
   666     if (!cfg.isValid())
   599         // figure out the default configuration
   667     {
   600         cfg = manager.defaultConfiguration();
   668         cfg = manager.defaultConfiguration();
   601     }
   669     }
   602     else
   670     netConn.name = QString(hbTrId(cfg.name().toUtf8()));
   603     {
       
   604         cfg = manager.configurationFromIdentifier(QString::number(netConn.id));
       
   605     }
       
   606     if (cfg.isValid())
       
   607     {
       
   608         netConn.name = hbTrId(cfg.name().toUtf8());
       
   609     }
       
   610 }
   671 }
   611 
   672 
   612 JavaApplicationSettings* JavaApplicationSettingsViewPrivate::findSettings(HbWidget* id)
   673 JavaApplicationSettings* JavaApplicationSettingsViewPrivate::findSettings(HbWidget* id)
   613 {
   674 {
   614     JavaApplicationSettings* settings = findSettings(id, generalSettings);
   675     JavaApplicationSettings* settings = findSettings(id, generalSettings);
   646     return NULL;
   707     return NULL;
   647 }
   708 }
   648 
   709 
   649 bool JavaApplicationSettingsViewPrivate::securityWarningAccepted(const QString& text, const QString& acceptActionLabel, const QString& rejectActionLabel, const QString& headingText)
   710 bool JavaApplicationSettingsViewPrivate::securityWarningAccepted(const QString& text, const QString& acceptActionLabel, const QString& rejectActionLabel, const QString& headingText)
   650 {
   711 {
   651     return true;
   712     HbMessageBox securityWarning(HbMessageBox::MessageTypeQuestion);
   652 /*    HbMessageBox securityWarning(HbMessageBox::MessageTypeQuestion);
       
   653     securityWarning.setDismissPolicy(HbDialog::NoDismiss);
   713     securityWarning.setDismissPolicy(HbDialog::NoDismiss);
   654     securityWarning.setTimeout(HbDialog::NoTimeout);
   714     securityWarning.setTimeout(HbDialog::NoTimeout);
   655     securityWarning.setIconVisible(false);
   715     securityWarning.setIconVisible(false);
   656     securityWarning.setText(text);
   716     securityWarning.setText(text);
   657     securityWarning.addAction(new HbAction(
   717     securityWarning.addAction(new HbAction(
   658             acceptActionLabel, &securityWarning));
   718             acceptActionLabel, &securityWarning));
   659     securityWarning.addAction(new HbAction(
   719     securityWarning.addAction(new HbAction(
   660            rejectActionLabel, &securityWarning));
   720             rejectActionLabel, &securityWarning));
   661    securityWarning.setHeadingWidget(new HbLabel(headingText));
   721     securityWarning.setHeadingWidget(new HbLabel(headingText));
   662    HbAction *selected = securityWarning.exec();
   722     securityWarning.open(this, SLOT(securityWarningDismissed(HbAction*)));
   663    return (selected == securityWarning.primaryAction());*/
   723     asyncToSyncCallEventLoop->exec();
   664 }
   724     return secWarningAccepted;
   665 
   725 }
   666 int JavaApplicationSettingsViewPrivate::readFromStorage(JavaApplicationSettings& settings)
   726 
   667 {
   727 void JavaApplicationSettingsViewPrivate::configureList(QList<JavaApplicationSettings*>& list, const QStringList& settingsNames,  const QHash<QString, int>& settingsIndexes)
   668     int currentValue = -1;
   728 {
       
   729     for(int i=0; i<settingsNames.size(); i++)
       
   730     {
       
   731         if (settingsIndexes.contains(settingsNames[i]))
       
   732         {
       
   733             list << &(extraSettings[settingsIndexes.value(settingsNames[i])]);
       
   734         }
       
   735     }
       
   736 }
       
   737 
       
   738 void JavaApplicationSettingsViewPrivate::attachList(const QString& settingsName, const QList<JavaApplicationSettings*>& list, const QHash<QString, int>& settingsIndexes, bool isHighRiskList)
       
   739 {
       
   740     if (settingsIndexes.contains(settingsName))
       
   741     {
       
   742         if (isHighRiskList)
       
   743         {
       
   744             extraSettings[settingsIndexes.value(settingsName)].setHighRiskList(list);
       
   745         }
       
   746         else
       
   747         {
       
   748             extraSettings[settingsIndexes.value(settingsName)].setMutuallyExclusiveList(list);
       
   749         }
       
   750     }
       
   751 }
       
   752 
       
   753 void JavaApplicationSettingsViewPrivate::installTranslator(const QString& translationFileName)
       
   754 {
       
   755     QTranslator* translator = new QTranslator;
       
   756 
       
   757     // load the correct translation of the localized strings for the java settings
       
   758     // Current solution reads it from Z only (this does not work with IAD)
       
   759     // -> check if translator can handle path without drive letter (e.g. the resource
       
   760     // is loaded from the same drive where the DLL is loaded)
       
   761     if (translator->load("z:/resource/qt/translations/" 
       
   762         + translationFileName + "_" + QLocale::system().name()))
       
   763     {
       
   764         translators.append(translator); 
       
   765         qApp->installTranslator(translator);
       
   766     } 
       
   767     else 
       
   768     {
       
   769         delete translator; 
       
   770         translator = NULL;
       
   771     }
       
   772 }
       
   773 
       
   774 void JavaApplicationSettingsViewPrivate::readFromStorage(JavaApplicationSettings& settings)
       
   775 {
   669     if (settings.getColumnName().size() > 0 
   776     if (settings.getColumnName().size() > 0 
   670             && settings.getTableName().size() > 0)
   777             && settings.getTableName().size() > 0)
   671     {
   778     {
   672         wstring value = L"";
   779         wstring value = L"";
   673 
   780 
   716             vector<wstring> storageValues = settings.getStorageValues();
   823             vector<wstring> storageValues = settings.getStorageValues();
   717             for (int i=0; i<storageValues.size(); i++)
   824             for (int i=0; i<storageValues.size(); i++)
   718             {
   825             {
   719                 if (storageValues[i] == value)
   826                 if (storageValues[i] == value)
   720                 {
   827                 {
   721                     currentValue = i;
   828                     settings.setCurrentValue(i);
   722                     break;
   829                     break;
   723                 }
   830                 }
   724             }
   831             }
   725         }
   832         }
   726     }
   833     }
   727 
       
   728     settings.setCurrentValue(currentValue);
       
   729     return currentValue;
       
   730 }
   834 }
   731 
   835 
   732 void JavaApplicationSettingsViewPrivate::filterSecuritySettings(JavaApplicationSettings& settings)
   836 void JavaApplicationSettingsViewPrivate::filterSecuritySettings(JavaApplicationSettings& settings)
   733 {
   837 {
   734     std::wstring allowedModes = settings.getStorageValuesFilter();
   838     std::wstring allowedModes = settings.getStorageValuesFilter();
   859     findEntry(queryResult, aColumnName, value);
   963     findEntry(queryResult, aColumnName, value);
   860 
   964 
   861     return value;
   965     return value;
   862 }
   966 }
   863 
   967 
       
   968 vector<IndexedSettingsName> JavaApplicationSettingsViewPrivate::readFromStorage(const std::wstring& aColumnName, const std::string& aTableName)
       
   969 {
       
   970     vector<IndexedSettingsName> values;
       
   971     
       
   972     // hash for associating settings names with display indexes: 
       
   973     // a settings with lower index is shown before a settings 
       
   974     // with a higher index
       
   975     QHash<QString, int> settingsNamesIndexes;
       
   976     settingsNamesIndexes[QString::fromStdWString(NET_ACCESS_SETTINGS)] = 0; 
       
   977     settingsNamesIndexes[QString::fromStdWString(LOW_LEVEL_NET_ACCESS_SETTINGS)] = 1;
       
   978     settingsNamesIndexes[QString::fromStdWString(MESSAGING_SETTINGS)] = 2;
       
   979     settingsNamesIndexes[QString::fromStdWString(RESTRICTED_MESSAGING_SETTINGS)] = 3;
       
   980     settingsNamesIndexes[QString::fromStdWString(CALL_CONTROL_SETTINGS)] = 4;
       
   981     settingsNamesIndexes[QString::fromStdWString(LOCAL_CONNECTIVITY_SETTINGS)] = 5;
       
   982     settingsNamesIndexes[QString::fromStdWString(MULTIMEDIA_RECORDING_SETTINGS)] = 6;
       
   983     settingsNamesIndexes[QString::fromStdWString(WRITE_USER_DATA_ACCESS_SETTINGS)] = 7;
       
   984     settingsNamesIndexes[QString::fromStdWString(READ_USER_DATA_ACCESS_SETTINGS)] = 8;
       
   985     settingsNamesIndexes[QString::fromStdWString(LOCATION_SETTINGS)] = 9;
       
   986     settingsNamesIndexes[QString::fromStdWString(LANDMARK_SETTINGS)] = 10;
       
   987     settingsNamesIndexes[QString::fromStdWString(AUTHENTICATION_SETTINGS)] = 11;
       
   988     settingsNamesIndexes[QString::fromStdWString(SMART_CARD_COMMUNICATION_SETTINGS)] = 12;
       
   989     settingsNamesIndexes[QString::fromStdWString(APPLICATION_AUTO_INVOCATION_SETTINGS)] = 13;
       
   990     settingsNamesIndexes[QString::fromStdWString(BROADCAST_SETTINGS)] = 14;
       
   991     settingsNamesIndexes[QString::fromStdWString(NFC_WRITE_ACCESS_SETTINGS)] = 15;
       
   992     settingsNamesIndexes[QString::fromStdWString(URL_START_SETTINGS)] = 16;
       
   993     int last_index = 16;
       
   994 
       
   995     JavaStorageApplicationEntry_t query;
       
   996     JavaStorageApplicationList_t queryResult;
       
   997     JavaStorageEntry attr;
       
   998     attr.setEntry(ID, iSuiteUid);
       
   999     query.insert(attr);
       
  1000     attr.setEntry(aColumnName, L"");
       
  1001     query.insert(attr);
       
  1002 
       
  1003     try
       
  1004     {
       
  1005         iStorage->search(aTableName, query, queryResult);
       
  1006         JavaStorageApplicationList_t::const_iterator iterator;
       
  1007         for (iterator = queryResult.begin(); iterator != queryResult.end(); iterator++)
       
  1008         {
       
  1009             std::wstring name = L"";
       
  1010             JavaStorageApplicationEntry_t entry = (*iterator);
       
  1011             JavaStorageEntry findPattern;
       
  1012             findPattern.setEntry(aColumnName, L"");
       
  1013             JavaStorageApplicationEntry_t::const_iterator findIterator =
       
  1014                 entry.find(findPattern);
       
  1015             if (findIterator != entry.end())
       
  1016             {
       
  1017                 name = findIterator->entryValue();
       
  1018             }
       
  1019             
       
  1020             if (name.size() > 0)
       
  1021             {
       
  1022                 IndexedSettingsName value;
       
  1023                 value.name = name;
       
  1024                 value.index = last_index + 1;
       
  1025                 if (settingsNamesIndexes.contains(QString::fromStdWString(name)))
       
  1026                 {
       
  1027                     value.index = settingsNamesIndexes.value(QString::fromStdWString(name));
       
  1028                 }
       
  1029                 values.push_back(value);
       
  1030             }
       
  1031         }
       
  1032     }
       
  1033     catch (JavaStorageException& aJse)
       
  1034     {
       
  1035         // Don't leave. Set defaults.
       
  1036     }
       
  1037 
       
  1038     return values;
       
  1039 }
       
  1040 
   864 void JavaApplicationSettingsViewPrivate::readSuiteUid(const QString& aAppUid)
  1041 void JavaApplicationSettingsViewPrivate::readSuiteUid(const QString& aAppUid)
   865 {
  1042 {
   866     iSuiteUid = L"";
  1043     iSuiteUid = L"";
   867     bool ok;
  1044     bool ok;
   868     int tmp = aAppUid.toInt( &ok, 10 );
  1045     int tmp = aAppUid.toInt( &ok, 10 );