summaryrefslogtreecommitdiff
authorbenmeyer <benmeyer>2002-10-31 20:15:07 (UTC)
committer benmeyer <benmeyer>2002-10-31 20:15:07 (UTC)
commita491aa2ba326826b7493caa83fc6050e11d53be5 (patch) (unidiff)
tree4598d1770de61605dceafceafce3ad43b633f711
parentab5a63544deead5206ca47ff8bf94123aa032281 (diff)
downloadopie-a491aa2ba326826b7493caa83fc6050e11d53be5.zip
opie-a491aa2ba326826b7493caa83fc6050e11d53be5.tar.gz
opie-a491aa2ba326826b7493caa83fc6050e11d53be5.tar.bz2
Changed a number of "OK" to QMesageBox::OK
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/net/networksetup/TODO7
-rw-r--r--noncore/net/networksetup/interfaces/interfacesetupimp.cpp2
-rw-r--r--noncore/net/networksetup/mainwindowimp.cpp20
-rw-r--r--noncore/settings/networksettings/TODO7
-rw-r--r--noncore/settings/networksettings/interfaces/interfacesetupimp.cpp2
-rw-r--r--noncore/settings/networksettings/mainwindowimp.cpp20
6 files changed, 30 insertions, 28 deletions
diff --git a/noncore/net/networksetup/TODO b/noncore/net/networksetup/TODO
index ec6d2c6..d6bfee1 100644
--- a/noncore/net/networksetup/TODO
+++ b/noncore/net/networksetup/TODO
@@ -1,16 +1,17 @@
1CLEAN UP 1CLEAN UP
2 2
3Fix Profiles 3Fix Profiles
4 4
5Write dns script
6
7WLAN needs to be re-written to not use Config 5WLAN needs to be re-written to not use Config
8 6
9Write a class that parses /proc and not ifconfig 7Write a class that parses /proc and not ifconfig
10udchcp needs to output the dhcp information 8
9udchcp needs to output the dhcp information so interfaces can read it
10
11interfacesetupimp really doesn't need a interface* pointer
11 12
12Possible other modules to write: ppp, ipsec, bluetooth, ipchains 13Possible other modules to write: ppp, ipsec, bluetooth, ipchains
13 14
14PPP module needs to scan pppd.tdb to see what is currently active 15PPP module needs to scan pppd.tdb to see what is currently active
15 16
16 17
diff --git a/noncore/net/networksetup/interfaces/interfacesetupimp.cpp b/noncore/net/networksetup/interfaces/interfacesetupimp.cpp
index a19aaeb..3b1a4de 100644
--- a/noncore/net/networksetup/interfaces/interfacesetupimp.cpp
+++ b/noncore/net/networksetup/interfaces/interfacesetupimp.cpp
@@ -1,127 +1,127 @@
1#include "interfacesetupimp.h" 1#include "interfacesetupimp.h"
2#include "interface.h" 2#include "interface.h"
3#include "interfaces.h" 3#include "interfaces.h"
4 4
5#include <qdialog.h> 5#include <qdialog.h>
6#include <qcombobox.h> 6#include <qcombobox.h>
7#include <qcheckbox.h> 7#include <qcheckbox.h>
8#include <qlineedit.h> 8#include <qlineedit.h>
9#include <qspinbox.h> 9#include <qspinbox.h>
10#include <qgroupbox.h> 10#include <qgroupbox.h>
11#include <qlabel.h> 11#include <qlabel.h>
12 12
13#include <qmessagebox.h> 13#include <qmessagebox.h>
14 14
15#include <assert.h> 15#include <assert.h>
16 16
17#define DNSSCRIPT "changedns" 17#define DNSSCRIPT "changedns"
18 18
19/** 19/**
20 * Constuctor. Set up the connection and load the first profile. 20 * Constuctor. Set up the connection and load the first profile.
21 */ 21 */
22InterfaceSetupImp::InterfaceSetupImp(QWidget* parent, const char* name, Interface *i, WFlags fl) : InterfaceSetup(parent, name, fl){ 22InterfaceSetupImp::InterfaceSetupImp(QWidget* parent, const char* name, Interface *i, WFlags fl) : InterfaceSetup(parent, name, fl){
23 assert(parent); 23 assert(parent);
24 assert(i); 24 assert(i);
25 interface = i; 25 interface = i;
26 interfaces = new Interfaces(); 26 interfaces = new Interfaces();
27 bool error = false; 27 bool error = false;
28 if(interfaces->getInterfaceMethod(error) == INTERFACES_LOOPBACK){ 28 if(interfaces->getInterfaceMethod(error) == INTERFACES_LOOPBACK){
29 staticGroupBox->hide(); 29 staticGroupBox->hide();
30 dhcpCheckBox->hide(); 30 dhcpCheckBox->hide();
31 leaseTime->hide(); 31 leaseTime->hide();
32 leaseHoursLabel->hide(); 32 leaseHoursLabel->hide();
33 } 33 }
34} 34}
35 35
36/** 36/**
37 * Save the current settings, then write out the interfaces file and close. 37 * Save the current settings, then write out the interfaces file and close.
38 */ 38 */
39bool InterfaceSetupImp::saveChanges(){ 39bool InterfaceSetupImp::saveChanges(){
40 if(!saveSettings()) 40 if(!saveSettings())
41 return false; 41 return false;
42 interfaces->write(); 42 interfaces->write();
43 return true; 43 return true;
44} 44}
45 45
46/** 46/**
47 * Save the settings for the current Interface. 47 * Save the settings for the current Interface.
48 * @return bool true if successfull, false otherwise 48 * @return bool true if successfull, false otherwise
49 */ 49 */
50bool InterfaceSetupImp::saveSettings(){ 50bool InterfaceSetupImp::saveSettings(){
51 // eh can't really do anything about it other then return. :-D 51 // eh can't really do anything about it other then return. :-D
52 if(!interfaces->isInterfaceSet()) 52 if(!interfaces->isInterfaceSet())
53 return true; 53 return true;
54 54
55 bool error = false; 55 bool error = false;
56 // Loopback case 56 // Loopback case
57 if(interfaces->getInterfaceMethod(error) == INTERFACES_LOOPBACK){ 57 if(interfaces->getInterfaceMethod(error) == INTERFACES_LOOPBACK){
58 interfaces->setAuto(interface->getInterfaceName(), autoStart->isChecked()); 58 interfaces->setAuto(interface->getInterfaceName(), autoStart->isChecked());
59 return true; 59 return true;
60 } 60 }
61 61
62 if(!dhcpCheckBox->isChecked() && (ipAddressEdit->text().isEmpty() || subnetMaskEdit->text().isEmpty())){ 62 if(!dhcpCheckBox->isChecked() && (ipAddressEdit->text().isEmpty() || subnetMaskEdit->text().isEmpty())){
63 QMessageBox::information(this, "Not Saved.", "Please fill in the IP address and\n subnet entries.", "Ok"); 63 QMessageBox::information(this, "Not Saved.", "Please fill in the IP address and\n subnet entries.", QMessageBox::Ok);
64 return false; 64 return false;
65 } 65 }
66 interfaces->removeAllInterfaceOptions(); 66 interfaces->removeAllInterfaceOptions();
67 67
68 // DHCP 68 // DHCP
69 if(dhcpCheckBox->isChecked()){ 69 if(dhcpCheckBox->isChecked()){
70 interfaces->setInterfaceMethod(INTERFACES_METHOD_DHCP); 70 interfaces->setInterfaceMethod(INTERFACES_METHOD_DHCP);
71 interfaces->setInterfaceOption("leasehours", QString("%1").arg(leaseTime->value())); 71 interfaces->setInterfaceOption("leasehours", QString("%1").arg(leaseTime->value()));
72 interfaces->setInterfaceOption("leasetime", QString("%1").arg(leaseTime->value()*60*60)); 72 interfaces->setInterfaceOption("leasetime", QString("%1").arg(leaseTime->value()*60*60));
73 } 73 }
74 else{ 74 else{
75 interfaces->setInterfaceMethod("static"); 75 interfaces->setInterfaceMethod("static");
76 interfaces->setInterfaceOption("address", ipAddressEdit->text()); 76 interfaces->setInterfaceOption("address", ipAddressEdit->text());
77 interfaces->setInterfaceOption("netmask", subnetMaskEdit->text()); 77 interfaces->setInterfaceOption("netmask", subnetMaskEdit->text());
78 interfaces->setInterfaceOption("gateway", gatewayEdit->text()); 78 interfaces->setInterfaceOption("gateway", gatewayEdit->text());
79 if(!firstDNSLineEdit->text().isEmpty() || !secondDNSLineEdit->text().isEmpty()){ 79 if(!firstDNSLineEdit->text().isEmpty() || !secondDNSLineEdit->text().isEmpty()){
80 QString dns = firstDNSLineEdit->text() + " " + secondDNSLineEdit->text(); 80 QString dns = firstDNSLineEdit->text() + " " + secondDNSLineEdit->text();
81 interfaces->setInterfaceOption("up "DNSSCRIPT" -a ", dns); 81 interfaces->setInterfaceOption("up "DNSSCRIPT" -a ", dns);
82 interfaces->setInterfaceOption("down "DNSSCRIPT" -r ", dns); 82 interfaces->setInterfaceOption("down "DNSSCRIPT" -r ", dns);
83 } 83 }
84 } 84 }
85 85
86 // IP Information 86 // IP Information
87 interfaces->setAuto(interface->getInterfaceName(), autoStart->isChecked()); 87 interfaces->setAuto(interface->getInterfaceName(), autoStart->isChecked());
88 return true; 88 return true;
89} 89}
90 90
91/** 91/**
92 * The Profile has changed. 92 * The Profile has changed.
93 * @profile the new profile. 93 * @profile the new profile.
94 */ 94 */
95void InterfaceSetupImp::setProfile(const QString &profile){ 95void InterfaceSetupImp::setProfile(const QString &profile){
96 QString newInterfaceName = interface->getInterfaceName(); 96 QString newInterfaceName = interface->getInterfaceName();
97 if(profile.length() > 0) 97 if(profile.length() > 0)
98 newInterfaceName += "_" + profile; 98 newInterfaceName += "_" + profile;
99 qDebug("InterfaceSetupImp::setProfile"); 99 qDebug("InterfaceSetupImp::setProfile");
100 // See if we have to make a interface. 100 // See if we have to make a interface.
101 if(!interfaces->setInterface(newInterfaceName)){ 101 if(!interfaces->setInterface(newInterfaceName)){
102 // Add making for this new interface if need too 102 // Add making for this new interface if need too
103 if(profile != ""){ 103 if(profile != ""){
104 interfaces->copyInterface(interface->getInterfaceName(), newInterfaceName); 104 interfaces->copyInterface(interface->getInterfaceName(), newInterfaceName);
105 if(!interfaces->setMapping(interface->getInterfaceName())){ 105 if(!interfaces->setMapping(interface->getInterfaceName())){
106 interfaces->addMapping(interface->getInterfaceName()); 106 interfaces->addMapping(interface->getInterfaceName());
107 if(!interfaces->setMapping(interface->getInterfaceName())){ 107 if(!interfaces->setMapping(interface->getInterfaceName())){
108 qDebug("InterfaceSetupImp: Added Mapping, but still can't set."); 108 qDebug("InterfaceSetupImp: Added Mapping, but still can't set.");
109 return; 109 return;
110 } 110 }
111 } 111 }
112 interfaces->setMap("map", newInterfaceName); 112 interfaces->setMap("map", newInterfaceName);
113 interfaces->setScript("getprofile.sh"); 113 interfaces->setScript("getprofile.sh");
114 } 114 }
115 else{ 115 else{
116 interfaces->addInterface(newInterfaceName, INTERFACES_FAMILY_INET, INTERFACES_METHOD_DHCP); 116 interfaces->addInterface(newInterfaceName, INTERFACES_FAMILY_INET, INTERFACES_METHOD_DHCP);
117 if(!interfaces->setInterface(newInterfaceName)){ 117 if(!interfaces->setInterface(newInterfaceName)){
118 qDebug("InterfaceSetupImp: Added interface, but still can't set."); 118 qDebug("InterfaceSetupImp: Added interface, but still can't set.");
119 return; 119 return;
120 } 120 }
121 } 121 }
122 } 122 }
123 123
124 // We must have a valid interface to get this far so read some settings. 124 // We must have a valid interface to get this far so read some settings.
125 125
126 // DHCP 126 // DHCP
127 bool error = false; 127 bool error = false;
diff --git a/noncore/net/networksetup/mainwindowimp.cpp b/noncore/net/networksetup/mainwindowimp.cpp
index 6440bd4..3b0b7e8 100644
--- a/noncore/net/networksetup/mainwindowimp.cpp
+++ b/noncore/net/networksetup/mainwindowimp.cpp
@@ -108,171 +108,171 @@ void MainWindowImp::loadModules(QString path){
108 //qDebug(path.latin1()); 108 //qDebug(path.latin1());
109 QDir d(path); 109 QDir d(path);
110 if(!d.exists()) 110 if(!d.exists())
111 return; 111 return;
112 112
113 // Don't want sym links 113 // Don't want sym links
114 d.setFilter( QDir::Files | QDir::NoSymLinks ); 114 d.setFilter( QDir::Files | QDir::NoSymLinks );
115 const QFileInfoList *list = d.entryInfoList(); 115 const QFileInfoList *list = d.entryInfoList();
116 QFileInfoListIterator it( *list ); 116 QFileInfoListIterator it( *list );
117 QFileInfo *fi; 117 QFileInfo *fi;
118 while ( (fi=it.current()) ) { 118 while ( (fi=it.current()) ) {
119 if(fi->fileName().contains(".so")){ 119 if(fi->fileName().contains(".so")){
120 loadPlugin(path + "/" + fi->fileName()); 120 loadPlugin(path + "/" + fi->fileName());
121 } 121 }
122 ++it; 122 ++it;
123 } 123 }
124} 124}
125 125
126/** 126/**
127 * Attempt to load a function and resolve a function. 127 * Attempt to load a function and resolve a function.
128 * @param pluginFileName - the name of the file in which to attempt to load 128 * @param pluginFileName - the name of the file in which to attempt to load
129 * @param resolveString - function pointer to resolve 129 * @param resolveString - function pointer to resolve
130 * @return pointer to the function with name resolveString or NULL 130 * @return pointer to the function with name resolveString or NULL
131 */ 131 */
132Module* MainWindowImp::loadPlugin(QString pluginFileName, QString resolveString){ 132Module* MainWindowImp::loadPlugin(QString pluginFileName, QString resolveString){
133 //qDebug(QString("MainWindowImp::loadPlugin: %1").arg(pluginFileName).latin1()); 133 //qDebug(QString("MainWindowImp::loadPlugin: %1").arg(pluginFileName).latin1());
134 QLibrary *lib = new QLibrary(pluginFileName); 134 QLibrary *lib = new QLibrary(pluginFileName);
135 void *functionPointer = lib->resolve(resolveString); 135 void *functionPointer = lib->resolve(resolveString);
136 if( !functionPointer ){ 136 if( !functionPointer ){
137 qDebug(QString("MainWindowImp: File: %1 is not a plugin, but though was.").arg(pluginFileName).latin1()); 137 qDebug(QString("MainWindowImp: File: %1 is not a plugin, but though was.").arg(pluginFileName).latin1());
138 delete lib; 138 delete lib;
139 return NULL; 139 return NULL;
140 } 140 }
141 141
142 // Try to get an object. 142 // Try to get an object.
143 Module *object = ((Module* (*)()) functionPointer)(); 143 Module *object = ((Module* (*)()) functionPointer)();
144 if(object == NULL){ 144 if(object == NULL){
145 qDebug("MainWindowImp: Couldn't create object, but did load library!"); 145 qDebug("MainWindowImp: Couldn't create object, but did load library!");
146 delete lib; 146 delete lib;
147 return NULL; 147 return NULL;
148 } 148 }
149 149
150 // Store for deletion later 150 // Store for deletion later
151 libraries.insert(object, lib); 151 libraries.insert(object, lib);
152 return object; 152 return object;
153} 153}
154 154
155/** 155/**
156 * The Add button was clicked. Bring up the add dialog and if OK is hit 156 * The Add button was clicked. Bring up the add dialog and if OK is hit
157 * load the plugin and append it to the list 157 * load the plugin and append it to the list
158 */ 158 */
159void MainWindowImp::addClicked(){ 159void MainWindowImp::addClicked(){
160 QMap<Module*, QLibrary*>::Iterator it; 160 QMap<Module*, QLibrary*>::Iterator it;
161 QMap<QString, QString> list; 161 QMap<QString, QString> list;
162 QMap<QString, Module*> newInterfaceOwners; 162 QMap<QString, Module*> newInterfaceOwners;
163 list.insert("USB (PPP) / (ADD_TEST)", "A dialup connection over the USB port"); 163 list.insert("USB (PPP) / (ADD_TEST)", "A dialup connection over the USB port");
164 list.insert("IrDa (PPP) / (ADD_TEST)", "A dialup connection over the IdDa port"); 164 list.insert("IrDa (PPP) / (ADD_TEST)", "A dialup connection over the IdDa port");
165 for( it = libraries.begin(); it != libraries.end(); ++it ){ 165 for( it = libraries.begin(); it != libraries.end(); ++it ){
166 if(it.key()){ 166 if(it.key()){
167 (it.key())->possibleNewInterfaces(list); 167 (it.key())->possibleNewInterfaces(list);
168 } 168 }
169 } 169 }
170 // See if the list has anything that we can add. 170 // See if the list has anything that we can add.
171 if(list.count() == 0){ 171 if(list.count() == 0){
172 QMessageBox::information(this, "Sorry", "Nothing to add.", "Ok"); 172 QMessageBox::information(this, "Sorry", "Nothing to add.", QMessageBox::Ok);
173 return; 173 return;
174 } 174 }
175 AddConnectionImp addNewConnection(this, "AddConnectionImp", true); 175 AddConnectionImp addNewConnection(this, "AddConnectionImp", true);
176 addNewConnection.addConnections(list); 176 addNewConnection.addConnections(list);
177 addNewConnection.showMaximized(); 177 addNewConnection.showMaximized();
178 if(QDialog::Accepted == addNewConnection.exec()){ 178 if(QDialog::Accepted == addNewConnection.exec()){
179 QListViewItem *item = addNewConnection.registeredServicesList->currentItem(); 179 QListViewItem *item = addNewConnection.registeredServicesList->currentItem();
180 if(!item) 180 if(!item)
181 return; 181 return;
182 182
183 for( it = libraries.begin(); it != libraries.end(); ++it ){ 183 for( it = libraries.begin(); it != libraries.end(); ++it ){
184 if(it.key()){ 184 if(it.key()){
185 Interface *i = (it.key())->addNewInterface(item->text(0)); 185 Interface *i = (it.key())->addNewInterface(item->text(0));
186 if(i){ 186 if(i){
187 interfaceNames.insert(i->getInterfaceName(), i); 187 interfaceNames.insert(i->getInterfaceName(), i);
188 updateInterface(i); 188 updateInterface(i);
189 } 189 }
190 } 190 }
191 } 191 }
192 } 192 }
193} 193}
194 194
195/** 195/**
196 * Prompt the user to see if they really want to do this. 196 * Prompt the user to see if they really want to do this.
197 * If they do then remove from the list and unload. 197 * If they do then remove from the list and unload.
198 */ 198 */
199void MainWindowImp::removeClicked(){ 199void MainWindowImp::removeClicked(){
200 QListViewItem *item = connectionList->currentItem(); 200 QListViewItem *item = connectionList->currentItem();
201 if(!item) { 201 if(!item) {
202 QMessageBox::information(this, "Sorry","Please select an interface First.", "Ok"); 202 QMessageBox::information(this, "Sorry","Please select an interface First.", QMessageBox::Ok);
203 return; 203 return;
204 } 204 }
205 205
206 Interface *i = interfaceItems[item]; 206 Interface *i = interfaceItems[item];
207 if(i->getModuleOwner() == NULL){ 207 if(i->getModuleOwner() == NULL){
208 QMessageBox::information(this, "Can't remove interface.", "Interface is built in.", "Ok"); 208 QMessageBox::information(this, "Can't remove interface.", "Interface is built in.", QMessageBox::Ok);
209 } 209 }
210 else{ 210 else{
211 if(!i->getModuleOwner()->remove(i)) 211 if(!i->getModuleOwner()->remove(i))
212 QMessageBox::information(this, "Error", "Unable to remove.", "Ok"); 212 QMessageBox::information(this, "Error", "Unable to remove.", QMessageBox::Ok);
213 else{ 213 else{
214 QMessageBox::information(this, "Success", "Interface was removed.", "Ok"); 214 QMessageBox::information(this, "Success", "Interface was removed.", QMessageBox::Ok);
215 // TODO memory managment.... 215 // TODO memory managment....
216 // who deletes the interface? 216 // who deletes the interface?
217 } 217 }
218 } 218 }
219} 219}
220 220
221/** 221/**
222 * Pull up the configure about the currently selected interface. 222 * Pull up the configure about the currently selected interface.
223 * Report an error if no interface is selected. 223 * Report an error if no interface is selected.
224 * If the interface has a module owner then request its configure. 224 * If the interface has a module owner then request its configure.
225 */ 225 */
226void MainWindowImp::configureClicked(){ 226void MainWindowImp::configureClicked(){
227 QListViewItem *item = connectionList->currentItem(); 227 QListViewItem *item = connectionList->currentItem();
228 if(!item){ 228 if(!item){
229 QMessageBox::information(this, "Sorry","Please select an interface first.", QMessageBox::Ok); 229 QMessageBox::information(this, "Sorry","Please select an interface first.", QMessageBox::Ok);
230 return; 230 return;
231 } 231 }
232 232
233 Interface *i = interfaceItems[item]; 233 Interface *i = interfaceItems[item];
234 if(i->getModuleOwner()){ 234 if(i->getModuleOwner()){
235 QWidget *moduleConfigure = i->getModuleOwner()->configure(i); 235 QWidget *moduleConfigure = i->getModuleOwner()->configure(i);
236 if(moduleConfigure != NULL){ 236 if(moduleConfigure != NULL){
237 moduleConfigure->showMaximized(); 237 moduleConfigure->showMaximized();
238 moduleConfigure->show(); 238 moduleConfigure->show();
239 return; 239 return;
240 } 240 }
241 } 241 }
242 242
243 InterfaceSetupImpDialog *configure = new InterfaceSetupImpDialog(0, "InterfaceSetupImp", i, true, Qt::WDestructiveClose); 243 InterfaceSetupImpDialog *configure = new InterfaceSetupImpDialog(0, "InterfaceSetupImp", i, true, Qt::WDestructiveClose);
244 QString currentProfileText = currentProfileLabel->text(); 244 QString currentProfileText = currentProfileLabel->text();
245 if(currentProfileText.upper() == "ALL"); 245 if(currentProfileText.upper() == "ALL");
246 currentProfileText = ""; 246 currentProfileText = "";
247 configure->setProfile(currentProfileText); 247 configure->setProfile(currentProfileText);
248 configure->showMaximized(); 248 configure->showMaximized();
249 configure->show(); 249 configure->show();
250} 250}
251 251
252/** 252/**
253 * Pull up the information about the currently selected interface. 253 * Pull up the information about the currently selected interface.
254 * Report an error if no interface is selected. 254 * Report an error if no interface is selected.
255 * If the interface has a module owner then request its configure. 255 * If the interface has a module owner then request its configure.
256 */ 256 */
257void MainWindowImp::informationClicked(){ 257void MainWindowImp::informationClicked(){
258 QListViewItem *item = connectionList->currentItem(); 258 QListViewItem *item = connectionList->currentItem();
259 if(!item){ 259 if(!item){
260 QMessageBox::information(this, "Sorry","Please select an interface First.", QMessageBox::Ok); 260 QMessageBox::information(this, "Sorry","Please select an interface First.", QMessageBox::Ok);
261 return; 261 return;
262 } 262 }
263 263
264 Interface *i = interfaceItems[item]; 264 Interface *i = interfaceItems[item];
265 if(!i->isAttached()){ 265 if(!i->isAttached()){
266 QMessageBox::information(this, "Sorry","No information about\na disconnected interface.", QMessageBox::Ok); 266 QMessageBox::information(this, "Sorry","No information about\na disconnected interface.", QMessageBox::Ok);
267 return; 267 return;
268 } 268 }
269 269
270 if(i->getModuleOwner()){ 270 if(i->getModuleOwner()){
271 QWidget *moduleInformation = i->getModuleOwner()->information(i); 271 QWidget *moduleInformation = i->getModuleOwner()->information(i);
272 if(moduleInformation != NULL){ 272 if(moduleInformation != NULL){
273 moduleInformation->showMaximized(); 273 moduleInformation->showMaximized();
274 moduleInformation->show(); 274 moduleInformation->show();
275 return; 275 return;
276 } 276 }
277 } 277 }
278 InterfaceInformationImp *information = new InterfaceInformationImp(0, "InterfaceSetupImp", i, true); 278 InterfaceInformationImp *information = new InterfaceInformationImp(0, "InterfaceSetupImp", i, true);
@@ -383,155 +383,155 @@ void MainWindowImp::jobDone(KProcess *process){
383 */ 383 */
384void MainWindowImp::updateInterface(Interface *i){ 384void MainWindowImp::updateInterface(Interface *i){
385 if(!advancedUserMode){ 385 if(!advancedUserMode){
386 if(i->getInterfaceName() == "lo") 386 if(i->getInterfaceName() == "lo")
387 return; 387 return;
388 } 388 }
389 389
390 QListViewItem *item = NULL; 390 QListViewItem *item = NULL;
391 391
392 // Find the interface, making it if needed. 392 // Find the interface, making it if needed.
393 if(items.find(i) == items.end()){ 393 if(items.find(i) == items.end()){
394 item = new QListViewItem(connectionList, "", "", ""); 394 item = new QListViewItem(connectionList, "", "", "");
395 // See if you can't find a module owner for this interface 395 // See if you can't find a module owner for this interface
396 QMap<Module*, QLibrary*>::Iterator it; 396 QMap<Module*, QLibrary*>::Iterator it;
397 for( it = libraries.begin(); it != libraries.end(); ++it ){ 397 for( it = libraries.begin(); it != libraries.end(); ++it ){
398 if(it.key()->isOwner(i)) 398 if(it.key()->isOwner(i))
399 i->setModuleOwner(it.key()); 399 i->setModuleOwner(it.key());
400 } 400 }
401 items.insert(i, item); 401 items.insert(i, item);
402 interfaceItems.insert(item, i); 402 interfaceItems.insert(item, i);
403 } 403 }
404 else 404 else
405 item = items[i]; 405 item = items[i];
406 406
407 // Update the icons and information 407 // Update the icons and information
408 item->setPixmap(0, (Resource::loadPixmap(i->getStatus() ? "up": "down"))); 408 item->setPixmap(0, (Resource::loadPixmap(i->getStatus() ? "up": "down")));
409 409
410 QString typeName = "lan"; 410 QString typeName = "lan";
411 if(i->getHardwareName().contains("Local Loopback")) 411 if(i->getHardwareName().contains("Local Loopback"))
412 typeName = "lo"; 412 typeName = "lo";
413 if(i->getInterfaceName().contains("irda")) 413 if(i->getInterfaceName().contains("irda"))
414 typeName = "irda"; 414 typeName = "irda";
415 if(i->getInterfaceName().contains("wlan")) 415 if(i->getInterfaceName().contains("wlan"))
416 typeName = "wlan"; 416 typeName = "wlan";
417 if(i->getInterfaceName().contains("usb")) 417 if(i->getInterfaceName().contains("usb"))
418 typeName = "usb"; 418 typeName = "usb";
419 419
420 if(!i->isAttached()) 420 if(!i->isAttached())
421 typeName = "connect_no"; 421 typeName = "connect_no";
422 // Actually try to use the Module 422 // Actually try to use the Module
423 if(i->getModuleOwner() != NULL) 423 if(i->getModuleOwner() != NULL)
424 typeName = i->getModuleOwner()->getPixmapName(i); 424 typeName = i->getModuleOwner()->getPixmapName(i);
425 425
426 item->setPixmap(1, (Resource::loadPixmap(typeName))); 426 item->setPixmap(1, (Resource::loadPixmap(typeName)));
427 item->setText(2, i->getHardwareName()); 427 item->setText(2, i->getHardwareName());
428 item->setText(3, QString("(%1)").arg(i->getInterfaceName())); 428 item->setText(3, QString("(%1)").arg(i->getInterfaceName()));
429 item->setText(4, (i->getStatus()) ? i->getIp() : QString("")); 429 item->setText(4, (i->getStatus()) ? i->getIp() : QString(""));
430} 430}
431 431
432void MainWindowImp::newProfileChanged(const QString& newText){ 432void MainWindowImp::newProfileChanged(const QString& newText){
433 if(newText.length() > 0) 433 if(newText.length() > 0)
434 newProfileButton->setEnabled(true); 434 newProfileButton->setEnabled(true);
435 else 435 else
436 newProfileButton->setEnabled(false); 436 newProfileButton->setEnabled(false);
437} 437}
438 438
439/** 439/**
440 * Adds a new profile to the list of profiles. 440 * Adds a new profile to the list of profiles.
441 * Don't add profiles that already exists. 441 * Don't add profiles that already exists.
442 * Appends to the list and QStringList 442 * Appends to the list and QStringList
443 */ 443 */
444void MainWindowImp::addProfile(){ 444void MainWindowImp::addProfile(){
445 QString newProfileName = newProfile->text(); 445 QString newProfileName = newProfile->text();
446 if(profiles.grep(newProfileName).count() > 0){ 446 if(profiles.grep(newProfileName).count() > 0){
447 QMessageBox::information(this, "Can't Add","Profile already exists.", "Ok"); 447 QMessageBox::information(this, "Can't Add","Profile already exists.", QMessageBox::Ok);
448 return; 448 return;
449 } 449 }
450 profiles.append(newProfileName); 450 profiles.append(newProfileName);
451 profilesList->insertItem(newProfileName); 451 profilesList->insertItem(newProfileName);
452} 452}
453 453
454/** 454/**
455 * Removes the currently selected profile in the combo. 455 * Removes the currently selected profile in the combo.
456 * Doesn't delete if there are less then 2 profiles. 456 * Doesn't delete if there are less then 2 profiles.
457 */ 457 */
458void MainWindowImp::removeProfile(){ 458void MainWindowImp::removeProfile(){
459 if(profilesList->count() <= 1){ 459 if(profilesList->count() <= 1){
460 QMessageBox::information(this, "Can't remove.","At least one profile\nis needed.", "Ok"); 460 QMessageBox::information(this, "Can't remove.","At least one profile\nis needed.", QMessageBox::Ok);
461 return; 461 return;
462 } 462 }
463 QString profileToRemove = profilesList->currentText(); 463 QString profileToRemove = profilesList->currentText();
464 if(profileToRemove == "All"){ 464 if(profileToRemove == "All"){
465 QMessageBox::information(this, "Can't remove.","Can't remove default.", "Ok"); 465 QMessageBox::information(this, "Can't remove.","Can't remove default.", QMessageBox::Ok);
466 return; 466 return;
467 } 467 }
468 // Can't remove the curent profile 468 // Can't remove the curent profile
469 if(profileToRemove == currentProfileLabel->text()){ 469 if(profileToRemove == currentProfileLabel->text()){
470 QMessageBox::information(this, "Can't remove.",QString("%1 is the current profile.").arg(profileToRemove), "Ok"); 470 QMessageBox::information(this, "Can't remove.",QString("%1 is the current profile.").arg(profileToRemove), QMessageBox::Ok);
471 return; 471 return;
472 472
473 } 473 }
474 474
475 if(QMessageBox::information(this, "Question",QString("Remove profile: %1").arg(profileToRemove), QMessageBox::Ok, QMessageBox::Cancel) == QMessageBox::Ok){ 475 if(QMessageBox::information(this, "Question",QString("Remove profile: %1").arg(profileToRemove), QMessageBox::Ok, QMessageBox::Cancel) == QMessageBox::Ok){
476 profiles = QStringList::split(" ", profiles.join(" ").replace(QRegExp(profileToRemove), "")); 476 profiles = QStringList::split(" ", profiles.join(" ").replace(QRegExp(profileToRemove), ""));
477 profilesList->clear(); 477 profilesList->clear();
478 for ( QStringList::Iterator it = profiles.begin(); it != profiles.end(); ++it) 478 for ( QStringList::Iterator it = profiles.begin(); it != profiles.end(); ++it)
479 profilesList->insertItem((*it)); 479 profilesList->insertItem((*it));
480 480
481 // Remove any interface settings and mappings. 481 // Remove any interface settings and mappings.
482 Interfaces interfaces; 482 Interfaces interfaces;
483 // Go through them one by one 483 // Go through them one by one
484 QMap<Interface*, QListViewItem*>::Iterator it; 484 QMap<Interface*, QListViewItem*>::Iterator it;
485 for( it = items.begin(); it != items.end(); ++it ){ 485 for( it = items.begin(); it != items.end(); ++it ){
486 QString interfaceName = it.key()->getInterfaceName(); 486 QString interfaceName = it.key()->getInterfaceName();
487 qDebug(interfaceName.latin1()); 487 qDebug(interfaceName.latin1());
488 if(interfaces.setInterface(interfaceName + "_" + profileToRemove)){ 488 if(interfaces.setInterface(interfaceName + "_" + profileToRemove)){
489 interfaces.removeInterface(); 489 interfaces.removeInterface();
490 if(interfaces.setMapping(interfaceName)){ 490 if(interfaces.setMapping(interfaceName)){
491 if(profilesList->count() == 1) 491 if(profilesList->count() == 1)
492 interfaces.removeMapping(); 492 interfaces.removeMapping();
493 else{ 493 else{
494 interfaces.removeMap("map", interfaceName + "_" + profileToRemove); 494 interfaces.removeMap("map", interfaceName + "_" + profileToRemove);
495 } 495 }
496 } 496 }
497 interfaces.write(); 497 interfaces.write();
498 break; 498 break;
499 } 499 }
500 } 500 }
501 } 501 }
502} 502}
503 503
504/** 504/**
505 * A new profile has been selected, change. 505 * A new profile has been selected, change.
506 * @param newProfile the new profile. 506 * @param newProfile the new profile.
507 */ 507 */
508void MainWindowImp::changeProfile(){ 508void MainWindowImp::changeProfile(){
509 if(profilesList->currentItem() == -1){ 509 if(profilesList->currentItem() == -1){
510 QMessageBox::information(this, "Can't Change.","Please select a profile.", "Ok"); 510 QMessageBox::information(this, "Can't Change.","Please select a profile.", QMessageBox::Ok);
511 return; 511 return;
512 } 512 }
513 QString newProfile = profilesList->text(profilesList->currentItem()); 513 QString newProfile = profilesList->text(profilesList->currentItem());
514 if(newProfile != currentProfileLabel->text()){ 514 if(newProfile != currentProfileLabel->text()){
515 currentProfileLabel->setText(newProfile); 515 currentProfileLabel->setText(newProfile);
516 QFile::remove(scheme); 516 QFile::remove(scheme);
517 QFile file(scheme); 517 QFile file(scheme);
518 if ( file.open(IO_ReadWrite) ) { 518 if ( file.open(IO_ReadWrite) ) {
519 QTextStream stream( &file ); 519 QTextStream stream( &file );
520 stream << QString("SCHEME=%1").arg(newProfile); 520 stream << QString("SCHEME=%1").arg(newProfile);
521 file.close(); 521 file.close();
522 } 522 }
523 // restart all up devices? 523 // restart all up devices?
524 if(QMessageBox::information(this, "Question","Restart all running interfaces?", QMessageBox::Ok, QMessageBox::No) == QMessageBox::Ok){ 524 if(QMessageBox::information(this, "Question","Restart all running interfaces?", QMessageBox::Ok, QMessageBox::No) == QMessageBox::Ok){
525 // Go through them one by one 525 // Go through them one by one
526 QMap<Interface*, QListViewItem*>::Iterator it; 526 QMap<Interface*, QListViewItem*>::Iterator it;
527 for( it = items.begin(); it != items.end(); ++it ){ 527 for( it = items.begin(); it != items.end(); ++it ){
528 if(it.key()->getStatus() == true) 528 if(it.key()->getStatus() == true)
529 it.key()->restart(); 529 it.key()->restart();
530 } 530 }
531 } 531 }
532 } 532 }
533 // TODO change the profile in the modules 533 // TODO change the profile in the modules
534} 534}
535 535
536// mainwindowimp.cpp 536// mainwindowimp.cpp
537 537
diff --git a/noncore/settings/networksettings/TODO b/noncore/settings/networksettings/TODO
index ec6d2c6..d6bfee1 100644
--- a/noncore/settings/networksettings/TODO
+++ b/noncore/settings/networksettings/TODO
@@ -1,16 +1,17 @@
1CLEAN UP 1CLEAN UP
2 2
3Fix Profiles 3Fix Profiles
4 4
5Write dns script
6
7WLAN needs to be re-written to not use Config 5WLAN needs to be re-written to not use Config
8 6
9Write a class that parses /proc and not ifconfig 7Write a class that parses /proc and not ifconfig
10udchcp needs to output the dhcp information 8
9udchcp needs to output the dhcp information so interfaces can read it
10
11interfacesetupimp really doesn't need a interface* pointer
11 12
12Possible other modules to write: ppp, ipsec, bluetooth, ipchains 13Possible other modules to write: ppp, ipsec, bluetooth, ipchains
13 14
14PPP module needs to scan pppd.tdb to see what is currently active 15PPP module needs to scan pppd.tdb to see what is currently active
15 16
16 17
diff --git a/noncore/settings/networksettings/interfaces/interfacesetupimp.cpp b/noncore/settings/networksettings/interfaces/interfacesetupimp.cpp
index a19aaeb..3b1a4de 100644
--- a/noncore/settings/networksettings/interfaces/interfacesetupimp.cpp
+++ b/noncore/settings/networksettings/interfaces/interfacesetupimp.cpp
@@ -1,127 +1,127 @@
1#include "interfacesetupimp.h" 1#include "interfacesetupimp.h"
2#include "interface.h" 2#include "interface.h"
3#include "interfaces.h" 3#include "interfaces.h"
4 4
5#include <qdialog.h> 5#include <qdialog.h>
6#include <qcombobox.h> 6#include <qcombobox.h>
7#include <qcheckbox.h> 7#include <qcheckbox.h>
8#include <qlineedit.h> 8#include <qlineedit.h>
9#include <qspinbox.h> 9#include <qspinbox.h>
10#include <qgroupbox.h> 10#include <qgroupbox.h>
11#include <qlabel.h> 11#include <qlabel.h>
12 12
13#include <qmessagebox.h> 13#include <qmessagebox.h>
14 14
15#include <assert.h> 15#include <assert.h>
16 16
17#define DNSSCRIPT "changedns" 17#define DNSSCRIPT "changedns"
18 18
19/** 19/**
20 * Constuctor. Set up the connection and load the first profile. 20 * Constuctor. Set up the connection and load the first profile.
21 */ 21 */
22InterfaceSetupImp::InterfaceSetupImp(QWidget* parent, const char* name, Interface *i, WFlags fl) : InterfaceSetup(parent, name, fl){ 22InterfaceSetupImp::InterfaceSetupImp(QWidget* parent, const char* name, Interface *i, WFlags fl) : InterfaceSetup(parent, name, fl){
23 assert(parent); 23 assert(parent);
24 assert(i); 24 assert(i);
25 interface = i; 25 interface = i;
26 interfaces = new Interfaces(); 26 interfaces = new Interfaces();
27 bool error = false; 27 bool error = false;
28 if(interfaces->getInterfaceMethod(error) == INTERFACES_LOOPBACK){ 28 if(interfaces->getInterfaceMethod(error) == INTERFACES_LOOPBACK){
29 staticGroupBox->hide(); 29 staticGroupBox->hide();
30 dhcpCheckBox->hide(); 30 dhcpCheckBox->hide();
31 leaseTime->hide(); 31 leaseTime->hide();
32 leaseHoursLabel->hide(); 32 leaseHoursLabel->hide();
33 } 33 }
34} 34}
35 35
36/** 36/**
37 * Save the current settings, then write out the interfaces file and close. 37 * Save the current settings, then write out the interfaces file and close.
38 */ 38 */
39bool InterfaceSetupImp::saveChanges(){ 39bool InterfaceSetupImp::saveChanges(){
40 if(!saveSettings()) 40 if(!saveSettings())
41 return false; 41 return false;
42 interfaces->write(); 42 interfaces->write();
43 return true; 43 return true;
44} 44}
45 45
46/** 46/**
47 * Save the settings for the current Interface. 47 * Save the settings for the current Interface.
48 * @return bool true if successfull, false otherwise 48 * @return bool true if successfull, false otherwise
49 */ 49 */
50bool InterfaceSetupImp::saveSettings(){ 50bool InterfaceSetupImp::saveSettings(){
51 // eh can't really do anything about it other then return. :-D 51 // eh can't really do anything about it other then return. :-D
52 if(!interfaces->isInterfaceSet()) 52 if(!interfaces->isInterfaceSet())
53 return true; 53 return true;
54 54
55 bool error = false; 55 bool error = false;
56 // Loopback case 56 // Loopback case
57 if(interfaces->getInterfaceMethod(error) == INTERFACES_LOOPBACK){ 57 if(interfaces->getInterfaceMethod(error) == INTERFACES_LOOPBACK){
58 interfaces->setAuto(interface->getInterfaceName(), autoStart->isChecked()); 58 interfaces->setAuto(interface->getInterfaceName(), autoStart->isChecked());
59 return true; 59 return true;
60 } 60 }
61 61
62 if(!dhcpCheckBox->isChecked() && (ipAddressEdit->text().isEmpty() || subnetMaskEdit->text().isEmpty())){ 62 if(!dhcpCheckBox->isChecked() && (ipAddressEdit->text().isEmpty() || subnetMaskEdit->text().isEmpty())){
63 QMessageBox::information(this, "Not Saved.", "Please fill in the IP address and\n subnet entries.", "Ok"); 63 QMessageBox::information(this, "Not Saved.", "Please fill in the IP address and\n subnet entries.", QMessageBox::Ok);
64 return false; 64 return false;
65 } 65 }
66 interfaces->removeAllInterfaceOptions(); 66 interfaces->removeAllInterfaceOptions();
67 67
68 // DHCP 68 // DHCP
69 if(dhcpCheckBox->isChecked()){ 69 if(dhcpCheckBox->isChecked()){
70 interfaces->setInterfaceMethod(INTERFACES_METHOD_DHCP); 70 interfaces->setInterfaceMethod(INTERFACES_METHOD_DHCP);
71 interfaces->setInterfaceOption("leasehours", QString("%1").arg(leaseTime->value())); 71 interfaces->setInterfaceOption("leasehours", QString("%1").arg(leaseTime->value()));
72 interfaces->setInterfaceOption("leasetime", QString("%1").arg(leaseTime->value()*60*60)); 72 interfaces->setInterfaceOption("leasetime", QString("%1").arg(leaseTime->value()*60*60));
73 } 73 }
74 else{ 74 else{
75 interfaces->setInterfaceMethod("static"); 75 interfaces->setInterfaceMethod("static");
76 interfaces->setInterfaceOption("address", ipAddressEdit->text()); 76 interfaces->setInterfaceOption("address", ipAddressEdit->text());
77 interfaces->setInterfaceOption("netmask", subnetMaskEdit->text()); 77 interfaces->setInterfaceOption("netmask", subnetMaskEdit->text());
78 interfaces->setInterfaceOption("gateway", gatewayEdit->text()); 78 interfaces->setInterfaceOption("gateway", gatewayEdit->text());
79 if(!firstDNSLineEdit->text().isEmpty() || !secondDNSLineEdit->text().isEmpty()){ 79 if(!firstDNSLineEdit->text().isEmpty() || !secondDNSLineEdit->text().isEmpty()){
80 QString dns = firstDNSLineEdit->text() + " " + secondDNSLineEdit->text(); 80 QString dns = firstDNSLineEdit->text() + " " + secondDNSLineEdit->text();
81 interfaces->setInterfaceOption("up "DNSSCRIPT" -a ", dns); 81 interfaces->setInterfaceOption("up "DNSSCRIPT" -a ", dns);
82 interfaces->setInterfaceOption("down "DNSSCRIPT" -r ", dns); 82 interfaces->setInterfaceOption("down "DNSSCRIPT" -r ", dns);
83 } 83 }
84 } 84 }
85 85
86 // IP Information 86 // IP Information
87 interfaces->setAuto(interface->getInterfaceName(), autoStart->isChecked()); 87 interfaces->setAuto(interface->getInterfaceName(), autoStart->isChecked());
88 return true; 88 return true;
89} 89}
90 90
91/** 91/**
92 * The Profile has changed. 92 * The Profile has changed.
93 * @profile the new profile. 93 * @profile the new profile.
94 */ 94 */
95void InterfaceSetupImp::setProfile(const QString &profile){ 95void InterfaceSetupImp::setProfile(const QString &profile){
96 QString newInterfaceName = interface->getInterfaceName(); 96 QString newInterfaceName = interface->getInterfaceName();
97 if(profile.length() > 0) 97 if(profile.length() > 0)
98 newInterfaceName += "_" + profile; 98 newInterfaceName += "_" + profile;
99 qDebug("InterfaceSetupImp::setProfile"); 99 qDebug("InterfaceSetupImp::setProfile");
100 // See if we have to make a interface. 100 // See if we have to make a interface.
101 if(!interfaces->setInterface(newInterfaceName)){ 101 if(!interfaces->setInterface(newInterfaceName)){
102 // Add making for this new interface if need too 102 // Add making for this new interface if need too
103 if(profile != ""){ 103 if(profile != ""){
104 interfaces->copyInterface(interface->getInterfaceName(), newInterfaceName); 104 interfaces->copyInterface(interface->getInterfaceName(), newInterfaceName);
105 if(!interfaces->setMapping(interface->getInterfaceName())){ 105 if(!interfaces->setMapping(interface->getInterfaceName())){
106 interfaces->addMapping(interface->getInterfaceName()); 106 interfaces->addMapping(interface->getInterfaceName());
107 if(!interfaces->setMapping(interface->getInterfaceName())){ 107 if(!interfaces->setMapping(interface->getInterfaceName())){
108 qDebug("InterfaceSetupImp: Added Mapping, but still can't set."); 108 qDebug("InterfaceSetupImp: Added Mapping, but still can't set.");
109 return; 109 return;
110 } 110 }
111 } 111 }
112 interfaces->setMap("map", newInterfaceName); 112 interfaces->setMap("map", newInterfaceName);
113 interfaces->setScript("getprofile.sh"); 113 interfaces->setScript("getprofile.sh");
114 } 114 }
115 else{ 115 else{
116 interfaces->addInterface(newInterfaceName, INTERFACES_FAMILY_INET, INTERFACES_METHOD_DHCP); 116 interfaces->addInterface(newInterfaceName, INTERFACES_FAMILY_INET, INTERFACES_METHOD_DHCP);
117 if(!interfaces->setInterface(newInterfaceName)){ 117 if(!interfaces->setInterface(newInterfaceName)){
118 qDebug("InterfaceSetupImp: Added interface, but still can't set."); 118 qDebug("InterfaceSetupImp: Added interface, but still can't set.");
119 return; 119 return;
120 } 120 }
121 } 121 }
122 } 122 }
123 123
124 // We must have a valid interface to get this far so read some settings. 124 // We must have a valid interface to get this far so read some settings.
125 125
126 // DHCP 126 // DHCP
127 bool error = false; 127 bool error = false;
diff --git a/noncore/settings/networksettings/mainwindowimp.cpp b/noncore/settings/networksettings/mainwindowimp.cpp
index 6440bd4..3b0b7e8 100644
--- a/noncore/settings/networksettings/mainwindowimp.cpp
+++ b/noncore/settings/networksettings/mainwindowimp.cpp
@@ -108,171 +108,171 @@ void MainWindowImp::loadModules(QString path){
108 //qDebug(path.latin1()); 108 //qDebug(path.latin1());
109 QDir d(path); 109 QDir d(path);
110 if(!d.exists()) 110 if(!d.exists())
111 return; 111 return;
112 112
113 // Don't want sym links 113 // Don't want sym links
114 d.setFilter( QDir::Files | QDir::NoSymLinks ); 114 d.setFilter( QDir::Files | QDir::NoSymLinks );
115 const QFileInfoList *list = d.entryInfoList(); 115 const QFileInfoList *list = d.entryInfoList();
116 QFileInfoListIterator it( *list ); 116 QFileInfoListIterator it( *list );
117 QFileInfo *fi; 117 QFileInfo *fi;
118 while ( (fi=it.current()) ) { 118 while ( (fi=it.current()) ) {
119 if(fi->fileName().contains(".so")){ 119 if(fi->fileName().contains(".so")){
120 loadPlugin(path + "/" + fi->fileName()); 120 loadPlugin(path + "/" + fi->fileName());
121 } 121 }
122 ++it; 122 ++it;
123 } 123 }
124} 124}
125 125
126/** 126/**
127 * Attempt to load a function and resolve a function. 127 * Attempt to load a function and resolve a function.
128 * @param pluginFileName - the name of the file in which to attempt to load 128 * @param pluginFileName - the name of the file in which to attempt to load
129 * @param resolveString - function pointer to resolve 129 * @param resolveString - function pointer to resolve
130 * @return pointer to the function with name resolveString or NULL 130 * @return pointer to the function with name resolveString or NULL
131 */ 131 */
132Module* MainWindowImp::loadPlugin(QString pluginFileName, QString resolveString){ 132Module* MainWindowImp::loadPlugin(QString pluginFileName, QString resolveString){
133 //qDebug(QString("MainWindowImp::loadPlugin: %1").arg(pluginFileName).latin1()); 133 //qDebug(QString("MainWindowImp::loadPlugin: %1").arg(pluginFileName).latin1());
134 QLibrary *lib = new QLibrary(pluginFileName); 134 QLibrary *lib = new QLibrary(pluginFileName);
135 void *functionPointer = lib->resolve(resolveString); 135 void *functionPointer = lib->resolve(resolveString);
136 if( !functionPointer ){ 136 if( !functionPointer ){
137 qDebug(QString("MainWindowImp: File: %1 is not a plugin, but though was.").arg(pluginFileName).latin1()); 137 qDebug(QString("MainWindowImp: File: %1 is not a plugin, but though was.").arg(pluginFileName).latin1());
138 delete lib; 138 delete lib;
139 return NULL; 139 return NULL;
140 } 140 }
141 141
142 // Try to get an object. 142 // Try to get an object.
143 Module *object = ((Module* (*)()) functionPointer)(); 143 Module *object = ((Module* (*)()) functionPointer)();
144 if(object == NULL){ 144 if(object == NULL){
145 qDebug("MainWindowImp: Couldn't create object, but did load library!"); 145 qDebug("MainWindowImp: Couldn't create object, but did load library!");
146 delete lib; 146 delete lib;
147 return NULL; 147 return NULL;
148 } 148 }
149 149
150 // Store for deletion later 150 // Store for deletion later
151 libraries.insert(object, lib); 151 libraries.insert(object, lib);
152 return object; 152 return object;
153} 153}
154 154
155/** 155/**
156 * The Add button was clicked. Bring up the add dialog and if OK is hit 156 * The Add button was clicked. Bring up the add dialog and if OK is hit
157 * load the plugin and append it to the list 157 * load the plugin and append it to the list
158 */ 158 */
159void MainWindowImp::addClicked(){ 159void MainWindowImp::addClicked(){
160 QMap<Module*, QLibrary*>::Iterator it; 160 QMap<Module*, QLibrary*>::Iterator it;
161 QMap<QString, QString> list; 161 QMap<QString, QString> list;
162 QMap<QString, Module*> newInterfaceOwners; 162 QMap<QString, Module*> newInterfaceOwners;
163 list.insert("USB (PPP) / (ADD_TEST)", "A dialup connection over the USB port"); 163 list.insert("USB (PPP) / (ADD_TEST)", "A dialup connection over the USB port");
164 list.insert("IrDa (PPP) / (ADD_TEST)", "A dialup connection over the IdDa port"); 164 list.insert("IrDa (PPP) / (ADD_TEST)", "A dialup connection over the IdDa port");
165 for( it = libraries.begin(); it != libraries.end(); ++it ){ 165 for( it = libraries.begin(); it != libraries.end(); ++it ){
166 if(it.key()){ 166 if(it.key()){
167 (it.key())->possibleNewInterfaces(list); 167 (it.key())->possibleNewInterfaces(list);
168 } 168 }
169 } 169 }
170 // See if the list has anything that we can add. 170 // See if the list has anything that we can add.
171 if(list.count() == 0){ 171 if(list.count() == 0){
172 QMessageBox::information(this, "Sorry", "Nothing to add.", "Ok"); 172 QMessageBox::information(this, "Sorry", "Nothing to add.", QMessageBox::Ok);
173 return; 173 return;
174 } 174 }
175 AddConnectionImp addNewConnection(this, "AddConnectionImp", true); 175 AddConnectionImp addNewConnection(this, "AddConnectionImp", true);
176 addNewConnection.addConnections(list); 176 addNewConnection.addConnections(list);
177 addNewConnection.showMaximized(); 177 addNewConnection.showMaximized();
178 if(QDialog::Accepted == addNewConnection.exec()){ 178 if(QDialog::Accepted == addNewConnection.exec()){
179 QListViewItem *item = addNewConnection.registeredServicesList->currentItem(); 179 QListViewItem *item = addNewConnection.registeredServicesList->currentItem();
180 if(!item) 180 if(!item)
181 return; 181 return;
182 182
183 for( it = libraries.begin(); it != libraries.end(); ++it ){ 183 for( it = libraries.begin(); it != libraries.end(); ++it ){
184 if(it.key()){ 184 if(it.key()){
185 Interface *i = (it.key())->addNewInterface(item->text(0)); 185 Interface *i = (it.key())->addNewInterface(item->text(0));
186 if(i){ 186 if(i){
187 interfaceNames.insert(i->getInterfaceName(), i); 187 interfaceNames.insert(i->getInterfaceName(), i);
188 updateInterface(i); 188 updateInterface(i);
189 } 189 }
190 } 190 }
191 } 191 }
192 } 192 }
193} 193}
194 194
195/** 195/**
196 * Prompt the user to see if they really want to do this. 196 * Prompt the user to see if they really want to do this.
197 * If they do then remove from the list and unload. 197 * If they do then remove from the list and unload.
198 */ 198 */
199void MainWindowImp::removeClicked(){ 199void MainWindowImp::removeClicked(){
200 QListViewItem *item = connectionList->currentItem(); 200 QListViewItem *item = connectionList->currentItem();
201 if(!item) { 201 if(!item) {
202 QMessageBox::information(this, "Sorry","Please select an interface First.", "Ok"); 202 QMessageBox::information(this, "Sorry","Please select an interface First.", QMessageBox::Ok);
203 return; 203 return;
204 } 204 }
205 205
206 Interface *i = interfaceItems[item]; 206 Interface *i = interfaceItems[item];
207 if(i->getModuleOwner() == NULL){ 207 if(i->getModuleOwner() == NULL){
208 QMessageBox::information(this, "Can't remove interface.", "Interface is built in.", "Ok"); 208 QMessageBox::information(this, "Can't remove interface.", "Interface is built in.", QMessageBox::Ok);
209 } 209 }
210 else{ 210 else{
211 if(!i->getModuleOwner()->remove(i)) 211 if(!i->getModuleOwner()->remove(i))
212 QMessageBox::information(this, "Error", "Unable to remove.", "Ok"); 212 QMessageBox::information(this, "Error", "Unable to remove.", QMessageBox::Ok);
213 else{ 213 else{
214 QMessageBox::information(this, "Success", "Interface was removed.", "Ok"); 214 QMessageBox::information(this, "Success", "Interface was removed.", QMessageBox::Ok);
215 // TODO memory managment.... 215 // TODO memory managment....
216 // who deletes the interface? 216 // who deletes the interface?
217 } 217 }
218 } 218 }
219} 219}
220 220
221/** 221/**
222 * Pull up the configure about the currently selected interface. 222 * Pull up the configure about the currently selected interface.
223 * Report an error if no interface is selected. 223 * Report an error if no interface is selected.
224 * If the interface has a module owner then request its configure. 224 * If the interface has a module owner then request its configure.
225 */ 225 */
226void MainWindowImp::configureClicked(){ 226void MainWindowImp::configureClicked(){
227 QListViewItem *item = connectionList->currentItem(); 227 QListViewItem *item = connectionList->currentItem();
228 if(!item){ 228 if(!item){
229 QMessageBox::information(this, "Sorry","Please select an interface first.", QMessageBox::Ok); 229 QMessageBox::information(this, "Sorry","Please select an interface first.", QMessageBox::Ok);
230 return; 230 return;
231 } 231 }
232 232
233 Interface *i = interfaceItems[item]; 233 Interface *i = interfaceItems[item];
234 if(i->getModuleOwner()){ 234 if(i->getModuleOwner()){
235 QWidget *moduleConfigure = i->getModuleOwner()->configure(i); 235 QWidget *moduleConfigure = i->getModuleOwner()->configure(i);
236 if(moduleConfigure != NULL){ 236 if(moduleConfigure != NULL){
237 moduleConfigure->showMaximized(); 237 moduleConfigure->showMaximized();
238 moduleConfigure->show(); 238 moduleConfigure->show();
239 return; 239 return;
240 } 240 }
241 } 241 }
242 242
243 InterfaceSetupImpDialog *configure = new InterfaceSetupImpDialog(0, "InterfaceSetupImp", i, true, Qt::WDestructiveClose); 243 InterfaceSetupImpDialog *configure = new InterfaceSetupImpDialog(0, "InterfaceSetupImp", i, true, Qt::WDestructiveClose);
244 QString currentProfileText = currentProfileLabel->text(); 244 QString currentProfileText = currentProfileLabel->text();
245 if(currentProfileText.upper() == "ALL"); 245 if(currentProfileText.upper() == "ALL");
246 currentProfileText = ""; 246 currentProfileText = "";
247 configure->setProfile(currentProfileText); 247 configure->setProfile(currentProfileText);
248 configure->showMaximized(); 248 configure->showMaximized();
249 configure->show(); 249 configure->show();
250} 250}
251 251
252/** 252/**
253 * Pull up the information about the currently selected interface. 253 * Pull up the information about the currently selected interface.
254 * Report an error if no interface is selected. 254 * Report an error if no interface is selected.
255 * If the interface has a module owner then request its configure. 255 * If the interface has a module owner then request its configure.
256 */ 256 */
257void MainWindowImp::informationClicked(){ 257void MainWindowImp::informationClicked(){
258 QListViewItem *item = connectionList->currentItem(); 258 QListViewItem *item = connectionList->currentItem();
259 if(!item){ 259 if(!item){
260 QMessageBox::information(this, "Sorry","Please select an interface First.", QMessageBox::Ok); 260 QMessageBox::information(this, "Sorry","Please select an interface First.", QMessageBox::Ok);
261 return; 261 return;
262 } 262 }
263 263
264 Interface *i = interfaceItems[item]; 264 Interface *i = interfaceItems[item];
265 if(!i->isAttached()){ 265 if(!i->isAttached()){
266 QMessageBox::information(this, "Sorry","No information about\na disconnected interface.", QMessageBox::Ok); 266 QMessageBox::information(this, "Sorry","No information about\na disconnected interface.", QMessageBox::Ok);
267 return; 267 return;
268 } 268 }
269 269
270 if(i->getModuleOwner()){ 270 if(i->getModuleOwner()){
271 QWidget *moduleInformation = i->getModuleOwner()->information(i); 271 QWidget *moduleInformation = i->getModuleOwner()->information(i);
272 if(moduleInformation != NULL){ 272 if(moduleInformation != NULL){
273 moduleInformation->showMaximized(); 273 moduleInformation->showMaximized();
274 moduleInformation->show(); 274 moduleInformation->show();
275 return; 275 return;
276 } 276 }
277 } 277 }
278 InterfaceInformationImp *information = new InterfaceInformationImp(0, "InterfaceSetupImp", i, true); 278 InterfaceInformationImp *information = new InterfaceInformationImp(0, "InterfaceSetupImp", i, true);
@@ -383,155 +383,155 @@ void MainWindowImp::jobDone(KProcess *process){
383 */ 383 */
384void MainWindowImp::updateInterface(Interface *i){ 384void MainWindowImp::updateInterface(Interface *i){
385 if(!advancedUserMode){ 385 if(!advancedUserMode){
386 if(i->getInterfaceName() == "lo") 386 if(i->getInterfaceName() == "lo")
387 return; 387 return;
388 } 388 }
389 389
390 QListViewItem *item = NULL; 390 QListViewItem *item = NULL;
391 391
392 // Find the interface, making it if needed. 392 // Find the interface, making it if needed.
393 if(items.find(i) == items.end()){ 393 if(items.find(i) == items.end()){
394 item = new QListViewItem(connectionList, "", "", ""); 394 item = new QListViewItem(connectionList, "", "", "");
395 // See if you can't find a module owner for this interface 395 // See if you can't find a module owner for this interface
396 QMap<Module*, QLibrary*>::Iterator it; 396 QMap<Module*, QLibrary*>::Iterator it;
397 for( it = libraries.begin(); it != libraries.end(); ++it ){ 397 for( it = libraries.begin(); it != libraries.end(); ++it ){
398 if(it.key()->isOwner(i)) 398 if(it.key()->isOwner(i))
399 i->setModuleOwner(it.key()); 399 i->setModuleOwner(it.key());
400 } 400 }
401 items.insert(i, item); 401 items.insert(i, item);
402 interfaceItems.insert(item, i); 402 interfaceItems.insert(item, i);
403 } 403 }
404 else 404 else
405 item = items[i]; 405 item = items[i];
406 406
407 // Update the icons and information 407 // Update the icons and information
408 item->setPixmap(0, (Resource::loadPixmap(i->getStatus() ? "up": "down"))); 408 item->setPixmap(0, (Resource::loadPixmap(i->getStatus() ? "up": "down")));
409 409
410 QString typeName = "lan"; 410 QString typeName = "lan";
411 if(i->getHardwareName().contains("Local Loopback")) 411 if(i->getHardwareName().contains("Local Loopback"))
412 typeName = "lo"; 412 typeName = "lo";
413 if(i->getInterfaceName().contains("irda")) 413 if(i->getInterfaceName().contains("irda"))
414 typeName = "irda"; 414 typeName = "irda";
415 if(i->getInterfaceName().contains("wlan")) 415 if(i->getInterfaceName().contains("wlan"))
416 typeName = "wlan"; 416 typeName = "wlan";
417 if(i->getInterfaceName().contains("usb")) 417 if(i->getInterfaceName().contains("usb"))
418 typeName = "usb"; 418 typeName = "usb";
419 419
420 if(!i->isAttached()) 420 if(!i->isAttached())
421 typeName = "connect_no"; 421 typeName = "connect_no";
422 // Actually try to use the Module 422 // Actually try to use the Module
423 if(i->getModuleOwner() != NULL) 423 if(i->getModuleOwner() != NULL)
424 typeName = i->getModuleOwner()->getPixmapName(i); 424 typeName = i->getModuleOwner()->getPixmapName(i);
425 425
426 item->setPixmap(1, (Resource::loadPixmap(typeName))); 426 item->setPixmap(1, (Resource::loadPixmap(typeName)));
427 item->setText(2, i->getHardwareName()); 427 item->setText(2, i->getHardwareName());
428 item->setText(3, QString("(%1)").arg(i->getInterfaceName())); 428 item->setText(3, QString("(%1)").arg(i->getInterfaceName()));
429 item->setText(4, (i->getStatus()) ? i->getIp() : QString("")); 429 item->setText(4, (i->getStatus()) ? i->getIp() : QString(""));
430} 430}
431 431
432void MainWindowImp::newProfileChanged(const QString& newText){ 432void MainWindowImp::newProfileChanged(const QString& newText){
433 if(newText.length() > 0) 433 if(newText.length() > 0)
434 newProfileButton->setEnabled(true); 434 newProfileButton->setEnabled(true);
435 else 435 else
436 newProfileButton->setEnabled(false); 436 newProfileButton->setEnabled(false);
437} 437}
438 438
439/** 439/**
440 * Adds a new profile to the list of profiles. 440 * Adds a new profile to the list of profiles.
441 * Don't add profiles that already exists. 441 * Don't add profiles that already exists.
442 * Appends to the list and QStringList 442 * Appends to the list and QStringList
443 */ 443 */
444void MainWindowImp::addProfile(){ 444void MainWindowImp::addProfile(){
445 QString newProfileName = newProfile->text(); 445 QString newProfileName = newProfile->text();
446 if(profiles.grep(newProfileName).count() > 0){ 446 if(profiles.grep(newProfileName).count() > 0){
447 QMessageBox::information(this, "Can't Add","Profile already exists.", "Ok"); 447 QMessageBox::information(this, "Can't Add","Profile already exists.", QMessageBox::Ok);
448 return; 448 return;
449 } 449 }
450 profiles.append(newProfileName); 450 profiles.append(newProfileName);
451 profilesList->insertItem(newProfileName); 451 profilesList->insertItem(newProfileName);
452} 452}
453 453
454/** 454/**
455 * Removes the currently selected profile in the combo. 455 * Removes the currently selected profile in the combo.
456 * Doesn't delete if there are less then 2 profiles. 456 * Doesn't delete if there are less then 2 profiles.
457 */ 457 */
458void MainWindowImp::removeProfile(){ 458void MainWindowImp::removeProfile(){
459 if(profilesList->count() <= 1){ 459 if(profilesList->count() <= 1){
460 QMessageBox::information(this, "Can't remove.","At least one profile\nis needed.", "Ok"); 460 QMessageBox::information(this, "Can't remove.","At least one profile\nis needed.", QMessageBox::Ok);
461 return; 461 return;
462 } 462 }
463 QString profileToRemove = profilesList->currentText(); 463 QString profileToRemove = profilesList->currentText();
464 if(profileToRemove == "All"){ 464 if(profileToRemove == "All"){
465 QMessageBox::information(this, "Can't remove.","Can't remove default.", "Ok"); 465 QMessageBox::information(this, "Can't remove.","Can't remove default.", QMessageBox::Ok);
466 return; 466 return;
467 } 467 }
468 // Can't remove the curent profile 468 // Can't remove the curent profile
469 if(profileToRemove == currentProfileLabel->text()){ 469 if(profileToRemove == currentProfileLabel->text()){
470 QMessageBox::information(this, "Can't remove.",QString("%1 is the current profile.").arg(profileToRemove), "Ok"); 470 QMessageBox::information(this, "Can't remove.",QString("%1 is the current profile.").arg(profileToRemove), QMessageBox::Ok);
471 return; 471 return;
472 472
473 } 473 }
474 474
475 if(QMessageBox::information(this, "Question",QString("Remove profile: %1").arg(profileToRemove), QMessageBox::Ok, QMessageBox::Cancel) == QMessageBox::Ok){ 475 if(QMessageBox::information(this, "Question",QString("Remove profile: %1").arg(profileToRemove), QMessageBox::Ok, QMessageBox::Cancel) == QMessageBox::Ok){
476 profiles = QStringList::split(" ", profiles.join(" ").replace(QRegExp(profileToRemove), "")); 476 profiles = QStringList::split(" ", profiles.join(" ").replace(QRegExp(profileToRemove), ""));
477 profilesList->clear(); 477 profilesList->clear();
478 for ( QStringList::Iterator it = profiles.begin(); it != profiles.end(); ++it) 478 for ( QStringList::Iterator it = profiles.begin(); it != profiles.end(); ++it)
479 profilesList->insertItem((*it)); 479 profilesList->insertItem((*it));
480 480
481 // Remove any interface settings and mappings. 481 // Remove any interface settings and mappings.
482 Interfaces interfaces; 482 Interfaces interfaces;
483 // Go through them one by one 483 // Go through them one by one
484 QMap<Interface*, QListViewItem*>::Iterator it; 484 QMap<Interface*, QListViewItem*>::Iterator it;
485 for( it = items.begin(); it != items.end(); ++it ){ 485 for( it = items.begin(); it != items.end(); ++it ){
486 QString interfaceName = it.key()->getInterfaceName(); 486 QString interfaceName = it.key()->getInterfaceName();
487 qDebug(interfaceName.latin1()); 487 qDebug(interfaceName.latin1());
488 if(interfaces.setInterface(interfaceName + "_" + profileToRemove)){ 488 if(interfaces.setInterface(interfaceName + "_" + profileToRemove)){
489 interfaces.removeInterface(); 489 interfaces.removeInterface();
490 if(interfaces.setMapping(interfaceName)){ 490 if(interfaces.setMapping(interfaceName)){
491 if(profilesList->count() == 1) 491 if(profilesList->count() == 1)
492 interfaces.removeMapping(); 492 interfaces.removeMapping();
493 else{ 493 else{
494 interfaces.removeMap("map", interfaceName + "_" + profileToRemove); 494 interfaces.removeMap("map", interfaceName + "_" + profileToRemove);
495 } 495 }
496 } 496 }
497 interfaces.write(); 497 interfaces.write();
498 break; 498 break;
499 } 499 }
500 } 500 }
501 } 501 }
502} 502}
503 503
504/** 504/**
505 * A new profile has been selected, change. 505 * A new profile has been selected, change.
506 * @param newProfile the new profile. 506 * @param newProfile the new profile.
507 */ 507 */
508void MainWindowImp::changeProfile(){ 508void MainWindowImp::changeProfile(){
509 if(profilesList->currentItem() == -1){ 509 if(profilesList->currentItem() == -1){
510 QMessageBox::information(this, "Can't Change.","Please select a profile.", "Ok"); 510 QMessageBox::information(this, "Can't Change.","Please select a profile.", QMessageBox::Ok);
511 return; 511 return;
512 } 512 }
513 QString newProfile = profilesList->text(profilesList->currentItem()); 513 QString newProfile = profilesList->text(profilesList->currentItem());
514 if(newProfile != currentProfileLabel->text()){ 514 if(newProfile != currentProfileLabel->text()){
515 currentProfileLabel->setText(newProfile); 515 currentProfileLabel->setText(newProfile);
516 QFile::remove(scheme); 516 QFile::remove(scheme);
517 QFile file(scheme); 517 QFile file(scheme);
518 if ( file.open(IO_ReadWrite) ) { 518 if ( file.open(IO_ReadWrite) ) {
519 QTextStream stream( &file ); 519 QTextStream stream( &file );
520 stream << QString("SCHEME=%1").arg(newProfile); 520 stream << QString("SCHEME=%1").arg(newProfile);
521 file.close(); 521 file.close();
522 } 522 }
523 // restart all up devices? 523 // restart all up devices?
524 if(QMessageBox::information(this, "Question","Restart all running interfaces?", QMessageBox::Ok, QMessageBox::No) == QMessageBox::Ok){ 524 if(QMessageBox::information(this, "Question","Restart all running interfaces?", QMessageBox::Ok, QMessageBox::No) == QMessageBox::Ok){
525 // Go through them one by one 525 // Go through them one by one
526 QMap<Interface*, QListViewItem*>::Iterator it; 526 QMap<Interface*, QListViewItem*>::Iterator it;
527 for( it = items.begin(); it != items.end(); ++it ){ 527 for( it = items.begin(); it != items.end(); ++it ){
528 if(it.key()->getStatus() == true) 528 if(it.key()->getStatus() == true)
529 it.key()->restart(); 529 it.key()->restart();
530 } 530 }
531 } 531 }
532 } 532 }
533 // TODO change the profile in the modules 533 // TODO change the profile in the modules
534} 534}
535 535
536// mainwindowimp.cpp 536// mainwindowimp.cpp
537 537