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
@@ -19,5 +19,5 @@
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>
@@ -190,5 +190,5 @@
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">
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
@@ -12,6 +12,6 @@
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>
@@ -334,4 +334,6 @@
334 </image> 334 </image>
335</images> 335</images>
336<connections>
337</connections>
336<tabstops> 338<tabstops>
337 <tabstop>startButton</tabstop> 339 <tabstop>startButton</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
@@ -4,4 +4,5 @@
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
@@ -60,4 +61,6 @@ void InterfaceInformationImp::advanced(){
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();
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
@@ -346,7 +346,7 @@ bool Interfaces::setMapping(QString interface){
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
@@ -405,9 +405,10 @@ bool Interfaces::setStanza(QString stanza, QString option, QStringList::Iterator
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
@@ -429,7 +430,8 @@ bool Interfaces::setOption(QStringList::Iterator start, QString option, QString
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)
@@ -442,5 +444,10 @@ bool Interfaces::setOption(QStringList::Iterator start, QString option, QString
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
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
@@ -44,5 +44,5 @@ public:
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);
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
@@ -12,5 +12,5 @@
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>
@@ -44,66 +44,4 @@
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>
@@ -155,5 +93,5 @@
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">
@@ -163,5 +101,5 @@
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>
@@ -199,11 +137,4 @@
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>
@@ -249,11 +180,4 @@
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>
@@ -289,4 +213,18 @@
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>
@@ -336,5 +274,4 @@
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>
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
@@ -23,5 +23,4 @@ InterfaceSetupImp::InterfaceSetupImp(QWidget* parent, const char* name, Interfac
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){
@@ -31,5 +30,4 @@ InterfaceSetupImp::InterfaceSetupImp(QWidget* parent, const char* name, Interfac
31 leaseHoursLabel->hide(); 30 leaseHoursLabel->hide();
32 } 31 }
33 connect(profileCombo, SIGNAL(highlighted(const QString &)), this, SLOT(changeProfile(const QString &)));
34} 32}
35 33
@@ -91,33 +89,32 @@ bool InterfaceSetupImp::saveSettings(){
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);
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
@@ -15,5 +15,7 @@ public:
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:
@@ -21,5 +23,4 @@ private:
21 Interfaces *interfaces; 23 Interfaces *interfaces;
22 Interface *interface; 24 Interface *interface;
23 QString currentInterfaceName;
24 25
25}; 26};
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
@@ -12,5 +12,5 @@
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>
@@ -62,5 +62,5 @@
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>
@@ -104,4 +104,18 @@
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>
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
@@ -33,4 +33,5 @@
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()));
@@ -54,5 +55,20 @@ MainWindowImp::MainWindowImp(QWidget *parent, const char *name) : MainWindow(par
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
@@ -62,9 +78,8 @@ MainWindowImp::MainWindowImp(QWidget *parent, const char *name) : MainWindow(par
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;
@@ -206,7 +221,13 @@ void MainWindowImp::configureClicked(){
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);
@@ -214,5 +235,7 @@ void MainWindowImp::configureClicked(){
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();
@@ -223,4 +246,5 @@ void MainWindowImp::configureClicked(){
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();
@@ -245,4 +269,10 @@ void MainWindowImp::informationClicked(){
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;
@@ -321,5 +351,5 @@ void MainWindowImp::jobDone(KProcess *process){
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);
@@ -350,5 +380,5 @@ void MainWindowImp::jobDone(KProcess *process){
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);
@@ -407,5 +437,6 @@ void MainWindowImp::updateInterface(Interface *i){
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
@@ -438,8 +469,19 @@ void MainWindowImp::addProfile(){
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), ""));
@@ -448,5 +490,4 @@ void MainWindowImp::removeProfile(){
448 profilesList->insertItem((*it)); 490 profilesList->insertItem((*it));
449 } 491 }
450
451} 492}
452 493
@@ -456,5 +497,27 @@ void MainWindowImp::removeProfile(){
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
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
@@ -98,5 +98,4 @@ bool WLANImp::writeConfig()
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
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
@@ -33,5 +33,5 @@ QString WLANModule::getPixmapName(Interface* ){
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 }
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
@@ -19,5 +19,5 @@
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>
@@ -190,5 +190,5 @@
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">
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
@@ -12,6 +12,6 @@
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>
@@ -334,4 +334,6 @@
334 </image> 334 </image>
335</images> 335</images>
336<connections>
337</connections>
336<tabstops> 338<tabstops>
337 <tabstop>startButton</tabstop> 339 <tabstop>startButton</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
@@ -4,4 +4,5 @@
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
@@ -60,4 +61,6 @@ void InterfaceInformationImp::advanced(){
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();
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
@@ -346,7 +346,7 @@ bool Interfaces::setMapping(QString interface){
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
@@ -405,9 +405,10 @@ bool Interfaces::setStanza(QString stanza, QString option, QStringList::Iterator
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
@@ -429,7 +430,8 @@ bool Interfaces::setOption(QStringList::Iterator start, QString option, QString
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)
@@ -442,5 +444,10 @@ bool Interfaces::setOption(QStringList::Iterator start, QString option, QString
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
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
@@ -44,5 +44,5 @@ public:
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);
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
@@ -12,5 +12,5 @@
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>
@@ -44,66 +44,4 @@
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>
@@ -155,5 +93,5 @@
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">
@@ -163,5 +101,5 @@
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>
@@ -199,11 +137,4 @@
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>
@@ -249,11 +180,4 @@
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>
@@ -289,4 +213,18 @@
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>
@@ -336,5 +274,4 @@
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>
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
@@ -23,5 +23,4 @@ InterfaceSetupImp::InterfaceSetupImp(QWidget* parent, const char* name, Interfac
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){
@@ -31,5 +30,4 @@ InterfaceSetupImp::InterfaceSetupImp(QWidget* parent, const char* name, Interfac
31 leaseHoursLabel->hide(); 30 leaseHoursLabel->hide();
32 } 31 }
33 connect(profileCombo, SIGNAL(highlighted(const QString &)), this, SLOT(changeProfile(const QString &)));
34} 32}
35 33
@@ -91,33 +89,32 @@ bool InterfaceSetupImp::saveSettings(){
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);
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
@@ -15,5 +15,7 @@ public:
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:
@@ -21,5 +23,4 @@ private:
21 Interfaces *interfaces; 23 Interfaces *interfaces;
22 Interface *interface; 24 Interface *interface;
23 QString currentInterfaceName;
24 25
25}; 26};
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
@@ -12,5 +12,5 @@
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>
@@ -62,5 +62,5 @@
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>
@@ -104,4 +104,18 @@
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>
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
@@ -33,4 +33,5 @@
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()));
@@ -54,5 +55,20 @@ MainWindowImp::MainWindowImp(QWidget *parent, const char *name) : MainWindow(par
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
@@ -62,9 +78,8 @@ MainWindowImp::MainWindowImp(QWidget *parent, const char *name) : MainWindow(par
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;
@@ -206,7 +221,13 @@ void MainWindowImp::configureClicked(){
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);
@@ -214,5 +235,7 @@ void MainWindowImp::configureClicked(){
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();
@@ -223,4 +246,5 @@ void MainWindowImp::configureClicked(){
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();
@@ -245,4 +269,10 @@ void MainWindowImp::informationClicked(){
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;
@@ -321,5 +351,5 @@ void MainWindowImp::jobDone(KProcess *process){
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);
@@ -350,5 +380,5 @@ void MainWindowImp::jobDone(KProcess *process){
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);
@@ -407,5 +437,6 @@ void MainWindowImp::updateInterface(Interface *i){
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
@@ -438,8 +469,19 @@ void MainWindowImp::addProfile(){
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), ""));
@@ -448,5 +490,4 @@ void MainWindowImp::removeProfile(){
448 profilesList->insertItem((*it)); 490 profilesList->insertItem((*it));
449 } 491 }
450
451} 492}
452 493
@@ -456,5 +497,27 @@ void MainWindowImp::removeProfile(){
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
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
@@ -98,5 +98,4 @@ bool WLANImp::writeConfig()
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
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
@@ -33,5 +33,5 @@ QString WLANModule::getPixmapName(Interface* ){
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 }