|
1 /* |
|
2 * Copyright (c) 2002 Nokia Corporation and/or its subsidiary(-ies). |
|
3 * All rights reserved. |
|
4 * This component and the accompanying materials are made available |
|
5 * under the terms of the License "Eclipse Public License v1.0" |
|
6 * which accompanies this distribution, and is available |
|
7 * at the URL "http://www.eclipse.org/legal/epl-v10.html". |
|
8 * |
|
9 * Initial Contributors: |
|
10 * Nokia Corporation - initial contribution. |
|
11 * |
|
12 * Contributors: |
|
13 * |
|
14 * Description: |
|
15 * |
|
16 */ |
|
17 |
|
18 |
|
19 // Version : %version: 3 % |
|
20 |
|
21 |
|
22 |
|
23 |
|
24 // INCLUDE FILES |
|
25 #include <eikappui.h> |
|
26 #include <akntextsettingpage.h> |
|
27 #include <barsread.h> |
|
28 |
|
29 #include "mediasettings.hrh" |
|
30 #include "MPSettingsProxySettingItemList.h" |
|
31 #include "MPSettingsModelForROP.h" |
|
32 #include "mpxlog.h" |
|
33 |
|
34 // CONSTANTS |
|
35 const TInt KMPSettProxyHostListItemId = 1; |
|
36 const TInt KMPSettProxyPortListItemId = 2; |
|
37 const TInt KMPSettProxyHostMaxLength = 1000; |
|
38 |
|
39 // ============================ MEMBER FUNCTIONS =============================== |
|
40 |
|
41 // ----------------------------------------------------------------------------- |
|
42 // CMPSettingsProxySettingItemList::CMPSettingsProxySettingItemList |
|
43 // C++ default constructor can NOT contain any code, that |
|
44 // might leave. |
|
45 // ----------------------------------------------------------------------------- |
|
46 // |
|
47 CMPSettingsProxySettingItemList::CMPSettingsProxySettingItemList(CMPSettingsModelForROP* aModel) |
|
48 : iModel( aModel), iProxyHostPtr(NULL, 0) |
|
49 { |
|
50 MPX_DEBUG1(_L("#MS# CMPSettingsProxySettingItemList::CMPSettingsProxySettingItemList()")); |
|
51 } |
|
52 |
|
53 // ----------------------------------------------------------------------------- |
|
54 // CMPSettingsProxySettingItemList::ConstructFromResourceL |
|
55 // ----------------------------------------------------------------------------- |
|
56 // |
|
57 void CMPSettingsProxySettingItemList::ConstructFromResourceL(TInt aResourceId) |
|
58 { |
|
59 MPX_DEBUG2(_L("#MS# CMPSettingsProxySettingItemList::ConstructFromResourceL(0x%X)"),aResourceId); |
|
60 TResourceReader reader; |
|
61 iCoeEnv->CreateResourceReaderLC(reader, aResourceId); |
|
62 ConstructFromResourceL(reader); |
|
63 CleanupStack::PopAndDestroy(); // reader |
|
64 } |
|
65 |
|
66 // ----------------------------------------------------------------------------- |
|
67 // CMPSettingsProxySettingItemList::ConstructFromResourceL |
|
68 // ----------------------------------------------------------------------------- |
|
69 // |
|
70 void CMPSettingsProxySettingItemList::ConstructFromResourceL(TResourceReader& aReader) |
|
71 { |
|
72 MPX_DEBUG1(_L("#MS# CMPSettingsProxySettingItemList::ConstructFromResourceL()")); |
|
73 LoadAllL(); |
|
74 CAknSettingItemList::ConstructFromResourceL(aReader); |
|
75 SetItemVisibilityL(); |
|
76 } |
|
77 |
|
78 // ----------------------------------------------------------------------------- |
|
79 // CMPSettingsProxySettingItemList::~CMPSettingsProxySettingItemList |
|
80 // Destructor |
|
81 // ----------------------------------------------------------------------------- |
|
82 // |
|
83 CMPSettingsProxySettingItemList::~CMPSettingsProxySettingItemList() |
|
84 { |
|
85 MPX_DEBUG1(_L("#MS# CMPSettingsProxySettingItemList::~CMPSettingsProxySettingItemList()")); |
|
86 if (iProxyHost) |
|
87 { |
|
88 delete iProxyHost; |
|
89 } |
|
90 } |
|
91 |
|
92 // ----------------------------------------------------------------------------- |
|
93 // CMPSettingsProxySettingItemList::EditItemL |
|
94 // ----------------------------------------------------------------------------- |
|
95 // |
|
96 void CMPSettingsProxySettingItemList::EditItemL(TInt aIndex, TBool aCalledFromMenu) |
|
97 { |
|
98 MPX_DEBUG3(_L("#MS# CMPSettingsProxySettingItemList::EditItemL(%d,%d)"),aIndex,aCalledFromMenu); |
|
99 CAknSettingItem* settingItem = SettingItemArray()->At(aIndex); |
|
100 TInt identifier = settingItem->Identifier(); |
|
101 |
|
102 // Load current value from settings model |
|
103 // LoadSettingL(identifier); |
|
104 // settingItem->LoadL(); |
|
105 |
|
106 // Call base call's method |
|
107 CAknSettingItemList::EditItemL(aIndex, aCalledFromMenu); |
|
108 |
|
109 // Store setting value to settings model |
|
110 settingItem->StoreL(); |
|
111 StoreSettingL(identifier); |
|
112 |
|
113 // Hide/unhide Proxy port & Proxy host settings according to Proxy mode. |
|
114 if (identifier == EMPSettProxyModeSettingId) |
|
115 { |
|
116 SetItemVisibilityL(); |
|
117 } |
|
118 } |
|
119 |
|
120 // ----------------------------------------------------------------------------- |
|
121 // CMPSettingsProxySettingItemList::CreateSettingItemL |
|
122 // ----------------------------------------------------------------------------- |
|
123 // |
|
124 CAknSettingItem* CMPSettingsProxySettingItemList::CreateSettingItemL(TInt aSettingId) |
|
125 { |
|
126 MPX_DEBUG2(_L("#MS# CMPSettingsProxySettingItemList::CreateSettingItemL(%d)"),aSettingId); |
|
127 __ASSERT_DEBUG(iProxyHost, User::Leave(KErrAbort)); |
|
128 |
|
129 CAknSettingItem* settingItem = NULL; |
|
130 |
|
131 switch (aSettingId) |
|
132 { |
|
133 case EMPSettProxyModeSettingId: |
|
134 settingItem = new(ELeave) CAknBinaryPopupSettingItem(aSettingId, iProxyMode); |
|
135 break; |
|
136 case EMPSettProxyHostSettingId: |
|
137 { |
|
138 settingItem = new(ELeave) CAknTextSettingItem(aSettingId, iProxyHostPtr); |
|
139 settingItem->SetSettingPageFlags(CAknTextSettingPage::EZeroLengthAllowed); |
|
140 break; |
|
141 } |
|
142 case EMPSettProxyPortSettingId: |
|
143 settingItem = new(ELeave) CAknIntegerEdwinSettingItem(aSettingId, iProxyPort); |
|
144 break; |
|
145 default: |
|
146 break; |
|
147 } |
|
148 |
|
149 return settingItem; |
|
150 } |
|
151 |
|
152 // ----------------------------------------------------------------------------- |
|
153 // CMPSettingsProxySettingItemList::SetItemVisibilityL |
|
154 // ----------------------------------------------------------------------------- |
|
155 // |
|
156 void CMPSettingsProxySettingItemList::SetItemVisibilityL() |
|
157 { |
|
158 MPX_DEBUG2(_L("#MS# CMPSettingsProxySettingItemList::SetItemVisibilityL() iProxyMode(%d)"),iProxyMode); |
|
159 if (iProxyMode) |
|
160 { |
|
161 SettingItemArray()->At(KMPSettProxyHostListItemId)->SetHidden(EFalse); |
|
162 SettingItemArray()->At(KMPSettProxyPortListItemId)->SetHidden(EFalse); |
|
163 } |
|
164 else |
|
165 { |
|
166 SettingItemArray()->At(KMPSettProxyHostListItemId)->SetHidden(ETrue); |
|
167 SettingItemArray()->At(KMPSettProxyPortListItemId)->SetHidden(ETrue); |
|
168 } |
|
169 |
|
170 HandleChangeInItemArrayOrVisibilityL(); |
|
171 } |
|
172 |
|
173 // ----------------------------------------------------------------------------- |
|
174 // CMPSettingsProxySettingItemList::LoadAllL |
|
175 // ----------------------------------------------------------------------------- |
|
176 // |
|
177 void CMPSettingsProxySettingItemList::LoadAllL() |
|
178 { |
|
179 MPX_DEBUG1(_L("#MS# CMPSettingsProxySettingItemList::LoadAllL()")); |
|
180 iModel->LoadSettingsL(EConfigUser); |
|
181 LoadSettingL(EMPSettProxyModeSettingId); |
|
182 LoadSettingL(EMPSettProxyHostSettingId); |
|
183 LoadSettingL(EMPSettProxyPortSettingId); |
|
184 } |
|
185 |
|
186 // ----------------------------------------------------------------------------- |
|
187 // CMPSettingsProxySettingItemList::LoadSettingL |
|
188 // ----------------------------------------------------------------------------- |
|
189 // |
|
190 void CMPSettingsProxySettingItemList::LoadSettingL(TInt aSettingId) |
|
191 { |
|
192 MPX_DEBUG2(_L("#MS# CMPSettingsProxySettingItemList::LoadSettingL(%d)"),aSettingId); |
|
193 switch (aSettingId) |
|
194 { |
|
195 case EMPSettProxyModeSettingId: |
|
196 iModel->GetProxyMode(iProxyMode); |
|
197 break; |
|
198 case EMPSettProxyHostSettingId: |
|
199 { |
|
200 if (!iProxyHost) |
|
201 { |
|
202 iProxyHost = HBufC::NewL(KMPSettProxyHostMaxLength); |
|
203 iProxyHostPtr.Set(iProxyHost->Des()); |
|
204 } |
|
205 |
|
206 iModel->GetProxyHostName(iProxyHostPtr); |
|
207 break; |
|
208 } |
|
209 case EMPSettProxyPortSettingId: |
|
210 iModel->GetProxyPort(iProxyPort); |
|
211 break; |
|
212 default: |
|
213 break; |
|
214 } |
|
215 } |
|
216 |
|
217 // ----------------------------------------------------------------------------- |
|
218 // CMPSettingsProxySettingItemList::StoreSettingL |
|
219 // ----------------------------------------------------------------------------- |
|
220 // |
|
221 void CMPSettingsProxySettingItemList::StoreSettingL(TInt aSettingId) |
|
222 { |
|
223 MPX_DEBUG2(_L("#MS# CMPSettingsProxySettingItemList::StoreSettingL(%d)"),aSettingId); |
|
224 switch (aSettingId) |
|
225 { |
|
226 case EMPSettProxyModeSettingId: |
|
227 iModel->SetProxyMode(iProxyMode); |
|
228 break; |
|
229 case EMPSettProxyHostSettingId: |
|
230 iModel->SetProxyHostNameL(*iProxyHost); |
|
231 break; |
|
232 case EMPSettProxyPortSettingId: |
|
233 iModel->SetProxyPort(iProxyPort); |
|
234 break; |
|
235 default: |
|
236 break; |
|
237 } |
|
238 |
|
239 iModel->StoreSettingsL(); |
|
240 } |
|
241 |
|
242 |
|
243 // End of File |