-rw-r--r-- | noncore/net/networksetup/interface.cpp | 14 | ||||
-rw-r--r-- | noncore/net/networksetup/mainwindow.ui | 16 | ||||
-rw-r--r-- | noncore/net/networksetup/mainwindowimp.cpp | 63 | ||||
-rw-r--r-- | noncore/net/networksetup/networksetup.pro | 4 | ||||
-rw-r--r-- | noncore/settings/networksettings/interface.cpp | 14 | ||||
-rw-r--r-- | noncore/settings/networksettings/mainwindow.ui | 16 | ||||
-rw-r--r-- | noncore/settings/networksettings/mainwindowimp.cpp | 63 | ||||
-rw-r--r-- | noncore/settings/networksettings/networksetup.pro | 4 |
8 files changed, 136 insertions, 58 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 | |||
@@ -1,6 +1,7 @@ | |||
1 | #include "interface.h" | 1 | #include "interface.h" |
2 | #include <qdatetime.h> | 2 | #include <qdatetime.h> |
3 | #include <qfile.h> | 3 | #include <qfile.h> |
4 | #include <qdir.h> | ||
4 | #include <qfileinfo.h> | 5 | #include <qfileinfo.h> |
5 | #include <qtextstream.h> | 6 | #include <qtextstream.h> |
6 | 7 | ||
@@ -128,8 +129,13 @@ bool Interface::refresh(){ | |||
128 | leaseExpires = ""; | 129 | leaseExpires = ""; |
129 | dhcp = false; | 130 | dhcp = false; |
130 | 131 | ||
132 | QString dhcpDirectory(HDCP_INFO_DIR); | ||
133 | QDir d(dhcpDirectory); | ||
134 | if(!d.exists(dhcpDirectory)) | ||
135 | dhcpDirectory = "/var/run"; | ||
136 | |||
131 | // See if we have | 137 | // See if we have |
132 | QString dhcpFile(QString(HDCP_INFO_DIR "/dhcpcd-%1.info").arg(interfaceName)); | 138 | QString dhcpFile(QString(dhcpDirectory+"/dhcpcd-%1.info").arg(interfaceName)); |
133 | // If there is no DHCP information then exit now with no errors. | 139 | // If there is no DHCP information then exit now with no errors. |
134 | if(!QFile::exists(dhcpFile)){ | 140 | if(!QFile::exists(dhcpFile)){ |
135 | return true; | 141 | return true; |
@@ -148,8 +154,8 @@ bool Interface::refresh(){ | |||
148 | stream.setDevice( &file ); | 154 | stream.setDevice( &file ); |
149 | while ( !stream.eof() ) { | 155 | while ( !stream.eof() ) { |
150 | line = stream.readLine(); | 156 | line = stream.readLine(); |
151 | if(line.contains("DHCPSID=")) | 157 | if(line.contains("DHCPSIADDR=")) |
152 | dhcpServerIp = line.mid(8, line.length()); | 158 | dhcpServerIp = line.mid(11, line.length()); |
153 | if(line.contains("LEASETIME=")) | 159 | if(line.contains("LEASETIME=")) |
154 | leaseTime = line.mid(10, line.length()).toInt(); | 160 | leaseTime = line.mid(10, line.length()).toInt(); |
155 | if(line.contains("RENEWALTIME=")) | 161 | if(line.contains("RENEWALTIME=")) |
@@ -160,7 +166,7 @@ bool Interface::refresh(){ | |||
160 | //qDebug(QString("Interface: renewalTime: %1").arg(renewalTime).latin1()); | 166 | //qDebug(QString("Interface: renewalTime: %1").arg(renewalTime).latin1()); |
161 | 167 | ||
162 | // Get the pid of the deamond | 168 | // Get the pid of the deamond |
163 | dhcpFile = (QString(HDCP_INFO_DIR "/dhcpcd-%1.pid").arg(interfaceName)); | 169 | dhcpFile = (QString(dhcpDirectory+"/dhcpcd-%1.pid").arg(interfaceName)); |
164 | file.setName(dhcpFile); | 170 | file.setName(dhcpFile); |
165 | if (!file.open(IO_ReadOnly)){ | 171 | if (!file.open(IO_ReadOnly)){ |
166 | qDebug(QString("Interface: Can't open file: %1").arg(dhcpFile).latin1()); | 172 | 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 @@ | |||
45 | </property> | 45 | </property> |
46 | <attribute> | 46 | <attribute> |
47 | <name>title</name> | 47 | <name>title</name> |
48 | <string>Interfaces</string> | 48 | <string>Connections</string> |
49 | </attribute> | 49 | </attribute> |
50 | <vbox> | 50 | <vbox> |
51 | <property stdset="1"> | 51 | <property stdset="1"> |
@@ -100,6 +100,20 @@ | |||
100 | <bool>true</bool> | 100 | <bool>true</bool> |
101 | </property> | 101 | </property> |
102 | </column> | 102 | </column> |
103 | <column> | ||
104 | <property> | ||
105 | <name>text</name> | ||
106 | <string>IP</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> | ||
103 | <property stdset="1"> | 117 | <property stdset="1"> |
104 | <name>name</name> | 118 | <name>name</name> |
105 | <cstring>connectionList</cstring> | 119 | <cstring>connectionList</cstring> |
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 @@ | |||
5 | #include "module.h" | 5 | #include "module.h" |
6 | 6 | ||
7 | #include "kprocess.h" | 7 | #include "kprocess.h" |
8 | #include "namedialog.h" | ||
8 | 9 | ||
9 | #include <qpushbutton.h> | 10 | #include <qpushbutton.h> |
10 | #include <qtabwidget.h> | 11 | #include <qtabwidget.h> |
@@ -128,12 +129,14 @@ Module* MainWindowImp::loadPlugin(QString pluginFileName, QString resolveString) | |||
128 | void MainWindowImp::addClicked(){ | 129 | void MainWindowImp::addClicked(){ |
129 | QMap<Module*, QLibrary*>::Iterator it; | 130 | QMap<Module*, QLibrary*>::Iterator it; |
130 | QMap<QString, QString> list; | 131 | QMap<QString, QString> list; |
132 | QMap<QString, Module*> newInterfaceOwners; | ||
131 | list.insert("USB (PPP) / (ADD_TEST)", "A dialup connection over the USB port"); | 133 | list.insert("USB (PPP) / (ADD_TEST)", "A dialup connection over the USB port"); |
132 | list.insert("IrDa (PPP) / (ADD_TEST)", "A dialup connection over the IdDa port"); | 134 | list.insert("IrDa (PPP) / (ADD_TEST)", "A dialup connection over the IdDa port"); |
133 | for( it = libraries.begin(); it != libraries.end(); ++it ){ | 135 | for( it = libraries.begin(); it != libraries.end(); ++it ){ |
134 | if(it.key()) | 136 | if(it.key()){ |
135 | (it.key())->possibleNewInterfaces(list); | 137 | (it.key())->possibleNewInterfaces(list); |
136 | } | 138 | } |
139 | } | ||
137 | // See if the list has anything that we can add. | 140 | // See if the list has anything that we can add. |
138 | if(list.count() == 0){ | 141 | if(list.count() == 0){ |
139 | QMessageBox::information(this, "Sorry", "Nothing to add.", "Ok"); | 142 | QMessageBox::information(this, "Sorry", "Nothing to add.", "Ok"); |
@@ -143,7 +146,19 @@ void MainWindowImp::addClicked(){ | |||
143 | addNewConnection.addConnections(list); | 146 | addNewConnection.addConnections(list); |
144 | addNewConnection.showMaximized(); | 147 | addNewConnection.showMaximized(); |
145 | if(QDialog::Accepted == addNewConnection.exec()){ | 148 | if(QDialog::Accepted == addNewConnection.exec()){ |
149 | QListViewItem *item = addNewConnection.registeredServicesList->currentItem(); | ||
150 | if(!item) | ||
151 | return; | ||
146 | 152 | ||
153 | for( it = libraries.begin(); it != libraries.end(); ++it ){ | ||
154 | if(it.key()){ | ||
155 | Interface *i = (it.key())->addNewInterface(item->text(0)); | ||
156 | if(i){ | ||
157 | interfaceNames.insert(i->getInterfaceName(), i); | ||
158 | updateInterface(i); | ||
159 | } | ||
160 | } | ||
161 | } | ||
147 | } | 162 | } |
148 | } | 163 | } |
149 | 164 | ||
@@ -153,18 +168,24 @@ void MainWindowImp::addClicked(){ | |||
153 | */ | 168 | */ |
154 | void MainWindowImp::removeClicked(){ | 169 | void MainWindowImp::removeClicked(){ |
155 | QListViewItem *item = connectionList->currentItem(); | 170 | QListViewItem *item = connectionList->currentItem(); |
156 | if(item == NULL) { | 171 | if(!item) { |
157 | QMessageBox::information(this, "Error","Please select an interface.", "Ok"); | 172 | QMessageBox::information(this, "Error","Please select an interface.", "Ok"); |
158 | return; | 173 | return; |
159 | } | 174 | } |
160 | 175 | ||
161 | if((interfaceItems[item])->getModuleOwner() == NULL){ | 176 | Interface *i = interfaceItems[item]; |
177 | if(i->getModuleOwner() == NULL){ | ||
162 | QMessageBox::information(this, "Can't remove interface.", "Interface is built in.", "Ok"); | 178 | QMessageBox::information(this, "Can't remove interface.", "Interface is built in.", "Ok"); |
163 | } | 179 | } |
164 | else{ | 180 | else{ |
165 | // Try to remove. | 181 | if(!i->getModuleOwner()->remove(i)) |
182 | QMessageBox::information(this, "Error", "Unable to remove.", "Ok"); | ||
183 | else{ | ||
184 | QMessageBox::information(this, "Success", "Interface was removed.", "Ok"); | ||
185 | // TODO memory managment.... | ||
186 | // who deletes the interface? | ||
187 | } | ||
166 | } | 188 | } |
167 | |||
168 | } | 189 | } |
169 | 190 | ||
170 | /** | 191 | /** |
@@ -311,12 +332,13 @@ void MainWindowImp::jobDone(KProcess *process){ | |||
311 | } | 332 | } |
312 | 333 | ||
313 | /** | 334 | /** |
314 | * | 335 | * Update this interface. If no QListViewItem exists create one. |
336 | * @param Interface* pointer to the interface that needs to be updated. | ||
315 | */ | 337 | */ |
316 | void MainWindowImp::updateInterface(Interface *i){ | 338 | void MainWindowImp::updateInterface(Interface *i){ |
317 | QListViewItem *item = NULL; | 339 | QListViewItem *item = NULL; |
318 | 340 | ||
319 | // See if we already have it | 341 | // Find the interface, making it if needed. |
320 | if(items.find(i) == items.end()){ | 342 | if(items.find(i) == items.end()){ |
321 | item = new QListViewItem(connectionList, "", "", ""); | 343 | item = new QListViewItem(connectionList, "", "", ""); |
322 | // See if you can't find a module owner for this interface | 344 | // See if you can't find a module owner for this interface |
@@ -325,18 +347,14 @@ void MainWindowImp::updateInterface(Interface *i){ | |||
325 | if(it.key()->isOwner(i)) | 347 | if(it.key()->isOwner(i)) |
326 | i->setModuleOwner(it.key()); | 348 | i->setModuleOwner(it.key()); |
327 | } | 349 | } |
328 | |||
329 | items.insert(i, item); | 350 | items.insert(i, item); |
330 | interfaceItems.insert(item, i); | 351 | interfaceItems.insert(item, i); |
331 | } | 352 | } |
332 | else | 353 | else |
333 | item = items[i]; | 354 | item = items[i]; |
334 | 355 | ||
335 | QString statusImage = "down"; | 356 | // Update the icons and information |
336 | if(i->getStatus()) | 357 | item->setPixmap(0, (Resource::loadPixmap(i->getStatus() ? "up": "down"))); |
337 | statusImage = "up"; | ||
338 | QPixmap status = (Resource::loadPixmap(statusImage)); | ||
339 | item->setPixmap(0, status); | ||
340 | 358 | ||
341 | QString typeName = "lan"; | 359 | QString typeName = "lan"; |
342 | if(i->getHardwareName().contains("Local Loopback")) | 360 | if(i->getHardwareName().contains("Local Loopback")) |
@@ -346,30 +364,31 @@ void MainWindowImp::updateInterface(Interface *i){ | |||
346 | if(i->getInterfaceName().contains("wlan")) | 364 | if(i->getInterfaceName().contains("wlan")) |
347 | typeName = "wlan"; | 365 | typeName = "wlan"; |
348 | // Actually try to use the Module | 366 | // Actually try to use the Module |
349 | if(i->getModuleOwner() != NULL){ | 367 | if(i->getModuleOwner() != NULL) |
350 | typeName = i->getModuleOwner()->getPixmapName(i); | 368 | typeName = i->getModuleOwner()->getPixmapName(i); |
351 | } | ||
352 | QPixmap type = (Resource::loadPixmap(typeName)); | ||
353 | item->setPixmap(1, type); | ||
354 | 369 | ||
370 | item->setPixmap(1, (Resource::loadPixmap(typeName))); | ||
355 | item->setText(2, i->getHardwareName()); | 371 | item->setText(2, i->getHardwareName()); |
356 | 372 | item->setText(3, (i->getStatus()) ? i->getIp() : QString("")); | |
357 | } | 373 | } |
358 | 374 | ||
359 | /** | 375 | /** |
360 | * Adds a new profile to the list of profiles. | 376 | * Adds a new profile to the list of profiles. |
361 | * Don't add profiles that already exists. | 377 | * Don't add profiles that already exists. |
362 | * Appends to the combo and QStringList | 378 | * Appends to the list and QStringList |
363 | */ | 379 | */ |
364 | void MainWindowImp::addProfile(){ | 380 | void MainWindowImp::addProfile(){ |
365 | QString newProfileName = "New"; | 381 | NameDialog foo(this, "namedialog", true); |
382 | QString newProfileName = foo.go(); | ||
383 | if(newProfileName.length() == 0) | ||
384 | return; | ||
385 | |||
366 | if(profiles.grep(newProfileName).count() > 0){ | 386 | if(profiles.grep(newProfileName).count() > 0){ |
367 | QMessageBox::information(this, "Can't Add.","Profile already exists.", "Ok"); | 387 | QMessageBox::information(this, "Can't Add","Profile already exists.", "Ok"); |
368 | return; | 388 | return; |
369 | } | 389 | } |
370 | profiles.append(newProfileName); | 390 | profiles.append(newProfileName); |
371 | profilesList->insertItem(newProfileName); | 391 | profilesList->insertItem(newProfileName); |
372 | |||
373 | } | 392 | } |
374 | 393 | ||
375 | /** | 394 | /** |
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 @@ | |||
1 | TEMPLATE= app | 1 | TEMPLATE= app |
2 | #CONFIG = qt warn_on debug | 2 | #CONFIG = qt warn_on debug |
3 | CONFIG = qt warn_on release | 3 | CONFIG = qt warn_on release |
4 | HEADERS = mainwindowimp.h addconnectionimp.h interface.h interfaceinformationimp.h interfacesetupimp.h interfaces.h defaultmodule.h kprocctrl.h module.h kprocess.h | 4 | HEADERS = mainwindowimp.h addconnectionimp.h interface.h interfaceinformationimp.h interfacesetupimp.h interfaces.h defaultmodule.h kprocctrl.h module.h kprocess.h namedialog.h |
5 | SOURCES = main.cpp mainwindowimp.cpp addconnectionimp.cpp interface.cpp interfaceinformationimp.cpp interfacesetupimp.cpp kprocctrl.cpp kprocess.cpp interfaces.cpp | 5 | SOURCES = main.cpp namedialog.cpp mainwindowimp.cpp addconnectionimp.cpp interface.cpp interfaceinformationimp.cpp interfacesetupimp.cpp kprocctrl.cpp kprocess.cpp interfaces.cpp |
6 | #INCLUDEPATH+= $(QPEDIR)/include | 6 | #INCLUDEPATH+= $(QPEDIR)/include |
7 | #DEPENDPATH+= $(QPEDIR)/include | 7 | #DEPENDPATH+= $(QPEDIR)/include |
8 | LIBS += -lqpe | 8 | 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 @@ | |||
1 | #include "interface.h" | 1 | #include "interface.h" |
2 | #include <qdatetime.h> | 2 | #include <qdatetime.h> |
3 | #include <qfile.h> | 3 | #include <qfile.h> |
4 | #include <qdir.h> | ||
4 | #include <qfileinfo.h> | 5 | #include <qfileinfo.h> |
5 | #include <qtextstream.h> | 6 | #include <qtextstream.h> |
6 | 7 | ||
@@ -128,8 +129,13 @@ bool Interface::refresh(){ | |||
128 | leaseExpires = ""; | 129 | leaseExpires = ""; |
129 | dhcp = false; | 130 | dhcp = false; |
130 | 131 | ||
132 | QString dhcpDirectory(HDCP_INFO_DIR); | ||
133 | QDir d(dhcpDirectory); | ||
134 | if(!d.exists(dhcpDirectory)) | ||
135 | dhcpDirectory = "/var/run"; | ||
136 | |||
131 | // See if we have | 137 | // See if we have |
132 | QString dhcpFile(QString(HDCP_INFO_DIR "/dhcpcd-%1.info").arg(interfaceName)); | 138 | QString dhcpFile(QString(dhcpDirectory+"/dhcpcd-%1.info").arg(interfaceName)); |
133 | // If there is no DHCP information then exit now with no errors. | 139 | // If there is no DHCP information then exit now with no errors. |
134 | if(!QFile::exists(dhcpFile)){ | 140 | if(!QFile::exists(dhcpFile)){ |
135 | return true; | 141 | return true; |
@@ -148,8 +154,8 @@ bool Interface::refresh(){ | |||
148 | stream.setDevice( &file ); | 154 | stream.setDevice( &file ); |
149 | while ( !stream.eof() ) { | 155 | while ( !stream.eof() ) { |
150 | line = stream.readLine(); | 156 | line = stream.readLine(); |
151 | if(line.contains("DHCPSID=")) | 157 | if(line.contains("DHCPSIADDR=")) |
152 | dhcpServerIp = line.mid(8, line.length()); | 158 | dhcpServerIp = line.mid(11, line.length()); |
153 | if(line.contains("LEASETIME=")) | 159 | if(line.contains("LEASETIME=")) |
154 | leaseTime = line.mid(10, line.length()).toInt(); | 160 | leaseTime = line.mid(10, line.length()).toInt(); |
155 | if(line.contains("RENEWALTIME=")) | 161 | if(line.contains("RENEWALTIME=")) |
@@ -160,7 +166,7 @@ bool Interface::refresh(){ | |||
160 | //qDebug(QString("Interface: renewalTime: %1").arg(renewalTime).latin1()); | 166 | //qDebug(QString("Interface: renewalTime: %1").arg(renewalTime).latin1()); |
161 | 167 | ||
162 | // Get the pid of the deamond | 168 | // Get the pid of the deamond |
163 | dhcpFile = (QString(HDCP_INFO_DIR "/dhcpcd-%1.pid").arg(interfaceName)); | 169 | dhcpFile = (QString(dhcpDirectory+"/dhcpcd-%1.pid").arg(interfaceName)); |
164 | file.setName(dhcpFile); | 170 | file.setName(dhcpFile); |
165 | if (!file.open(IO_ReadOnly)){ | 171 | if (!file.open(IO_ReadOnly)){ |
166 | qDebug(QString("Interface: Can't open file: %1").arg(dhcpFile).latin1()); | 172 | 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 @@ | |||
45 | </property> | 45 | </property> |
46 | <attribute> | 46 | <attribute> |
47 | <name>title</name> | 47 | <name>title</name> |
48 | <string>Interfaces</string> | 48 | <string>Connections</string> |
49 | </attribute> | 49 | </attribute> |
50 | <vbox> | 50 | <vbox> |
51 | <property stdset="1"> | 51 | <property stdset="1"> |
@@ -100,6 +100,20 @@ | |||
100 | <bool>true</bool> | 100 | <bool>true</bool> |
101 | </property> | 101 | </property> |
102 | </column> | 102 | </column> |
103 | <column> | ||
104 | <property> | ||
105 | <name>text</name> | ||
106 | <string>IP</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> | ||
103 | <property stdset="1"> | 117 | <property stdset="1"> |
104 | <name>name</name> | 118 | <name>name</name> |
105 | <cstring>connectionList</cstring> | 119 | <cstring>connectionList</cstring> |
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 @@ | |||
5 | #include "module.h" | 5 | #include "module.h" |
6 | 6 | ||
7 | #include "kprocess.h" | 7 | #include "kprocess.h" |
8 | #include "namedialog.h" | ||
8 | 9 | ||
9 | #include <qpushbutton.h> | 10 | #include <qpushbutton.h> |
10 | #include <qtabwidget.h> | 11 | #include <qtabwidget.h> |
@@ -128,12 +129,14 @@ Module* MainWindowImp::loadPlugin(QString pluginFileName, QString resolveString) | |||
128 | void MainWindowImp::addClicked(){ | 129 | void MainWindowImp::addClicked(){ |
129 | QMap<Module*, QLibrary*>::Iterator it; | 130 | QMap<Module*, QLibrary*>::Iterator it; |
130 | QMap<QString, QString> list; | 131 | QMap<QString, QString> list; |
132 | QMap<QString, Module*> newInterfaceOwners; | ||
131 | list.insert("USB (PPP) / (ADD_TEST)", "A dialup connection over the USB port"); | 133 | list.insert("USB (PPP) / (ADD_TEST)", "A dialup connection over the USB port"); |
132 | list.insert("IrDa (PPP) / (ADD_TEST)", "A dialup connection over the IdDa port"); | 134 | list.insert("IrDa (PPP) / (ADD_TEST)", "A dialup connection over the IdDa port"); |
133 | for( it = libraries.begin(); it != libraries.end(); ++it ){ | 135 | for( it = libraries.begin(); it != libraries.end(); ++it ){ |
134 | if(it.key()) | 136 | if(it.key()){ |
135 | (it.key())->possibleNewInterfaces(list); | 137 | (it.key())->possibleNewInterfaces(list); |
136 | } | 138 | } |
139 | } | ||
137 | // See if the list has anything that we can add. | 140 | // See if the list has anything that we can add. |
138 | if(list.count() == 0){ | 141 | if(list.count() == 0){ |
139 | QMessageBox::information(this, "Sorry", "Nothing to add.", "Ok"); | 142 | QMessageBox::information(this, "Sorry", "Nothing to add.", "Ok"); |
@@ -143,7 +146,19 @@ void MainWindowImp::addClicked(){ | |||
143 | addNewConnection.addConnections(list); | 146 | addNewConnection.addConnections(list); |
144 | addNewConnection.showMaximized(); | 147 | addNewConnection.showMaximized(); |
145 | if(QDialog::Accepted == addNewConnection.exec()){ | 148 | if(QDialog::Accepted == addNewConnection.exec()){ |
149 | QListViewItem *item = addNewConnection.registeredServicesList->currentItem(); | ||
150 | if(!item) | ||
151 | return; | ||
146 | 152 | ||
153 | for( it = libraries.begin(); it != libraries.end(); ++it ){ | ||
154 | if(it.key()){ | ||
155 | Interface *i = (it.key())->addNewInterface(item->text(0)); | ||
156 | if(i){ | ||
157 | interfaceNames.insert(i->getInterfaceName(), i); | ||
158 | updateInterface(i); | ||
159 | } | ||
160 | } | ||
161 | } | ||
147 | } | 162 | } |
148 | } | 163 | } |
149 | 164 | ||
@@ -153,18 +168,24 @@ void MainWindowImp::addClicked(){ | |||
153 | */ | 168 | */ |
154 | void MainWindowImp::removeClicked(){ | 169 | void MainWindowImp::removeClicked(){ |
155 | QListViewItem *item = connectionList->currentItem(); | 170 | QListViewItem *item = connectionList->currentItem(); |
156 | if(item == NULL) { | 171 | if(!item) { |
157 | QMessageBox::information(this, "Error","Please select an interface.", "Ok"); | 172 | QMessageBox::information(this, "Error","Please select an interface.", "Ok"); |
158 | return; | 173 | return; |
159 | } | 174 | } |
160 | 175 | ||
161 | if((interfaceItems[item])->getModuleOwner() == NULL){ | 176 | Interface *i = interfaceItems[item]; |
177 | if(i->getModuleOwner() == NULL){ | ||
162 | QMessageBox::information(this, "Can't remove interface.", "Interface is built in.", "Ok"); | 178 | QMessageBox::information(this, "Can't remove interface.", "Interface is built in.", "Ok"); |
163 | } | 179 | } |
164 | else{ | 180 | else{ |
165 | // Try to remove. | 181 | if(!i->getModuleOwner()->remove(i)) |
182 | QMessageBox::information(this, "Error", "Unable to remove.", "Ok"); | ||
183 | else{ | ||
184 | QMessageBox::information(this, "Success", "Interface was removed.", "Ok"); | ||
185 | // TODO memory managment.... | ||
186 | // who deletes the interface? | ||
187 | } | ||
166 | } | 188 | } |
167 | |||
168 | } | 189 | } |
169 | 190 | ||
170 | /** | 191 | /** |
@@ -311,12 +332,13 @@ void MainWindowImp::jobDone(KProcess *process){ | |||
311 | } | 332 | } |
312 | 333 | ||
313 | /** | 334 | /** |
314 | * | 335 | * Update this interface. If no QListViewItem exists create one. |
336 | * @param Interface* pointer to the interface that needs to be updated. | ||
315 | */ | 337 | */ |
316 | void MainWindowImp::updateInterface(Interface *i){ | 338 | void MainWindowImp::updateInterface(Interface *i){ |
317 | QListViewItem *item = NULL; | 339 | QListViewItem *item = NULL; |
318 | 340 | ||
319 | // See if we already have it | 341 | // Find the interface, making it if needed. |
320 | if(items.find(i) == items.end()){ | 342 | if(items.find(i) == items.end()){ |
321 | item = new QListViewItem(connectionList, "", "", ""); | 343 | item = new QListViewItem(connectionList, "", "", ""); |
322 | // See if you can't find a module owner for this interface | 344 | // See if you can't find a module owner for this interface |
@@ -325,18 +347,14 @@ void MainWindowImp::updateInterface(Interface *i){ | |||
325 | if(it.key()->isOwner(i)) | 347 | if(it.key()->isOwner(i)) |
326 | i->setModuleOwner(it.key()); | 348 | i->setModuleOwner(it.key()); |
327 | } | 349 | } |
328 | |||
329 | items.insert(i, item); | 350 | items.insert(i, item); |
330 | interfaceItems.insert(item, i); | 351 | interfaceItems.insert(item, i); |
331 | } | 352 | } |
332 | else | 353 | else |
333 | item = items[i]; | 354 | item = items[i]; |
334 | 355 | ||
335 | QString statusImage = "down"; | 356 | // Update the icons and information |
336 | if(i->getStatus()) | 357 | item->setPixmap(0, (Resource::loadPixmap(i->getStatus() ? "up": "down"))); |
337 | statusImage = "up"; | ||
338 | QPixmap status = (Resource::loadPixmap(statusImage)); | ||
339 | item->setPixmap(0, status); | ||
340 | 358 | ||
341 | QString typeName = "lan"; | 359 | QString typeName = "lan"; |
342 | if(i->getHardwareName().contains("Local Loopback")) | 360 | if(i->getHardwareName().contains("Local Loopback")) |
@@ -346,30 +364,31 @@ void MainWindowImp::updateInterface(Interface *i){ | |||
346 | if(i->getInterfaceName().contains("wlan")) | 364 | if(i->getInterfaceName().contains("wlan")) |
347 | typeName = "wlan"; | 365 | typeName = "wlan"; |
348 | // Actually try to use the Module | 366 | // Actually try to use the Module |
349 | if(i->getModuleOwner() != NULL){ | 367 | if(i->getModuleOwner() != NULL) |
350 | typeName = i->getModuleOwner()->getPixmapName(i); | 368 | typeName = i->getModuleOwner()->getPixmapName(i); |
351 | } | ||
352 | QPixmap type = (Resource::loadPixmap(typeName)); | ||
353 | item->setPixmap(1, type); | ||
354 | 369 | ||
370 | item->setPixmap(1, (Resource::loadPixmap(typeName))); | ||
355 | item->setText(2, i->getHardwareName()); | 371 | item->setText(2, i->getHardwareName()); |
356 | 372 | item->setText(3, (i->getStatus()) ? i->getIp() : QString("")); | |
357 | } | 373 | } |
358 | 374 | ||
359 | /** | 375 | /** |
360 | * Adds a new profile to the list of profiles. | 376 | * Adds a new profile to the list of profiles. |
361 | * Don't add profiles that already exists. | 377 | * Don't add profiles that already exists. |
362 | * Appends to the combo and QStringList | 378 | * Appends to the list and QStringList |
363 | */ | 379 | */ |
364 | void MainWindowImp::addProfile(){ | 380 | void MainWindowImp::addProfile(){ |
365 | QString newProfileName = "New"; | 381 | NameDialog foo(this, "namedialog", true); |
382 | QString newProfileName = foo.go(); | ||
383 | if(newProfileName.length() == 0) | ||
384 | return; | ||
385 | |||
366 | if(profiles.grep(newProfileName).count() > 0){ | 386 | if(profiles.grep(newProfileName).count() > 0){ |
367 | QMessageBox::information(this, "Can't Add.","Profile already exists.", "Ok"); | 387 | QMessageBox::information(this, "Can't Add","Profile already exists.", "Ok"); |
368 | return; | 388 | return; |
369 | } | 389 | } |
370 | profiles.append(newProfileName); | 390 | profiles.append(newProfileName); |
371 | profilesList->insertItem(newProfileName); | 391 | profilesList->insertItem(newProfileName); |
372 | |||
373 | } | 392 | } |
374 | 393 | ||
375 | /** | 394 | /** |
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 @@ | |||
1 | TEMPLATE= app | 1 | TEMPLATE= app |
2 | #CONFIG = qt warn_on debug | 2 | #CONFIG = qt warn_on debug |
3 | CONFIG = qt warn_on release | 3 | CONFIG = qt warn_on release |
4 | HEADERS = mainwindowimp.h addconnectionimp.h interface.h interfaceinformationimp.h interfacesetupimp.h interfaces.h defaultmodule.h kprocctrl.h module.h kprocess.h | 4 | HEADERS = mainwindowimp.h addconnectionimp.h interface.h interfaceinformationimp.h interfacesetupimp.h interfaces.h defaultmodule.h kprocctrl.h module.h kprocess.h namedialog.h |
5 | SOURCES = main.cpp mainwindowimp.cpp addconnectionimp.cpp interface.cpp interfaceinformationimp.cpp interfacesetupimp.cpp kprocctrl.cpp kprocess.cpp interfaces.cpp | 5 | SOURCES = main.cpp namedialog.cpp mainwindowimp.cpp addconnectionimp.cpp interface.cpp interfaceinformationimp.cpp interfacesetupimp.cpp kprocctrl.cpp kprocess.cpp interfaces.cpp |
6 | #INCLUDEPATH+= $(QPEDIR)/include | 6 | #INCLUDEPATH+= $(QPEDIR)/include |
7 | #DEPENDPATH+= $(QPEDIR)/include | 7 | #DEPENDPATH+= $(QPEDIR)/include |
8 | LIBS += -lqpe | 8 | LIBS += -lqpe |