Merge lp:~mhrheaume/indicator-network/bug-736886 into lp:~indicator-applet-developers/indicator-network/indicator-network

Proposed by Matthew Rheaume
Status: Rejected
Rejected by: Ted Gould
Proposed branch: lp:~mhrheaume/indicator-network/bug-736886
Merge into: lp:~indicator-applet-developers/indicator-network/indicator-network
Diff against target: 352 lines (+159/-40)
2 files modified
src/settings/frontend/widgets/dialogs/edit-connection.vala (+107/-34)
src/settings/ui/edit_connection_dialog.ui (+52/-6)
To merge this branch: bzr merge lp:~mhrheaume/indicator-network/bug-736886
Reviewer Review Type Date Requested Status
Indicator Network Developers Pending
Review via email: mp+75557@code.launchpad.net

Description of the change

Added manual/automatic comboboxes to DNS tab of edit connection dialog (LP: #736886).

To post a comment you must log in.
Revision history for this message
Ted Gould (ted) wrote :

I'm sorry, we're no longer working on this branch of indicator-network and have rebooted the project with the current lp:indicator-network. I'm going to mark this as "rejected", not because it's bad, but because I am trying to clean up the merge queue so that we don't miss things in the future. I'm sorry your patch didn't get applied.

Unmerged revisions

181. By Matthew Rheaume

Added automatic/manual comboboxes to DNS tab of edit connection (LP: #736886)

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'src/settings/frontend/widgets/dialogs/edit-connection.vala'
2--- src/settings/frontend/widgets/dialogs/edit-connection.vala 2011-03-24 11:36:55 +0000
3+++ src/settings/frontend/widgets/dialogs/edit-connection.vala 2011-09-15 14:38:13 +0000
4@@ -27,6 +27,11 @@
5 PAGE_DNS = 5,
6 }
7
8+private enum DNSMethod {
9+ MANUAL = 0,
10+ AUTO = 1,
11+}
12+
13 public class EditConnectionDialog : GLib.Object {
14
15 public signal void response(int type);
16@@ -66,8 +71,12 @@
17 private Gtk.TreeIter ipv6_manual_iter;
18 private Gtk.TreeIter ipv6_auto_iter;
19
20+ /* dns */
21+ private Gtk.ComboBox combobox_dns_method;
22 private Gtk.Entry entry_nameservers;
23 private Gtk.Entry entry_domains;
24+ private Gtk.TreeIter dns_manual_iter;
25+ private Gtk.TreeIter dns_auto_iter;
26
27 private Gtk.Notebook notebook_sections;
28 // private NotebookPage pages[];
29@@ -206,6 +215,23 @@
30 store.append(out iter);
31 store.set(iter, 0, Connman.IPv6Method.AUTO, 1, "Auto");
32 this.ipv6_auto_iter = iter;
33+
34+ /* dns combobox */
35+ store = new Gtk.ListStore(2, typeof(int), typeof(string));
36+
37+ this.combobox_dns_method.model = store;
38+
39+ cell = new Gtk.CellRendererText();
40+ this.combobox_dns_method.pack_start(cell, false);
41+ this.combobox_dns_method.set_attributes(cell, "text", 1);
42+
43+ store.append(out iter);
44+ store.set(iter, 0, DNSMethod.MANUAL, 1, "Manual");
45+ this.dns_manual_iter = iter;
46+
47+ store.append(out iter);
48+ store.set(iter, 0, DNSMethod.AUTO, 1, "Auto");
49+ this.dns_auto_iter = iter;
50 }
51
52 private void get_widgets() {
53@@ -251,6 +277,8 @@
54 /* dns */
55 this.entry_nameservers = b.get_object("entry_nameservers") as Gtk.Entry;
56 this.entry_domains = b.get_object("entry_domains") as Gtk.Entry;
57+ this.combobox_dns_method = b.get_object("combobox_dns_method")
58+ as Gtk.ComboBox;
59
60 this.notebook_sections = b.get_object("notebook_sections") as Gtk.Notebook;
61 }
62@@ -260,6 +288,7 @@
63 this.button_cancel.clicked.connect(this.on_button_cancel_clicked);
64 this.combobox_ipv4_method.changed.connect(ipv4_method_changed);
65 this.combobox_ipv6_method.changed.connect(ipv6_method_changed);
66+ this.combobox_dns_method.changed.connect(dns_method_changed);
67 }
68
69 private void ipv4_method_changed(Gtk.ComboBox box) {
70@@ -316,6 +345,30 @@
71 }
72 }
73
74+ private void dns_method_changed(Gtk.ComboBox box) {
75+ Gtk.TreeIter iter;
76+ Gtk.ListStore store;
77+ DNSMethod method;
78+
79+ if (this.combobox_dns_method.get_active_iter(out iter) == false)
80+ return;
81+
82+ store = this.combobox_dns_method.model as Gtk.ListStore;
83+ store.get(iter, 0, out method);
84+
85+ switch (method) {
86+ case DNSMethod.MANUAL:
87+ this.entry_nameservers.sensitive = true;
88+ this.entry_domains.sensitive = true;
89+ break;
90+ case DNSMethod.AUTO:
91+ default:
92+ this.entry_nameservers.sensitive = false;
93+ this.entry_domains.sensitive = false;
94+ break;
95+ }
96+ }
97+
98 private void update_mode() {
99 string mode = "";
100
101@@ -469,38 +522,64 @@
102 }
103 }
104
105- private void update_nameservers() {
106- string s = string.joinv(" ", this.connection.get_nameservers_configuration());
107- this.entry_nameservers.set_text(s);
108- }
109-
110- private void save_nameservers() {
111- string[] array = this.entry_nameservers.get_text().split(" ");
112- string[] servers = null;
113-
114- foreach (var server in array) {
115- servers += server.strip();
116+ private void update_dns() {
117+ Gtk.TreeIter iter;
118+
119+ string ns = string.joinv(" ", this.connection.get_nameservers_configuration());
120+ string d = string.joinv(" ", this.connection.get_domains_configuration());
121+
122+ this.entry_nameservers.set_text(ns);
123+ this.entry_domains.set_text(d);
124+
125+ if ((GLib.strcmp(ns, "") == 0) && (GLib.strcmp(d, "") == 0)) {
126+ iter = this.dns_auto_iter;
127+ } else {
128+ iter = this.dns_manual_iter;
129 }
130
131- this.connection.set_nameservers_configuration(servers);
132- }
133-
134- private void update_domains() {
135- string s = string.joinv(" ", this.connection.get_domains_configuration());
136- this.entry_domains.set_text(s);
137- }
138-
139- private void save_domains() {
140- string[] array = this.entry_domains.get_text().split(" ");
141+ this.combobox_dns_method.set_active_iter(iter);
142+ }
143+
144+ private void save_dns() {
145+ Gtk.TreeIter iter;
146+ Gtk.ListStore store;
147+ DNSMethod method;
148+
149+ string[] narray = this.entry_nameservers.get_text().split(" ");
150+ string[] darray = this.entry_domains.get_text().split(" ");
151+
152+ string[] nameservers = null;
153 string[] domains = null;
154
155- foreach (var server in array) {
156+ if (this.combobox_dns_method.get_active_iter(out iter) == false) {
157+ this.connection.set_nameservers_configuration(nameservers);
158+ this.connection.set_domains_configuration(domains);
159+ }
160+
161+ store = this.combobox_dns_method.model as Gtk.ListStore;
162+ store.get(iter, 0, out method);
163+
164+ // if using auto method, save nameservers as "" and domains as ""
165+ if (method == DNSMethod.AUTO) {
166+ this.connection.set_nameservers_configuration(nameservers);
167+ this.connection.set_domains_configuration(domains);
168+ return;
169+ }
170+
171+ foreach(var server in narray) {
172+ nameservers += server.strip();
173+ }
174+
175+ foreach(var server in darray) {
176 domains += server.strip();
177 }
178
179+ this.connection.set_nameservers_configuration(nameservers);
180 this.connection.set_domains_configuration(domains);
181 }
182
183+
184+
185 private void update_widget_values() {
186 switch (this.connection.get_service_type()) {
187 case Connman.ServiceType.WIFI:
188@@ -511,24 +590,21 @@
189 update_passphrase();
190 update_ipv4();
191 update_ipv6();
192- update_nameservers();
193- update_domains();
194+ update_dns();
195 break;
196 case Connman.ServiceType.ETHERNET:
197 update_name();
198 update_autoconnect();
199 update_ipv4();
200 update_ipv6();
201- update_nameservers();
202- update_domains();
203+ update_dns();
204 break;
205 case Connman.ServiceType.BLUETOOTH:
206 update_name();
207 update_autoconnect();
208 update_ipv4();
209 update_ipv6();
210- update_nameservers();
211- update_domains();
212+ update_dns();
213 break;
214 }
215 }
216@@ -540,22 +616,19 @@
217 save_passphrase();
218 save_ipv4();
219 save_ipv6();
220- save_nameservers();
221- save_domains();
222+ save_dns();
223 break;
224 case Connman.ServiceType.ETHERNET:
225 save_autoconnect();
226 save_ipv4();
227 save_ipv6();
228- save_nameservers();
229- save_domains();
230+ save_dns();
231 break;
232 case Connman.ServiceType.BLUETOOTH:
233 save_autoconnect();
234 save_ipv4();
235 save_ipv6();
236- save_nameservers();
237- save_domains();
238+ save_dns();
239 break;
240 }
241 }
242
243=== modified file 'src/settings/ui/edit_connection_dialog.ui'
244--- src/settings/ui/edit_connection_dialog.ui 2011-03-24 11:36:55 +0000
245+++ src/settings/ui/edit_connection_dialog.ui 2011-09-15 14:38:13 +0000
246@@ -517,17 +517,30 @@
247 <child>
248 <object class="GtkTable" id="table_dns">
249 <property name="visible">True</property>
250- <property name="n_rows">2</property>
251+ <property name="n_rows">3</property>
252 <property name="n_columns">2</property>
253 <property name="column_spacing">6</property>
254 <property name="row_spacing">6</property>
255 <child>
256+ <object class="GtkLabel" id="label14">
257+ <property name="visible">True</property>
258+ <property name="xalign">1</property>
259+ <property name="label" translatable="yes">Mode:</property>
260+ </object>
261+ <packing>
262+ <property name="x_options">GTK_FILL</property>
263+ <property name="y_options">GTK_FILL</property>
264+ </packing>
265+ </child>
266+ <child>
267 <object class="GtkLabel" id="label6">
268 <property name="visible">True</property>
269 <property name="xalign">1</property>
270- <property name="label" translatable="yes">Namerservers:</property>
271+ <property name="label" translatable="yes">Nameservers:</property>
272 </object>
273 <packing>
274+ <property name="top_attach">1</property>
275+ <property name="bottom_attach">2</property>
276 <property name="x_options">GTK_FILL</property>
277 <property name="y_options">GTK_FILL</property>
278 </packing>
279@@ -539,8 +552,8 @@
280 <property name="label" translatable="yes">Domain names:</property>
281 </object>
282 <packing>
283- <property name="top_attach">1</property>
284- <property name="bottom_attach">2</property>
285+ <property name="top_attach">2</property>
286+ <property name="bottom_attach">3</property>
287 <property name="x_options">GTK_FILL</property>
288 <property name="y_options">GTK_FILL</property>
289 </packing>
290@@ -554,6 +567,8 @@
291 <packing>
292 <property name="left_attach">1</property>
293 <property name="right_attach">2</property>
294+ <property name="top_attach">1</property>
295+ <property name="bottom_attach">2</property>
296 <property name="y_options">GTK_FILL</property>
297 </packing>
298 </child>
299@@ -566,8 +581,18 @@
300 <packing>
301 <property name="left_attach">1</property>
302 <property name="right_attach">2</property>
303- <property name="top_attach">1</property>
304- <property name="bottom_attach">2</property>
305+ <property name="top_attach">2</property>
306+ <property name="bottom_attach">3</property>
307+ <property name="y_options">GTK_FILL</property>
308+ </packing>
309+ </child>
310+ <child>
311+ <object class="GtkComboBox" id="combobox_dns_method">
312+ <property name="visible">True</property>
313+ </object>
314+ <packing>
315+ <property name="left_attach">1</property>
316+ <property name="right_attach">2</property>
317 <property name="y_options">GTK_FILL</property>
318 </packing>
319 </child>
320@@ -684,6 +709,19 @@
321 </row>
322 </data>
323 </object>
324+ <object class="GtkListStore" id="liststore_dns_method">
325+ <columns>
326+ <column type="gchararray"/>
327+ </columns>
328+ <data>
329+ <row>
330+ <col id="0" translatable="yes">AUTO</col>
331+ </row>
332+ <row>
333+ <col id="0" translatable="yes">MANUAL</col>
334+ </row>
335+ </data>
336+ </object>
337 <object class="GtkSizeGroup" id="sizegroup_wireless">
338 <property name="mode">vertical</property>
339 <widgets>
340@@ -710,4 +748,12 @@
341 <widget name="combobox_ipv6_method"/>
342 </widgets>
343 </object>
344+ <object class="GtkSizeGroup" id="sizegroup_dns">
345+ <property name="mode">vertical</property>
346+ <widgets>
347+ <widget name="entry_nameservers"/>
348+ <widget name="entry_domains"/>
349+ <widget name="combobox_dns_method"/>
350+ </widgets>
351+ </object>
352 </interface>

Subscribers

People subscribed via source and target branches