--- a/mediasettings/videosettingsplugin/src/videosettingsgroup.cpp Fri Jun 11 09:44:20 2010 +0300
+++ b/mediasettings/videosettingsplugin/src/videosettingsgroup.cpp Thu Jun 24 09:49:13 2010 +0300
@@ -31,9 +31,25 @@
#include <MPSettEngPluginImplementationUIDs.hrh>
#include <xqconversions.h>
#include <qapplication.h>
-#include <qtranslator.h>
#include <hbapplication.h>
+const int PROXY_LOWEST_ACCEPTED_VALUE = 1;
+const int UDP_LOWEST_ACCEPTED_VALUE = 1024;
+const int PORT_HIGHEST_ACCEPTED_VALUE = 65535;
+
+void gValidatePortValues(int& value, int bottom, int top)
+{
+ if(value < bottom)
+ {
+ value = bottom;
+ }
+
+ if(value > top)
+ {
+ value = top;
+ }
+}
+
// ---------------------------------------------------------------------------
// Constructor
// ---------------------------------------------------------------------------
@@ -50,28 +66,27 @@
mProxyPortItem(0)
{
MPX_ENTER_EXIT(_L("VideoSettingsGroup::VideoSettingsGroup()"));
-
+
// Load the translation file.
QString lang = QLocale::system().name();
- QTranslator translator;
bool loaded(false);
- loaded = translator.load( "videos_" + lang, QString("c:/resource/qt/translations") );
+ loaded = mTranslator.load( "videos_" + lang, QString("c:/resource/qt/translations") );
if (!loaded)
{
- translator.load("videos_" + lang, QString("z:/resource/qt/translations") );
+ mTranslator.load("videos_" + lang, QString("z:/resource/qt/translations") );
}
// Install the translator
HbApplication* app = qobject_cast<HbApplication*>(qApp);
if(app)
{
- app->installTranslator(&translator);
+ app->installTranslator(&mTranslator);
}
-
+
this->setLabel(hbTrId("txt_videos_subhead_video_streaming_settings"));
-
+
TRAPD(err, InitSettingsModelL());
if(err != KErrNone)
{
@@ -79,52 +94,52 @@
mSettingsModel = 0;
return;
}
-
+
itemDataHelper.connectToForm(SIGNAL(itemShown(const QModelIndex)), this, SLOT(itemShown(const QModelIndex)));
-
+
// Access point in use
- mAccessPointItem = new VideoSettingsAccessPointEntry(itemDataHelper,
+ mAccessPointItem = new VideoSettingsAccessPointEntry(itemDataHelper,
hbTrId("txt_videos_dblist_access_point"), this);
this->appendChild(mAccessPointItem);
-
+
// Lowest UDP port
mLowestUDPPortItem = new CpSettingFormItemData(HbDataFormModelItem::TextItem,
hbTrId("txt_videos_dblist_min_udp_port"));
mLowestUDPPortItem->setContentWidgetData(QString("maxRows"), 1);
- mItemDataHelper.addConnection(mLowestUDPPortItem, SIGNAL(editingFinished()),
+ mItemDataHelper.addConnection(mLowestUDPPortItem, SIGNAL(editingFinished()),
this, SLOT(lowestUdpPortEditingFinished()));
this->appendChild(mLowestUDPPortItem);
-
+
// Highest UDP port
mHighestUDPPortItem = new CpSettingFormItemData(HbDataFormModelItem::TextItem,
hbTrId("txt_videos_dblist_max_udp_port"));
mHighestUDPPortItem->setContentWidgetData(QString("maxRows"), 1);
- mItemDataHelper.addConnection(mHighestUDPPortItem, SIGNAL(editingFinished()),
+ mItemDataHelper.addConnection(mHighestUDPPortItem, SIGNAL(editingFinished()),
this, SLOT(highestUdpPortEditingFinished()));
this->appendChild(mHighestUDPPortItem);
-
+
// Use proxy
mUseProxyItem = new CpSettingFormItemData(HbDataFormModelItem::CheckBoxItem, QString());
mUseProxyItem->setContentWidgetData(QString("text"), hbTrId("txt_videos_formlabel_proxy_in_use"));
this->appendChild(mUseProxyItem);
-
+
// Proxy server address
mProxyServerItem = new CpSettingFormItemData(HbDataFormModelItem::TextItem,
hbTrId("txt_videos_dblist_proxy_host_name"));
mProxyServerItem->setContentWidgetData(QString("maxRows"), 1);
mProxyServerItem->setContentWidgetData(QString("placeholderText"), hbTrId("txt_videos_dblist_none"));
- mItemDataHelper.addConnection(mProxyServerItem, SIGNAL(editingFinished()),
+ mItemDataHelper.addConnection(mProxyServerItem, SIGNAL(editingFinished()),
this, SLOT(proxyServerEditingFinished()));
this->appendChild(mProxyServerItem);
-
+
// Proxy port number
mProxyPortItem = new CpSettingFormItemData(HbDataFormModelItem::TextItem,
hbTrId("txt_videos_dblist_proxy_port"));
mProxyPortItem->setContentWidgetData(QString("maxRows"), 1);
- mItemDataHelper.addConnection(mProxyPortItem, SIGNAL(editingFinished()),
+ mItemDataHelper.addConnection(mProxyPortItem, SIGNAL(editingFinished()),
this, SLOT(proxyPortEditingFinished()));
this->appendChild(mProxyPortItem);
-
+
loadSettings();
}
@@ -135,9 +150,9 @@
VideoSettingsGroup::~VideoSettingsGroup()
{
MPX_ENTER_EXIT(_L("VideoSettingsGroup::~VideoSettingsGroup()"));
-
+
TRAP_IGNORE( mSettingsModel->StoreSettingsL() );
-
+
delete mSettingsModel;
}
@@ -148,12 +163,12 @@
uint VideoSettingsGroup::getAccessPointId()
{
MPX_ENTER_EXIT(_L("VideoSettingsGroup::getAccessPointId()"));
-
+
TUint32 defaultAp(0);
mSettingsModel->GetDefaultAp(defaultAp);
-
+
MPX_DEBUG(_L("Returned access point id = %i"), defaultAp);
-
+
return defaultAp;
}
@@ -163,10 +178,16 @@
//
void VideoSettingsGroup::setAccessPointId(const uint& defaultAp)
{
- MPX_ENTER_EXIT(_L("VideoSettingsGroup::setAccessPointId()"),
+ MPX_ENTER_EXIT(_L("VideoSettingsGroup::setAccessPointId()"),
_L("defaultAp = %i"), defaultAp);
-
- mSettingsModel->SetDefaultAp(defaultAp);
+
+ uint oldAp = getAccessPointId();
+
+ if(oldAp != defaultAp)
+ {
+ mSettingsModel->SetDefaultAp(defaultAp);
+ mUseProxyItem->setContentWidgetData(QString("checked"), false);
+ }
}
// ---------------------------------------------------------------------------
@@ -176,18 +197,21 @@
void VideoSettingsGroup::lowestUdpPortEditingFinished()
{
MPX_ENTER_EXIT(_L("VideoSettingsGroup::lowestUdpPortValueChanged()"));
-
+
int minPort = mLowestUDPPortItem->contentWidgetData(QString("text")).toString().toInt();
int maxPort = mHighestUDPPortItem->contentWidgetData(QString("text")).toString().toInt();
-
+
MPX_DEBUG(_L("minudp = %i, maxudp = %i"), minPort, maxPort);
-
+
if(minPort > maxPort)
{
minPort = maxPort;
- mLowestUDPPortItem->setContentWidgetData(QString("text"), QString::number(minPort));
}
-
+
+ gValidatePortValues(minPort, UDP_LOWEST_ACCEPTED_VALUE, PORT_HIGHEST_ACCEPTED_VALUE);
+
+ mLowestUDPPortItem->setContentWidgetData(QString("text"), QString::number(minPort));
+
mSettingsModel->SetMinUDPPort(minPort);
}
@@ -198,18 +222,21 @@
void VideoSettingsGroup::highestUdpPortEditingFinished()
{
MPX_ENTER_EXIT(_L("VideoSettingsGroup::highestUdpPortValueChanged()"));
-
+
int maxPort = mHighestUDPPortItem->contentWidgetData(QString("text")).toString().toInt();
int minPort = mLowestUDPPortItem->contentWidgetData(QString("text")).toString().toInt();
-
+
MPX_DEBUG(_L("minudp = %i, maxudp = %i"), minPort, maxPort);
-
+
if(maxPort < minPort)
{
maxPort = minPort;
- mHighestUDPPortItem->setContentWidgetData(QString("text"), QString::number(maxPort));
}
-
+
+ gValidatePortValues(maxPort, UDP_LOWEST_ACCEPTED_VALUE, PORT_HIGHEST_ACCEPTED_VALUE);
+
+ mHighestUDPPortItem->setContentWidgetData(QString("text"), QString::number(maxPort));
+
mSettingsModel->SetMaxUDPPort(maxPort);
}
@@ -219,12 +246,12 @@
//
void VideoSettingsGroup::useProxyToggled(int state)
{
- MPX_ENTER_EXIT(_L("VideoSettingsGroup::useProxyToggled()"),
+ MPX_ENTER_EXIT(_L("VideoSettingsGroup::useProxyToggled()"),
_L("state = %i"), state);
-
+
mProxyServerItem->setEnabled(state == Qt::Checked);
mProxyPortItem->setEnabled(state == Qt::Checked);
-
+
mSettingsModel->SetProxyMode(state == Qt::Checked ? 1 : 0);
}
@@ -235,11 +262,11 @@
void VideoSettingsGroup::proxyServerEditingFinished()
{
MPX_ENTER_EXIT(_L("VideoSettingsGroup::proxyServerValueChanged()"));
-
+
QString text = mProxyServerItem->contentWidgetData(QString("text")).toString();
-
+
MPX_DEBUG(_L("new proxy server = '%s'"), text.data());
-
+
HBufC* proxyServer = XQConversions::qStringToS60Desc(text);
TRAP_IGNORE( mSettingsModel->SetProxyHostNameL(*proxyServer) );
delete proxyServer;
@@ -252,12 +279,16 @@
void VideoSettingsGroup::proxyPortEditingFinished()
{
MPX_ENTER_EXIT(_L("VideoSettingsGroup::proxyPortValueChanged()"));
-
+
int proxyPort = mProxyPortItem->contentWidgetData(QString("text")).toString().toInt();
-
+
MPX_DEBUG(_L("new proxy port = %i"), proxyPort);
-
- mSettingsModel->SetProxyPort(proxyPort);
+
+ gValidatePortValues(proxyPort, PROXY_LOWEST_ACCEPTED_VALUE, PORT_HIGHEST_ACCEPTED_VALUE);
+
+ mProxyPortItem->setContentWidgetData(QString("text"), QString::number(proxyPort));
+
+ mSettingsModel->SetProxyPort(proxyPort);
}
// ---------------------------------------------------------------------------
@@ -266,26 +297,23 @@
//
void VideoSettingsGroup::itemShown(const QModelIndex& index)
{
- MPX_ENTER_EXIT(_L("VideoSettingsGroup::itemShown()"),
+ MPX_ENTER_EXIT(_L("VideoSettingsGroup::itemShown()"),
_L("index row = %i"), index.row());
-
+
HbDataFormModelItem* modelItem = mItemDataHelper.modelItemFromModelIndex(index);
-
+
if(modelItem == mLowestUDPPortItem ||
modelItem == mHighestUDPPortItem ||
modelItem == mProxyPortItem )
{
HbLineEdit *editor = static_cast<HbLineEdit *>(mItemDataHelper.widgetFromModelIndex(index));
+ editor->setMaxLength(5);
+
HbEditorInterface editorIf(editor);
editorIf.setFilter(HbDigitsOnlyFilter::instance());
-
- HbValidator *validator = new HbValidator(this);
- int lowestAllowedPort = modelItem == mProxyPortItem ? 1 : 1024;
- validator->addField(new QIntValidator(lowestAllowedPort, 65535, validator), modelItem->contentWidgetData(QString("text")).toString());
- editor->setValidator(validator);
}
-
+
if(modelItem == mProxyServerItem)
{
mItemDataHelper.addConnection(mUseProxyItem, SIGNAL(stateChanged(int)), this, SLOT(useProxyToggled(int)));
@@ -301,7 +329,7 @@
void VideoSettingsGroup::InitSettingsModelL()
{
MPX_ENTER_EXIT(_L("VideoSettingsGroup::InitSettingsModelL()"));
-
+
TUid settingsUid = {KMPSettEngImplUidROP};
mSettingsModel = CMPSettingsModel::NewL(settingsUid);
mSettingsModel->LoadSettingsL(EConfigUser);
@@ -314,28 +342,28 @@
void VideoSettingsGroup::loadSettings()
{
MPX_ENTER_EXIT(_L("VideoSettingsGroup::loadSettings()"));
-
+
int lowestUdpPort(0);
mSettingsModel->GetMinUDPPort(lowestUdpPort);
mLowestUDPPortItem->setContentWidgetData(QString("text"), QString::number(lowestUdpPort));
-
+
int highestUdpPort(0);
mSettingsModel->GetMaxUDPPort(highestUdpPort);
mHighestUDPPortItem->setContentWidgetData(QString("text"), QString::number(highestUdpPort));
-
+
int proxyMode(0);
mSettingsModel->GetProxyMode(proxyMode);
mUseProxyItem->setContentWidgetData(QString("checked"), proxyMode == 1);
useProxyToggled(proxyMode == 1 ? Qt::Checked : Qt::Unchecked);
-
- TBuf<2048> proxyServerBuf;
+
+ TBuf<496> proxyServerBuf;
mSettingsModel->GetProxyHostName(proxyServerBuf);
QString proxyServer = XQConversions::s60DescToQString(proxyServerBuf);
mProxyServerItem->setContentWidgetData(QString("text"), proxyServer);
-
+
int proxyPort;
mSettingsModel->GetProxyPort(proxyPort);
mProxyPortItem->setContentWidgetData(QString("text"), QString::number(proxyPort));
-
+
mAccessPointItem->setIapId(getAccessPointId());
}