summaryrefslogtreecommitdiff
authorbenmeyer <benmeyer>2002-10-18 14:28:42 (UTC)
committer benmeyer <benmeyer>2002-10-18 14:28:42 (UTC)
commit88b3a159060ed7057bfee4cc1ccfcf81a63a4780 (patch) (unidiff)
tree3dd78d403f337c73bb3ca9d75ef0a29f2adae9b6
parent461113126af82cd6343eedab36ecabb4253780ee (diff)
downloadopie-88b3a159060ed7057bfee4cc1ccfcf81a63a4780.zip
opie-88b3a159060ed7057bfee4cc1ccfcf81a63a4780.tar.gz
opie-88b3a159060ed7057bfee4cc1ccfcf81a63a4780.tar.bz2
More profile stuff works
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/net/networksetup/TODO8
-rw-r--r--noncore/net/networksetup/interfaceadvanced.ui4
-rw-r--r--noncore/net/networksetup/interfaceinformation.ui6
-rw-r--r--noncore/net/networksetup/interfaceinformationimp.cpp3
-rw-r--r--noncore/net/networksetup/interfaces.cpp17
-rw-r--r--noncore/net/networksetup/interfaces.h2
-rw-r--r--noncore/net/networksetup/interfacesetup.ui97
-rw-r--r--noncore/net/networksetup/interfacesetupimp.cpp39
-rw-r--r--noncore/net/networksetup/interfacesetupimp.h5
-rw-r--r--noncore/net/networksetup/mainwindow.ui18
-rw-r--r--noncore/net/networksetup/mainwindowimp.cpp89
-rw-r--r--noncore/net/networksetup/wlan/wlanimp.cpp1
-rw-r--r--noncore/net/networksetup/wlan/wlanmodule.cpp2
-rw-r--r--noncore/settings/networksettings/TODO8
-rw-r--r--noncore/settings/networksettings/interfaceadvanced.ui4
-rw-r--r--noncore/settings/networksettings/interfaceinformation.ui6
-rw-r--r--noncore/settings/networksettings/interfaceinformationimp.cpp3
-rw-r--r--noncore/settings/networksettings/interfaces.cpp17
-rw-r--r--noncore/settings/networksettings/interfaces.h2
-rw-r--r--noncore/settings/networksettings/interfacesetup.ui97
-rw-r--r--noncore/settings/networksettings/interfacesetupimp.cpp39
-rw-r--r--noncore/settings/networksettings/interfacesetupimp.h5
-rw-r--r--noncore/settings/networksettings/mainwindow.ui18
-rw-r--r--noncore/settings/networksettings/mainwindowimp.cpp89
-rw-r--r--noncore/settings/networksettings/wlan/wlanimp.cpp1
-rw-r--r--noncore/settings/networksettings/wlan/wlanmodule.cpp2
26 files changed, 310 insertions, 272 deletions
diff --git a/noncore/net/networksetup/TODO b/noncore/net/networksetup/TODO
index c8e2989..c587f58 100644
--- a/noncore/net/networksetup/TODO
+++ b/noncore/net/networksetup/TODO
@@ -1,10 +1,6 @@
1Write a class that parses /proc and not ifconfig 1Write a class that parses /proc and not ifconfig
2WLAN needs to be re-written to not use Config
3remove WLAN Config item
2 4
3[ ] Wlanmodule needs to check if an interface supports wireless 5[ ] Wlanmodule needs to check if an interface supports wireless
4 extensions. 6 extensions.
5[x] When you set options in wlanmodule, hit OK, it exits all of
6 networksetup, doesnt bring you back to the main screen.
7[x] Wlanmodule isnt writing out wireless.opts
8[ ] Need a means of bringing an interface up and down (calling
9 out ifup/ifdown) from the gui.
10 -Ben- Click information, then click up or down... :-D
diff --git a/noncore/net/networksetup/interfaceadvanced.ui b/noncore/net/networksetup/interfaceadvanced.ui
index efe67b0..0ec67c2 100644
--- a/noncore/net/networksetup/interfaceadvanced.ui
+++ b/noncore/net/networksetup/interfaceadvanced.ui
@@ -18,7 +18,7 @@
18 <property stdset="1"> 18 <property stdset="1">
19 <name>maximumSize</name> 19 <name>maximumSize</name>
20 <size> 20 <size>
21 <width>320</width> 21 <width>240</width>
22 <height>32767</height> 22 <height>32767</height>
23 </size> 23 </size>
24 </property> 24 </property>
@@ -189,7 +189,7 @@
189 <class>QGroupBox</class> 189 <class>QGroupBox</class>
190 <property stdset="1"> 190 <property stdset="1">
191 <name>name</name> 191 <name>name</name>
192 <cstring>GroupBox2</cstring> 192 <cstring>dhcpInformation</cstring>
193 </property> 193 </property>
194 <property stdset="1"> 194 <property stdset="1">
195 <name>title</name> 195 <name>title</name>
diff --git a/noncore/net/networksetup/interfaceinformation.ui b/noncore/net/networksetup/interfaceinformation.ui
index 76af19c..fc99fce 100644
--- a/noncore/net/networksetup/interfaceinformation.ui
+++ b/noncore/net/networksetup/interfaceinformation.ui
@@ -11,8 +11,8 @@
11 <rect> 11 <rect>
12 <x>0</x> 12 <x>0</x>
13 <y>0</y> 13 <y>0</y>
14 <width>199</width> 14 <width>219</width>
15 <height>244</height> 15 <height>255</height>
16 </rect> 16 </rect>
17 </property> 17 </property>
18 <property stdset="1"> 18 <property stdset="1">
@@ -333,6 +333,8 @@
333 <data format="XPM.GZ" length="646">789c6dd2c10ac2300c00d07bbf2234b7229d1be245fc04c5a3201e4615f430059d0711ff5ddb2e6bb236ec90eed134cb5a19d8ef36602af5ecdbfeeac05dda0798d3abebde87e3faa374d3807fa0d633a52d38d8de6f679fe33fc776e196f53cd010188256a3600a292882096246517815ca99884606e18044a3a40d91824820924265a7923a2e8bcd05f33db1173e002913175f2a6be6d3294871a2d95fa00e8a94ee017b69d339d90df1e77c57ea072ede6758</data> 333 <data format="XPM.GZ" length="646">789c6dd2c10ac2300c00d07bbf2234b7229d1be245fc04c5a3201e4615f430059d0711ff5ddb2e6bb236ec90eed134cb5a19d8ef36602af5ecdbfeeac05dda0798d3abebde87e3faa374d3807fa0d633a52d38d8de6f679fe33fc776e196f53cd010188256a3600a292882096246517815ca99884606e18044a3a40d91824820924265a7923a2e8bcd05f33db1173e002913175f2a6be6d3294871a2d95fa00e8a94ee017b69d339d90df1e77c57ea072ede6758</data>
334 </image> 334 </image>
335</images> 335</images>
336<connections>
337</connections>
336<tabstops> 338<tabstops>
337 <tabstop>startButton</tabstop> 339 <tabstop>startButton</tabstop>
338 <tabstop>stopButton</tabstop> 340 <tabstop>stopButton</tabstop>
diff --git a/noncore/net/networksetup/interfaceinformationimp.cpp b/noncore/net/networksetup/interfaceinformationimp.cpp
index 59a6400..43483fb 100644
--- a/noncore/net/networksetup/interfaceinformationimp.cpp
+++ b/noncore/net/networksetup/interfaceinformationimp.cpp
@@ -3,6 +3,7 @@
3 3
4#include <qpushbutton.h> 4#include <qpushbutton.h>
5#include <qlabel.h> 5#include <qlabel.h>
6#include <qgroupbox.h>
6#include <assert.h> 7#include <assert.h>
7 8
8/** 9/**
@@ -59,6 +60,8 @@ void InterfaceInformationImp::advanced(){
59 a->dhcpServerLabel->setText(interface->getDhcpServerIp()); 60 a->dhcpServerLabel->setText(interface->getDhcpServerIp());
60 a->leaseObtainedLabel->setText(interface->getLeaseObtained()); 61 a->leaseObtainedLabel->setText(interface->getLeaseObtained());
61 a->leaseExpiresLabel->setText(interface->getLeaseExpires()); 62 a->leaseExpiresLabel->setText(interface->getLeaseExpires());
63 a->dhcpInformation->setEnabled(interface->isDhcp());
64
62 a->showMaximized(); 65 a->showMaximized();
63 a->show(); 66 a->show();
64} 67}
diff --git a/noncore/net/networksetup/interfaces.cpp b/noncore/net/networksetup/interfaces.cpp
index 1287d90..eef42df 100644
--- a/noncore/net/networksetup/interfaces.cpp
+++ b/noncore/net/networksetup/interfaces.cpp
@@ -345,9 +345,9 @@ bool Interfaces::setMapping(QString interface){
345 * Adds a new Mapping to the interfaces file with interfaces. 345 * Adds a new Mapping to the interfaces file with interfaces.
346 * @param interface the name(s) of the interfaces to set to this mapping 346 * @param interface the name(s) of the interfaces to set to this mapping
347 */ 347 */
348void Interfaces::addMapping(QString interfaces){ 348void Interfaces::addMapping(QString option){
349 interfaces.append(""); 349 interfaces.append("");
350 interfaces.append(QString(MAPPING " %1").arg(interfaces)); 350 interfaces.append(QString(MAPPING " %1").arg(option));
351} 351}
352 352
353/** 353/**
@@ -404,11 +404,12 @@ bool Interfaces::setStanza(QString stanza, QString option, QStringList::Iterator
404 if(found == true){ 404 if(found == true){
405 qDebug(QString("Interfaces: Found multiple stanza's for search: %1 %2").arg(stanza).arg(option).latin1()); 405 qDebug(QString("Interfaces: Found multiple stanza's for search: %1 %2").arg(stanza).arg(option).latin1());
406 } 406 }
407 qDebug("Found");
407 found = true; 408 found = true;
408 iterator = it; 409 iterator = it;
409 } 410 }
410 } 411 }
411 return !found; 412 return found;
412} 413}
413 414
414/** 415/**
@@ -428,9 +429,10 @@ bool Interfaces::setOption(QStringList::Iterator start, QString option, QString
428 // Got to the end of the stanza without finding it, so append it. 429 // Got to the end of the stanza without finding it, so append it.
429 interfaces.insert(--it, QString("\t%1 %2").arg(option).arg(value)); 430 interfaces.insert(--it, QString("\t%1 %2").arg(option).arg(value));
430 } 431 }
432 found = true;
431 break; 433 break;
432 } 434 }
433 if((*it).contains(option)){ 435 if((*it).contains(option) && it != start){
434 // Found it in stanza so replace it. 436 // Found it in stanza so replace it.
435 if(found) 437 if(found)
436 qDebug(QString("Interfaces: Set Options found more then one value for option: %1 in stanza: %1").arg(option).arg((*start)).latin1()); 438 qDebug(QString("Interfaces: Set Options found more then one value for option: %1 in stanza: %1").arg(option).arg((*start)).latin1());
@@ -441,7 +443,12 @@ bool Interfaces::setOption(QStringList::Iterator start, QString option, QString
441 (*it) = QString("\t%1 %2").arg(option).arg(value); 443 (*it) = QString("\t%1 %2").arg(option).arg(value);
442 } 444 }
443 } 445 }
444 return true; 446 if(!found){
447 QStringList::Iterator p = start;
448 interfaces.insert(++p, QString("\t%1 %2").arg(option).arg(value));
449 found = true;
450 }
451 return found;
445} 452}
446 453
447/** 454/**
diff --git a/noncore/net/networksetup/interfaces.h b/noncore/net/networksetup/interfaces.h
index 8b4788c..e617c17 100644
--- a/noncore/net/networksetup/interfaces.h
+++ b/noncore/net/networksetup/interfaces.h
@@ -43,7 +43,7 @@ public:
43 bool removeAllInterfaceOptions(); 43 bool removeAllInterfaceOptions();
44 44
45 bool setMapping(QString interface); 45 bool setMapping(QString interface);
46 void addMapping(QString interfaces); 46 void addMapping(QString options);
47 bool setMap(QString map, QString value); 47 bool setMap(QString map, QString value);
48 QString getMap(QString map, bool &error); 48 QString getMap(QString map, bool &error);
49 bool setScript(QString); 49 bool setScript(QString);
diff --git a/noncore/net/networksetup/interfacesetup.ui b/noncore/net/networksetup/interfacesetup.ui
index 3db9a0b..c94b1be 100644
--- a/noncore/net/networksetup/interfacesetup.ui
+++ b/noncore/net/networksetup/interfacesetup.ui
@@ -11,7 +11,7 @@
11 <rect> 11 <rect>
12 <x>0</x> 12 <x>0</x>
13 <y>0</y> 13 <y>0</y>
14 <width>267</width> 14 <width>276</width>
15 <height>280</height> 15 <height>280</height>
16 </rect> 16 </rect>
17 </property> 17 </property>
@@ -43,68 +43,6 @@
43 <class>QLayoutWidget</class> 43 <class>QLayoutWidget</class>
44 <property stdset="1"> 44 <property stdset="1">
45 <name>name</name> 45 <name>name</name>
46 <cstring>Layout8</cstring>
47 </property>
48 <hbox>
49 <property stdset="1">
50 <name>margin</name>
51 <number>0</number>
52 </property>
53 <property stdset="1">
54 <name>spacing</name>
55 <number>6</number>
56 </property>
57 <widget>
58 <class>QLabel</class>
59 <property stdset="1">
60 <name>name</name>
61 <cstring>TextLabel1</cstring>
62 </property>
63 <property stdset="1">
64 <name>text</name>
65 <string>Profile</string>
66 </property>
67 </widget>
68 <widget>
69 <class>QComboBox</class>
70 <item>
71 <property>
72 <name>text</name>
73 <string>All</string>
74 </property>
75 </item>
76 <property stdset="1">
77 <name>name</name>
78 <cstring>profileCombo</cstring>
79 </property>
80 </widget>
81 <spacer>
82 <property>
83 <name>name</name>
84 <cstring>Spacer20</cstring>
85 </property>
86 <property stdset="1">
87 <name>orientation</name>
88 <enum>Horizontal</enum>
89 </property>
90 <property stdset="1">
91 <name>sizeType</name>
92 <enum>Expanding</enum>
93 </property>
94 <property>
95 <name>sizeHint</name>
96 <size>
97 <width>20</width>
98 <height>20</height>
99 </size>
100 </property>
101 </spacer>
102 </hbox>
103 </widget>
104 <widget>
105 <class>QLayoutWidget</class>
106 <property stdset="1">
107 <name>name</name>
108 <cstring>Layout9</cstring> 46 <cstring>Layout9</cstring>
109 </property> 47 </property>
110 <hbox> 48 <hbox>
@@ -154,7 +92,7 @@
154 </property> 92 </property>
155 <property stdset="1"> 93 <property stdset="1">
156 <name>maxValue</name> 94 <name>maxValue</name>
157 <number>336</number> 95 <number>87600</number>
158 </property> 96 </property>
159 <property stdset="1"> 97 <property stdset="1">
160 <name>minValue</name> 98 <name>minValue</name>
@@ -162,7 +100,7 @@
162 </property> 100 </property>
163 <property stdset="1"> 101 <property stdset="1">
164 <name>value</name> 102 <name>value</name>
165 <number>24</number> 103 <number>168</number>
166 </property> 104 </property>
167 </widget> 105 </widget>
168 </hbox> 106 </hbox>
@@ -198,13 +136,6 @@
198 <name>spacing</name> 136 <name>spacing</name>
199 <number>6</number> 137 <number>6</number>
200 </property> 138 </property>
201 <widget row="3" column="1" >
202 <class>QLineEdit</class>
203 <property stdset="1">
204 <name>name</name>
205 <cstring>firstDNSLineEdit</cstring>
206 </property>
207 </widget>
208 <widget row="1" column="0" > 139 <widget row="1" column="0" >
209 <class>QLabel</class> 140 <class>QLabel</class>
210 <property stdset="1"> 141 <property stdset="1">
@@ -248,13 +179,6 @@
248 <string>First DNS</string> 179 <string>First DNS</string>
249 </property> 180 </property>
250 </widget> 181 </widget>
251 <widget row="4" column="1" >
252 <class>QLineEdit</class>
253 <property stdset="1">
254 <name>name</name>
255 <cstring>secondDNSLineEdit</cstring>
256 </property>
257 </widget>
258 <widget row="0" column="0" > 182 <widget row="0" column="0" >
259 <class>QLabel</class> 183 <class>QLabel</class>
260 <property stdset="1"> 184 <property stdset="1">
@@ -288,6 +212,20 @@
288 <string>Second DNS</string> 212 <string>Second DNS</string>
289 </property> 213 </property>
290 </widget> 214 </widget>
215 <widget row="3" column="1" >
216 <class>QLineEdit</class>
217 <property stdset="1">
218 <name>name</name>
219 <cstring>firstDNSLineEdit</cstring>
220 </property>
221 </widget>
222 <widget row="4" column="1" >
223 <class>QLineEdit</class>
224 <property stdset="1">
225 <name>name</name>
226 <cstring>secondDNSLineEdit</cstring>
227 </property>
228 </widget>
291 </grid> 229 </grid>
292 </widget> 230 </widget>
293 <spacer> 231 <spacer>
@@ -335,7 +273,6 @@
335</connections> 273</connections>
336<tabstops> 274<tabstops>
337 <tabstop>autoStart</tabstop> 275 <tabstop>autoStart</tabstop>
338 <tabstop>profileCombo</tabstop>
339 <tabstop>dhcpCheckBox</tabstop> 276 <tabstop>dhcpCheckBox</tabstop>
340 <tabstop>leaseTime</tabstop> 277 <tabstop>leaseTime</tabstop>
341 <tabstop>ipAddressEdit</tabstop> 278 <tabstop>ipAddressEdit</tabstop>
diff --git a/noncore/net/networksetup/interfacesetupimp.cpp b/noncore/net/networksetup/interfacesetupimp.cpp
index 951aeee..c16d821 100644
--- a/noncore/net/networksetup/interfacesetupimp.cpp
+++ b/noncore/net/networksetup/interfacesetupimp.cpp
@@ -22,7 +22,6 @@ InterfaceSetupImp::InterfaceSetupImp(QWidget* parent, const char* name, Interfac
22 assert(i); 22 assert(i);
23 interface = i; 23 interface = i;
24 interfaces = new Interfaces(); 24 interfaces = new Interfaces();
25 changeProfile(profileCombo->currentText());
26 bool error = false; 25 bool error = false;
27 if(interfaces->getInterfaceMethod(error) == INTERFACES_LOOPBACK){ 26 if(interfaces->getInterfaceMethod(error) == INTERFACES_LOOPBACK){
28 staticGroupBox->hide(); 27 staticGroupBox->hide();
@@ -30,7 +29,6 @@ InterfaceSetupImp::InterfaceSetupImp(QWidget* parent, const char* name, Interfac
30 leaseTime->hide(); 29 leaseTime->hide();
31 leaseHoursLabel->hide(); 30 leaseHoursLabel->hide();
32 } 31 }
33 connect(profileCombo, SIGNAL(highlighted(const QString &)), this, SLOT(changeProfile(const QString &)));
34} 32}
35 33
36/** 34/**
@@ -90,35 +88,34 @@ bool InterfaceSetupImp::saveSettings(){
90 * The Profile has changed. 88 * The Profile has changed.
91 * @profile the new profile. 89 * @profile the new profile.
92 */ 90 */
93void InterfaceSetupImp::changeProfile(const QString &profile){ 91void InterfaceSetupImp::setProfile(const QString &profile){
94 QString newInterfaceName; 92 QString newInterfaceName = interface->getInterfaceName() + profile;
95 if(profile.lower() == "all")
96 newInterfaceName = interface->getInterfaceName();
97 else
98 newInterfaceName = interface->getInterfaceName() + "_" + profile;
99 if(newInterfaceName == currentInterfaceName)
100 return;
101 else{
102 saveSettings();
103 currentInterfaceName = newInterfaceName;
104 }
105 bool error = interfaces->setInterface(currentInterfaceName);
106 93
107 // See if we have to make a interface. 94 // See if we have to make a interface.
108 if(error){ 95 if(!interfaces->setInterface(newInterfaceName)){
109 qDebug("InterfaceSetupImp: Adding a new interface from profile change."); 96 interfaces->addInterface(newInterfaceName, INTERFACES_FAMILY_INET, INTERFACES_METHOD_DHCP);
110 interfaces->addInterface(currentInterfaceName, INTERFACES_FAMILY_INET, INTERFACES_METHOD_DHCP); 97 if(!interfaces->setInterface(newInterfaceName)){
111 error = interfaces->setInterface(currentInterfaceName);
112 if(error){
113 qDebug("InterfaceSetupImp: Added interface, but still can't set."); 98 qDebug("InterfaceSetupImp: Added interface, but still can't set.");
114 return; 99 return;
115 } 100 }
101 // Add making for this new interface if need too
102 if(profile != ""){
103 if(!interfaces->setMapping(interface->getInterfaceName())){
104 interfaces->addMapping(interface->getInterfaceName());
105 if(!interfaces->setMapping(interface->getInterfaceName())){
106 qDebug("InterfaceSetupImp: Added Mapping, but still can't set.");
107 return;
108 }
109 }
110 interfaces->setScript("getprofile.sh");
111 interfaces->setMap("map", newInterfaceName);
112 }
116 } 113 }
117 114
118 //qDebug( currentInterfaceName.latin1() );
119 // We must have a valid interface to get this far so read some settings. 115 // We must have a valid interface to get this far so read some settings.
120 116
121 // DHCP 117 // DHCP
118 bool error = false;
122 if(interfaces->getInterfaceMethod(error) == INTERFACES_METHOD_DHCP) 119 if(interfaces->getInterfaceMethod(error) == INTERFACES_METHOD_DHCP)
123 dhcpCheckBox->setChecked(true); 120 dhcpCheckBox->setChecked(true);
124 else 121 else
diff --git a/noncore/net/networksetup/interfacesetupimp.h b/noncore/net/networksetup/interfacesetupimp.h
index 6c34718..7df0d46 100644
--- a/noncore/net/networksetup/interfacesetupimp.h
+++ b/noncore/net/networksetup/interfacesetupimp.h
@@ -14,13 +14,14 @@ public:
14 14
15protected slots: 15protected slots:
16 void accept(); 16 void accept();
17 void changeProfile(const QString &profile); 17
18public slots:
19 void setProfile(const QString &profile);
18 20
19private: 21private:
20 bool saveSettings(); 22 bool saveSettings();
21 Interfaces *interfaces; 23 Interfaces *interfaces;
22 Interface *interface; 24 Interface *interface;
23 QString currentInterfaceName;
24 25
25}; 26};
26 27
diff --git a/noncore/net/networksetup/mainwindow.ui b/noncore/net/networksetup/mainwindow.ui
index bea999b..3d30994 100644
--- a/noncore/net/networksetup/mainwindow.ui
+++ b/noncore/net/networksetup/mainwindow.ui
@@ -11,7 +11,7 @@
11 <rect> 11 <rect>
12 <x>0</x> 12 <x>0</x>
13 <y>0</y> 13 <y>0</y>
14 <width>230</width> 14 <width>240</width>
15 <height>289</height> 15 <height>289</height>
16 </rect> 16 </rect>
17 </property> 17 </property>
@@ -61,7 +61,7 @@
61 <column> 61 <column>
62 <property> 62 <property>
63 <name>text</name> 63 <name>text</name>
64 <string>i</string> 64 <string>s</string>
65 </property> 65 </property>
66 <property> 66 <property>
67 <name>clickable</name> 67 <name>clickable</name>
@@ -103,6 +103,20 @@
103 <column> 103 <column>
104 <property> 104 <property>
105 <name>text</name> 105 <name>text</name>
106 <string>in</string>
107 </property>
108 <property>
109 <name>clickable</name>
110 <bool>true</bool>
111 </property>
112 <property>
113 <name>resizeable</name>
114 <bool>true</bool>
115 </property>
116 </column>
117 <column>
118 <property>
119 <name>text</name>
106 <string>IP</string> 120 <string>IP</string>
107 </property> 121 </property>
108 <property> 122 <property>
diff --git a/noncore/net/networksetup/mainwindowimp.cpp b/noncore/net/networksetup/mainwindowimp.cpp
index a446d29..3c0af6a 100644
--- a/noncore/net/networksetup/mainwindowimp.cpp
+++ b/noncore/net/networksetup/mainwindowimp.cpp
@@ -32,6 +32,7 @@
32#define TEMP_ALL "/tmp/ifconfig-a" 32#define TEMP_ALL "/tmp/ifconfig-a"
33#define TEMP_UP "/tmp/ifconfig" 33#define TEMP_UP "/tmp/ifconfig"
34 34
35#define SCHEME "/var/lib/pcmcia/scheme"
35MainWindowImp::MainWindowImp(QWidget *parent, const char *name) : MainWindow(parent, name, true), advancedUserMode(false){ 36MainWindowImp::MainWindowImp(QWidget *parent, const char *name) : MainWindow(parent, name, true), advancedUserMode(false){
36 connect(addConnectionButton, SIGNAL(clicked()), this, SLOT(addClicked())); 37 connect(addConnectionButton, SIGNAL(clicked()), this, SLOT(addClicked()));
37 connect(removeConnectionButton, SIGNAL(clicked()), this, SLOT(removeClicked())); 38 connect(removeConnectionButton, SIGNAL(clicked()), this, SLOT(removeClicked()));
@@ -53,7 +54,22 @@ MainWindowImp::MainWindowImp(QWidget *parent, const char *name) : MainWindow(par
53 profiles = QStringList::split(" ", cfg.readEntry("Profiles", "All")); 54 profiles = QStringList::split(" ", cfg.readEntry("Profiles", "All"));
54 for ( QStringList::Iterator it = profiles.begin(); it != profiles.end(); ++it) 55 for ( QStringList::Iterator it = profiles.begin(); it != profiles.end(); ++it)
55 profilesList->insertItem((*it)); 56 profilesList->insertItem((*it));
57 currentProfileLabel->setText(cfg.readEntry("CurrentProfile", "All"));
56 advancedUserMode = cfg.readBoolEntry("AdvancedUserMode", false); 58 advancedUserMode = cfg.readBoolEntry("AdvancedUserMode", false);
59
60 QFile file(SCHEME);
61 if ( file.open(IO_ReadOnly) ) { // file opened successfully
62 QTextStream stream( &file ); // use a text stream
63 while ( !stream.eof() ) { // until end of file...
64 QString line = stream.readLine(); // line of text excluding '\n'
65 if(line.contains("SCHEME")){
66 line = line.mid(7, line.length());
67 currentProfileLabel->setText(line);
68 break;
69 }
70 }
71 file.close();
72 }
57} 73}
58 74
59/** 75/**
@@ -61,11 +77,10 @@ MainWindowImp::MainWindowImp(QWidget *parent, const char *name) : MainWindow(par
61 */ 77 */
62MainWindowImp::~MainWindowImp(){ 78MainWindowImp::~MainWindowImp(){
63 // Save profiles. 79 // Save profiles.
64 if(profiles.count() > 1){ 80 Config cfg("NetworkSetup");
65 Config cfg("NetworkSetup"); 81 cfg.setGroup("General");
66 cfg.setGroup("General"); 82 cfg.writeEntry("Profiles", profiles.join(" "));
67 cfg.writeEntry("Profiles", profiles.join(" ")); 83
68 }
69 // Delete Modules and Libraries 84 // Delete Modules and Libraries
70 QMap<Module*, QLibrary*>::Iterator it; 85 QMap<Module*, QLibrary*>::Iterator it;
71 for( it = libraries.begin(); it != libraries.end(); ++it ){ 86 for( it = libraries.begin(); it != libraries.end(); ++it ){
@@ -205,15 +220,23 @@ void MainWindowImp::configureClicked(){
205 QMessageBox::information(this, "Error","Please select an interface.", QMessageBox::Ok); 220 QMessageBox::information(this, "Error","Please select an interface.", QMessageBox::Ok);
206 return; 221 return;
207 } 222 }
208 223
224 QString currentProfile = currentProfileLabel->text();
225 if(profilesList->count() <= 1 || currentProfile == "All"){
226 currentProfile = "";
227 }
228
209 Interface *i = interfaceItems[item]; 229 Interface *i = interfaceItems[item];
210 if(i->getModuleOwner()){ 230 if(i->getModuleOwner()){
231 i->getModuleOwner()->setProfile(currentProfileLabel->text());
211 QTabWidget *tabWidget = NULL; 232 QTabWidget *tabWidget = NULL;
212 QWidget *moduleConfigure = i->getModuleOwner()->configure(&tabWidget); 233 QWidget *moduleConfigure = i->getModuleOwner()->configure(&tabWidget);
213 if(moduleConfigure != NULL){ 234 if(moduleConfigure != NULL){
214 if(tabWidget != NULL){ 235 if(tabWidget != NULL){
215 InterfaceSetupImp *configure = new InterfaceSetupImp(tabWidget, "InterfaceSetupImp", i, true); 236 InterfaceSetupImp *configure = new InterfaceSetupImp(tabWidget, "InterfaceSetupImp", i, true);
216 tabWidget->insertTab(configure, "TCP/IP"); 237 configure->setProfile(currentProfileLabel->text());
238 tabWidget->insertTab(configure, "TCP/IP");
239
217 } 240 }
218 moduleConfigure->showMaximized(); 241 moduleConfigure->showMaximized();
219 moduleConfigure->show(); 242 moduleConfigure->show();
@@ -222,6 +245,7 @@ void MainWindowImp::configureClicked(){
222 } 245 }
223 246
224 InterfaceSetupImp *configure = new InterfaceSetupImp(0, "InterfaceSetupImp", i, true); 247 InterfaceSetupImp *configure = new InterfaceSetupImp(0, "InterfaceSetupImp", i, true);
248 configure->setProfile(currentProfileLabel->text());
225 configure->showMaximized(); 249 configure->showMaximized();
226 configure->show(); 250 configure->show();
227} 251}
@@ -244,6 +268,12 @@ void MainWindowImp::informationClicked(){
244 QMessageBox::information(this, "Error","No information about\na disconnected interface.", QMessageBox::Ok); 268 QMessageBox::information(this, "Error","No information about\na disconnected interface.", QMessageBox::Ok);
245 return; 269 return;
246 } 270 }
271
272 QStringList list;
273 for(uint i = 0; i < profilesList->count(); i++){
274 list.append(profilesList->text(i));
275 }
276
247 if(i->getModuleOwner()){ 277 if(i->getModuleOwner()){
248 QTabWidget *tabWidget = NULL; 278 QTabWidget *tabWidget = NULL;
249 QWidget *moduleInformation = i->getModuleOwner()->information(&tabWidget); 279 QWidget *moduleInformation = i->getModuleOwner()->information(&tabWidget);
@@ -320,7 +350,7 @@ void MainWindowImp::jobDone(KProcess *process){
320 if(macAddress == -1) 350 if(macAddress == -1)
321 macAddress = line.length(); 351 macAddress = line.length();
322 if(hardwareName != -1) 352 if(hardwareName != -1)
323 i->setHardwareName(line.mid(hardwareName+11, macAddress-(hardwareName+11)) + QString(" (%1)").arg(i->getInterfaceName())); 353 i->setHardwareName(line.mid(hardwareName+11, macAddress-(hardwareName+11)) );
324 354
325 interfaceNames.insert(i->getInterfaceName(), i); 355 interfaceNames.insert(i->getInterfaceName(), i);
326 updateInterface(i); 356 updateInterface(i);
@@ -349,7 +379,7 @@ void MainWindowImp::jobDone(KProcess *process){
349 if(!found){ 379 if(!found){
350 Interface *i = new Interface(this, *ni, false); 380 Interface *i = new Interface(this, *ni, false);
351 i->setAttached(false); 381 i->setAttached(false);
352 i->setHardwareName(QString("Disconnected (%1)").arg(*ni)); 382 i->setHardwareName("Disconnected");
353 interfaceNames.insert(i->getInterfaceName(), i); 383 interfaceNames.insert(i->getInterfaceName(), i);
354 updateInterface(i); 384 updateInterface(i);
355 connect(i, SIGNAL(updateInterface(Interface *)), this, SLOT(updateInterface(Interface *))); 385 connect(i, SIGNAL(updateInterface(Interface *)), this, SLOT(updateInterface(Interface *)));
@@ -406,7 +436,8 @@ void MainWindowImp::updateInterface(Interface *i){
406 436
407 item->setPixmap(1, (Resource::loadPixmap(typeName))); 437 item->setPixmap(1, (Resource::loadPixmap(typeName)));
408 item->setText(2, i->getHardwareName()); 438 item->setText(2, i->getHardwareName());
409 item->setText(3, (i->getStatus()) ? i->getIp() : QString("")); 439 item->setText(3, QString("(%1)").arg(i->getInterfaceName()));
440 item->setText(4, (i->getStatus()) ? i->getIp() : QString(""));
410} 441}
411 442
412void MainWindowImp::newProfileChanged(const QString& newText){ 443void MainWindowImp::newProfileChanged(const QString& newText){
@@ -437,17 +468,27 @@ void MainWindowImp::addProfile(){
437 */ 468 */
438void MainWindowImp::removeProfile(){ 469void MainWindowImp::removeProfile(){
439 if(profilesList->count() <= 1){ 470 if(profilesList->count() <= 1){
440 QMessageBox::information(this, "Can't remove anything.","Need One Profile.", "Ok"); 471 QMessageBox::information(this, "Can't remove.","At least one profile\nis needed.", "Ok");
441 return; 472 return;
442 } 473 }
443 QString profileToRemove = profilesList->currentText(); 474 QString profileToRemove = profilesList->currentText();
475 if(profileToRemove == "All"){
476 QMessageBox::information(this, "Can't remove.","Can't remove default.", "Ok");
477 return;
478 }
479 // Can't remove the curent profile
480 if(profileToRemove == currentProfileLabel->text()){
481 QMessageBox::information(this, "Can't remove.",QString("%1 is the current profile.").arg(profileToRemove), "Ok");
482 return;
483
484 }
485
444 if(QMessageBox::information(this, "Question",QString("Remove profile: %1").arg(profileToRemove), QMessageBox::Ok, QMessageBox::Cancel) == QMessageBox::Ok){ 486 if(QMessageBox::information(this, "Question",QString("Remove profile: %1").arg(profileToRemove), QMessageBox::Ok, QMessageBox::Cancel) == QMessageBox::Ok){
445 profiles = QStringList::split(" ", profiles.join(" ").replace(QRegExp(profileToRemove), "")); 487 profiles = QStringList::split(" ", profiles.join(" ").replace(QRegExp(profileToRemove), ""));
446 profilesList->clear(); 488 profilesList->clear();
447 for ( QStringList::Iterator it = profiles.begin(); it != profiles.end(); ++it) 489 for ( QStringList::Iterator it = profiles.begin(); it != profiles.end(); ++it)
448 profilesList->insertItem((*it)); 490 profilesList->insertItem((*it));
449 } 491 }
450
451} 492}
452 493
453/** 494/**
@@ -455,7 +496,29 @@ void MainWindowImp::removeProfile(){
455 * @param newProfile the new profile. 496 * @param newProfile the new profile.
456 */ 497 */
457void MainWindowImp::changeProfile(){ 498void MainWindowImp::changeProfile(){
458 currentProfileLabel->setText(profilesList->text(profilesList->currentItem())); 499 if(profilesList->currentItem() == -1){
500 QMessageBox::information(this, "Can't Change.","Please select a profile.", "Ok");
501 return;
502 }
503 QString newProfile = profilesList->text(profilesList->currentItem());
504 if(newProfile != currentProfileLabel->text()){
505 currentProfileLabel->setText(newProfile);
506 QFile file(SCHEME);
507 if ( file.open(IO_ReadWrite) ) {
508 QTextStream stream( &file );
509 stream << QString("SCHEME=%1").arg(newProfile);
510 file.close();
511 }
512 // restart all up devices?
513 if(QMessageBox::information(this, "Question","Restart all running interfaces?", QMessageBox::Ok, QMessageBox::No) == QMessageBox::Ok){
514 // Go through them one by one
515 QMap<Interface*, QListViewItem*>::Iterator it;
516 for( it = items.begin(); it != items.end(); ++it ){
517 if(it.key()->getStatus() == true)
518 it.key()->restart();
519 }
520 }
521 }
459} 522}
460 523
461// mainwindowimp.cpp 524// mainwindowimp.cpp
diff --git a/noncore/net/networksetup/wlan/wlanimp.cpp b/noncore/net/networksetup/wlan/wlanimp.cpp
index 74eef5f..517604f 100644
--- a/noncore/net/networksetup/wlan/wlanimp.cpp
+++ b/noncore/net/networksetup/wlan/wlanimp.cpp
@@ -97,7 +97,6 @@ bool WLANImp::writeConfig()
97 config.writeEntry( "dot11WEPDefaultKey2", keyLineEdit2->text() ); 97 config.writeEntry( "dot11WEPDefaultKey2", keyLineEdit2->text() );
98 config.writeEntry( "dot11WEPDefaultKey3", keyLineEdit3->text() ); 98 config.writeEntry( "dot11WEPDefaultKey3", keyLineEdit3->text() );
99 return writeWirelessOpts( config ); 99 return writeWirelessOpts( config );
100// return true;
101} 100}
102 101
103/** 102/**
diff --git a/noncore/net/networksetup/wlan/wlanmodule.cpp b/noncore/net/networksetup/wlan/wlanmodule.cpp
index 9d34d75..53b5857 100644
--- a/noncore/net/networksetup/wlan/wlanmodule.cpp
+++ b/noncore/net/networksetup/wlan/wlanmodule.cpp
@@ -32,7 +32,7 @@ QString WLANModule::getPixmapName(Interface* ){
32 */ 32 */
33bool WLANModule::isOwner(Interface *i){ 33bool WLANModule::isOwner(Interface *i){
34 if(i->getInterfaceName() == "eth0" || i->getInterfaceName() == "wlan0"){ 34 if(i->getInterfaceName() == "eth0" || i->getInterfaceName() == "wlan0"){
35 i->setHardwareName(QString("802.11b (%1)").arg(i->getInterfaceName())); 35 i->setHardwareName("802.11b");
36 return true; 36 return true;
37 } 37 }
38 return false; 38 return false;
diff --git a/noncore/settings/networksettings/TODO b/noncore/settings/networksettings/TODO
index c8e2989..c587f58 100644
--- a/noncore/settings/networksettings/TODO
+++ b/noncore/settings/networksettings/TODO
@@ -1,10 +1,6 @@
1Write a class that parses /proc and not ifconfig 1Write a class that parses /proc and not ifconfig
2WLAN needs to be re-written to not use Config
3remove WLAN Config item
2 4
3[ ] Wlanmodule needs to check if an interface supports wireless 5[ ] Wlanmodule needs to check if an interface supports wireless
4 extensions. 6 extensions.
5[x] When you set options in wlanmodule, hit OK, it exits all of
6 networksetup, doesnt bring you back to the main screen.
7[x] Wlanmodule isnt writing out wireless.opts
8[ ] Need a means of bringing an interface up and down (calling
9 out ifup/ifdown) from the gui.
10 -Ben- Click information, then click up or down... :-D
diff --git a/noncore/settings/networksettings/interfaceadvanced.ui b/noncore/settings/networksettings/interfaceadvanced.ui
index efe67b0..0ec67c2 100644
--- a/noncore/settings/networksettings/interfaceadvanced.ui
+++ b/noncore/settings/networksettings/interfaceadvanced.ui
@@ -18,7 +18,7 @@
18 <property stdset="1"> 18 <property stdset="1">
19 <name>maximumSize</name> 19 <name>maximumSize</name>
20 <size> 20 <size>
21 <width>320</width> 21 <width>240</width>
22 <height>32767</height> 22 <height>32767</height>
23 </size> 23 </size>
24 </property> 24 </property>
@@ -189,7 +189,7 @@
189 <class>QGroupBox</class> 189 <class>QGroupBox</class>
190 <property stdset="1"> 190 <property stdset="1">
191 <name>name</name> 191 <name>name</name>
192 <cstring>GroupBox2</cstring> 192 <cstring>dhcpInformation</cstring>
193 </property> 193 </property>
194 <property stdset="1"> 194 <property stdset="1">
195 <name>title</name> 195 <name>title</name>
diff --git a/noncore/settings/networksettings/interfaceinformation.ui b/noncore/settings/networksettings/interfaceinformation.ui
index 76af19c..fc99fce 100644
--- a/noncore/settings/networksettings/interfaceinformation.ui
+++ b/noncore/settings/networksettings/interfaceinformation.ui
@@ -11,8 +11,8 @@
11 <rect> 11 <rect>
12 <x>0</x> 12 <x>0</x>
13 <y>0</y> 13 <y>0</y>
14 <width>199</width> 14 <width>219</width>
15 <height>244</height> 15 <height>255</height>
16 </rect> 16 </rect>
17 </property> 17 </property>
18 <property stdset="1"> 18 <property stdset="1">
@@ -333,6 +333,8 @@
333 <data format="XPM.GZ" length="646">789c6dd2c10ac2300c00d07bbf2234b7229d1be245fc04c5a3201e4615f430059d0711ff5ddb2e6bb236ec90eed134cb5a19d8ef36602af5ecdbfeeac05dda0798d3abebde87e3faa374d3807fa0d633a52d38d8de6f679fe33fc776e196f53cd010188256a3600a292882096246517815ca99884606e18044a3a40d91824820924265a7923a2e8bcd05f33db1173e002913175f2a6be6d3294871a2d95fa00e8a94ee017b69d339d90df1e77c57ea072ede6758</data> 333 <data format="XPM.GZ" length="646">789c6dd2c10ac2300c00d07bbf2234b7229d1be245fc04c5a3201e4615f430059d0711ff5ddb2e6bb236ec90eed134cb5a19d8ef36602af5ecdbfeeac05dda0798d3abebde87e3faa374d3807fa0d633a52d38d8de6f679fe33fc776e196f53cd010188256a3600a292882096246517815ca99884606e18044a3a40d91824820924265a7923a2e8bcd05f33db1173e002913175f2a6be6d3294871a2d95fa00e8a94ee017b69d339d90df1e77c57ea072ede6758</data>
334 </image> 334 </image>
335</images> 335</images>
336<connections>
337</connections>
336<tabstops> 338<tabstops>
337 <tabstop>startButton</tabstop> 339 <tabstop>startButton</tabstop>
338 <tabstop>stopButton</tabstop> 340 <tabstop>stopButton</tabstop>
diff --git a/noncore/settings/networksettings/interfaceinformationimp.cpp b/noncore/settings/networksettings/interfaceinformationimp.cpp
index 59a6400..43483fb 100644
--- a/noncore/settings/networksettings/interfaceinformationimp.cpp
+++ b/noncore/settings/networksettings/interfaceinformationimp.cpp
@@ -3,6 +3,7 @@
3 3
4#include <qpushbutton.h> 4#include <qpushbutton.h>
5#include <qlabel.h> 5#include <qlabel.h>
6#include <qgroupbox.h>
6#include <assert.h> 7#include <assert.h>
7 8
8/** 9/**
@@ -59,6 +60,8 @@ void InterfaceInformationImp::advanced(){
59 a->dhcpServerLabel->setText(interface->getDhcpServerIp()); 60 a->dhcpServerLabel->setText(interface->getDhcpServerIp());
60 a->leaseObtainedLabel->setText(interface->getLeaseObtained()); 61 a->leaseObtainedLabel->setText(interface->getLeaseObtained());
61 a->leaseExpiresLabel->setText(interface->getLeaseExpires()); 62 a->leaseExpiresLabel->setText(interface->getLeaseExpires());
63 a->dhcpInformation->setEnabled(interface->isDhcp());
64
62 a->showMaximized(); 65 a->showMaximized();
63 a->show(); 66 a->show();
64} 67}
diff --git a/noncore/settings/networksettings/interfaces.cpp b/noncore/settings/networksettings/interfaces.cpp
index 1287d90..eef42df 100644
--- a/noncore/settings/networksettings/interfaces.cpp
+++ b/noncore/settings/networksettings/interfaces.cpp
@@ -345,9 +345,9 @@ bool Interfaces::setMapping(QString interface){
345 * Adds a new Mapping to the interfaces file with interfaces. 345 * Adds a new Mapping to the interfaces file with interfaces.
346 * @param interface the name(s) of the interfaces to set to this mapping 346 * @param interface the name(s) of the interfaces to set to this mapping
347 */ 347 */
348void Interfaces::addMapping(QString interfaces){ 348void Interfaces::addMapping(QString option){
349 interfaces.append(""); 349 interfaces.append("");
350 interfaces.append(QString(MAPPING " %1").arg(interfaces)); 350 interfaces.append(QString(MAPPING " %1").arg(option));
351} 351}
352 352
353/** 353/**
@@ -404,11 +404,12 @@ bool Interfaces::setStanza(QString stanza, QString option, QStringList::Iterator
404 if(found == true){ 404 if(found == true){
405 qDebug(QString("Interfaces: Found multiple stanza's for search: %1 %2").arg(stanza).arg(option).latin1()); 405 qDebug(QString("Interfaces: Found multiple stanza's for search: %1 %2").arg(stanza).arg(option).latin1());
406 } 406 }
407 qDebug("Found");
407 found = true; 408 found = true;
408 iterator = it; 409 iterator = it;
409 } 410 }
410 } 411 }
411 return !found; 412 return found;
412} 413}
413 414
414/** 415/**
@@ -428,9 +429,10 @@ bool Interfaces::setOption(QStringList::Iterator start, QString option, QString
428 // Got to the end of the stanza without finding it, so append it. 429 // Got to the end of the stanza without finding it, so append it.
429 interfaces.insert(--it, QString("\t%1 %2").arg(option).arg(value)); 430 interfaces.insert(--it, QString("\t%1 %2").arg(option).arg(value));
430 } 431 }
432 found = true;
431 break; 433 break;
432 } 434 }
433 if((*it).contains(option)){ 435 if((*it).contains(option) && it != start){
434 // Found it in stanza so replace it. 436 // Found it in stanza so replace it.
435 if(found) 437 if(found)
436 qDebug(QString("Interfaces: Set Options found more then one value for option: %1 in stanza: %1").arg(option).arg((*start)).latin1()); 438 qDebug(QString("Interfaces: Set Options found more then one value for option: %1 in stanza: %1").arg(option).arg((*start)).latin1());
@@ -441,7 +443,12 @@ bool Interfaces::setOption(QStringList::Iterator start, QString option, QString
441 (*it) = QString("\t%1 %2").arg(option).arg(value); 443 (*it) = QString("\t%1 %2").arg(option).arg(value);
442 } 444 }
443 } 445 }
444 return true; 446 if(!found){
447 QStringList::Iterator p = start;
448 interfaces.insert(++p, QString("\t%1 %2").arg(option).arg(value));
449 found = true;
450 }
451 return found;
445} 452}
446 453
447/** 454/**
diff --git a/noncore/settings/networksettings/interfaces.h b/noncore/settings/networksettings/interfaces.h
index 8b4788c..e617c17 100644
--- a/noncore/settings/networksettings/interfaces.h
+++ b/noncore/settings/networksettings/interfaces.h
@@ -43,7 +43,7 @@ public:
43 bool removeAllInterfaceOptions(); 43 bool removeAllInterfaceOptions();
44 44
45 bool setMapping(QString interface); 45 bool setMapping(QString interface);
46 void addMapping(QString interfaces); 46 void addMapping(QString options);
47 bool setMap(QString map, QString value); 47 bool setMap(QString map, QString value);
48 QString getMap(QString map, bool &error); 48 QString getMap(QString map, bool &error);
49 bool setScript(QString); 49 bool setScript(QString);
diff --git a/noncore/settings/networksettings/interfacesetup.ui b/noncore/settings/networksettings/interfacesetup.ui
index 3db9a0b..c94b1be 100644
--- a/noncore/settings/networksettings/interfacesetup.ui
+++ b/noncore/settings/networksettings/interfacesetup.ui
@@ -11,7 +11,7 @@
11 <rect> 11 <rect>
12 <x>0</x> 12 <x>0</x>
13 <y>0</y> 13 <y>0</y>
14 <width>267</width> 14 <width>276</width>
15 <height>280</height> 15 <height>280</height>
16 </rect> 16 </rect>
17 </property> 17 </property>
@@ -43,68 +43,6 @@
43 <class>QLayoutWidget</class> 43 <class>QLayoutWidget</class>
44 <property stdset="1"> 44 <property stdset="1">
45 <name>name</name> 45 <name>name</name>
46 <cstring>Layout8</cstring>
47 </property>
48 <hbox>
49 <property stdset="1">
50 <name>margin</name>
51 <number>0</number>
52 </property>
53 <property stdset="1">
54 <name>spacing</name>
55 <number>6</number>
56 </property>
57 <widget>
58 <class>QLabel</class>
59 <property stdset="1">
60 <name>name</name>
61 <cstring>TextLabel1</cstring>
62 </property>
63 <property stdset="1">
64 <name>text</name>
65 <string>Profile</string>
66 </property>
67 </widget>
68 <widget>
69 <class>QComboBox</class>
70 <item>
71 <property>
72 <name>text</name>
73 <string>All</string>
74 </property>
75 </item>
76 <property stdset="1">
77 <name>name</name>
78 <cstring>profileCombo</cstring>
79 </property>
80 </widget>
81 <spacer>
82 <property>
83 <name>name</name>
84 <cstring>Spacer20</cstring>
85 </property>
86 <property stdset="1">
87 <name>orientation</name>
88 <enum>Horizontal</enum>
89 </property>
90 <property stdset="1">
91 <name>sizeType</name>
92 <enum>Expanding</enum>
93 </property>
94 <property>
95 <name>sizeHint</name>
96 <size>
97 <width>20</width>
98 <height>20</height>
99 </size>
100 </property>
101 </spacer>
102 </hbox>
103 </widget>
104 <widget>
105 <class>QLayoutWidget</class>
106 <property stdset="1">
107 <name>name</name>
108 <cstring>Layout9</cstring> 46 <cstring>Layout9</cstring>
109 </property> 47 </property>
110 <hbox> 48 <hbox>
@@ -154,7 +92,7 @@
154 </property> 92 </property>
155 <property stdset="1"> 93 <property stdset="1">
156 <name>maxValue</name> 94 <name>maxValue</name>
157 <number>336</number> 95 <number>87600</number>
158 </property> 96 </property>
159 <property stdset="1"> 97 <property stdset="1">
160 <name>minValue</name> 98 <name>minValue</name>
@@ -162,7 +100,7 @@
162 </property> 100 </property>
163 <property stdset="1"> 101 <property stdset="1">
164 <name>value</name> 102 <name>value</name>
165 <number>24</number> 103 <number>168</number>
166 </property> 104 </property>
167 </widget> 105 </widget>
168 </hbox> 106 </hbox>
@@ -198,13 +136,6 @@
198 <name>spacing</name> 136 <name>spacing</name>
199 <number>6</number> 137 <number>6</number>
200 </property> 138 </property>
201 <widget row="3" column="1" >
202 <class>QLineEdit</class>
203 <property stdset="1">
204 <name>name</name>
205 <cstring>firstDNSLineEdit</cstring>
206 </property>
207 </widget>
208 <widget row="1" column="0" > 139 <widget row="1" column="0" >
209 <class>QLabel</class> 140 <class>QLabel</class>
210 <property stdset="1"> 141 <property stdset="1">
@@ -248,13 +179,6 @@
248 <string>First DNS</string> 179 <string>First DNS</string>
249 </property> 180 </property>
250 </widget> 181 </widget>
251 <widget row="4" column="1" >
252 <class>QLineEdit</class>
253 <property stdset="1">
254 <name>name</name>
255 <cstring>secondDNSLineEdit</cstring>
256 </property>
257 </widget>
258 <widget row="0" column="0" > 182 <widget row="0" column="0" >
259 <class>QLabel</class> 183 <class>QLabel</class>
260 <property stdset="1"> 184 <property stdset="1">
@@ -288,6 +212,20 @@
288 <string>Second DNS</string> 212 <string>Second DNS</string>
289 </property> 213 </property>
290 </widget> 214 </widget>
215 <widget row="3" column="1" >
216 <class>QLineEdit</class>
217 <property stdset="1">
218 <name>name</name>
219 <cstring>firstDNSLineEdit</cstring>
220 </property>
221 </widget>
222 <widget row="4" column="1" >
223 <class>QLineEdit</class>
224 <property stdset="1">
225 <name>name</name>
226 <cstring>secondDNSLineEdit</cstring>
227 </property>
228 </widget>
291 </grid> 229 </grid>
292 </widget> 230 </widget>
293 <spacer> 231 <spacer>
@@ -335,7 +273,6 @@
335</connections> 273</connections>
336<tabstops> 274<tabstops>
337 <tabstop>autoStart</tabstop> 275 <tabstop>autoStart</tabstop>
338 <tabstop>profileCombo</tabstop>
339 <tabstop>dhcpCheckBox</tabstop> 276 <tabstop>dhcpCheckBox</tabstop>
340 <tabstop>leaseTime</tabstop> 277 <tabstop>leaseTime</tabstop>
341 <tabstop>ipAddressEdit</tabstop> 278 <tabstop>ipAddressEdit</tabstop>
diff --git a/noncore/settings/networksettings/interfacesetupimp.cpp b/noncore/settings/networksettings/interfacesetupimp.cpp
index 951aeee..c16d821 100644
--- a/noncore/settings/networksettings/interfacesetupimp.cpp
+++ b/noncore/settings/networksettings/interfacesetupimp.cpp
@@ -22,7 +22,6 @@ InterfaceSetupImp::InterfaceSetupImp(QWidget* parent, const char* name, Interfac
22 assert(i); 22 assert(i);
23 interface = i; 23 interface = i;
24 interfaces = new Interfaces(); 24 interfaces = new Interfaces();
25 changeProfile(profileCombo->currentText());
26 bool error = false; 25 bool error = false;
27 if(interfaces->getInterfaceMethod(error) == INTERFACES_LOOPBACK){ 26 if(interfaces->getInterfaceMethod(error) == INTERFACES_LOOPBACK){
28 staticGroupBox->hide(); 27 staticGroupBox->hide();
@@ -30,7 +29,6 @@ InterfaceSetupImp::InterfaceSetupImp(QWidget* parent, const char* name, Interfac
30 leaseTime->hide(); 29 leaseTime->hide();
31 leaseHoursLabel->hide(); 30 leaseHoursLabel->hide();
32 } 31 }
33 connect(profileCombo, SIGNAL(highlighted(const QString &)), this, SLOT(changeProfile(const QString &)));
34} 32}
35 33
36/** 34/**
@@ -90,35 +88,34 @@ bool InterfaceSetupImp::saveSettings(){
90 * The Profile has changed. 88 * The Profile has changed.
91 * @profile the new profile. 89 * @profile the new profile.
92 */ 90 */
93void InterfaceSetupImp::changeProfile(const QString &profile){ 91void InterfaceSetupImp::setProfile(const QString &profile){
94 QString newInterfaceName; 92 QString newInterfaceName = interface->getInterfaceName() + profile;
95 if(profile.lower() == "all")
96 newInterfaceName = interface->getInterfaceName();
97 else
98 newInterfaceName = interface->getInterfaceName() + "_" + profile;
99 if(newInterfaceName == currentInterfaceName)
100 return;
101 else{
102 saveSettings();
103 currentInterfaceName = newInterfaceName;
104 }
105 bool error = interfaces->setInterface(currentInterfaceName);
106 93
107 // See if we have to make a interface. 94 // See if we have to make a interface.
108 if(error){ 95 if(!interfaces->setInterface(newInterfaceName)){
109 qDebug("InterfaceSetupImp: Adding a new interface from profile change."); 96 interfaces->addInterface(newInterfaceName, INTERFACES_FAMILY_INET, INTERFACES_METHOD_DHCP);
110 interfaces->addInterface(currentInterfaceName, INTERFACES_FAMILY_INET, INTERFACES_METHOD_DHCP); 97 if(!interfaces->setInterface(newInterfaceName)){
111 error = interfaces->setInterface(currentInterfaceName);
112 if(error){
113 qDebug("InterfaceSetupImp: Added interface, but still can't set."); 98 qDebug("InterfaceSetupImp: Added interface, but still can't set.");
114 return; 99 return;
115 } 100 }
101 // Add making for this new interface if need too
102 if(profile != ""){
103 if(!interfaces->setMapping(interface->getInterfaceName())){
104 interfaces->addMapping(interface->getInterfaceName());
105 if(!interfaces->setMapping(interface->getInterfaceName())){
106 qDebug("InterfaceSetupImp: Added Mapping, but still can't set.");
107 return;
108 }
109 }
110 interfaces->setScript("getprofile.sh");
111 interfaces->setMap("map", newInterfaceName);
112 }
116 } 113 }
117 114
118 //qDebug( currentInterfaceName.latin1() );
119 // We must have a valid interface to get this far so read some settings. 115 // We must have a valid interface to get this far so read some settings.
120 116
121 // DHCP 117 // DHCP
118 bool error = false;
122 if(interfaces->getInterfaceMethod(error) == INTERFACES_METHOD_DHCP) 119 if(interfaces->getInterfaceMethod(error) == INTERFACES_METHOD_DHCP)
123 dhcpCheckBox->setChecked(true); 120 dhcpCheckBox->setChecked(true);
124 else 121 else
diff --git a/noncore/settings/networksettings/interfacesetupimp.h b/noncore/settings/networksettings/interfacesetupimp.h
index 6c34718..7df0d46 100644
--- a/noncore/settings/networksettings/interfacesetupimp.h
+++ b/noncore/settings/networksettings/interfacesetupimp.h
@@ -14,13 +14,14 @@ public:
14 14
15protected slots: 15protected slots:
16 void accept(); 16 void accept();
17 void changeProfile(const QString &profile); 17
18public slots:
19 void setProfile(const QString &profile);
18 20
19private: 21private:
20 bool saveSettings(); 22 bool saveSettings();
21 Interfaces *interfaces; 23 Interfaces *interfaces;
22 Interface *interface; 24 Interface *interface;
23 QString currentInterfaceName;
24 25
25}; 26};
26 27
diff --git a/noncore/settings/networksettings/mainwindow.ui b/noncore/settings/networksettings/mainwindow.ui
index bea999b..3d30994 100644
--- a/noncore/settings/networksettings/mainwindow.ui
+++ b/noncore/settings/networksettings/mainwindow.ui
@@ -11,7 +11,7 @@
11 <rect> 11 <rect>
12 <x>0</x> 12 <x>0</x>
13 <y>0</y> 13 <y>0</y>
14 <width>230</width> 14 <width>240</width>
15 <height>289</height> 15 <height>289</height>
16 </rect> 16 </rect>
17 </property> 17 </property>
@@ -61,7 +61,7 @@
61 <column> 61 <column>
62 <property> 62 <property>
63 <name>text</name> 63 <name>text</name>
64 <string>i</string> 64 <string>s</string>
65 </property> 65 </property>
66 <property> 66 <property>
67 <name>clickable</name> 67 <name>clickable</name>
@@ -103,6 +103,20 @@
103 <column> 103 <column>
104 <property> 104 <property>
105 <name>text</name> 105 <name>text</name>
106 <string>in</string>
107 </property>
108 <property>
109 <name>clickable</name>
110 <bool>true</bool>
111 </property>
112 <property>
113 <name>resizeable</name>
114 <bool>true</bool>
115 </property>
116 </column>
117 <column>
118 <property>
119 <name>text</name>
106 <string>IP</string> 120 <string>IP</string>
107 </property> 121 </property>
108 <property> 122 <property>
diff --git a/noncore/settings/networksettings/mainwindowimp.cpp b/noncore/settings/networksettings/mainwindowimp.cpp
index a446d29..3c0af6a 100644
--- a/noncore/settings/networksettings/mainwindowimp.cpp
+++ b/noncore/settings/networksettings/mainwindowimp.cpp
@@ -32,6 +32,7 @@
32#define TEMP_ALL "/tmp/ifconfig-a" 32#define TEMP_ALL "/tmp/ifconfig-a"
33#define TEMP_UP "/tmp/ifconfig" 33#define TEMP_UP "/tmp/ifconfig"
34 34
35#define SCHEME "/var/lib/pcmcia/scheme"
35MainWindowImp::MainWindowImp(QWidget *parent, const char *name) : MainWindow(parent, name, true), advancedUserMode(false){ 36MainWindowImp::MainWindowImp(QWidget *parent, const char *name) : MainWindow(parent, name, true), advancedUserMode(false){
36 connect(addConnectionButton, SIGNAL(clicked()), this, SLOT(addClicked())); 37 connect(addConnectionButton, SIGNAL(clicked()), this, SLOT(addClicked()));
37 connect(removeConnectionButton, SIGNAL(clicked()), this, SLOT(removeClicked())); 38 connect(removeConnectionButton, SIGNAL(clicked()), this, SLOT(removeClicked()));
@@ -53,7 +54,22 @@ MainWindowImp::MainWindowImp(QWidget *parent, const char *name) : MainWindow(par
53 profiles = QStringList::split(" ", cfg.readEntry("Profiles", "All")); 54 profiles = QStringList::split(" ", cfg.readEntry("Profiles", "All"));
54 for ( QStringList::Iterator it = profiles.begin(); it != profiles.end(); ++it) 55 for ( QStringList::Iterator it = profiles.begin(); it != profiles.end(); ++it)
55 profilesList->insertItem((*it)); 56 profilesList->insertItem((*it));
57 currentProfileLabel->setText(cfg.readEntry("CurrentProfile", "All"));
56 advancedUserMode = cfg.readBoolEntry("AdvancedUserMode", false); 58 advancedUserMode = cfg.readBoolEntry("AdvancedUserMode", false);
59
60 QFile file(SCHEME);
61 if ( file.open(IO_ReadOnly) ) { // file opened successfully
62 QTextStream stream( &file ); // use a text stream
63 while ( !stream.eof() ) { // until end of file...
64 QString line = stream.readLine(); // line of text excluding '\n'
65 if(line.contains("SCHEME")){
66 line = line.mid(7, line.length());
67 currentProfileLabel->setText(line);
68 break;
69 }
70 }
71 file.close();
72 }
57} 73}
58 74
59/** 75/**
@@ -61,11 +77,10 @@ MainWindowImp::MainWindowImp(QWidget *parent, const char *name) : MainWindow(par
61 */ 77 */
62MainWindowImp::~MainWindowImp(){ 78MainWindowImp::~MainWindowImp(){
63 // Save profiles. 79 // Save profiles.
64 if(profiles.count() > 1){ 80 Config cfg("NetworkSetup");
65 Config cfg("NetworkSetup"); 81 cfg.setGroup("General");
66 cfg.setGroup("General"); 82 cfg.writeEntry("Profiles", profiles.join(" "));
67 cfg.writeEntry("Profiles", profiles.join(" ")); 83
68 }
69 // Delete Modules and Libraries 84 // Delete Modules and Libraries
70 QMap<Module*, QLibrary*>::Iterator it; 85 QMap<Module*, QLibrary*>::Iterator it;
71 for( it = libraries.begin(); it != libraries.end(); ++it ){ 86 for( it = libraries.begin(); it != libraries.end(); ++it ){
@@ -205,15 +220,23 @@ void MainWindowImp::configureClicked(){
205 QMessageBox::information(this, "Error","Please select an interface.", QMessageBox::Ok); 220 QMessageBox::information(this, "Error","Please select an interface.", QMessageBox::Ok);
206 return; 221 return;
207 } 222 }
208 223
224 QString currentProfile = currentProfileLabel->text();
225 if(profilesList->count() <= 1 || currentProfile == "All"){
226 currentProfile = "";
227 }
228
209 Interface *i = interfaceItems[item]; 229 Interface *i = interfaceItems[item];
210 if(i->getModuleOwner()){ 230 if(i->getModuleOwner()){
231 i->getModuleOwner()->setProfile(currentProfileLabel->text());
211 QTabWidget *tabWidget = NULL; 232 QTabWidget *tabWidget = NULL;
212 QWidget *moduleConfigure = i->getModuleOwner()->configure(&tabWidget); 233 QWidget *moduleConfigure = i->getModuleOwner()->configure(&tabWidget);
213 if(moduleConfigure != NULL){ 234 if(moduleConfigure != NULL){
214 if(tabWidget != NULL){ 235 if(tabWidget != NULL){
215 InterfaceSetupImp *configure = new InterfaceSetupImp(tabWidget, "InterfaceSetupImp", i, true); 236 InterfaceSetupImp *configure = new InterfaceSetupImp(tabWidget, "InterfaceSetupImp", i, true);
216 tabWidget->insertTab(configure, "TCP/IP"); 237 configure->setProfile(currentProfileLabel->text());
238 tabWidget->insertTab(configure, "TCP/IP");
239
217 } 240 }
218 moduleConfigure->showMaximized(); 241 moduleConfigure->showMaximized();
219 moduleConfigure->show(); 242 moduleConfigure->show();
@@ -222,6 +245,7 @@ void MainWindowImp::configureClicked(){
222 } 245 }
223 246
224 InterfaceSetupImp *configure = new InterfaceSetupImp(0, "InterfaceSetupImp", i, true); 247 InterfaceSetupImp *configure = new InterfaceSetupImp(0, "InterfaceSetupImp", i, true);
248 configure->setProfile(currentProfileLabel->text());
225 configure->showMaximized(); 249 configure->showMaximized();
226 configure->show(); 250 configure->show();
227} 251}
@@ -244,6 +268,12 @@ void MainWindowImp::informationClicked(){
244 QMessageBox::information(this, "Error","No information about\na disconnected interface.", QMessageBox::Ok); 268 QMessageBox::information(this, "Error","No information about\na disconnected interface.", QMessageBox::Ok);
245 return; 269 return;
246 } 270 }
271
272 QStringList list;
273 for(uint i = 0; i < profilesList->count(); i++){
274 list.append(profilesList->text(i));
275 }
276
247 if(i->getModuleOwner()){ 277 if(i->getModuleOwner()){
248 QTabWidget *tabWidget = NULL; 278 QTabWidget *tabWidget = NULL;
249 QWidget *moduleInformation = i->getModuleOwner()->information(&tabWidget); 279 QWidget *moduleInformation = i->getModuleOwner()->information(&tabWidget);
@@ -320,7 +350,7 @@ void MainWindowImp::jobDone(KProcess *process){
320 if(macAddress == -1) 350 if(macAddress == -1)
321 macAddress = line.length(); 351 macAddress = line.length();
322 if(hardwareName != -1) 352 if(hardwareName != -1)
323 i->setHardwareName(line.mid(hardwareName+11, macAddress-(hardwareName+11)) + QString(" (%1)").arg(i->getInterfaceName())); 353 i->setHardwareName(line.mid(hardwareName+11, macAddress-(hardwareName+11)) );
324 354
325 interfaceNames.insert(i->getInterfaceName(), i); 355 interfaceNames.insert(i->getInterfaceName(), i);
326 updateInterface(i); 356 updateInterface(i);
@@ -349,7 +379,7 @@ void MainWindowImp::jobDone(KProcess *process){
349 if(!found){ 379 if(!found){
350 Interface *i = new Interface(this, *ni, false); 380 Interface *i = new Interface(this, *ni, false);
351 i->setAttached(false); 381 i->setAttached(false);
352 i->setHardwareName(QString("Disconnected (%1)").arg(*ni)); 382 i->setHardwareName("Disconnected");
353 interfaceNames.insert(i->getInterfaceName(), i); 383 interfaceNames.insert(i->getInterfaceName(), i);
354 updateInterface(i); 384 updateInterface(i);
355 connect(i, SIGNAL(updateInterface(Interface *)), this, SLOT(updateInterface(Interface *))); 385 connect(i, SIGNAL(updateInterface(Interface *)), this, SLOT(updateInterface(Interface *)));
@@ -406,7 +436,8 @@ void MainWindowImp::updateInterface(Interface *i){
406 436
407 item->setPixmap(1, (Resource::loadPixmap(typeName))); 437 item->setPixmap(1, (Resource::loadPixmap(typeName)));
408 item->setText(2, i->getHardwareName()); 438 item->setText(2, i->getHardwareName());
409 item->setText(3, (i->getStatus()) ? i->getIp() : QString("")); 439 item->setText(3, QString("(%1)").arg(i->getInterfaceName()));
440 item->setText(4, (i->getStatus()) ? i->getIp() : QString(""));
410} 441}
411 442
412void MainWindowImp::newProfileChanged(const QString& newText){ 443void MainWindowImp::newProfileChanged(const QString& newText){
@@ -437,17 +468,27 @@ void MainWindowImp::addProfile(){
437 */ 468 */
438void MainWindowImp::removeProfile(){ 469void MainWindowImp::removeProfile(){
439 if(profilesList->count() <= 1){ 470 if(profilesList->count() <= 1){
440 QMessageBox::information(this, "Can't remove anything.","Need One Profile.", "Ok"); 471 QMessageBox::information(this, "Can't remove.","At least one profile\nis needed.", "Ok");
441 return; 472 return;
442 } 473 }
443 QString profileToRemove = profilesList->currentText(); 474 QString profileToRemove = profilesList->currentText();
475 if(profileToRemove == "All"){
476 QMessageBox::information(this, "Can't remove.","Can't remove default.", "Ok");
477 return;
478 }
479 // Can't remove the curent profile
480 if(profileToRemove == currentProfileLabel->text()){
481 QMessageBox::information(this, "Can't remove.",QString("%1 is the current profile.").arg(profileToRemove), "Ok");
482 return;
483
484 }
485
444 if(QMessageBox::information(this, "Question",QString("Remove profile: %1").arg(profileToRemove), QMessageBox::Ok, QMessageBox::Cancel) == QMessageBox::Ok){ 486 if(QMessageBox::information(this, "Question",QString("Remove profile: %1").arg(profileToRemove), QMessageBox::Ok, QMessageBox::Cancel) == QMessageBox::Ok){
445 profiles = QStringList::split(" ", profiles.join(" ").replace(QRegExp(profileToRemove), "")); 487 profiles = QStringList::split(" ", profiles.join(" ").replace(QRegExp(profileToRemove), ""));
446 profilesList->clear(); 488 profilesList->clear();
447 for ( QStringList::Iterator it = profiles.begin(); it != profiles.end(); ++it) 489 for ( QStringList::Iterator it = profiles.begin(); it != profiles.end(); ++it)
448 profilesList->insertItem((*it)); 490 profilesList->insertItem((*it));
449 } 491 }
450
451} 492}
452 493
453/** 494/**
@@ -455,7 +496,29 @@ void MainWindowImp::removeProfile(){
455 * @param newProfile the new profile. 496 * @param newProfile the new profile.
456 */ 497 */
457void MainWindowImp::changeProfile(){ 498void MainWindowImp::changeProfile(){
458 currentProfileLabel->setText(profilesList->text(profilesList->currentItem())); 499 if(profilesList->currentItem() == -1){
500 QMessageBox::information(this, "Can't Change.","Please select a profile.", "Ok");
501 return;
502 }
503 QString newProfile = profilesList->text(profilesList->currentItem());
504 if(newProfile != currentProfileLabel->text()){
505 currentProfileLabel->setText(newProfile);
506 QFile file(SCHEME);
507 if ( file.open(IO_ReadWrite) ) {
508 QTextStream stream( &file );
509 stream << QString("SCHEME=%1").arg(newProfile);
510 file.close();
511 }
512 // restart all up devices?
513 if(QMessageBox::information(this, "Question","Restart all running interfaces?", QMessageBox::Ok, QMessageBox::No) == QMessageBox::Ok){
514 // Go through them one by one
515 QMap<Interface*, QListViewItem*>::Iterator it;
516 for( it = items.begin(); it != items.end(); ++it ){
517 if(it.key()->getStatus() == true)
518 it.key()->restart();
519 }
520 }
521 }
459} 522}
460 523
461// mainwindowimp.cpp 524// mainwindowimp.cpp
diff --git a/noncore/settings/networksettings/wlan/wlanimp.cpp b/noncore/settings/networksettings/wlan/wlanimp.cpp
index 74eef5f..517604f 100644
--- a/noncore/settings/networksettings/wlan/wlanimp.cpp
+++ b/noncore/settings/networksettings/wlan/wlanimp.cpp
@@ -97,7 +97,6 @@ bool WLANImp::writeConfig()
97 config.writeEntry( "dot11WEPDefaultKey2", keyLineEdit2->text() ); 97 config.writeEntry( "dot11WEPDefaultKey2", keyLineEdit2->text() );
98 config.writeEntry( "dot11WEPDefaultKey3", keyLineEdit3->text() ); 98 config.writeEntry( "dot11WEPDefaultKey3", keyLineEdit3->text() );
99 return writeWirelessOpts( config ); 99 return writeWirelessOpts( config );
100// return true;
101} 100}
102 101
103/** 102/**
diff --git a/noncore/settings/networksettings/wlan/wlanmodule.cpp b/noncore/settings/networksettings/wlan/wlanmodule.cpp
index 9d34d75..53b5857 100644
--- a/noncore/settings/networksettings/wlan/wlanmodule.cpp
+++ b/noncore/settings/networksettings/wlan/wlanmodule.cpp
@@ -32,7 +32,7 @@ QString WLANModule::getPixmapName(Interface* ){
32 */ 32 */
33bool WLANModule::isOwner(Interface *i){ 33bool WLANModule::isOwner(Interface *i){
34 if(i->getInterfaceName() == "eth0" || i->getInterfaceName() == "wlan0"){ 34 if(i->getInterfaceName() == "eth0" || i->getInterfaceName() == "wlan0"){
35 i->setHardwareName(QString("802.11b (%1)").arg(i->getInterfaceName())); 35 i->setHardwareName("802.11b");
36 return true; 36 return true;
37 } 37 }
38 return false; 38 return false;