48 mUseProxyItem(0), |
64 mUseProxyItem(0), |
49 mProxyServerItem(0), |
65 mProxyServerItem(0), |
50 mProxyPortItem(0) |
66 mProxyPortItem(0) |
51 { |
67 { |
52 MPX_ENTER_EXIT(_L("VideoSettingsGroup::VideoSettingsGroup()")); |
68 MPX_ENTER_EXIT(_L("VideoSettingsGroup::VideoSettingsGroup()")); |
53 |
69 |
54 // Load the translation file. |
70 // Load the translation file. |
55 QString lang = QLocale::system().name(); |
71 QString lang = QLocale::system().name(); |
56 QTranslator translator; |
|
57 bool loaded(false); |
72 bool loaded(false); |
58 |
73 |
59 loaded = translator.load( "videos_" + lang, QString("c:/resource/qt/translations") ); |
74 loaded = mTranslator.load( "videos_" + lang, QString("c:/resource/qt/translations") ); |
60 |
75 |
61 if (!loaded) |
76 if (!loaded) |
62 { |
77 { |
63 translator.load("videos_" + lang, QString("z:/resource/qt/translations") ); |
78 mTranslator.load("videos_" + lang, QString("z:/resource/qt/translations") ); |
64 } |
79 } |
65 |
80 |
66 // Install the translator |
81 // Install the translator |
67 HbApplication* app = qobject_cast<HbApplication*>(qApp); |
82 HbApplication* app = qobject_cast<HbApplication*>(qApp); |
68 if(app) |
83 if(app) |
69 { |
84 { |
70 app->installTranslator(&translator); |
85 app->installTranslator(&mTranslator); |
71 } |
86 } |
72 |
87 |
73 this->setLabel(hbTrId("txt_videos_subhead_video_streaming_settings")); |
88 this->setLabel(hbTrId("txt_videos_subhead_video_streaming_settings")); |
74 |
89 |
75 TRAPD(err, InitSettingsModelL()); |
90 TRAPD(err, InitSettingsModelL()); |
76 if(err != KErrNone) |
91 if(err != KErrNone) |
77 { |
92 { |
78 delete mSettingsModel; |
93 delete mSettingsModel; |
79 mSettingsModel = 0; |
94 mSettingsModel = 0; |
80 return; |
95 return; |
81 } |
96 } |
82 |
97 |
83 itemDataHelper.connectToForm(SIGNAL(itemShown(const QModelIndex)), this, SLOT(itemShown(const QModelIndex))); |
98 itemDataHelper.connectToForm(SIGNAL(itemShown(const QModelIndex)), this, SLOT(itemShown(const QModelIndex))); |
84 |
99 |
85 // Access point in use |
100 // Access point in use |
86 mAccessPointItem = new VideoSettingsAccessPointEntry(itemDataHelper, |
101 mAccessPointItem = new VideoSettingsAccessPointEntry(itemDataHelper, |
87 hbTrId("txt_videos_dblist_access_point"), this); |
102 hbTrId("txt_videos_dblist_access_point"), this); |
88 this->appendChild(mAccessPointItem); |
103 this->appendChild(mAccessPointItem); |
89 |
104 |
90 // Lowest UDP port |
105 // Lowest UDP port |
91 mLowestUDPPortItem = new CpSettingFormItemData(HbDataFormModelItem::TextItem, |
106 mLowestUDPPortItem = new CpSettingFormItemData(HbDataFormModelItem::TextItem, |
92 hbTrId("txt_videos_dblist_min_udp_port")); |
107 hbTrId("txt_videos_dblist_min_udp_port")); |
93 mLowestUDPPortItem->setContentWidgetData(QString("maxRows"), 1); |
108 mLowestUDPPortItem->setContentWidgetData(QString("maxRows"), 1); |
94 mItemDataHelper.addConnection(mLowestUDPPortItem, SIGNAL(editingFinished()), |
109 mItemDataHelper.addConnection(mLowestUDPPortItem, SIGNAL(editingFinished()), |
95 this, SLOT(lowestUdpPortEditingFinished())); |
110 this, SLOT(lowestUdpPortEditingFinished())); |
96 this->appendChild(mLowestUDPPortItem); |
111 this->appendChild(mLowestUDPPortItem); |
97 |
112 |
98 // Highest UDP port |
113 // Highest UDP port |
99 mHighestUDPPortItem = new CpSettingFormItemData(HbDataFormModelItem::TextItem, |
114 mHighestUDPPortItem = new CpSettingFormItemData(HbDataFormModelItem::TextItem, |
100 hbTrId("txt_videos_dblist_max_udp_port")); |
115 hbTrId("txt_videos_dblist_max_udp_port")); |
101 mHighestUDPPortItem->setContentWidgetData(QString("maxRows"), 1); |
116 mHighestUDPPortItem->setContentWidgetData(QString("maxRows"), 1); |
102 mItemDataHelper.addConnection(mHighestUDPPortItem, SIGNAL(editingFinished()), |
117 mItemDataHelper.addConnection(mHighestUDPPortItem, SIGNAL(editingFinished()), |
103 this, SLOT(highestUdpPortEditingFinished())); |
118 this, SLOT(highestUdpPortEditingFinished())); |
104 this->appendChild(mHighestUDPPortItem); |
119 this->appendChild(mHighestUDPPortItem); |
105 |
120 |
106 // Use proxy |
121 // Use proxy |
107 mUseProxyItem = new CpSettingFormItemData(HbDataFormModelItem::CheckBoxItem, QString()); |
122 mUseProxyItem = new CpSettingFormItemData(HbDataFormModelItem::CheckBoxItem, QString()); |
108 mUseProxyItem->setContentWidgetData(QString("text"), hbTrId("txt_videos_formlabel_proxy_in_use")); |
123 mUseProxyItem->setContentWidgetData(QString("text"), hbTrId("txt_videos_formlabel_proxy_in_use")); |
109 this->appendChild(mUseProxyItem); |
124 this->appendChild(mUseProxyItem); |
110 |
125 |
111 // Proxy server address |
126 // Proxy server address |
112 mProxyServerItem = new CpSettingFormItemData(HbDataFormModelItem::TextItem, |
127 mProxyServerItem = new CpSettingFormItemData(HbDataFormModelItem::TextItem, |
113 hbTrId("txt_videos_dblist_proxy_host_name")); |
128 hbTrId("txt_videos_dblist_proxy_host_name")); |
114 mProxyServerItem->setContentWidgetData(QString("maxRows"), 1); |
129 mProxyServerItem->setContentWidgetData(QString("maxRows"), 1); |
115 mProxyServerItem->setContentWidgetData(QString("placeholderText"), hbTrId("txt_videos_dblist_none")); |
130 mProxyServerItem->setContentWidgetData(QString("placeholderText"), hbTrId("txt_videos_dblist_none")); |
116 mItemDataHelper.addConnection(mProxyServerItem, SIGNAL(editingFinished()), |
131 mItemDataHelper.addConnection(mProxyServerItem, SIGNAL(editingFinished()), |
117 this, SLOT(proxyServerEditingFinished())); |
132 this, SLOT(proxyServerEditingFinished())); |
118 this->appendChild(mProxyServerItem); |
133 this->appendChild(mProxyServerItem); |
119 |
134 |
120 // Proxy port number |
135 // Proxy port number |
121 mProxyPortItem = new CpSettingFormItemData(HbDataFormModelItem::TextItem, |
136 mProxyPortItem = new CpSettingFormItemData(HbDataFormModelItem::TextItem, |
122 hbTrId("txt_videos_dblist_proxy_port")); |
137 hbTrId("txt_videos_dblist_proxy_port")); |
123 mProxyPortItem->setContentWidgetData(QString("maxRows"), 1); |
138 mProxyPortItem->setContentWidgetData(QString("maxRows"), 1); |
124 mItemDataHelper.addConnection(mProxyPortItem, SIGNAL(editingFinished()), |
139 mItemDataHelper.addConnection(mProxyPortItem, SIGNAL(editingFinished()), |
125 this, SLOT(proxyPortEditingFinished())); |
140 this, SLOT(proxyPortEditingFinished())); |
126 this->appendChild(mProxyPortItem); |
141 this->appendChild(mProxyPortItem); |
127 |
142 |
128 loadSettings(); |
143 loadSettings(); |
129 } |
144 } |
130 |
145 |
131 // --------------------------------------------------------------------------- |
146 // --------------------------------------------------------------------------- |
132 // Destructor |
147 // Destructor |
133 // --------------------------------------------------------------------------- |
148 // --------------------------------------------------------------------------- |
134 // |
149 // |
135 VideoSettingsGroup::~VideoSettingsGroup() |
150 VideoSettingsGroup::~VideoSettingsGroup() |
136 { |
151 { |
137 MPX_ENTER_EXIT(_L("VideoSettingsGroup::~VideoSettingsGroup()")); |
152 MPX_ENTER_EXIT(_L("VideoSettingsGroup::~VideoSettingsGroup()")); |
138 |
153 |
139 TRAP_IGNORE( mSettingsModel->StoreSettingsL() ); |
154 TRAP_IGNORE( mSettingsModel->StoreSettingsL() ); |
140 |
155 |
141 delete mSettingsModel; |
156 delete mSettingsModel; |
142 } |
157 } |
143 |
158 |
144 // --------------------------------------------------------------------------- |
159 // --------------------------------------------------------------------------- |
145 // getAccessPointId |
160 // getAccessPointId |
146 // --------------------------------------------------------------------------- |
161 // --------------------------------------------------------------------------- |
147 // |
162 // |
148 uint VideoSettingsGroup::getAccessPointId() |
163 uint VideoSettingsGroup::getAccessPointId() |
149 { |
164 { |
150 MPX_ENTER_EXIT(_L("VideoSettingsGroup::getAccessPointId()")); |
165 MPX_ENTER_EXIT(_L("VideoSettingsGroup::getAccessPointId()")); |
151 |
166 |
152 TUint32 defaultAp(0); |
167 TUint32 defaultAp(0); |
153 mSettingsModel->GetDefaultAp(defaultAp); |
168 mSettingsModel->GetDefaultAp(defaultAp); |
154 |
169 |
155 MPX_DEBUG(_L("Returned access point id = %i"), defaultAp); |
170 MPX_DEBUG(_L("Returned access point id = %i"), defaultAp); |
156 |
171 |
157 return defaultAp; |
172 return defaultAp; |
158 } |
173 } |
159 |
174 |
160 // --------------------------------------------------------------------------- |
175 // --------------------------------------------------------------------------- |
161 // setAccessPointId |
176 // setAccessPointId |
162 // --------------------------------------------------------------------------- |
177 // --------------------------------------------------------------------------- |
163 // |
178 // |
164 void VideoSettingsGroup::setAccessPointId(const uint& defaultAp) |
179 void VideoSettingsGroup::setAccessPointId(const uint& defaultAp) |
165 { |
180 { |
166 MPX_ENTER_EXIT(_L("VideoSettingsGroup::setAccessPointId()"), |
181 MPX_ENTER_EXIT(_L("VideoSettingsGroup::setAccessPointId()"), |
167 _L("defaultAp = %i"), defaultAp); |
182 _L("defaultAp = %i"), defaultAp); |
168 |
183 |
169 mSettingsModel->SetDefaultAp(defaultAp); |
184 uint oldAp = getAccessPointId(); |
|
185 |
|
186 if(oldAp != defaultAp) |
|
187 { |
|
188 mSettingsModel->SetDefaultAp(defaultAp); |
|
189 mUseProxyItem->setContentWidgetData(QString("checked"), false); |
|
190 } |
170 } |
191 } |
171 |
192 |
172 // --------------------------------------------------------------------------- |
193 // --------------------------------------------------------------------------- |
173 // lowestUdpPortValueChanged |
194 // lowestUdpPortValueChanged |
174 // --------------------------------------------------------------------------- |
195 // --------------------------------------------------------------------------- |
175 // |
196 // |
176 void VideoSettingsGroup::lowestUdpPortEditingFinished() |
197 void VideoSettingsGroup::lowestUdpPortEditingFinished() |
177 { |
198 { |
178 MPX_ENTER_EXIT(_L("VideoSettingsGroup::lowestUdpPortValueChanged()")); |
199 MPX_ENTER_EXIT(_L("VideoSettingsGroup::lowestUdpPortValueChanged()")); |
179 |
200 |
180 int minPort = mLowestUDPPortItem->contentWidgetData(QString("text")).toString().toInt(); |
201 int minPort = mLowestUDPPortItem->contentWidgetData(QString("text")).toString().toInt(); |
181 int maxPort = mHighestUDPPortItem->contentWidgetData(QString("text")).toString().toInt(); |
202 int maxPort = mHighestUDPPortItem->contentWidgetData(QString("text")).toString().toInt(); |
182 |
203 |
183 MPX_DEBUG(_L("minudp = %i, maxudp = %i"), minPort, maxPort); |
204 MPX_DEBUG(_L("minudp = %i, maxudp = %i"), minPort, maxPort); |
184 |
205 |
185 if(minPort > maxPort) |
206 if(minPort > maxPort) |
186 { |
207 { |
187 minPort = maxPort; |
208 minPort = maxPort; |
188 mLowestUDPPortItem->setContentWidgetData(QString("text"), QString::number(minPort)); |
209 } |
189 } |
210 |
190 |
211 gValidatePortValues(minPort, UDP_LOWEST_ACCEPTED_VALUE, PORT_HIGHEST_ACCEPTED_VALUE); |
|
212 |
|
213 mLowestUDPPortItem->setContentWidgetData(QString("text"), QString::number(minPort)); |
|
214 |
191 mSettingsModel->SetMinUDPPort(minPort); |
215 mSettingsModel->SetMinUDPPort(minPort); |
192 } |
216 } |
193 |
217 |
194 // --------------------------------------------------------------------------- |
218 // --------------------------------------------------------------------------- |
195 // highestUdpPortValueChanged |
219 // highestUdpPortValueChanged |
196 // --------------------------------------------------------------------------- |
220 // --------------------------------------------------------------------------- |
197 // |
221 // |
198 void VideoSettingsGroup::highestUdpPortEditingFinished() |
222 void VideoSettingsGroup::highestUdpPortEditingFinished() |
199 { |
223 { |
200 MPX_ENTER_EXIT(_L("VideoSettingsGroup::highestUdpPortValueChanged()")); |
224 MPX_ENTER_EXIT(_L("VideoSettingsGroup::highestUdpPortValueChanged()")); |
201 |
225 |
202 int maxPort = mHighestUDPPortItem->contentWidgetData(QString("text")).toString().toInt(); |
226 int maxPort = mHighestUDPPortItem->contentWidgetData(QString("text")).toString().toInt(); |
203 int minPort = mLowestUDPPortItem->contentWidgetData(QString("text")).toString().toInt(); |
227 int minPort = mLowestUDPPortItem->contentWidgetData(QString("text")).toString().toInt(); |
204 |
228 |
205 MPX_DEBUG(_L("minudp = %i, maxudp = %i"), minPort, maxPort); |
229 MPX_DEBUG(_L("minudp = %i, maxudp = %i"), minPort, maxPort); |
206 |
230 |
207 if(maxPort < minPort) |
231 if(maxPort < minPort) |
208 { |
232 { |
209 maxPort = minPort; |
233 maxPort = minPort; |
210 mHighestUDPPortItem->setContentWidgetData(QString("text"), QString::number(maxPort)); |
234 } |
211 } |
235 |
212 |
236 gValidatePortValues(maxPort, UDP_LOWEST_ACCEPTED_VALUE, PORT_HIGHEST_ACCEPTED_VALUE); |
|
237 |
|
238 mHighestUDPPortItem->setContentWidgetData(QString("text"), QString::number(maxPort)); |
|
239 |
213 mSettingsModel->SetMaxUDPPort(maxPort); |
240 mSettingsModel->SetMaxUDPPort(maxPort); |
214 } |
241 } |
215 |
242 |
216 // --------------------------------------------------------------------------- |
243 // --------------------------------------------------------------------------- |
217 // useProxyToggled |
244 // useProxyToggled |
218 // --------------------------------------------------------------------------- |
245 // --------------------------------------------------------------------------- |
219 // |
246 // |
220 void VideoSettingsGroup::useProxyToggled(int state) |
247 void VideoSettingsGroup::useProxyToggled(int state) |
221 { |
248 { |
222 MPX_ENTER_EXIT(_L("VideoSettingsGroup::useProxyToggled()"), |
249 MPX_ENTER_EXIT(_L("VideoSettingsGroup::useProxyToggled()"), |
223 _L("state = %i"), state); |
250 _L("state = %i"), state); |
224 |
251 |
225 mProxyServerItem->setEnabled(state == Qt::Checked); |
252 mProxyServerItem->setEnabled(state == Qt::Checked); |
226 mProxyPortItem->setEnabled(state == Qt::Checked); |
253 mProxyPortItem->setEnabled(state == Qt::Checked); |
227 |
254 |
228 mSettingsModel->SetProxyMode(state == Qt::Checked ? 1 : 0); |
255 mSettingsModel->SetProxyMode(state == Qt::Checked ? 1 : 0); |
229 } |
256 } |
230 |
257 |
231 // --------------------------------------------------------------------------- |
258 // --------------------------------------------------------------------------- |
232 // proxyServerValueChanged |
259 // proxyServerValueChanged |
233 // --------------------------------------------------------------------------- |
260 // --------------------------------------------------------------------------- |
234 // |
261 // |
235 void VideoSettingsGroup::proxyServerEditingFinished() |
262 void VideoSettingsGroup::proxyServerEditingFinished() |
236 { |
263 { |
237 MPX_ENTER_EXIT(_L("VideoSettingsGroup::proxyServerValueChanged()")); |
264 MPX_ENTER_EXIT(_L("VideoSettingsGroup::proxyServerValueChanged()")); |
238 |
265 |
239 QString text = mProxyServerItem->contentWidgetData(QString("text")).toString(); |
266 QString text = mProxyServerItem->contentWidgetData(QString("text")).toString(); |
240 |
267 |
241 MPX_DEBUG(_L("new proxy server = '%s'"), text.data()); |
268 MPX_DEBUG(_L("new proxy server = '%s'"), text.data()); |
242 |
269 |
243 HBufC* proxyServer = XQConversions::qStringToS60Desc(text); |
270 HBufC* proxyServer = XQConversions::qStringToS60Desc(text); |
244 TRAP_IGNORE( mSettingsModel->SetProxyHostNameL(*proxyServer) ); |
271 TRAP_IGNORE( mSettingsModel->SetProxyHostNameL(*proxyServer) ); |
245 delete proxyServer; |
272 delete proxyServer; |
246 } |
273 } |
247 |
274 |
250 // --------------------------------------------------------------------------- |
277 // --------------------------------------------------------------------------- |
251 // |
278 // |
252 void VideoSettingsGroup::proxyPortEditingFinished() |
279 void VideoSettingsGroup::proxyPortEditingFinished() |
253 { |
280 { |
254 MPX_ENTER_EXIT(_L("VideoSettingsGroup::proxyPortValueChanged()")); |
281 MPX_ENTER_EXIT(_L("VideoSettingsGroup::proxyPortValueChanged()")); |
255 |
282 |
256 int proxyPort = mProxyPortItem->contentWidgetData(QString("text")).toString().toInt(); |
283 int proxyPort = mProxyPortItem->contentWidgetData(QString("text")).toString().toInt(); |
257 |
284 |
258 MPX_DEBUG(_L("new proxy port = %i"), proxyPort); |
285 MPX_DEBUG(_L("new proxy port = %i"), proxyPort); |
259 |
286 |
260 mSettingsModel->SetProxyPort(proxyPort); |
287 gValidatePortValues(proxyPort, PROXY_LOWEST_ACCEPTED_VALUE, PORT_HIGHEST_ACCEPTED_VALUE); |
|
288 |
|
289 mProxyPortItem->setContentWidgetData(QString("text"), QString::number(proxyPort)); |
|
290 |
|
291 mSettingsModel->SetProxyPort(proxyPort); |
261 } |
292 } |
262 |
293 |
263 // --------------------------------------------------------------------------- |
294 // --------------------------------------------------------------------------- |
264 // itemShown |
295 // itemShown |
265 // --------------------------------------------------------------------------- |
296 // --------------------------------------------------------------------------- |
266 // |
297 // |
267 void VideoSettingsGroup::itemShown(const QModelIndex& index) |
298 void VideoSettingsGroup::itemShown(const QModelIndex& index) |
268 { |
299 { |
269 MPX_ENTER_EXIT(_L("VideoSettingsGroup::itemShown()"), |
300 MPX_ENTER_EXIT(_L("VideoSettingsGroup::itemShown()"), |
270 _L("index row = %i"), index.row()); |
301 _L("index row = %i"), index.row()); |
271 |
302 |
272 HbDataFormModelItem* modelItem = mItemDataHelper.modelItemFromModelIndex(index); |
303 HbDataFormModelItem* modelItem = mItemDataHelper.modelItemFromModelIndex(index); |
273 |
304 |
274 if(modelItem == mLowestUDPPortItem || |
305 if(modelItem == mLowestUDPPortItem || |
275 modelItem == mHighestUDPPortItem || |
306 modelItem == mHighestUDPPortItem || |
276 modelItem == mProxyPortItem ) |
307 modelItem == mProxyPortItem ) |
277 { |
308 { |
278 HbLineEdit *editor = static_cast<HbLineEdit *>(mItemDataHelper.widgetFromModelIndex(index)); |
309 HbLineEdit *editor = static_cast<HbLineEdit *>(mItemDataHelper.widgetFromModelIndex(index)); |
279 |
310 |
|
311 editor->setMaxLength(5); |
|
312 |
280 HbEditorInterface editorIf(editor); |
313 HbEditorInterface editorIf(editor); |
281 editorIf.setFilter(HbDigitsOnlyFilter::instance()); |
314 editorIf.setFilter(HbDigitsOnlyFilter::instance()); |
282 |
315 } |
283 HbValidator *validator = new HbValidator(this); |
316 |
284 int lowestAllowedPort = modelItem == mProxyPortItem ? 1 : 1024; |
|
285 validator->addField(new QIntValidator(lowestAllowedPort, 65535, validator), modelItem->contentWidgetData(QString("text")).toString()); |
|
286 editor->setValidator(validator); |
|
287 } |
|
288 |
|
289 if(modelItem == mProxyServerItem) |
317 if(modelItem == mProxyServerItem) |
290 { |
318 { |
291 mItemDataHelper.addConnection(mUseProxyItem, SIGNAL(stateChanged(int)), this, SLOT(useProxyToggled(int))); |
319 mItemDataHelper.addConnection(mUseProxyItem, SIGNAL(stateChanged(int)), this, SLOT(useProxyToggled(int))); |
292 HbEditorInterface editor(mItemDataHelper.widgetFromModelIndex(index)); |
320 HbEditorInterface editor(mItemDataHelper.widgetFromModelIndex(index)); |
293 editor.setFilter(HbUrlFilter::instance()); |
321 editor.setFilter(HbUrlFilter::instance()); |