From 56a0a990842a5b57b961c064809aae27f087562d Mon Sep 17 00:00:00 2001 From: benmeyer Date: Wed, 02 Oct 2002 18:52:50 +0000 Subject: DHCP works, addProfile works --- diff --git a/noncore/net/networksetup/interface.cpp b/noncore/net/networksetup/interface.cpp index 5b21364..1f32093 100644 --- a/noncore/net/networksetup/interface.cpp +++ b/noncore/net/networksetup/interface.cpp @@ -1,6 +1,7 @@ #include "interface.h" #include #include +#include #include #include @@ -127,9 +128,14 @@ bool Interface::refresh(){ leaseObtained = ""; leaseExpires = ""; dhcp = false; - + + QString dhcpDirectory(HDCP_INFO_DIR); + QDir d(dhcpDirectory); + if(!d.exists(dhcpDirectory)) + dhcpDirectory = "/var/run"; + // See if we have - QString dhcpFile(QString(HDCP_INFO_DIR "/dhcpcd-%1.info").arg(interfaceName)); + QString dhcpFile(QString(dhcpDirectory+"/dhcpcd-%1.info").arg(interfaceName)); // If there is no DHCP information then exit now with no errors. if(!QFile::exists(dhcpFile)){ return true; @@ -148,8 +154,8 @@ bool Interface::refresh(){ stream.setDevice( &file ); while ( !stream.eof() ) { line = stream.readLine(); - if(line.contains("DHCPSID=")) - dhcpServerIp = line.mid(8, line.length()); + if(line.contains("DHCPSIADDR=")) + dhcpServerIp = line.mid(11, line.length()); if(line.contains("LEASETIME=")) leaseTime = line.mid(10, line.length()).toInt(); if(line.contains("RENEWALTIME=")) @@ -160,7 +166,7 @@ bool Interface::refresh(){ //qDebug(QString("Interface: renewalTime: %1").arg(renewalTime).latin1()); // Get the pid of the deamond - dhcpFile = (QString(HDCP_INFO_DIR "/dhcpcd-%1.pid").arg(interfaceName)); + dhcpFile = (QString(dhcpDirectory+"/dhcpcd-%1.pid").arg(interfaceName)); file.setName(dhcpFile); if (!file.open(IO_ReadOnly)){ qDebug(QString("Interface: Can't open file: %1").arg(dhcpFile).latin1()); diff --git a/noncore/net/networksetup/mainwindow.ui b/noncore/net/networksetup/mainwindow.ui index f5b104a..3538aeb 100644 --- a/noncore/net/networksetup/mainwindow.ui +++ b/noncore/net/networksetup/mainwindow.ui @@ -45,7 +45,7 @@ title - Interfaces + Connections @@ -100,6 +100,20 @@ true + + + text + IP + + + clickable + true + + + resizeable + true + + name connectionList diff --git a/noncore/net/networksetup/mainwindowimp.cpp b/noncore/net/networksetup/mainwindowimp.cpp index 66ec8b5..e9429e3 100644 --- a/noncore/net/networksetup/mainwindowimp.cpp +++ b/noncore/net/networksetup/mainwindowimp.cpp @@ -5,6 +5,7 @@ #include "module.h" #include "kprocess.h" +#include "namedialog.h" #include #include @@ -128,11 +129,13 @@ Module* MainWindowImp::loadPlugin(QString pluginFileName, QString resolveString) void MainWindowImp::addClicked(){ QMap::Iterator it; QMap list; + QMap newInterfaceOwners; list.insert("USB (PPP) / (ADD_TEST)", "A dialup connection over the USB port"); list.insert("IrDa (PPP) / (ADD_TEST)", "A dialup connection over the IdDa port"); for( it = libraries.begin(); it != libraries.end(); ++it ){ - if(it.key()) + if(it.key()){ (it.key())->possibleNewInterfaces(list); + } } // See if the list has anything that we can add. if(list.count() == 0){ @@ -143,7 +146,19 @@ void MainWindowImp::addClicked(){ addNewConnection.addConnections(list); addNewConnection.showMaximized(); if(QDialog::Accepted == addNewConnection.exec()){ - + QListViewItem *item = addNewConnection.registeredServicesList->currentItem(); + if(!item) + return; + + for( it = libraries.begin(); it != libraries.end(); ++it ){ + if(it.key()){ + Interface *i = (it.key())->addNewInterface(item->text(0)); + if(i){ + interfaceNames.insert(i->getInterfaceName(), i); + updateInterface(i); + } + } + } } } @@ -153,18 +168,24 @@ void MainWindowImp::addClicked(){ */ void MainWindowImp::removeClicked(){ QListViewItem *item = connectionList->currentItem(); - if(item == NULL) { - QMessageBox::information(this, "Error","Please select an interface.", "Ok"); - return; + if(!item) { + QMessageBox::information(this, "Error","Please select an interface.", "Ok"); + return; } - if((interfaceItems[item])->getModuleOwner() == NULL){ + Interface *i = interfaceItems[item]; + if(i->getModuleOwner() == NULL){ QMessageBox::information(this, "Can't remove interface.", "Interface is built in.", "Ok"); } else{ - // Try to remove. + if(!i->getModuleOwner()->remove(i)) + QMessageBox::information(this, "Error", "Unable to remove.", "Ok"); + else{ + QMessageBox::information(this, "Success", "Interface was removed.", "Ok"); + // TODO memory managment.... + // who deletes the interface? + } } - } /** @@ -311,12 +332,13 @@ void MainWindowImp::jobDone(KProcess *process){ } /** - * + * Update this interface. If no QListViewItem exists create one. + * @param Interface* pointer to the interface that needs to be updated. */ void MainWindowImp::updateInterface(Interface *i){ QListViewItem *item = NULL; - // See if we already have it + // Find the interface, making it if needed. if(items.find(i) == items.end()){ item = new QListViewItem(connectionList, "", "", ""); // See if you can't find a module owner for this interface @@ -325,18 +347,14 @@ void MainWindowImp::updateInterface(Interface *i){ if(it.key()->isOwner(i)) i->setModuleOwner(it.key()); } - items.insert(i, item); interfaceItems.insert(item, i); } else item = items[i]; - - QString statusImage = "down"; - if(i->getStatus()) - statusImage = "up"; - QPixmap status = (Resource::loadPixmap(statusImage)); - item->setPixmap(0, status); + + // Update the icons and information + item->setPixmap(0, (Resource::loadPixmap(i->getStatus() ? "up": "down"))); QString typeName = "lan"; if(i->getHardwareName().contains("Local Loopback")) @@ -346,30 +364,31 @@ void MainWindowImp::updateInterface(Interface *i){ if(i->getInterfaceName().contains("wlan")) typeName = "wlan"; // Actually try to use the Module - if(i->getModuleOwner() != NULL){ + if(i->getModuleOwner() != NULL) typeName = i->getModuleOwner()->getPixmapName(i); - } - QPixmap type = (Resource::loadPixmap(typeName)); - item->setPixmap(1, type); - - item->setText(2, i->getHardwareName()); + item->setPixmap(1, (Resource::loadPixmap(typeName))); + item->setText(2, i->getHardwareName()); + item->setText(3, (i->getStatus()) ? i->getIp() : QString("")); } /** * Adds a new profile to the list of profiles. * Don't add profiles that already exists. - * Appends to the combo and QStringList + * Appends to the list and QStringList */ void MainWindowImp::addProfile(){ - QString newProfileName = "New"; + NameDialog foo(this, "namedialog", true); + QString newProfileName = foo.go(); + if(newProfileName.length() == 0) + return; + if(profiles.grep(newProfileName).count() > 0){ - QMessageBox::information(this, "Can't Add.","Profile already exists.", "Ok"); + QMessageBox::information(this, "Can't Add","Profile already exists.", "Ok"); return; } profiles.append(newProfileName); profilesList->insertItem(newProfileName); - } /** diff --git a/noncore/net/networksetup/networksetup.pro b/noncore/net/networksetup/networksetup.pro index ba70180..e146eb4 100644 --- a/noncore/net/networksetup/networksetup.pro +++ b/noncore/net/networksetup/networksetup.pro @@ -1,8 +1,8 @@ TEMPLATE = app #CONFIG = qt warn_on debug CONFIG = qt warn_on release -HEADERS = mainwindowimp.h addconnectionimp.h interface.h interfaceinformationimp.h interfacesetupimp.h interfaces.h defaultmodule.h kprocctrl.h module.h kprocess.h -SOURCES = main.cpp mainwindowimp.cpp addconnectionimp.cpp interface.cpp interfaceinformationimp.cpp interfacesetupimp.cpp kprocctrl.cpp kprocess.cpp interfaces.cpp +HEADERS = mainwindowimp.h addconnectionimp.h interface.h interfaceinformationimp.h interfacesetupimp.h interfaces.h defaultmodule.h kprocctrl.h module.h kprocess.h namedialog.h +SOURCES = main.cpp namedialog.cpp mainwindowimp.cpp addconnectionimp.cpp interface.cpp interfaceinformationimp.cpp interfacesetupimp.cpp kprocctrl.cpp kprocess.cpp interfaces.cpp #INCLUDEPATH += $(QPEDIR)/include #DEPENDPATH += $(QPEDIR)/include LIBS += -lqpe diff --git a/noncore/settings/networksettings/interface.cpp b/noncore/settings/networksettings/interface.cpp index 5b21364..1f32093 100644 --- a/noncore/settings/networksettings/interface.cpp +++ b/noncore/settings/networksettings/interface.cpp @@ -1,6 +1,7 @@ #include "interface.h" #include #include +#include #include #include @@ -127,9 +128,14 @@ bool Interface::refresh(){ leaseObtained = ""; leaseExpires = ""; dhcp = false; - + + QString dhcpDirectory(HDCP_INFO_DIR); + QDir d(dhcpDirectory); + if(!d.exists(dhcpDirectory)) + dhcpDirectory = "/var/run"; + // See if we have - QString dhcpFile(QString(HDCP_INFO_DIR "/dhcpcd-%1.info").arg(interfaceName)); + QString dhcpFile(QString(dhcpDirectory+"/dhcpcd-%1.info").arg(interfaceName)); // If there is no DHCP information then exit now with no errors. if(!QFile::exists(dhcpFile)){ return true; @@ -148,8 +154,8 @@ bool Interface::refresh(){ stream.setDevice( &file ); while ( !stream.eof() ) { line = stream.readLine(); - if(line.contains("DHCPSID=")) - dhcpServerIp = line.mid(8, line.length()); + if(line.contains("DHCPSIADDR=")) + dhcpServerIp = line.mid(11, line.length()); if(line.contains("LEASETIME=")) leaseTime = line.mid(10, line.length()).toInt(); if(line.contains("RENEWALTIME=")) @@ -160,7 +166,7 @@ bool Interface::refresh(){ //qDebug(QString("Interface: renewalTime: %1").arg(renewalTime).latin1()); // Get the pid of the deamond - dhcpFile = (QString(HDCP_INFO_DIR "/dhcpcd-%1.pid").arg(interfaceName)); + dhcpFile = (QString(dhcpDirectory+"/dhcpcd-%1.pid").arg(interfaceName)); file.setName(dhcpFile); if (!file.open(IO_ReadOnly)){ qDebug(QString("Interface: Can't open file: %1").arg(dhcpFile).latin1()); diff --git a/noncore/settings/networksettings/mainwindow.ui b/noncore/settings/networksettings/mainwindow.ui index f5b104a..3538aeb 100644 --- a/noncore/settings/networksettings/mainwindow.ui +++ b/noncore/settings/networksettings/mainwindow.ui @@ -45,7 +45,7 @@ title - Interfaces + Connections @@ -100,6 +100,20 @@ true + + + text + IP + + + clickable + true + + + resizeable + true + + name connectionList diff --git a/noncore/settings/networksettings/mainwindowimp.cpp b/noncore/settings/networksettings/mainwindowimp.cpp index 66ec8b5..e9429e3 100644 --- a/noncore/settings/networksettings/mainwindowimp.cpp +++ b/noncore/settings/networksettings/mainwindowimp.cpp @@ -5,6 +5,7 @@ #include "module.h" #include "kprocess.h" +#include "namedialog.h" #include #include @@ -128,11 +129,13 @@ Module* MainWindowImp::loadPlugin(QString pluginFileName, QString resolveString) void MainWindowImp::addClicked(){ QMap::Iterator it; QMap list; + QMap newInterfaceOwners; list.insert("USB (PPP) / (ADD_TEST)", "A dialup connection over the USB port"); list.insert("IrDa (PPP) / (ADD_TEST)", "A dialup connection over the IdDa port"); for( it = libraries.begin(); it != libraries.end(); ++it ){ - if(it.key()) + if(it.key()){ (it.key())->possibleNewInterfaces(list); + } } // See if the list has anything that we can add. if(list.count() == 0){ @@ -143,7 +146,19 @@ void MainWindowImp::addClicked(){ addNewConnection.addConnections(list); addNewConnection.showMaximized(); if(QDialog::Accepted == addNewConnection.exec()){ - + QListViewItem *item = addNewConnection.registeredServicesList->currentItem(); + if(!item) + return; + + for( it = libraries.begin(); it != libraries.end(); ++it ){ + if(it.key()){ + Interface *i = (it.key())->addNewInterface(item->text(0)); + if(i){ + interfaceNames.insert(i->getInterfaceName(), i); + updateInterface(i); + } + } + } } } @@ -153,18 +168,24 @@ void MainWindowImp::addClicked(){ */ void MainWindowImp::removeClicked(){ QListViewItem *item = connectionList->currentItem(); - if(item == NULL) { - QMessageBox::information(this, "Error","Please select an interface.", "Ok"); - return; + if(!item) { + QMessageBox::information(this, "Error","Please select an interface.", "Ok"); + return; } - if((interfaceItems[item])->getModuleOwner() == NULL){ + Interface *i = interfaceItems[item]; + if(i->getModuleOwner() == NULL){ QMessageBox::information(this, "Can't remove interface.", "Interface is built in.", "Ok"); } else{ - // Try to remove. + if(!i->getModuleOwner()->remove(i)) + QMessageBox::information(this, "Error", "Unable to remove.", "Ok"); + else{ + QMessageBox::information(this, "Success", "Interface was removed.", "Ok"); + // TODO memory managment.... + // who deletes the interface? + } } - } /** @@ -311,12 +332,13 @@ void MainWindowImp::jobDone(KProcess *process){ } /** - * + * Update this interface. If no QListViewItem exists create one. + * @param Interface* pointer to the interface that needs to be updated. */ void MainWindowImp::updateInterface(Interface *i){ QListViewItem *item = NULL; - // See if we already have it + // Find the interface, making it if needed. if(items.find(i) == items.end()){ item = new QListViewItem(connectionList, "", "", ""); // See if you can't find a module owner for this interface @@ -325,18 +347,14 @@ void MainWindowImp::updateInterface(Interface *i){ if(it.key()->isOwner(i)) i->setModuleOwner(it.key()); } - items.insert(i, item); interfaceItems.insert(item, i); } else item = items[i]; - - QString statusImage = "down"; - if(i->getStatus()) - statusImage = "up"; - QPixmap status = (Resource::loadPixmap(statusImage)); - item->setPixmap(0, status); + + // Update the icons and information + item->setPixmap(0, (Resource::loadPixmap(i->getStatus() ? "up": "down"))); QString typeName = "lan"; if(i->getHardwareName().contains("Local Loopback")) @@ -346,30 +364,31 @@ void MainWindowImp::updateInterface(Interface *i){ if(i->getInterfaceName().contains("wlan")) typeName = "wlan"; // Actually try to use the Module - if(i->getModuleOwner() != NULL){ + if(i->getModuleOwner() != NULL) typeName = i->getModuleOwner()->getPixmapName(i); - } - QPixmap type = (Resource::loadPixmap(typeName)); - item->setPixmap(1, type); - - item->setText(2, i->getHardwareName()); + item->setPixmap(1, (Resource::loadPixmap(typeName))); + item->setText(2, i->getHardwareName()); + item->setText(3, (i->getStatus()) ? i->getIp() : QString("")); } /** * Adds a new profile to the list of profiles. * Don't add profiles that already exists. - * Appends to the combo and QStringList + * Appends to the list and QStringList */ void MainWindowImp::addProfile(){ - QString newProfileName = "New"; + NameDialog foo(this, "namedialog", true); + QString newProfileName = foo.go(); + if(newProfileName.length() == 0) + return; + if(profiles.grep(newProfileName).count() > 0){ - QMessageBox::information(this, "Can't Add.","Profile already exists.", "Ok"); + QMessageBox::information(this, "Can't Add","Profile already exists.", "Ok"); return; } profiles.append(newProfileName); profilesList->insertItem(newProfileName); - } /** diff --git a/noncore/settings/networksettings/networksetup.pro b/noncore/settings/networksettings/networksetup.pro index ba70180..e146eb4 100644 --- a/noncore/settings/networksettings/networksetup.pro +++ b/noncore/settings/networksettings/networksetup.pro @@ -1,8 +1,8 @@ TEMPLATE = app #CONFIG = qt warn_on debug CONFIG = qt warn_on release -HEADERS = mainwindowimp.h addconnectionimp.h interface.h interfaceinformationimp.h interfacesetupimp.h interfaces.h defaultmodule.h kprocctrl.h module.h kprocess.h -SOURCES = main.cpp mainwindowimp.cpp addconnectionimp.cpp interface.cpp interfaceinformationimp.cpp interfacesetupimp.cpp kprocctrl.cpp kprocess.cpp interfaces.cpp +HEADERS = mainwindowimp.h addconnectionimp.h interface.h interfaceinformationimp.h interfacesetupimp.h interfaces.h defaultmodule.h kprocctrl.h module.h kprocess.h namedialog.h +SOURCES = main.cpp namedialog.cpp mainwindowimp.cpp addconnectionimp.cpp interface.cpp interfaceinformationimp.cpp interfacesetupimp.cpp kprocctrl.cpp kprocess.cpp interfaces.cpp #INCLUDEPATH += $(QPEDIR)/include #DEPENDPATH += $(QPEDIR)/include LIBS += -lqpe -- cgit v0.9.0.2