summaryrefslogtreecommitdiff
Side-by-side diff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/net/networksetup/interface.cpp16
-rw-r--r--noncore/net/networksetup/mainwindow.ui16
-rw-r--r--noncore/net/networksetup/mainwindowimp.cpp73
-rw-r--r--noncore/net/networksetup/networksetup.pro4
-rw-r--r--noncore/settings/networksettings/interface.cpp16
-rw-r--r--noncore/settings/networksettings/mainwindow.ui16
-rw-r--r--noncore/settings/networksettings/mainwindowimp.cpp73
-rw-r--r--noncore/settings/networksettings/networksetup.pro4
8 files changed, 148 insertions, 70 deletions
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
@@ -2,4 +2,5 @@
#include <qdatetime.h>
#include <qfile.h>
+#include <qdir.h>
#include <qfileinfo.h>
#include <qtextstream.h>
@@ -128,7 +129,12 @@ bool Interface::refresh(){
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)){
@@ -149,6 +155,6 @@ bool Interface::refresh(){
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();
@@ -161,5 +167,5 @@ bool Interface::refresh(){
// 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)){
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
@@ -46,5 +46,5 @@
<attribute>
<name>title</name>
- <string>Interfaces</string>
+ <string>Connections</string>
</attribute>
<vbox>
@@ -101,4 +101,18 @@
</property>
</column>
+ <column>
+ <property>
+ <name>text</name>
+ <string>IP</string>
+ </property>
+ <property>
+ <name>clickable</name>
+ <bool>true</bool>
+ </property>
+ <property>
+ <name>resizeable</name>
+ <bool>true</bool>
+ </property>
+ </column>
<property stdset="1">
<name>name</name>
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
@@ -6,4 +6,5 @@
#include "kprocess.h"
+#include "namedialog.h"
#include <qpushbutton.h>
@@ -129,9 +130,11 @@ void MainWindowImp::addClicked(){
QMap<Module*, QLibrary*>::Iterator it;
QMap<QString, QString> list;
+ QMap<QString, Module*> 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.
@@ -144,5 +147,17 @@ void MainWindowImp::addClicked(){
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);
+ }
+ }
+ }
}
}
@@ -154,16 +169,22 @@ 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?
+ }
}
-
}
@@ -312,10 +333,11 @@ 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, "", "", "");
@@ -326,5 +348,4 @@ void MainWindowImp::updateInterface(Interface *i){
i->setModuleOwner(it.key());
}
-
items.insert(i, item);
interfaceItems.insert(item, i);
@@ -332,10 +353,7 @@ void MainWindowImp::updateInterface(Interface *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";
@@ -347,12 +365,10 @@ void MainWindowImp::updateInterface(Interface *i){
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(""));
}
@@ -360,15 +376,18 @@ void MainWindowImp::updateInterface(Interface *i){
* 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
@@ -2,6 +2,6 @@ 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
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
@@ -2,4 +2,5 @@
#include <qdatetime.h>
#include <qfile.h>
+#include <qdir.h>
#include <qfileinfo.h>
#include <qtextstream.h>
@@ -128,7 +129,12 @@ bool Interface::refresh(){
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)){
@@ -149,6 +155,6 @@ bool Interface::refresh(){
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();
@@ -161,5 +167,5 @@ bool Interface::refresh(){
// 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)){
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
@@ -46,5 +46,5 @@
<attribute>
<name>title</name>
- <string>Interfaces</string>
+ <string>Connections</string>
</attribute>
<vbox>
@@ -101,4 +101,18 @@
</property>
</column>
+ <column>
+ <property>
+ <name>text</name>
+ <string>IP</string>
+ </property>
+ <property>
+ <name>clickable</name>
+ <bool>true</bool>
+ </property>
+ <property>
+ <name>resizeable</name>
+ <bool>true</bool>
+ </property>
+ </column>
<property stdset="1">
<name>name</name>
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
@@ -6,4 +6,5 @@
#include "kprocess.h"
+#include "namedialog.h"
#include <qpushbutton.h>
@@ -129,9 +130,11 @@ void MainWindowImp::addClicked(){
QMap<Module*, QLibrary*>::Iterator it;
QMap<QString, QString> list;
+ QMap<QString, Module*> 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.
@@ -144,5 +147,17 @@ void MainWindowImp::addClicked(){
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);
+ }
+ }
+ }
}
}
@@ -154,16 +169,22 @@ 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?
+ }
}
-
}
@@ -312,10 +333,11 @@ 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, "", "", "");
@@ -326,5 +348,4 @@ void MainWindowImp::updateInterface(Interface *i){
i->setModuleOwner(it.key());
}
-
items.insert(i, item);
interfaceItems.insert(item, i);
@@ -332,10 +353,7 @@ void MainWindowImp::updateInterface(Interface *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";
@@ -347,12 +365,10 @@ void MainWindowImp::updateInterface(Interface *i){
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(""));
}
@@ -360,15 +376,18 @@ void MainWindowImp::updateInterface(Interface *i){
* 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
@@ -2,6 +2,6 @@ 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