--- a/ipsservices/nmipssettings/src/nmipssettingsplugin.cpp Fri Sep 03 17:52:02 2010 +0300
+++ b/ipsservices/nmipssettings/src/nmipssettingsplugin.cpp Wed Sep 15 12:09:55 2010 +0300
@@ -15,7 +15,6 @@
*
*/
-#include <qplugin.h>
#include <QCoreApplication>
#include <QTranslator>
#include <QScopedPointer>
@@ -41,10 +40,10 @@
#include "nmipssettingscustomitem.h"
#include "nmipssettingslabeledcombobox.h"
-const QString NmIpsSettingsComboItems("comboItems");
-const QString NmIpsSettingsLabelTexts("labelTexts");
-const QString NmIpsSettingsItems("items");
-const int NmIpsSettingsReceptionUserDefinedProfileEnabled(1);
+static const QString NmIpsSettingsComboItems("comboItems");
+static const QString NmIpsSettingsLabelTexts("labelTexts");
+static const QString NmIpsSettingsItems("items");
+static const int NmIpsSettingsReceptionUserDefinedProfileEnabled(1);
/*!
\class NmIpsSettingsPlugin
@@ -59,22 +58,22 @@
Constructor of NmIpsSettingsPlugin.
*/
NmIpsSettingsPlugin::NmIpsSettingsPlugin()
-: mSettingsHelper(0),
- mSettingsManager(0),
+: mSettingsHelper(NULL),
+ mSettingsManager(NULL),
mHiddenItem(false),
- mCurrentInboxIndex(-1)
+ mSelectedPopupRadioButtonIndex(-1)
{
QString lang = QLocale::system().name();
QString path = "Z:/resource/qt/translations/";
QString appName = "mailips_";
QString commonName = "common_";
-
+
// Load common strings
QScopedPointer<QTranslator> commonTranslator(new QTranslator(this));
commonTranslator->load(commonName + lang, path);
QCoreApplication::installTranslator(commonTranslator.data());
- (void)commonTranslator.take();
-
+ (void)commonTranslator.take();
+
// Load IPS settings specific strings
QScopedPointer<QTranslator> translator(new QTranslator(this));
translator->load(appName + lang, path);
@@ -106,7 +105,7 @@
// SettingsManager and SettingsHelper needs to be deleted.
delete mSettingsManager;
delete mSettingsHelper;
- mSettingsHelper = 0;
+ mSettingsHelper = NULL;
mSettingsManager = NmIpsSettingsManagerFactory::createSettingManager(mailboxId);
bool result(false);
@@ -116,11 +115,11 @@
if (mSettingsManager) {
// Turns AlwaysOnline OFF
setAlwaysOnlineState(EServerAPIEmailTurnOff, mailboxId);
-
+
// Store model and form pointers.
mModel = &model;
mForm = &form;
-
+
// Create settings helper.
mSettingsHelper = new NmIpsSettingsHelper(*mSettingsManager, form, model);
@@ -136,7 +135,7 @@
connect(mSettingsHelper, SIGNAL(createUserDefinedMode()),
this, SLOT(createUserDefinedMode()));
-
+
// Get the value if some ui items need to be hidden.
QVariant data;
mSettingsManager->readSetting(IpsServices::UserNameHidden, data);
@@ -155,12 +154,12 @@
{
QVariant profileIndex;
const NmId mailboxId = mSettingsManager->mailboxId();
-
+
mSettingsManager->readSetting(IpsServices::ReceptionActiveProfile, profileIndex);
if ((mSettingsHelper->isOffline()) && (profileIndex.toInt() != IpsServices::EmailSyncProfileManualFetch)) {
emit goOnline(mailboxId);
}
-
+
// Turns AlwaysOnline ON
setAlwaysOnlineState(EServerAPIEmailTurnOn, mailboxId);
}
@@ -300,7 +299,7 @@
QStringList infoList;
infoList << hbTrId("txt_mailips_list_the_mailbox_is_uptodate_during") // 0
- << hbTrId("txt_mailips_list_the_mailbox_is_refreshed_every_15") // 1
+ << hbTrId("txt_mailips_list_the_mailbox_is_refreshed_every_hour") // 1
<< hbTrId("txt_mailips_list_the_mailbox_is_refreshed_only_by"); // 2
// If 'user defined' mode is defined then add 'user defined' explanation to label list.
@@ -330,19 +329,20 @@
<< HbStringUtil::convertDigits("100")
<< HbStringUtil::convertDigits("500")
<< hbTrId("txt_mailips_setlabel_val_all");
-
+
showMailInInboxItem->setContentWidgetData(NmIpsSettingsItems, showMailItems);
+ showMailInInboxItem->setContentWidgetData("displayMode","popup");
showMailInInboxItem->setEnabled(true);
item.appendChild(showMailInInboxItem);
// Active sync profile connection
mForm->addConnection(infoItem, SIGNAL(currentIndexChanged(int)),
- mSettingsHelper, SLOT(receivingScheduleChange(int)));
+ mSettingsHelper, SLOT(receivingScheduleChange(int)));
mForm->addConnection(showMailInInboxItem, SIGNAL(finished(HbAction *)),
- this, SLOT(showMailInInboxModified(HbAction *)));
+ this, SLOT(showMailInInboxModified(HbAction *)));
mForm->addConnection(showMailInInboxItem, SIGNAL(itemSelected(int)),
- this, SLOT(inboxSelectionModified(int)));
-
+ this, SLOT(popupRadioButtonIndexModified(int)));
+
// Must be called manually here, because the signal->slot connection set above using
// HbDataForm::addConnection() is actually established AFTER the properties have first been
// set to the widget, causing the first currentIndexChanged signal not to reach
@@ -387,8 +387,8 @@
usernameItem->setEnabled(false);
}
item.appendChild(usernameItem);
-
-
+
+
// 3. Password
QVariant password;
mSettingsManager->readSetting(IpsServices::IncomingPassword, password);
@@ -419,7 +419,7 @@
Appends the server info items to the group item.
\param item Reference to the parent group item.
*/
-void NmIpsSettingsPlugin::initServerInfoItems(HbDataFormModelItem &item) const
+void NmIpsSettingsPlugin::initServerInfoItems(HbDataFormModelItem &item)
{
// 1. Incoming mail server address
QVariant incomingMailServer;
@@ -437,28 +437,37 @@
incomingMailServerItem->setEnabled(false);
}
item.appendChild(incomingMailServerItem);
-
+
// 2. Incoming Secure connection
CpSettingFormItemData *incomingSecureConnectionItem =
new CpSettingFormItemData(HbDataFormModelItem::RadioButtonListItem, hbTrId(
"txt_mailips_setlabel_incoming_security"));
+
mSettingsHelper->insertContentItem(IpsServices::IncomingSecureSockets, incomingSecureConnectionItem);
+
QStringList showSCItems;
showSCItems << hbTrId("txt_mailips_setlabel_security_val_on_starttls")
<< hbTrId("txt_mailips_setlabel_security_val_on_ssltls")
<< hbTrId("txt_mailips_setlabel_security_val_off");
+
incomingSecureConnectionItem->setContentWidgetData(QString("items"), showSCItems);
- int incomingSecureConnectionItemIndex =
+ incomingSecureConnectionItem->setContentWidgetData("displayMode","popup");
+
+ int incomingSecureConnectionItemIndex =
mSettingsHelper->getCorrectIncomingSecureRadioButtonIndex();
- incomingSecureConnectionItem->setContentWidgetData(QString("selected"),
+ incomingSecureConnectionItem->setContentWidgetData(QString("selected"),
incomingSecureConnectionItemIndex);
- mForm->addConnection(incomingSecureConnectionItem, SIGNAL(itemSelected(int)),
- mSettingsHelper, SLOT(incomingSecureConnectionItemChange(int)));
+
+ mForm->addConnection(incomingSecureConnectionItem, SIGNAL(finished(HbAction *)),
+ this, SLOT(incomingSecureConnectionModified(HbAction *)));
+ mForm->addConnection(incomingSecureConnectionItem, SIGNAL(itemSelected(int)),
+ this, SLOT(popupRadioButtonIndexModified(int)));
+
if (mHiddenItem) {
incomingSecureConnectionItem->setEnabled(false);
}
item.appendChild(incomingSecureConnectionItem);
-
+
// 3. Incoming mail server port
CpSettingFormItemData *incomingPortItem =
new CpSettingFormItemData(HbDataFormModelItem::RadioButtonListItem, hbTrId(
@@ -467,33 +476,44 @@
QStringList incomingPortItems;
incomingPortItems << hbTrId("txt_mailips_setlabel_incoming_port_default")
<< hbTrId("txt_mailips_setlabel_incoming_port_user_defined");
+
incomingPortItem->setContentWidgetData(QString("items"), incomingPortItems);
- int incomingPortItemIndex = mSettingsHelper->getCorrectIncomingPortRadioButtonIndex();
+ incomingPortItem->setContentWidgetData("displayMode","popup");
+
+ int incomingPortItemIndex = mSettingsHelper->getCorrectIncomingPortRadioButtonIndex();
incomingPortItem->setContentWidgetData(QString("selected"), incomingPortItemIndex);
+
+ mForm->addConnection(incomingPortItem, SIGNAL(finished(HbAction *)),
+ this, SLOT(incomingPortModified(HbAction *)));
mForm->addConnection(incomingPortItem, SIGNAL(itemSelected(int)),
- mSettingsHelper, SLOT(incomingPortChange(int)));
+ this, SLOT(popupRadioButtonIndexModified(int)));
+
if (mHiddenItem) {
incomingPortItem->setEnabled(false);
}
item.appendChild(incomingPortItem);
-
+
// 4. Outgoing mail server address
QVariant outgoingMailServer;
mSettingsManager->readSetting(IpsServices::OutgoingMailServer, outgoingMailServer);
+
CpSettingFormItemData *outgoingMailServerItem = new CpSettingFormItemData(
HbDataFormModelItem::TextItem, hbTrId("txt_mailips_setlabel_outgoing_mail_server"));
+
mSettingsHelper->insertContentItem(IpsServices::OutgoingMailServer, outgoingMailServerItem);
outgoingMailServerItem->setContentWidgetData(QString("text"), outgoingMailServer);
+
mForm->addConnection(outgoingMailServerItem, SIGNAL(editingFinished()),
mSettingsHelper, SLOT(saveOutgoingMailServer()));
mForm->addConnection(outgoingMailServerItem, SIGNAL(textChanged(QString)),
mSettingsHelper, SLOT(outgoingMailServerTextChange(QString)));
+
if (mHiddenItem) {// Starred and dimmed.
outgoingMailServerItem->setContentWidgetData(QString("echoMode"), HbLineEdit::Password);
outgoingMailServerItem->setEnabled(false);
}
item.appendChild(outgoingMailServerItem);
-
+
// 5. Outgoing secure connection
CpSettingFormItemData *outgoingSecureConnectionItem =
new CpSettingFormItemData(HbDataFormModelItem::RadioButtonListItem, hbTrId(
@@ -503,13 +523,20 @@
outgoingShowSCItems << hbTrId("txt_mailips_setlabel_security_val_on_starttls")
<< hbTrId("txt_mailips_setlabel_security_val_on_ssltls")
<< hbTrId("txt_mailips_setlabel_security_val_off");
+
outgoingSecureConnectionItem->setContentWidgetData(QString("items"), outgoingShowSCItems);
- int outgoingSecureConnectionItemIndex =
+ outgoingSecureConnectionItem->setContentWidgetData("displayMode","popup");
+
+ int outgoingSecureConnectionItemIndex =
mSettingsHelper->getCorrectOutgoingSecureRadioButtonIndex();
- outgoingSecureConnectionItem->setContentWidgetData(QString("selected"),
+ outgoingSecureConnectionItem->setContentWidgetData(QString("selected"),
outgoingSecureConnectionItemIndex);
- mForm->addConnection(outgoingSecureConnectionItem, SIGNAL(itemSelected(int)),
- mSettingsHelper, SLOT(outgoingSecureConnectionItemChange(int)));
+
+ mForm->addConnection(outgoingSecureConnectionItem, SIGNAL(finished(HbAction *)),
+ this, SLOT(outgoingSecureConnectionModified(HbAction *)));
+ mForm->addConnection(outgoingSecureConnectionItem, SIGNAL(itemSelected(int)),
+ this, SLOT(popupRadioButtonIndexModified(int)));
+
if (mHiddenItem) {
outgoingSecureConnectionItem->setEnabled(false);
}
@@ -523,16 +550,23 @@
QStringList outgoingPortItems;
outgoingPortItems << hbTrId("txt_mailips_setlabel_incoming_port_default")
<< hbTrId("txt_mailips_setlabel_incoming_port_user_defined");
+
outgoingPortItem->setContentWidgetData(QString("items"), outgoingPortItems);
- int outgoingPortItemIndex = mSettingsHelper->getCorrectOutgoingPortRadioButtonIndex();
+ outgoingPortItem->setContentWidgetData("displayMode","popup");
+
+ int outgoingPortItemIndex = mSettingsHelper->getCorrectOutgoingPortRadioButtonIndex();
outgoingPortItem->setContentWidgetData(QString("selected"), outgoingPortItemIndex);
- mForm->addConnection(outgoingPortItem, SIGNAL(itemSelected(int)),
- mSettingsHelper, SLOT(outgoingPortChange(int)));
+
+ mForm->addConnection(outgoingPortItem, SIGNAL(finished(HbAction *)),
+ this, SLOT(outgoingPortModified(HbAction *)));
+ mForm->addConnection(outgoingPortItem, SIGNAL(itemSelected(int)),
+ this, SLOT(popupRadioButtonIndexModified(int)));
+
if (mHiddenItem) {
outgoingPortItem->setEnabled(false);
}
item.appendChild(outgoingPortItem);
-
+
// 7. Outgoing authentication.
CpSettingFormItemData *outgoingAuthenticationItem =
new CpSettingFormItemData(HbDataFormModelItem::RadioButtonListItem, hbTrId(
@@ -542,12 +576,19 @@
outgoingAuthenticationItems << hbTrId("txt_mailips_setlabel_outgoing_authentication_none")
<< hbTrId("txt_mailips_setlabel_outgoing_authentication_same")
<< hbTrId("txt_mailips_setlabel_outgoing_authentication_user");
+
outgoingAuthenticationItem->setContentWidgetData(QString("items"), outgoingAuthenticationItems);
- int outgoingAuthenticationIndex =
- mSettingsHelper->getCorrectOutgoingAuthenticationRadioButtonIndex();
+ outgoingAuthenticationItem->setContentWidgetData("displayMode","popup");
+
+ int outgoingAuthenticationIndex =
+ mSettingsHelper->getCorrectOutgoingAuthenticationRadioButtonIndex();
outgoingAuthenticationItem->setContentWidgetData(QString("selected"), outgoingAuthenticationIndex);
- mForm->addConnection(outgoingAuthenticationItem, SIGNAL(itemSelected(int)),
- mSettingsHelper, SLOT(outgoingAuthenticationChange(int)));
+
+ mForm->addConnection(outgoingAuthenticationItem, SIGNAL(finished(HbAction *)),
+ this, SLOT(outgoingAuthenticationModified(HbAction *)));
+ mForm->addConnection(outgoingAuthenticationItem, SIGNAL(itemSelected(int)),
+ this, SLOT(popupRadioButtonIndexModified(int)));
+
item.appendChild(outgoingAuthenticationItem);
if (mHiddenItem) {
outgoingAuthenticationItem->setEnabled(false);
@@ -555,22 +596,29 @@
if (outgoingAuthenticationIndex == IpsServices::EMailAuthUserAuthentication) {
mSettingsHelper->createServerInfoGroupDynamicItems(mHiddenItem);
}
-
+
// 8. Folder path
// This item is only shown for IMAP4 account.
if (mSettingsManager->accountType() == IpsServices::EMailImap) {
CpSettingFormItemData *folderPathItem =
new CpSettingFormItemData(HbDataFormModelItem::RadioButtonListItem, hbTrId(
"txt_mailips_setlabel_folder_path"));
- mSettingsHelper->insertContentItem(IpsServices::FolderPath, folderPathItem);
+ mSettingsHelper->insertContentItem(IpsServices::FolderPath, folderPathItem);
QStringList folderPathItems;
folderPathItems << hbTrId("txt_mailips_setlabel_folder_path_val_default")
<< hbTrId("txt_mailips_setlabel_folder_path_user_defined");
+
folderPathItem->setContentWidgetData(QString("items"), folderPathItems);
+ folderPathItem->setContentWidgetData("displayMode","popup");
+
int folderPathItemIndex = mSettingsHelper->getCorrectFolderPathRadioButtonIndex();
folderPathItem->setContentWidgetData(QString("selected"), folderPathItemIndex);
- mForm->addConnection(folderPathItem, SIGNAL(itemSelected(int)),
- mSettingsHelper, SLOT(folderPathChange(int)));
+
+ mForm->addConnection(folderPathItem, SIGNAL(finished(HbAction *)),
+ this, SLOT(folderPathModified(HbAction *)));
+ mForm->addConnection(folderPathItem, SIGNAL(itemSelected(int)),
+ this, SLOT(popupRadioButtonIndexModified(int)));
+
item.appendChild(folderPathItem);
}
}
@@ -585,13 +633,13 @@
{
RAlwaysOnlineClientSession aosession;
TInt err(aosession.Connect());
-
+
if (err == KErrNone) {
TPckgBuf<TMsvId> mboxBuf(mailboxId.id32());
-
+
TRAP_IGNORE(aosession.RelayCommandL(command, mboxBuf));
}
-
+
aosession.Close();
}
@@ -639,15 +687,21 @@
/*!
Handles mail in inbox modifications.
+Index Value
+0 50
+1 100
+2 500
+3 All
+
\param action Action that determines whether user clicked OK or cancel.
*/
void NmIpsSettingsPlugin::showMailInInboxModified(HbAction *action)
{
if ((action->text() == hbTrId("txt_common_button_ok"))
- && (mCurrentInboxIndex >=0 && mCurrentInboxIndex <=3)) {
+ && (mSelectedPopupRadioButtonIndex >=0 && mSelectedPopupRadioButtonIndex <=3)) {
int conversionTable[] = { 50, 100, 500, 0 };
- int selectedValue(conversionTable[mCurrentInboxIndex]);
-
+ int selectedValue(conversionTable[mSelectedPopupRadioButtonIndex]);
+
QVariant previouslySelectedValue;
mSettingsManager->readSetting(IpsServices::ReceptionInboxSyncWindow, previouslySelectedValue);
if (previouslySelectedValue.toInt() != selectedValue) {
@@ -655,22 +709,103 @@
IpsServices::ReceptionInboxSyncWindow, selectedValue);
}
}
- mCurrentInboxIndex = -1;
+ mSelectedPopupRadioButtonIndex = -1;
+}
+
+/*!
+Handles incoming secure connection modifications.
+
+\param action Action that determines whether user clicked OK or cancel.
+*/
+void NmIpsSettingsPlugin::incomingSecureConnectionModified(HbAction *action)
+{
+ if(action->text() == hbTrId("txt_common_button_ok") &&
+ mSelectedPopupRadioButtonIndex >=0) {
+ mSettingsHelper->incomingSecureConnectionItemChange(mSelectedPopupRadioButtonIndex);
+ }
+ mSelectedPopupRadioButtonIndex = -1;
}
+
/*!
-Handles mail in inbox modifications.
+Handles incoming port modifications.
+
+\param action Action that determines whether user clicked OK or cancel.
+*/
+void NmIpsSettingsPlugin::incomingPortModified(HbAction *action)
+{
+ if ((action->text() == hbTrId("txt_common_button_ok")) &&
+ (mSelectedPopupRadioButtonIndex == IpsServices::NmIpsSettingsDefault ||
+ mSelectedPopupRadioButtonIndex == IpsServices::NmIpsSettingsUserDefined)) {
+ mSettingsHelper->incomingPortChange(mSelectedPopupRadioButtonIndex);
+ }
+ mSelectedPopupRadioButtonIndex = -1;
+}
+
+/*!
+Handles outgoing secure connection modifications.
+
+\param action Action that determines whether user clicked OK or cancel.
+*/
+void NmIpsSettingsPlugin::outgoingSecureConnectionModified(HbAction *action)
+{
+ if (action->text() == hbTrId("txt_common_button_ok") &&
+ mSelectedPopupRadioButtonIndex >= 0) {
+ mSettingsHelper->outgoingSecureConnectionItemChange(mSelectedPopupRadioButtonIndex);
+ }
+ mSelectedPopupRadioButtonIndex = -1;
+}
-Index Value
-0 50
-1 100
-2 500
-3 All
+/*!
+Handles outgoing port modifications.
+
+\param action Action that determines whether user clicked OK or cancel.
+*/
+void NmIpsSettingsPlugin::outgoingPortModified(HbAction *action)
+{
+ if ((action->text() == hbTrId("txt_common_button_ok")) &&
+ (mSelectedPopupRadioButtonIndex == IpsServices::NmIpsSettingsDefault ||
+ mSelectedPopupRadioButtonIndex == IpsServices::NmIpsSettingsUserDefined)) {
+ mSettingsHelper->outgoingPortChange(mSelectedPopupRadioButtonIndex);
+ }
+ mSelectedPopupRadioButtonIndex = -1;
+}
+
+/*!
+Handles outgoing authentication modifications.
+
+\param action Action that determines whether user clicked OK or cancel.
+*/
+void NmIpsSettingsPlugin::outgoingAuthenticationModified(HbAction *action)
+{
+ if (action->text() == hbTrId("txt_common_button_ok") &&
+ mSelectedPopupRadioButtonIndex >= 0) {
+ mSettingsHelper->outgoingAuthenticationChange(mSelectedPopupRadioButtonIndex);
+ }
+ mSelectedPopupRadioButtonIndex = -1;
+}
+
+/*!
+Handles folder path modifications.
+
+\param action Action that determines whether user clicked OK or cancel.
+*/
+void NmIpsSettingsPlugin::folderPathModified(HbAction *action)
+{
+ if ((action->text() == hbTrId("txt_common_button_ok")) &&
+ (mSelectedPopupRadioButtonIndex == IpsServices::NmIpsSettingsDefault ||
+ mSelectedPopupRadioButtonIndex == IpsServices::NmIpsSettingsUserDefined)) {
+ mSettingsHelper->folderPathChange(mSelectedPopupRadioButtonIndex);
+ }
+ mSelectedPopupRadioButtonIndex = -1;
+}
+
+/*!
\param index The index value of the selection.
*/
-void NmIpsSettingsPlugin::inboxSelectionModified(int index)
+void NmIpsSettingsPlugin::popupRadioButtonIndexModified(int index)
{
- mCurrentInboxIndex = index;
+ mSelectedPopupRadioButtonIndex = index;
}
Q_EXPORT_PLUGIN2(nmipssettings, NmIpsSettingsPlugin);