summaryrefslogtreecommitdiff
authorbenmeyer <benmeyer>2002-10-18 14:28:42 (UTC)
committer benmeyer <benmeyer>2002-10-18 14:28:42 (UTC)
commit88b3a159060ed7057bfee4cc1ccfcf81a63a4780 (patch) (side-by-side diff)
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 @@
Write a class that parses /proc and not ifconfig
+WLAN needs to be re-written to not use Config
+remove WLAN Config item
[ ] Wlanmodule needs to check if an interface supports wireless
extensions.
-[x] When you set options in wlanmodule, hit OK, it exits all of
- networksetup, doesnt bring you back to the main screen.
-[x] Wlanmodule isnt writing out wireless.opts
-[ ] Need a means of bringing an interface up and down (calling
- out ifup/ifdown) from the gui.
- -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 @@
<name>maximumSize</name>
<size>
- <width>320</width>
+ <width>240</width>
<height>32767</height>
</size>
@@ -190,5 +190,5 @@
<property stdset="1">
<name>name</name>
- <cstring>GroupBox2</cstring>
+ <cstring>dhcpInformation</cstring>
</property>
<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 @@
<x>0</x>
<y>0</y>
- <width>199</width>
- <height>244</height>
+ <width>219</width>
+ <height>255</height>
</rect>
</property>
@@ -334,4 +334,6 @@
</image>
</images>
+<connections>
+</connections>
<tabstops>
<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 @@
#include <qpushbutton.h>
#include <qlabel.h>
+#include <qgroupbox.h>
#include <assert.h>
@@ -60,4 +61,6 @@ void InterfaceInformationImp::advanced(){
a->leaseObtainedLabel->setText(interface->getLeaseObtained());
a->leaseExpiresLabel->setText(interface->getLeaseExpires());
+ a->dhcpInformation->setEnabled(interface->isDhcp());
+
a->showMaximized();
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){
* @param interface the name(s) of the interfaces to set to this mapping
*/
-void Interfaces::addMapping(QString interfaces){
+void Interfaces::addMapping(QString option){
interfaces.append("");
- interfaces.append(QString(MAPPING " %1").arg(interfaces));
+ interfaces.append(QString(MAPPING " %1").arg(option));
}
@@ -405,9 +405,10 @@ bool Interfaces::setStanza(QString stanza, QString option, QStringList::Iterator
qDebug(QString("Interfaces: Found multiple stanza's for search: %1 %2").arg(stanza).arg(option).latin1());
}
+ qDebug("Found");
found = true;
iterator = it;
}
}
- return !found;
+ return found;
}
@@ -429,7 +430,8 @@ bool Interfaces::setOption(QStringList::Iterator start, QString option, QString
interfaces.insert(--it, QString("\t%1 %2").arg(option).arg(value));
}
+ found = true;
break;
}
- if((*it).contains(option)){
+ if((*it).contains(option) && it != start){
// Found it in stanza so replace it.
if(found)
@@ -442,5 +444,10 @@ bool Interfaces::setOption(QStringList::Iterator start, QString option, QString
}
}
- return true;
+ if(!found){
+ QStringList::Iterator p = start;
+ interfaces.insert(++p, QString("\t%1 %2").arg(option).arg(value));
+ found = true;
+ }
+ return found;
}
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:
bool setMapping(QString interface);
- void addMapping(QString interfaces);
+ void addMapping(QString options);
bool setMap(QString map, QString value);
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 @@
<x>0</x>
<y>0</y>
- <width>267</width>
+ <width>276</width>
<height>280</height>
</rect>
@@ -44,66 +44,4 @@
<property stdset="1">
<name>name</name>
- <cstring>Layout8</cstring>
- </property>
- <hbox>
- <property stdset="1">
- <name>margin</name>
- <number>0</number>
- </property>
- <property stdset="1">
- <name>spacing</name>
- <number>6</number>
- </property>
- <widget>
- <class>QLabel</class>
- <property stdset="1">
- <name>name</name>
- <cstring>TextLabel1</cstring>
- </property>
- <property stdset="1">
- <name>text</name>
- <string>Profile</string>
- </property>
- </widget>
- <widget>
- <class>QComboBox</class>
- <item>
- <property>
- <name>text</name>
- <string>All</string>
- </property>
- </item>
- <property stdset="1">
- <name>name</name>
- <cstring>profileCombo</cstring>
- </property>
- </widget>
- <spacer>
- <property>
- <name>name</name>
- <cstring>Spacer20</cstring>
- </property>
- <property stdset="1">
- <name>orientation</name>
- <enum>Horizontal</enum>
- </property>
- <property stdset="1">
- <name>sizeType</name>
- <enum>Expanding</enum>
- </property>
- <property>
- <name>sizeHint</name>
- <size>
- <width>20</width>
- <height>20</height>
- </size>
- </property>
- </spacer>
- </hbox>
- </widget>
- <widget>
- <class>QLayoutWidget</class>
- <property stdset="1">
- <name>name</name>
<cstring>Layout9</cstring>
</property>
@@ -155,5 +93,5 @@
<property stdset="1">
<name>maxValue</name>
- <number>336</number>
+ <number>87600</number>
</property>
<property stdset="1">
@@ -163,5 +101,5 @@
<property stdset="1">
<name>value</name>
- <number>24</number>
+ <number>168</number>
</property>
</widget>
@@ -199,11 +137,4 @@
<number>6</number>
</property>
- <widget row="3" column="1" >
- <class>QLineEdit</class>
- <property stdset="1">
- <name>name</name>
- <cstring>firstDNSLineEdit</cstring>
- </property>
- </widget>
<widget row="1" column="0" >
<class>QLabel</class>
@@ -249,11 +180,4 @@
</property>
</widget>
- <widget row="4" column="1" >
- <class>QLineEdit</class>
- <property stdset="1">
- <name>name</name>
- <cstring>secondDNSLineEdit</cstring>
- </property>
- </widget>
<widget row="0" column="0" >
<class>QLabel</class>
@@ -289,4 +213,18 @@
</property>
</widget>
+ <widget row="3" column="1" >
+ <class>QLineEdit</class>
+ <property stdset="1">
+ <name>name</name>
+ <cstring>firstDNSLineEdit</cstring>
+ </property>
+ </widget>
+ <widget row="4" column="1" >
+ <class>QLineEdit</class>
+ <property stdset="1">
+ <name>name</name>
+ <cstring>secondDNSLineEdit</cstring>
+ </property>
+ </widget>
</grid>
</widget>
@@ -336,5 +274,4 @@
<tabstops>
<tabstop>autoStart</tabstop>
- <tabstop>profileCombo</tabstop>
<tabstop>dhcpCheckBox</tabstop>
<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
interface = i;
interfaces = new Interfaces();
- changeProfile(profileCombo->currentText());
bool error = false;
if(interfaces->getInterfaceMethod(error) == INTERFACES_LOOPBACK){
@@ -31,5 +30,4 @@ InterfaceSetupImp::InterfaceSetupImp(QWidget* parent, const char* name, Interfac
leaseHoursLabel->hide();
}
- connect(profileCombo, SIGNAL(highlighted(const QString &)), this, SLOT(changeProfile(const QString &)));
}
@@ -91,33 +89,32 @@ bool InterfaceSetupImp::saveSettings(){
* @profile the new profile.
*/
-void InterfaceSetupImp::changeProfile(const QString &profile){
- QString newInterfaceName;
- if(profile.lower() == "all")
- newInterfaceName = interface->getInterfaceName();
- else
- newInterfaceName = interface->getInterfaceName() + "_" + profile;
- if(newInterfaceName == currentInterfaceName)
- return;
- else{
- saveSettings();
- currentInterfaceName = newInterfaceName;
- }
- bool error = interfaces->setInterface(currentInterfaceName);
+void InterfaceSetupImp::setProfile(const QString &profile){
+ QString newInterfaceName = interface->getInterfaceName() + profile;
// See if we have to make a interface.
- if(error){
- qDebug("InterfaceSetupImp: Adding a new interface from profile change.");
- interfaces->addInterface(currentInterfaceName, INTERFACES_FAMILY_INET, INTERFACES_METHOD_DHCP);
- error = interfaces->setInterface(currentInterfaceName);
- if(error){
+ if(!interfaces->setInterface(newInterfaceName)){
+ interfaces->addInterface(newInterfaceName, INTERFACES_FAMILY_INET, INTERFACES_METHOD_DHCP);
+ if(!interfaces->setInterface(newInterfaceName)){
qDebug("InterfaceSetupImp: Added interface, but still can't set.");
return;
}
+ // Add making for this new interface if need too
+ if(profile != ""){
+ if(!interfaces->setMapping(interface->getInterfaceName())){
+ interfaces->addMapping(interface->getInterfaceName());
+ if(!interfaces->setMapping(interface->getInterfaceName())){
+ qDebug("InterfaceSetupImp: Added Mapping, but still can't set.");
+ return;
+ }
+ }
+ interfaces->setScript("getprofile.sh");
+ interfaces->setMap("map", newInterfaceName);
+ }
}
- //qDebug( currentInterfaceName.latin1() );
// We must have a valid interface to get this far so read some settings.
// DHCP
+ bool error = false;
if(interfaces->getInterfaceMethod(error) == INTERFACES_METHOD_DHCP)
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:
protected slots:
void accept();
- void changeProfile(const QString &profile);
+
+public slots:
+ void setProfile(const QString &profile);
private:
@@ -21,5 +23,4 @@ private:
Interfaces *interfaces;
Interface *interface;
- QString currentInterfaceName;
};
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 @@
<x>0</x>
<y>0</y>
- <width>230</width>
+ <width>240</width>
<height>289</height>
</rect>
@@ -62,5 +62,5 @@
<property>
<name>text</name>
- <string>i</string>
+ <string>s</string>
</property>
<property>
@@ -104,4 +104,18 @@
<property>
<name>text</name>
+ <string>in</string>
+ </property>
+ <property>
+ <name>clickable</name>
+ <bool>true</bool>
+ </property>
+ <property>
+ <name>resizeable</name>
+ <bool>true</bool>
+ </property>
+ </column>
+ <column>
+ <property>
+ <name>text</name>
<string>IP</string>
</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 @@
#define TEMP_UP "/tmp/ifconfig"
+#define SCHEME "/var/lib/pcmcia/scheme"
MainWindowImp::MainWindowImp(QWidget *parent, const char *name) : MainWindow(parent, name, true), advancedUserMode(false){
connect(addConnectionButton, SIGNAL(clicked()), this, SLOT(addClicked()));
@@ -54,5 +55,20 @@ MainWindowImp::MainWindowImp(QWidget *parent, const char *name) : MainWindow(par
for ( QStringList::Iterator it = profiles.begin(); it != profiles.end(); ++it)
profilesList->insertItem((*it));
+ currentProfileLabel->setText(cfg.readEntry("CurrentProfile", "All"));
advancedUserMode = cfg.readBoolEntry("AdvancedUserMode", false);
+
+ QFile file(SCHEME);
+ if ( file.open(IO_ReadOnly) ) { // file opened successfully
+ QTextStream stream( &file ); // use a text stream
+ while ( !stream.eof() ) { // until end of file...
+ QString line = stream.readLine(); // line of text excluding '\n'
+ if(line.contains("SCHEME")){
+ line = line.mid(7, line.length());
+ currentProfileLabel->setText(line);
+ break;
+ }
+ }
+ file.close();
+ }
}
@@ -62,9 +78,8 @@ MainWindowImp::MainWindowImp(QWidget *parent, const char *name) : MainWindow(par
MainWindowImp::~MainWindowImp(){
// Save profiles.
- if(profiles.count() > 1){
- Config cfg("NetworkSetup");
- cfg.setGroup("General");
- cfg.writeEntry("Profiles", profiles.join(" "));
- }
+ Config cfg("NetworkSetup");
+ cfg.setGroup("General");
+ cfg.writeEntry("Profiles", profiles.join(" "));
+
// Delete Modules and Libraries
QMap<Module*, QLibrary*>::Iterator it;
@@ -206,7 +221,13 @@ void MainWindowImp::configureClicked(){
return;
}
-
+
+ QString currentProfile = currentProfileLabel->text();
+ if(profilesList->count() <= 1 || currentProfile == "All"){
+ currentProfile = "";
+ }
+
Interface *i = interfaceItems[item];
if(i->getModuleOwner()){
+ i->getModuleOwner()->setProfile(currentProfileLabel->text());
QTabWidget *tabWidget = NULL;
QWidget *moduleConfigure = i->getModuleOwner()->configure(&tabWidget);
@@ -214,5 +235,7 @@ void MainWindowImp::configureClicked(){
if(tabWidget != NULL){
InterfaceSetupImp *configure = new InterfaceSetupImp(tabWidget, "InterfaceSetupImp", i, true);
- tabWidget->insertTab(configure, "TCP/IP");
+ configure->setProfile(currentProfileLabel->text());
+ tabWidget->insertTab(configure, "TCP/IP");
+
}
moduleConfigure->showMaximized();
@@ -223,4 +246,5 @@ void MainWindowImp::configureClicked(){
InterfaceSetupImp *configure = new InterfaceSetupImp(0, "InterfaceSetupImp", i, true);
+ configure->setProfile(currentProfileLabel->text());
configure->showMaximized();
configure->show();
@@ -245,4 +269,10 @@ void MainWindowImp::informationClicked(){
return;
}
+
+ QStringList list;
+ for(uint i = 0; i < profilesList->count(); i++){
+ list.append(profilesList->text(i));
+ }
+
if(i->getModuleOwner()){
QTabWidget *tabWidget = NULL;
@@ -321,5 +351,5 @@ void MainWindowImp::jobDone(KProcess *process){
macAddress = line.length();
if(hardwareName != -1)
- i->setHardwareName(line.mid(hardwareName+11, macAddress-(hardwareName+11)) + QString(" (%1)").arg(i->getInterfaceName()));
+ i->setHardwareName(line.mid(hardwareName+11, macAddress-(hardwareName+11)) );
interfaceNames.insert(i->getInterfaceName(), i);
@@ -350,5 +380,5 @@ void MainWindowImp::jobDone(KProcess *process){
Interface *i = new Interface(this, *ni, false);
i->setAttached(false);
- i->setHardwareName(QString("Disconnected (%1)").arg(*ni));
+ i->setHardwareName("Disconnected");
interfaceNames.insert(i->getInterfaceName(), i);
updateInterface(i);
@@ -407,5 +437,6 @@ void MainWindowImp::updateInterface(Interface *i){
item->setPixmap(1, (Resource::loadPixmap(typeName)));
item->setText(2, i->getHardwareName());
- item->setText(3, (i->getStatus()) ? i->getIp() : QString(""));
+ item->setText(3, QString("(%1)").arg(i->getInterfaceName()));
+ item->setText(4, (i->getStatus()) ? i->getIp() : QString(""));
}
@@ -438,8 +469,19 @@ void MainWindowImp::addProfile(){
void MainWindowImp::removeProfile(){
if(profilesList->count() <= 1){
- QMessageBox::information(this, "Can't remove anything.","Need One Profile.", "Ok");
+ QMessageBox::information(this, "Can't remove.","At least one profile\nis needed.", "Ok");
return;
}
QString profileToRemove = profilesList->currentText();
+ if(profileToRemove == "All"){
+ QMessageBox::information(this, "Can't remove.","Can't remove default.", "Ok");
+ return;
+ }
+ // Can't remove the curent profile
+ if(profileToRemove == currentProfileLabel->text()){
+ QMessageBox::information(this, "Can't remove.",QString("%1 is the current profile.").arg(profileToRemove), "Ok");
+ return;
+
+ }
+
if(QMessageBox::information(this, "Question",QString("Remove profile: %1").arg(profileToRemove), QMessageBox::Ok, QMessageBox::Cancel) == QMessageBox::Ok){
profiles = QStringList::split(" ", profiles.join(" ").replace(QRegExp(profileToRemove), ""));
@@ -448,5 +490,4 @@ void MainWindowImp::removeProfile(){
profilesList->insertItem((*it));
}
-
}
@@ -456,5 +497,27 @@ void MainWindowImp::removeProfile(){
*/
void MainWindowImp::changeProfile(){
- currentProfileLabel->setText(profilesList->text(profilesList->currentItem()));
+ if(profilesList->currentItem() == -1){
+ QMessageBox::information(this, "Can't Change.","Please select a profile.", "Ok");
+ return;
+ }
+ QString newProfile = profilesList->text(profilesList->currentItem());
+ if(newProfile != currentProfileLabel->text()){
+ currentProfileLabel->setText(newProfile);
+ QFile file(SCHEME);
+ if ( file.open(IO_ReadWrite) ) {
+ QTextStream stream( &file );
+ stream << QString("SCHEME=%1").arg(newProfile);
+ file.close();
+ }
+ // restart all up devices?
+ if(QMessageBox::information(this, "Question","Restart all running interfaces?", QMessageBox::Ok, QMessageBox::No) == QMessageBox::Ok){
+ // Go through them one by one
+ QMap<Interface*, QListViewItem*>::Iterator it;
+ for( it = items.begin(); it != items.end(); ++it ){
+ if(it.key()->getStatus() == true)
+ it.key()->restart();
+ }
+ }
+ }
}
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()
config.writeEntry( "dot11WEPDefaultKey3", keyLineEdit3->text() );
return writeWirelessOpts( config );
-// return true;
}
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* ){
bool WLANModule::isOwner(Interface *i){
if(i->getInterfaceName() == "eth0" || i->getInterfaceName() == "wlan0"){
- i->setHardwareName(QString("802.11b (%1)").arg(i->getInterfaceName()));
+ i->setHardwareName("802.11b");
return true;
}
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 @@
Write a class that parses /proc and not ifconfig
+WLAN needs to be re-written to not use Config
+remove WLAN Config item
[ ] Wlanmodule needs to check if an interface supports wireless
extensions.
-[x] When you set options in wlanmodule, hit OK, it exits all of
- networksetup, doesnt bring you back to the main screen.
-[x] Wlanmodule isnt writing out wireless.opts
-[ ] Need a means of bringing an interface up and down (calling
- out ifup/ifdown) from the gui.
- -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 @@
<name>maximumSize</name>
<size>
- <width>320</width>
+ <width>240</width>
<height>32767</height>
</size>
@@ -190,5 +190,5 @@
<property stdset="1">
<name>name</name>
- <cstring>GroupBox2</cstring>
+ <cstring>dhcpInformation</cstring>
</property>
<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 @@
<x>0</x>
<y>0</y>
- <width>199</width>
- <height>244</height>
+ <width>219</width>
+ <height>255</height>
</rect>
</property>
@@ -334,4 +334,6 @@
</image>
</images>
+<connections>
+</connections>
<tabstops>
<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 @@
#include <qpushbutton.h>
#include <qlabel.h>
+#include <qgroupbox.h>
#include <assert.h>
@@ -60,4 +61,6 @@ void InterfaceInformationImp::advanced(){
a->leaseObtainedLabel->setText(interface->getLeaseObtained());
a->leaseExpiresLabel->setText(interface->getLeaseExpires());
+ a->dhcpInformation->setEnabled(interface->isDhcp());
+
a->showMaximized();
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){
* @param interface the name(s) of the interfaces to set to this mapping
*/
-void Interfaces::addMapping(QString interfaces){
+void Interfaces::addMapping(QString option){
interfaces.append("");
- interfaces.append(QString(MAPPING " %1").arg(interfaces));
+ interfaces.append(QString(MAPPING " %1").arg(option));
}
@@ -405,9 +405,10 @@ bool Interfaces::setStanza(QString stanza, QString option, QStringList::Iterator
qDebug(QString("Interfaces: Found multiple stanza's for search: %1 %2").arg(stanza).arg(option).latin1());
}
+ qDebug("Found");
found = true;
iterator = it;
}
}
- return !found;
+ return found;
}
@@ -429,7 +430,8 @@ bool Interfaces::setOption(QStringList::Iterator start, QString option, QString
interfaces.insert(--it, QString("\t%1 %2").arg(option).arg(value));
}
+ found = true;
break;
}
- if((*it).contains(option)){
+ if((*it).contains(option) && it != start){
// Found it in stanza so replace it.
if(found)
@@ -442,5 +444,10 @@ bool Interfaces::setOption(QStringList::Iterator start, QString option, QString
}
}
- return true;
+ if(!found){
+ QStringList::Iterator p = start;
+ interfaces.insert(++p, QString("\t%1 %2").arg(option).arg(value));
+ found = true;
+ }
+ return found;
}
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:
bool setMapping(QString interface);
- void addMapping(QString interfaces);
+ void addMapping(QString options);
bool setMap(QString map, QString value);
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 @@
<x>0</x>
<y>0</y>
- <width>267</width>
+ <width>276</width>
<height>280</height>
</rect>
@@ -44,66 +44,4 @@
<property stdset="1">
<name>name</name>
- <cstring>Layout8</cstring>
- </property>
- <hbox>
- <property stdset="1">
- <name>margin</name>
- <number>0</number>
- </property>
- <property stdset="1">
- <name>spacing</name>
- <number>6</number>
- </property>
- <widget>
- <class>QLabel</class>
- <property stdset="1">
- <name>name</name>
- <cstring>TextLabel1</cstring>
- </property>
- <property stdset="1">
- <name>text</name>
- <string>Profile</string>
- </property>
- </widget>
- <widget>
- <class>QComboBox</class>
- <item>
- <property>
- <name>text</name>
- <string>All</string>
- </property>
- </item>
- <property stdset="1">
- <name>name</name>
- <cstring>profileCombo</cstring>
- </property>
- </widget>
- <spacer>
- <property>
- <name>name</name>
- <cstring>Spacer20</cstring>
- </property>
- <property stdset="1">
- <name>orientation</name>
- <enum>Horizontal</enum>
- </property>
- <property stdset="1">
- <name>sizeType</name>
- <enum>Expanding</enum>
- </property>
- <property>
- <name>sizeHint</name>
- <size>
- <width>20</width>
- <height>20</height>
- </size>
- </property>
- </spacer>
- </hbox>
- </widget>
- <widget>
- <class>QLayoutWidget</class>
- <property stdset="1">
- <name>name</name>
<cstring>Layout9</cstring>
</property>
@@ -155,5 +93,5 @@
<property stdset="1">
<name>maxValue</name>
- <number>336</number>
+ <number>87600</number>
</property>
<property stdset="1">
@@ -163,5 +101,5 @@
<property stdset="1">
<name>value</name>
- <number>24</number>
+ <number>168</number>
</property>
</widget>
@@ -199,11 +137,4 @@
<number>6</number>
</property>
- <widget row="3" column="1" >
- <class>QLineEdit</class>
- <property stdset="1">
- <name>name</name>
- <cstring>firstDNSLineEdit</cstring>
- </property>
- </widget>
<widget row="1" column="0" >
<class>QLabel</class>
@@ -249,11 +180,4 @@
</property>
</widget>
- <widget row="4" column="1" >
- <class>QLineEdit</class>
- <property stdset="1">
- <name>name</name>
- <cstring>secondDNSLineEdit</cstring>
- </property>
- </widget>
<widget row="0" column="0" >
<class>QLabel</class>
@@ -289,4 +213,18 @@
</property>
</widget>
+ <widget row="3" column="1" >
+ <class>QLineEdit</class>
+ <property stdset="1">
+ <name>name</name>
+ <cstring>firstDNSLineEdit</cstring>
+ </property>
+ </widget>
+ <widget row="4" column="1" >
+ <class>QLineEdit</class>
+ <property stdset="1">
+ <name>name</name>
+ <cstring>secondDNSLineEdit</cstring>
+ </property>
+ </widget>
</grid>
</widget>
@@ -336,5 +274,4 @@
<tabstops>
<tabstop>autoStart</tabstop>
- <tabstop>profileCombo</tabstop>
<tabstop>dhcpCheckBox</tabstop>
<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
interface = i;
interfaces = new Interfaces();
- changeProfile(profileCombo->currentText());
bool error = false;
if(interfaces->getInterfaceMethod(error) == INTERFACES_LOOPBACK){
@@ -31,5 +30,4 @@ InterfaceSetupImp::InterfaceSetupImp(QWidget* parent, const char* name, Interfac
leaseHoursLabel->hide();
}
- connect(profileCombo, SIGNAL(highlighted(const QString &)), this, SLOT(changeProfile(const QString &)));
}
@@ -91,33 +89,32 @@ bool InterfaceSetupImp::saveSettings(){
* @profile the new profile.
*/
-void InterfaceSetupImp::changeProfile(const QString &profile){
- QString newInterfaceName;
- if(profile.lower() == "all")
- newInterfaceName = interface->getInterfaceName();
- else
- newInterfaceName = interface->getInterfaceName() + "_" + profile;
- if(newInterfaceName == currentInterfaceName)
- return;
- else{
- saveSettings();
- currentInterfaceName = newInterfaceName;
- }
- bool error = interfaces->setInterface(currentInterfaceName);
+void InterfaceSetupImp::setProfile(const QString &profile){
+ QString newInterfaceName = interface->getInterfaceName() + profile;
// See if we have to make a interface.
- if(error){
- qDebug("InterfaceSetupImp: Adding a new interface from profile change.");
- interfaces->addInterface(currentInterfaceName, INTERFACES_FAMILY_INET, INTERFACES_METHOD_DHCP);
- error = interfaces->setInterface(currentInterfaceName);
- if(error){
+ if(!interfaces->setInterface(newInterfaceName)){
+ interfaces->addInterface(newInterfaceName, INTERFACES_FAMILY_INET, INTERFACES_METHOD_DHCP);
+ if(!interfaces->setInterface(newInterfaceName)){
qDebug("InterfaceSetupImp: Added interface, but still can't set.");
return;
}
+ // Add making for this new interface if need too
+ if(profile != ""){
+ if(!interfaces->setMapping(interface->getInterfaceName())){
+ interfaces->addMapping(interface->getInterfaceName());
+ if(!interfaces->setMapping(interface->getInterfaceName())){
+ qDebug("InterfaceSetupImp: Added Mapping, but still can't set.");
+ return;
+ }
+ }
+ interfaces->setScript("getprofile.sh");
+ interfaces->setMap("map", newInterfaceName);
+ }
}
- //qDebug( currentInterfaceName.latin1() );
// We must have a valid interface to get this far so read some settings.
// DHCP
+ bool error = false;
if(interfaces->getInterfaceMethod(error) == INTERFACES_METHOD_DHCP)
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:
protected slots:
void accept();
- void changeProfile(const QString &profile);
+
+public slots:
+ void setProfile(const QString &profile);
private:
@@ -21,5 +23,4 @@ private:
Interfaces *interfaces;
Interface *interface;
- QString currentInterfaceName;
};
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 @@
<x>0</x>
<y>0</y>
- <width>230</width>
+ <width>240</width>
<height>289</height>
</rect>
@@ -62,5 +62,5 @@
<property>
<name>text</name>
- <string>i</string>
+ <string>s</string>
</property>
<property>
@@ -104,4 +104,18 @@
<property>
<name>text</name>
+ <string>in</string>
+ </property>
+ <property>
+ <name>clickable</name>
+ <bool>true</bool>
+ </property>
+ <property>
+ <name>resizeable</name>
+ <bool>true</bool>
+ </property>
+ </column>
+ <column>
+ <property>
+ <name>text</name>
<string>IP</string>
</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 @@
#define TEMP_UP "/tmp/ifconfig"
+#define SCHEME "/var/lib/pcmcia/scheme"
MainWindowImp::MainWindowImp(QWidget *parent, const char *name) : MainWindow(parent, name, true), advancedUserMode(false){
connect(addConnectionButton, SIGNAL(clicked()), this, SLOT(addClicked()));
@@ -54,5 +55,20 @@ MainWindowImp::MainWindowImp(QWidget *parent, const char *name) : MainWindow(par
for ( QStringList::Iterator it = profiles.begin(); it != profiles.end(); ++it)
profilesList->insertItem((*it));
+ currentProfileLabel->setText(cfg.readEntry("CurrentProfile", "All"));
advancedUserMode = cfg.readBoolEntry("AdvancedUserMode", false);
+
+ QFile file(SCHEME);
+ if ( file.open(IO_ReadOnly) ) { // file opened successfully
+ QTextStream stream( &file ); // use a text stream
+ while ( !stream.eof() ) { // until end of file...
+ QString line = stream.readLine(); // line of text excluding '\n'
+ if(line.contains("SCHEME")){
+ line = line.mid(7, line.length());
+ currentProfileLabel->setText(line);
+ break;
+ }
+ }
+ file.close();
+ }
}
@@ -62,9 +78,8 @@ MainWindowImp::MainWindowImp(QWidget *parent, const char *name) : MainWindow(par
MainWindowImp::~MainWindowImp(){
// Save profiles.
- if(profiles.count() > 1){
- Config cfg("NetworkSetup");
- cfg.setGroup("General");
- cfg.writeEntry("Profiles", profiles.join(" "));
- }
+ Config cfg("NetworkSetup");
+ cfg.setGroup("General");
+ cfg.writeEntry("Profiles", profiles.join(" "));
+
// Delete Modules and Libraries
QMap<Module*, QLibrary*>::Iterator it;
@@ -206,7 +221,13 @@ void MainWindowImp::configureClicked(){
return;
}
-
+
+ QString currentProfile = currentProfileLabel->text();
+ if(profilesList->count() <= 1 || currentProfile == "All"){
+ currentProfile = "";
+ }
+
Interface *i = interfaceItems[item];
if(i->getModuleOwner()){
+ i->getModuleOwner()->setProfile(currentProfileLabel->text());
QTabWidget *tabWidget = NULL;
QWidget *moduleConfigure = i->getModuleOwner()->configure(&tabWidget);
@@ -214,5 +235,7 @@ void MainWindowImp::configureClicked(){
if(tabWidget != NULL){
InterfaceSetupImp *configure = new InterfaceSetupImp(tabWidget, "InterfaceSetupImp", i, true);
- tabWidget->insertTab(configure, "TCP/IP");
+ configure->setProfile(currentProfileLabel->text());
+ tabWidget->insertTab(configure, "TCP/IP");
+
}
moduleConfigure->showMaximized();
@@ -223,4 +246,5 @@ void MainWindowImp::configureClicked(){
InterfaceSetupImp *configure = new InterfaceSetupImp(0, "InterfaceSetupImp", i, true);
+ configure->setProfile(currentProfileLabel->text());
configure->showMaximized();
configure->show();
@@ -245,4 +269,10 @@ void MainWindowImp::informationClicked(){
return;
}
+
+ QStringList list;
+ for(uint i = 0; i < profilesList->count(); i++){
+ list.append(profilesList->text(i));
+ }
+
if(i->getModuleOwner()){
QTabWidget *tabWidget = NULL;
@@ -321,5 +351,5 @@ void MainWindowImp::jobDone(KProcess *process){
macAddress = line.length();
if(hardwareName != -1)
- i->setHardwareName(line.mid(hardwareName+11, macAddress-(hardwareName+11)) + QString(" (%1)").arg(i->getInterfaceName()));
+ i->setHardwareName(line.mid(hardwareName+11, macAddress-(hardwareName+11)) );
interfaceNames.insert(i->getInterfaceName(), i);
@@ -350,5 +380,5 @@ void MainWindowImp::jobDone(KProcess *process){
Interface *i = new Interface(this, *ni, false);
i->setAttached(false);
- i->setHardwareName(QString("Disconnected (%1)").arg(*ni));
+ i->setHardwareName("Disconnected");
interfaceNames.insert(i->getInterfaceName(), i);
updateInterface(i);
@@ -407,5 +437,6 @@ void MainWindowImp::updateInterface(Interface *i){
item->setPixmap(1, (Resource::loadPixmap(typeName)));
item->setText(2, i->getHardwareName());
- item->setText(3, (i->getStatus()) ? i->getIp() : QString(""));
+ item->setText(3, QString("(%1)").arg(i->getInterfaceName()));
+ item->setText(4, (i->getStatus()) ? i->getIp() : QString(""));
}
@@ -438,8 +469,19 @@ void MainWindowImp::addProfile(){
void MainWindowImp::removeProfile(){
if(profilesList->count() <= 1){
- QMessageBox::information(this, "Can't remove anything.","Need One Profile.", "Ok");
+ QMessageBox::information(this, "Can't remove.","At least one profile\nis needed.", "Ok");
return;
}
QString profileToRemove = profilesList->currentText();
+ if(profileToRemove == "All"){
+ QMessageBox::information(this, "Can't remove.","Can't remove default.", "Ok");
+ return;
+ }
+ // Can't remove the curent profile
+ if(profileToRemove == currentProfileLabel->text()){
+ QMessageBox::information(this, "Can't remove.",QString("%1 is the current profile.").arg(profileToRemove), "Ok");
+ return;
+
+ }
+
if(QMessageBox::information(this, "Question",QString("Remove profile: %1").arg(profileToRemove), QMessageBox::Ok, QMessageBox::Cancel) == QMessageBox::Ok){
profiles = QStringList::split(" ", profiles.join(" ").replace(QRegExp(profileToRemove), ""));
@@ -448,5 +490,4 @@ void MainWindowImp::removeProfile(){
profilesList->insertItem((*it));
}
-
}
@@ -456,5 +497,27 @@ void MainWindowImp::removeProfile(){
*/
void MainWindowImp::changeProfile(){
- currentProfileLabel->setText(profilesList->text(profilesList->currentItem()));
+ if(profilesList->currentItem() == -1){
+ QMessageBox::information(this, "Can't Change.","Please select a profile.", "Ok");
+ return;
+ }
+ QString newProfile = profilesList->text(profilesList->currentItem());
+ if(newProfile != currentProfileLabel->text()){
+ currentProfileLabel->setText(newProfile);
+ QFile file(SCHEME);
+ if ( file.open(IO_ReadWrite) ) {
+ QTextStream stream( &file );
+ stream << QString("SCHEME=%1").arg(newProfile);
+ file.close();
+ }
+ // restart all up devices?
+ if(QMessageBox::information(this, "Question","Restart all running interfaces?", QMessageBox::Ok, QMessageBox::No) == QMessageBox::Ok){
+ // Go through them one by one
+ QMap<Interface*, QListViewItem*>::Iterator it;
+ for( it = items.begin(); it != items.end(); ++it ){
+ if(it.key()->getStatus() == true)
+ it.key()->restart();
+ }
+ }
+ }
}
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()
config.writeEntry( "dot11WEPDefaultKey3", keyLineEdit3->text() );
return writeWirelessOpts( config );
-// return true;
}
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* ){
bool WLANModule::isOwner(Interface *i){
if(i->getInterfaceName() == "eth0" || i->getInterfaceName() == "wlan0"){
- i->setHardwareName(QString("802.11b (%1)").arg(i->getInterfaceName()));
+ i->setHardwareName("802.11b");
return true;
}