12 files changed, 121 insertions, 25 deletions
diff --git a/noncore/settings/networksettings2/bluetooth/bluetoothRFCOMMrun.cpp b/noncore/settings/networksettings2/bluetooth/bluetoothRFCOMMrun.cpp index cd7bb4a..63b214e 100644 --- a/noncore/settings/networksettings2/bluetooth/bluetoothRFCOMMrun.cpp +++ b/noncore/settings/networksettings2/bluetooth/bluetoothRFCOMMrun.cpp | |||
@@ -1,155 +1,183 @@ | |||
1 | #include <qapplication.h> | 1 | #include <qapplication.h> |
2 | #include <resources.h> | 2 | #include <resources.h> |
3 | |||
4 | #include <OTPeer.h> | ||
3 | #include <OTDevice.h> | 5 | #include <OTDevice.h> |
4 | #include <OTGateway.h> | 6 | #include <OTGateway.h> |
7 | #include <Opietooth.h> | ||
8 | |||
9 | #include <qlistbox.h> | ||
10 | #include <qframe.h> | ||
11 | #include <qlabel.h> | ||
12 | #include <qlayout.h> | ||
13 | #include <qdialog.h> | ||
14 | |||
5 | #include "bluetoothRFCOMMrun.h" | 15 | #include "bluetoothRFCOMMrun.h" |
6 | 16 | ||
7 | using Opietooth2::OTGateway; | 17 | using Opietooth2::OTGateway; |
8 | using Opietooth2::OTDevice; | 18 | using Opietooth2::OTDevice; |
9 | using Opietooth2::OTDeviceAddress; | 19 | using Opietooth2::OTDeviceAddress; |
20 | using Opietooth2::OTScan; | ||
21 | using Opietooth2::OTPeer; | ||
10 | 22 | ||
11 | BluetoothRFCOMMRun::~BluetoothRFCOMMRun( void ) { | 23 | BluetoothRFCOMMRun::~BluetoothRFCOMMRun( void ) { |
12 | if( OT ) { | 24 | if( OT ) { |
13 | OTGateway::releaseOTGateway(); | 25 | OTGateway::releaseOTGateway(); |
14 | } | 26 | } |
15 | } | 27 | } |
16 | 28 | ||
17 | State_t BluetoothRFCOMMRun::detectState( void ) { | 29 | State_t BluetoothRFCOMMRun::detectState( void ) { |
18 | 30 | ||
19 | if( ! OT ) { | 31 | if( ! OT ) { |
20 | OT = OTGateway::getOTGateway(); | 32 | OT = OTGateway::getOTGateway(); |
21 | } | 33 | } |
22 | 34 | ||
23 | if( deviceNrOfNetworkSetup() >= 0 ) { | 35 | if( deviceNrOfNetworkSetup() >= 0 ) { |
24 | return Available; | 36 | return Available; |
25 | } | 37 | } |
26 | 38 | ||
27 | odebug << "Bluetooth " | 39 | odebug << "Bluetooth " |
28 | << OT->isEnabled() | 40 | << OT->isEnabled() |
29 | << oendl; | 41 | << oendl; |
30 | 42 | ||
31 | return ( OT->isEnabled() ) ? Off : Unavailable; | 43 | return ( OT->isEnabled() ) ? Off : Unavailable; |
32 | } | 44 | } |
33 | 45 | ||
34 | QString BluetoothRFCOMMRun::setMyState( NetworkSetup *, | 46 | QString BluetoothRFCOMMRun::setMyState( NetworkSetup *, |
35 | Action_t A, | 47 | Action_t A, |
36 | bool ) { | 48 | bool ) { |
37 | 49 | ||
38 | if( OT ) { | 50 | if( OT ) { |
39 | OTGateway::getOTGateway(); | 51 | OTGateway::getOTGateway(); |
40 | } | 52 | } |
41 | 53 | ||
42 | if( A == Activate ) { | 54 | if( A == Activate ) { |
43 | // from OFF to Available | 55 | // from OFF to Available |
44 | RFCOMMChannel * Ch = getChannel( ); | 56 | RFCOMMChannel * Ch = getChannel( ); |
45 | System & Sys = NSResources->system(); | 57 | System & Sys = NSResources->system(); |
46 | 58 | ||
47 | if( Ch ) { | 59 | if( Ch ) { |
48 | // connect to this peer | 60 | // connect to this peer |
49 | DeviceNr = OT->getFreeRFCommDevice(); | 61 | DeviceNr = OT->getFreeRFCommDevice(); |
50 | QStringList S; | 62 | QStringList S; |
51 | 63 | ||
52 | S << "rfcomm" | 64 | S << "rfcomm" |
53 | << "bind" | 65 | << "bind" |
54 | << QString().setNum( DeviceNr ) | 66 | << QString().setNum( DeviceNr ) |
55 | << Ch->BDAddress | 67 | << Ch->BDAddress |
56 | << QString().setNum( Ch->Channel ); | 68 | << QString().setNum( Ch->Channel ); |
57 | 69 | ||
70 | // no longer needed | ||
71 | delete Ch; | ||
72 | |||
58 | if( Sys.runAsRoot( S ) ) { | 73 | if( Sys.runAsRoot( S ) ) { |
59 | return QString( "Error starting %1").arg(S.join(" ")); | 74 | return QString( "Error starting %1").arg(S.join(" ")); |
60 | } | 75 | } |
61 | 76 | ||
62 | // here rfcomm should be running -> we will detect state later | 77 | // here rfcomm should be running -> we will detect state later |
63 | return QString(); | 78 | return QString(); |
64 | } else { | 79 | } else { |
65 | Log(( "No channel selected -> cancel\n" )); | 80 | Log(( "No channel selected -> cancel\n" )); |
66 | return QString( "No channel selected. Operation cancelled" ); | 81 | return QString( "No channel selected. Operation cancelled" ); |
67 | } | 82 | } |
68 | } | 83 | } |
69 | 84 | ||
70 | if( A == Deactivate ) { | 85 | if( A == Deactivate ) { |
71 | if( DeviceNr >= 0 ) { | 86 | if( DeviceNr >= 0 ) { |
72 | if( OT->releaseRFCommDevice( DeviceNr ) ) { | 87 | if( OT->releaseRFCommDevice( DeviceNr ) ) { |
73 | return QString( "Cannot release RFCOMM NetworkSetup" ); | 88 | return QString( "Cannot release RFCOMM NetworkSetup" ); |
74 | } | 89 | } |
75 | DeviceNr = -1; | 90 | DeviceNr = -1; |
76 | } | 91 | } |
77 | } | 92 | } |
78 | return QString(); | 93 | return QString(); |
79 | } | 94 | } |
80 | 95 | ||
81 | #include <qlistbox.h> | ||
82 | #include <qframe.h> | ||
83 | #include <qlabel.h> | ||
84 | #include <qlayout.h> | ||
85 | #include <qdialog.h> | ||
86 | |||
87 | RFCOMMChannel * BluetoothRFCOMMRun::getChannel( void ) { | 96 | RFCOMMChannel * BluetoothRFCOMMRun::getChannel( void ) { |
88 | 97 | ||
89 | if( Data->Devices.count() == 1 ) { | 98 | if( Data->Devices.count() == 1 ) { |
90 | // only one device -> return channel | 99 | // only one device -> return channel |
91 | return Data->Devices[0]; | 100 | return Data->Devices[0]; |
92 | } | 101 | } |
93 | 102 | ||
94 | RFCOMMChannel * Ch = 0; | 103 | RFCOMMChannel * Ch = 0; |
104 | |||
105 | if( Data->Devices.count() == 0 ) { | ||
106 | OTPeer * Peer; | ||
107 | int Channel; | ||
108 | |||
109 | if( OTScan::getDevice( Peer, Channel, OT ) == QDialog::Accepted ) { | ||
110 | Ch = new RFCOMMChannel; | ||
111 | Ch->BDAddress = Peer->address().toString(); | ||
112 | Ch->Name = Peer->name(); | ||
113 | Ch->Channel = Channel; | ||
114 | return Ch; | ||
115 | } | ||
116 | |||
117 | return 0; | ||
118 | } | ||
119 | |||
95 | QDialog * Dlg = new QDialog( qApp->mainWidget(), 0, TRUE ); | 120 | QDialog * Dlg = new QDialog( qApp->mainWidget(), 0, TRUE ); |
96 | QVBoxLayout * V = new QVBoxLayout( Dlg ); | 121 | QVBoxLayout * V = new QVBoxLayout( Dlg ); |
97 | 122 | ||
98 | QLabel * L = new QLabel( | 123 | QLabel * L = new QLabel( |
99 | qApp->translate( "BluetoothRFCOMMRun", | 124 | qApp->translate( "BluetoothRFCOMMRun", |
100 | "Select device to connect to"), | 125 | "Select device to connect to"), |
101 | Dlg ); | 126 | Dlg ); |
102 | QListBox * LB = new QListBox( Dlg ); | 127 | QListBox * LB = new QListBox( Dlg ); |
103 | 128 | ||
104 | for( unsigned int i = 0; i < Data->Devices.count(); i ++ ) { | 129 | for( unsigned int i = 0; i < Data->Devices.count(); i ++ ) { |
105 | LB->insertItem( QString( "%1 (%2 Chnl %3)" ). | 130 | LB->insertItem( QString( "%1 (%2 Chnl %3)" ). |
106 | arg( Data->Devices[i]->Name ). | 131 | arg( Data->Devices[i]->Name ). |
107 | arg( Data->Devices[i]->BDAddress ). | 132 | arg( Data->Devices[i]->BDAddress ). |
108 | arg( Data->Devices[i]->Channel ) ); | 133 | arg( Data->Devices[i]->Channel ) ); |
109 | } | 134 | } |
110 | 135 | ||
111 | V->addWidget( L ); | 136 | V->addWidget( L ); |
112 | V->addWidget( LB ); | 137 | V->addWidget( LB ); |
113 | 138 | ||
114 | Dlg->resize( 100, 100 ); | 139 | Dlg->resize( 100, 100 ); |
115 | Dlg->move( 20, | 140 | Dlg->move( 20, |
116 | (qApp->desktop()->height()-100)/2 ); | 141 | (qApp->desktop()->height()-100)/2 ); |
117 | 142 | ||
118 | if( Dlg->exec() == QDialog::Accepted ) { | 143 | if( Dlg->exec() == QDialog::Accepted ) { |
119 | unsigned int i = 0; | 144 | unsigned int i = 0; |
120 | for( i = 0; i < Data->Devices.count(); i ++ ) { | 145 | for( i = 0; i < Data->Devices.count(); i ++ ) { |
121 | if( LB->isSelected(i) ) { | 146 | if( LB->isSelected(i) ) { |
122 | odebug << "Selected " << Data->Devices[i]->Name << oendl; | 147 | odebug << "Selected " << Data->Devices[i]->Name << oendl; |
123 | Ch = Data->Devices[i]; | 148 | Ch = new RFCOMMChannel; |
149 | Ch->BDAddress = Data->Devices[i]->BDAddress; | ||
150 | Ch->Name = Data->Devices[i]->Name; | ||
151 | Ch->Channel = Data->Devices[i]->Channel; | ||
124 | break; | 152 | break; |
125 | } | 153 | } |
126 | } | 154 | } |
127 | } | 155 | } |
128 | 156 | ||
129 | delete Dlg; | 157 | delete Dlg; |
130 | return Ch; | 158 | return Ch; |
131 | } | 159 | } |
132 | 160 | ||
133 | QString BluetoothRFCOMMRun::deviceFile( void ) { | 161 | QString BluetoothRFCOMMRun::deviceFile( void ) { |
134 | if( deviceNrOfNetworkSetup() >= 0 ) { | 162 | if( deviceNrOfNetworkSetup() >= 0 ) { |
135 | OTDevice * OTD = OT->getOTDevice(); | 163 | OTDevice * OTD = OT->getOTDevice(); |
136 | // there is a NetworkSetup | 164 | // there is a NetworkSetup |
137 | return OTD->getRFCommDevicePattern().arg(DeviceNr); | 165 | return OTD->getRFCommDevicePattern().arg(DeviceNr); |
138 | } | 166 | } |
139 | return QString(); | 167 | return QString(); |
140 | } | 168 | } |
141 | 169 | ||
142 | int BluetoothRFCOMMRun::deviceNrOfNetworkSetup( void ) { | 170 | int BluetoothRFCOMMRun::deviceNrOfNetworkSetup( void ) { |
143 | 171 | ||
144 | if( ! OT ) { | 172 | if( ! OT ) { |
145 | OT = OTGateway::getOTGateway(); | 173 | OT = OTGateway::getOTGateway(); |
146 | } | 174 | } |
147 | 175 | ||
148 | DeviceNr = -1; | 176 | DeviceNr = -1; |
149 | for( unsigned int i = 0; i < Data->Devices.count(); i ++ ) { | 177 | for( unsigned int i = 0; i < Data->Devices.count(); i ++ ) { |
150 | odebug << "Check for rfcomm on " | 178 | odebug << "Check for rfcomm on " |
151 | << Data->Devices[i]->BDAddress | 179 | << Data->Devices[i]->BDAddress |
152 | << " " | 180 | << " " |
153 | << Data->Devices[i]->Channel | 181 | << Data->Devices[i]->Channel |
154 | << oendl; | 182 | << oendl; |
155 | if( ( DeviceNr = OT->connectedToRFCommChannel( | 183 | if( ( DeviceNr = OT->connectedToRFCommChannel( |
diff --git a/noncore/settings/networksettings2/gprs/GPRS_NNI.cpp b/noncore/settings/networksettings2/gprs/GPRS_NNI.cpp index bf8cc59..2dd54ff 100644 --- a/noncore/settings/networksettings2/gprs/GPRS_NNI.cpp +++ b/noncore/settings/networksettings2/gprs/GPRS_NNI.cpp | |||
@@ -178,54 +178,57 @@ short AGPRSDevice::generateFile( SystemFile & SF, | |||
178 | << Data.Routing[i]->Address | 178 | << Data.Routing[i]->Address |
179 | << " netmask " | 179 | << " netmask " |
180 | << ((Bits&0xff000000)>>24) | 180 | << ((Bits&0xff000000)>>24) |
181 | << "." | 181 | << "." |
182 | << ((Bits&0x00ff0000)>>16) | 182 | << ((Bits&0x00ff0000)>>16) |
183 | << "." | 183 | << "." |
184 | << ((Bits&0x0000ff00)>>8) | 184 | << ((Bits&0x0000ff00)>>8) |
185 | << "." | 185 | << "." |
186 | << ((Bits&0x000000ff)) | 186 | << ((Bits&0x000000ff)) |
187 | << " gw $PPP_REMOTE" | 187 | << " gw $PPP_REMOTE" |
188 | << oendl; | 188 | << oendl; |
189 | } | 189 | } |
190 | 190 | ||
191 | if( ! Data.DNS1.isEmpty() ) { | 191 | if( ! Data.DNS1.isEmpty() ) { |
192 | SF << "nameserver " | 192 | SF << "nameserver " |
193 | << Data.DNS1 | 193 | << Data.DNS1 |
194 | << " # profile " | 194 | << " # profile " |
195 | << removeSpaces( networkSetup()->name() ) | 195 | << removeSpaces( networkSetup()->name() ) |
196 | <<oendl; | 196 | <<oendl; |
197 | } | 197 | } |
198 | 198 | ||
199 | if( ! Data.DNS2.isEmpty() ) { | 199 | if( ! Data.DNS2.isEmpty() ) { |
200 | SF << "nameserver " | 200 | SF << "nameserver " |
201 | << Data.DNS2 | 201 | << Data.DNS2 |
202 | << " # profile " | 202 | << " # profile " |
203 | << removeSpaces( networkSetup()->name() ) | 203 | << removeSpaces( networkSetup()->name() ) |
204 | <<oendl; | 204 | <<oendl; |
205 | } | 205 | } |
206 | } | 206 | } |
207 | return 1; | 207 | return 1; |
208 | } | 208 | } |
209 | 209 | ||
210 | bool AGPRSDevice::openFile( SystemFile & SF ) { | 210 | bool AGPRSDevice::openFile( SystemFile & SF, QStringList & SL ) { |
211 | if( SF.name() == "peers" ) { | 211 | if( SF.name() == "peers" ) { |
212 | SL << "/etc" << "ppp" << "peers"; | ||
212 | SF.setPath( | 213 | SF.setPath( |
213 | QString( "/etc/ppp/peers/" ) + | 214 | QString( "/etc/ppp/peers/" ) + |
214 | removeSpaces( networkSetup()->name() ) | 215 | removeSpaces( networkSetup()->name() ) |
215 | ); | 216 | ); |
216 | return 1; | 217 | return 1; |
217 | } else if ( SF.name() == "chatscripts" ) { | 218 | } else if ( SF.name() == "chatscripts" ) { |
219 | SL << "/etc" << "chatscripts"; | ||
218 | SF.setPath( | 220 | SF.setPath( |
219 | QString( "/etc/chatscripts/" ) + | 221 | QString( "/etc/chatscripts/" ) + |
220 | removeSpaces( networkSetup()->name() ) | 222 | removeSpaces( networkSetup()->name() ) |
221 | ); | 223 | ); |
222 | return 1; | 224 | return 1; |
225 | SL << "/etc" << "ppp"; | ||
223 | } else if ( SF.name() == "extra" ) { | 226 | } else if ( SF.name() == "extra" ) { |
224 | SF.setPath( | 227 | SF.setPath( |
225 | QString( "/etc/ppp/" ) + | 228 | QString( "/etc/ppp/" ) + |
226 | removeSpaces( networkSetup()->name() ) + ".fixed" | 229 | removeSpaces( networkSetup()->name() ) + ".fixed" |
227 | ); | 230 | ); |
228 | return 1; | 231 | return 1; |
229 | } | 232 | } |
230 | return 0; | 233 | return 0; |
231 | } | 234 | } |
diff --git a/noncore/settings/networksettings2/gprs/GPRS_NNI.h b/noncore/settings/networksettings2/gprs/GPRS_NNI.h index 1060a6e..b5bf1b9 100644 --- a/noncore/settings/networksettings2/gprs/GPRS_NNI.h +++ b/noncore/settings/networksettings2/gprs/GPRS_NNI.h | |||
@@ -1,48 +1,49 @@ | |||
1 | #ifndef GPRS_H | 1 | #ifndef GPRS_H |
2 | #define GPRS_H | 2 | #define GPRS_H |
3 | 3 | ||
4 | #include <netnode.h> | 4 | #include <netnode.h> |
5 | #include "GPRSdata.h" | 5 | #include "GPRSdata.h" |
6 | #include "GPRSrun.h" | 6 | #include "GPRSrun.h" |
7 | 7 | ||
8 | class GPRSNetNode; | 8 | class GPRSNetNode; |
9 | class GPRSEdit; | 9 | class GPRSEdit; |
10 | class SystemFile; | 10 | class SystemFile; |
11 | 11 | ||
12 | class AGPRSDevice : public ANetNodeInstance{ | 12 | class AGPRSDevice : public ANetNodeInstance{ |
13 | 13 | ||
14 | public : | 14 | public : |
15 | 15 | ||
16 | AGPRSDevice( GPRSNetNode * PNN ); | 16 | AGPRSDevice( GPRSNetNode * PNN ); |
17 | 17 | ||
18 | RuntimeInfo * runtime( void ) | 18 | RuntimeInfo * runtime( void ) |
19 | { return | 19 | { return |
20 | ( RT ) ? RT : ( RT = new GPRSRun( this, Data ) ); | 20 | ( RT ) ? RT : ( RT = new GPRSRun( this, Data ) ); |
21 | } | 21 | } |
22 | 22 | ||
23 | QWidget * edit( QWidget * parent ); | 23 | QWidget * edit( QWidget * parent ); |
24 | QString acceptable( void ); | 24 | QString acceptable( void ); |
25 | void commit( void ); | 25 | void commit( void ); |
26 | 26 | ||
27 | virtual bool openFile( SystemFile & SF ); | 27 | virtual bool openFile( SystemFile & SF, |
28 | QStringList & SL ); | ||
28 | 29 | ||
29 | virtual void * data( void ) | 30 | virtual void * data( void ) |
30 | { return (void *)&Data; } | 31 | { return (void *)&Data; } |
31 | 32 | ||
32 | virtual bool hasDataForFile( SystemFile & S ); | 33 | virtual bool hasDataForFile( SystemFile & S ); |
33 | virtual short generateFile( SystemFile & SF, | 34 | virtual short generateFile( SystemFile & SF, |
34 | long DevNr ); | 35 | long DevNr ); |
35 | 36 | ||
36 | protected : | 37 | protected : |
37 | 38 | ||
38 | virtual void setSpecificAttribute( QString & Attr, QString & Value ); | 39 | virtual void setSpecificAttribute( QString & Attr, QString & Value ); |
39 | virtual void saveSpecificAttribute( QTextStream & TS ); | 40 | virtual void saveSpecificAttribute( QTextStream & TS ); |
40 | 41 | ||
41 | private : | 42 | private : |
42 | 43 | ||
43 | GPRSEdit * GUI; | 44 | GPRSEdit * GUI; |
44 | GPRSData Data; | 45 | GPRSData Data; |
45 | GPRSRun * RT; | 46 | GPRSRun * RT; |
46 | }; | 47 | }; |
47 | 48 | ||
48 | #endif | 49 | #endif |
diff --git a/noncore/settings/networksettings2/networksettings.cpp b/noncore/settings/networksettings2/networksettings.cpp index 80dcb3d..2714dd5 100644 --- a/noncore/settings/networksettings2/networksettings.cpp +++ b/noncore/settings/networksettings2/networksettings.cpp | |||
@@ -222,65 +222,65 @@ void NetworkSettings::SLOT_EditNode( QListBoxItem * LBI ) { | |||
222 | if( NC->isModified() ) { | 222 | if( NC->isModified() ) { |
223 | if( LBI ) { | 223 | if( LBI ) { |
224 | if( NC->name() != OldName ) { | 224 | if( NC->name() != OldName ) { |
225 | // find if new name is free | 225 | // find if new name is free |
226 | NetworkSetup * LCN = NSResources->findNetworkSetup( | 226 | NetworkSetup * LCN = NSResources->findNetworkSetup( |
227 | NC->name() ); | 227 | NC->name() ); |
228 | if( LCN ) { | 228 | if( LCN ) { |
229 | QMessageBox::warning( | 229 | QMessageBox::warning( |
230 | 0, | 230 | 0, |
231 | tr( "In System Config" ), | 231 | tr( "In System Config" ), |
232 | tr( "Name %1 already exists" ).arg(NC->name()) | 232 | tr( "Name %1 already exists" ).arg(NC->name()) |
233 | ); | 233 | ); |
234 | continue; // restart exec | 234 | continue; // restart exec |
235 | } // else new name | 235 | } // else new name |
236 | // new name -> remove item | 236 | // new name -> remove item |
237 | NSResources->removeNetworkSetup( OldName ); | 237 | NSResources->removeNetworkSetup( OldName ); |
238 | NSResources->addNetworkSetup( NC, 0 ); | 238 | NSResources->addNetworkSetup( NC, 0 ); |
239 | } // else not changed | 239 | } // else not changed |
240 | 240 | ||
241 | // must add it here since change will trigger event | 241 | // must add it here since change will trigger event |
242 | Profiles_LB->changeItem( NC->devicePixmap(), | 242 | Profiles_LB->changeItem( NC->devicePixmap(), |
243 | NC->name(), | 243 | NC->name(), |
244 | Profiles_LB->index( LBI ) | 244 | Profiles_LB->index( LBI ) |
245 | ); | 245 | ); |
246 | } else { | 246 | } else { |
247 | // new item | 247 | // new item |
248 | int ci = Profiles_LB->count(); | 248 | int ci = Profiles_LB->count(); |
249 | NSResources->addNetworkSetup( NC, 0 ); | 249 | NSResources->addNetworkSetup( NC, 0 ); |
250 | NC->setNumber( NSResources->assignNetworkSetupNumber() ); | 250 | NC->setNumber( NSResources->assignNetworkSetupNumber() ); |
251 | Profiles_LB->insertItem( NC->devicePixmap(), NC->name() ); | 251 | Profiles_LB->insertItem( NC->devicePixmap(), NC->name() ); |
252 | Profiles_LB->setSelected( ci, TRUE ); | 252 | Profiles_LB->setSelected( ci, TRUE ); |
253 | } | 253 | } |
254 | updateProfileState( LBI ); | 254 | SLOT_RefreshStates(); |
255 | } | 255 | } |
256 | } else { | 256 | } else { |
257 | // cancelled : reset NetworkSetup | 257 | // cancelled : reset NetworkSetup |
258 | if( LBI ) { | 258 | if( LBI ) { |
259 | NetworkSetup * NC = NSResources->findNetworkSetup( LBI->text() ); | 259 | NetworkSetup * NC = NSResources->findNetworkSetup( LBI->text() ); |
260 | NC->reassign(); | 260 | NC->reassign(); |
261 | } | 261 | } |
262 | } | 262 | } |
263 | break; | 263 | break; |
264 | } | 264 | } |
265 | // reenable | 265 | // reenable |
266 | UpdateTimer->start( 5000 ); | 266 | UpdateTimer->start( 5000 ); |
267 | } | 267 | } |
268 | 268 | ||
269 | void NetworkSettings::SLOT_ShowNode( QListBoxItem * LBI ) { | 269 | void NetworkSettings::SLOT_ShowNode( QListBoxItem * LBI ) { |
270 | if( LBI == 0 ) | 270 | if( LBI == 0 ) |
271 | return; | 271 | return; |
272 | 272 | ||
273 | NetworkSetup * NC = NSResources->findNetworkSetup( LBI->text() ); | 273 | NetworkSetup * NC = NSResources->findNetworkSetup( LBI->text() ); |
274 | 274 | ||
275 | if( NC->description().isEmpty() ) { | 275 | if( NC->description().isEmpty() ) { |
276 | Description_LBL->setText( tr( "<<No description>>" ) ); | 276 | Description_LBL->setText( tr( "<<No description>>" ) ); |
277 | } else { | 277 | } else { |
278 | Description_LBL->setText( NC->description() ); | 278 | Description_LBL->setText( NC->description() ); |
279 | } | 279 | } |
280 | 280 | ||
281 | Profile_GB->setTitle( LBI->text() + " : " + NC->stateName() ); | 281 | Profile_GB->setTitle( LBI->text() + " : " + NC->stateName() ); |
282 | 282 | ||
283 | bool FrmActive = 1; | 283 | bool FrmActive = 1; |
284 | bool IsEnabled = 1; | 284 | bool IsEnabled = 1; |
285 | int leds = 0; | 285 | int leds = 0; |
286 | 286 | ||
diff --git a/noncore/settings/networksettings2/networksettings2/netnode.cpp b/noncore/settings/networksettings2/networksettings2/netnode.cpp index 0ab0e5b..1bcd95c 100644 --- a/noncore/settings/networksettings2/networksettings2/netnode.cpp +++ b/noncore/settings/networksettings2/networksettings2/netnode.cpp | |||
@@ -60,66 +60,67 @@ QString quote( QString X ) { | |||
60 | OutString += "\""; | 60 | OutString += "\""; |
61 | X = OutString; | 61 | X = OutString; |
62 | } | 62 | } |
63 | return X; | 63 | return X; |
64 | } | 64 | } |
65 | 65 | ||
66 | 66 | ||
67 | // | 67 | // |
68 | // | 68 | // |
69 | // ANETNODE | 69 | // ANETNODE |
70 | // | 70 | // |
71 | // | 71 | // |
72 | 72 | ||
73 | void ANetNode::saveAttributes( QTextStream & TS ) { | 73 | void ANetNode::saveAttributes( QTextStream & TS ) { |
74 | saveSpecificAttribute( TS ); | 74 | saveSpecificAttribute( TS ); |
75 | } | 75 | } |
76 | 76 | ||
77 | void ANetNode::setAttribute( QString & Attr, QString & Value ){ | 77 | void ANetNode::setAttribute( QString & Attr, QString & Value ){ |
78 | setSpecificAttribute( Attr, Value ); | 78 | setSpecificAttribute( Attr, Value ); |
79 | } | 79 | } |
80 | 80 | ||
81 | bool ANetNode::isToplevel( void ) { | 81 | bool ANetNode::isToplevel( void ) { |
82 | const char ** P = provides(); | 82 | const char ** P = provides(); |
83 | while( *P ) { | 83 | while( *P ) { |
84 | if( strcmp( *P, "fullsetup") == 0 ) | 84 | if( strcmp( *P, "fullsetup") == 0 ) |
85 | return 1; | 85 | return 1; |
86 | P ++; | 86 | P ++; |
87 | } | 87 | } |
88 | return 0; | 88 | return 0; |
89 | } | 89 | } |
90 | 90 | ||
91 | bool ANetNode::openFile( SystemFile & SF, | 91 | bool ANetNode::openFile( SystemFile & SF, |
92 | ANetNodeInstance * NNI ) { | 92 | ANetNodeInstance * NNI, |
93 | return (NNI ) ? NNI->openFile( SF ) : 0 ; | 93 | QStringList & SL ) { |
94 | return (NNI ) ? NNI->openFile( SF, SL ) : 0 ; | ||
94 | } | 95 | } |
95 | 96 | ||
96 | // | 97 | // |
97 | // | 98 | // |
98 | // ANETNODEINSTANCE | 99 | // ANETNODEINSTANCE |
99 | // | 100 | // |
100 | // | 101 | // |
101 | 102 | ||
102 | long ANetNodeInstance::InstanceCounter = -1; | 103 | long ANetNodeInstance::InstanceCounter = -1; |
103 | 104 | ||
104 | void ANetNodeInstance::initialize( void ) { | 105 | void ANetNodeInstance::initialize( void ) { |
105 | if( InstanceCounter == -1 ) | 106 | if( InstanceCounter == -1 ) |
106 | InstanceCounter = time(0); | 107 | InstanceCounter = time(0); |
107 | // set name | 108 | // set name |
108 | QString N; | 109 | QString N; |
109 | N.sprintf( "-%ld", InstanceCounter++ ); | 110 | N.sprintf( "-%ld", InstanceCounter++ ); |
110 | N.prepend( NodeType->name() ); | 111 | N.prepend( NodeType->name() ); |
111 | setName( N.latin1() ); | 112 | setName( N.latin1() ); |
112 | } | 113 | } |
113 | 114 | ||
114 | void ANetNodeInstance::setAttribute( QString & Attr, QString & Value ){ | 115 | void ANetNodeInstance::setAttribute( QString & Attr, QString & Value ){ |
115 | if( Attr == "__name" ) { | 116 | if( Attr == "__name" ) { |
116 | setName( Value.latin1() ); | 117 | setName( Value.latin1() ); |
117 | } else { | 118 | } else { |
118 | setSpecificAttribute( Attr, Value ); | 119 | setSpecificAttribute( Attr, Value ); |
119 | } | 120 | } |
120 | } | 121 | } |
121 | 122 | ||
122 | void ANetNodeInstance::saveAttributes( QTextStream & TS ) { | 123 | void ANetNodeInstance::saveAttributes( QTextStream & TS ) { |
123 | TS << "__name=" << name() << endl; | 124 | TS << "__name=" << name() << endl; |
124 | saveSpecificAttribute( TS ); | 125 | saveSpecificAttribute( TS ); |
125 | } | 126 | } |
@@ -377,69 +378,71 @@ State_t NetworkSetup::state( bool Update ) { | |||
377 | Log(( "-> Detect %s\n", it.current()->name() )); | 378 | Log(( "-> Detect %s\n", it.current()->name() )); |
378 | NodeState = it.current()->runtime()->detectState(); | 379 | NodeState = it.current()->runtime()->detectState(); |
379 | Log(( " state %s\n", StateName[NodeState] )); | 380 | Log(( " state %s\n", StateName[NodeState] )); |
380 | 381 | ||
381 | if( NodeState == Disabled || | 382 | if( NodeState == Disabled || |
382 | NodeState == IsUp ) { | 383 | NodeState == IsUp ) { |
383 | // max | 384 | // max |
384 | CurrentState = NodeState; | 385 | CurrentState = NodeState; |
385 | break; | 386 | break; |
386 | } | 387 | } |
387 | 388 | ||
388 | if( NodeState > CurrentState ) { | 389 | if( NodeState > CurrentState ) { |
389 | // higher | 390 | // higher |
390 | CurrentState = NodeState; | 391 | CurrentState = NodeState; |
391 | } | 392 | } |
392 | } | 393 | } |
393 | } | 394 | } |
394 | 395 | ||
395 | return CurrentState; | 396 | return CurrentState; |
396 | } | 397 | } |
397 | 398 | ||
398 | QString NetworkSetup::setState( Action_t A, bool Force ) { | 399 | QString NetworkSetup::setState( Action_t A, bool Force ) { |
399 | 400 | ||
400 | QString msg; | 401 | QString msg; |
401 | Action_t Actions[10]; | 402 | Action_t Actions[10]; |
402 | int NoOfActions = 0; | 403 | int NoOfActions = 0; |
403 | 404 | ||
404 | // get current state | 405 | // get current state |
405 | state( Force ); | 406 | state( Force ); |
406 | 407 | ||
407 | switch( A ) { | 408 | switch( A ) { |
408 | case Disable : | 409 | case Disable : |
410 | /* | ||
409 | if( CurrentState < Disabled ) { | 411 | if( CurrentState < Disabled ) { |
410 | // disabled | 412 | // disabled |
411 | CurrentState = Disabled; | 413 | CurrentState = Disabled; |
412 | return QString(); | 414 | return QString(); |
413 | } | 415 | } |
416 | */ | ||
414 | 417 | ||
415 | if( CurrentState == IsUp ) { | 418 | if( CurrentState == IsUp ) { |
416 | Actions[NoOfActions++] = Down; | 419 | Actions[NoOfActions++] = Down; |
417 | Actions[NoOfActions++] = Deactivate; | 420 | Actions[NoOfActions++] = Deactivate; |
418 | } else if( CurrentState == Available ) { | 421 | } else if( CurrentState == Available ) { |
419 | Actions[NoOfActions++] = Deactivate; | 422 | Actions[NoOfActions++] = Deactivate; |
420 | } | 423 | } |
421 | Actions[NoOfActions++] = Disable; | 424 | Actions[NoOfActions++] = Disable; |
422 | break; | 425 | break; |
423 | case Enable : | 426 | case Enable : |
424 | // always possible -> detected state is new state | 427 | // always possible -> detected state is new state |
425 | Actions[NoOfActions++] = Enable; | 428 | Actions[NoOfActions++] = Enable; |
426 | break; | 429 | break; |
427 | case Activate : | 430 | case Activate : |
428 | if( ! Force ) { | 431 | if( ! Force ) { |
429 | if( CurrentState >= Available ) { | 432 | if( CurrentState >= Available ) { |
430 | // already available | 433 | // already available |
431 | return QString(); | 434 | return QString(); |
432 | } | 435 | } |
433 | 436 | ||
434 | if( CurrentState != Off ) { | 437 | if( CurrentState != Off ) { |
435 | return qApp->translate( "System", | 438 | return qApp->translate( "System", |
436 | "State should be off" ); | 439 | "State should be off" ); |
437 | } | 440 | } |
438 | } | 441 | } |
439 | 442 | ||
440 | Actions[NoOfActions++] = Activate; | 443 | Actions[NoOfActions++] = Activate; |
441 | break; | 444 | break; |
442 | case Deactivate : | 445 | case Deactivate : |
443 | if( ! Force ) { | 446 | if( ! Force ) { |
444 | if( CurrentState < Off ) { | 447 | if( CurrentState < Off ) { |
445 | // already inactive | 448 | // already inactive |
diff --git a/noncore/settings/networksettings2/networksettings2/netnode.h b/noncore/settings/networksettings2/networksettings2/netnode.h index 8aebdc0..fa4ab70 100644 --- a/noncore/settings/networksettings2/networksettings2/netnode.h +++ b/noncore/settings/networksettings2/networksettings2/netnode.h | |||
@@ -92,68 +92,73 @@ public: | |||
92 | { Done = D; } | 92 | { Done = D; } |
93 | 93 | ||
94 | // does this Node provide a NetworkSetup | 94 | // does this Node provide a NetworkSetup |
95 | bool isToplevel( void ); | 95 | bool isToplevel( void ); |
96 | 96 | ||
97 | // set the value of an attribute | 97 | // set the value of an attribute |
98 | void setAttribute( QString & Attr, QString & Value ) ; | 98 | void setAttribute( QString & Attr, QString & Value ) ; |
99 | void saveAttributes( QTextStream & TS ) ; | 99 | void saveAttributes( QTextStream & TS ) ; |
100 | 100 | ||
101 | // compiled references to 'needed' NetNodes -> needs list | 101 | // compiled references to 'needed' NetNodes -> needs list |
102 | inline void setAlternatives( NetNodeList * Alt ) | 102 | inline void setAlternatives( NetNodeList * Alt ) |
103 | { Alternatives = Alt; } | 103 | { Alternatives = Alt; } |
104 | inline NetNodeList & alternatives( void ) | 104 | inline NetNodeList & alternatives( void ) |
105 | { return *Alternatives; } | 105 | { return *Alternatives; } |
106 | 106 | ||
107 | // | 107 | // |
108 | // | 108 | // |
109 | // Virtual methods with sensible default | 109 | // Virtual methods with sensible default |
110 | // | 110 | // |
111 | // | 111 | // |
112 | 112 | ||
113 | // do instances of this noce class have data for this file | 113 | // do instances of this noce class have data for this file |
114 | virtual bool hasDataForFile( SystemFile & ) | 114 | virtual bool hasDataForFile( SystemFile & ) |
115 | { return 0; } | 115 | { return 0; } |
116 | 116 | ||
117 | // open proper file SF identified by S | 117 | // open proper file SF identified by S |
118 | // this method is called by NS2. | 118 | // this method is called by NS2. |
119 | // | 119 | // |
120 | // overrule this ONLY if this proper file is a common file | 120 | // overrule this ONLY if this proper file is a common file |
121 | // for all NNI of this node class and the data generated | 121 | // for all NNI of this node class and the data generated |
122 | // by each of the NNI needs to be put in one file | 122 | // by each of the NNI needs to be put in one file |
123 | // | 123 | // |
124 | // the function can return a set of folders that should | ||
125 | // be created (or perhaps already exist) prior to opening | ||
126 | // the file | ||
127 | // | ||
124 | // if this is the case the file should be (re)opened in append | 128 | // if this is the case the file should be (re)opened in append |
125 | // return 0 if file cannot be opened | 129 | // return 0 if file cannot be opened |
126 | virtual bool openFile( SystemFile &SF, | 130 | virtual bool openFile( SystemFile &SF, |
127 | ANetNodeInstance * NNI ); | 131 | ANetNodeInstance * NNI, |
132 | QStringList & PathToCreate ); | ||
128 | 133 | ||
129 | // generate instance independent stuff | 134 | // generate instance independent stuff |
130 | // 0 : data output, 1 no data, 2 error | 135 | // 0 : data output, 1 no data, 2 error |
131 | virtual short generatePreamble( SystemFile & ) | 136 | virtual short generatePreamble( SystemFile & ) |
132 | { return 1; } | 137 | { return 1; } |
133 | 138 | ||
134 | // generate instance independent stuff | 139 | // generate instance independent stuff |
135 | // 0 : data output, 1 no data, 2 error | 140 | // 0 : data output, 1 no data, 2 error |
136 | virtual short generatePostamble( SystemFile & ) | 141 | virtual short generatePostamble( SystemFile & ) |
137 | { return 1; } | 142 | { return 1; } |
138 | 143 | ||
139 | // generate instance dependent but instance common stuff | 144 | // generate instance dependent but instance common stuff |
140 | // 0 : data output, 1 no data, 2 error | 145 | // 0 : data output, 1 no data, 2 error |
141 | virtual short generateFile( SystemFile &, | 146 | virtual short generateFile( SystemFile &, |
142 | ANetNodeInstance * , | 147 | ANetNodeInstance * , |
143 | long ) | 148 | long ) |
144 | { return 1; } | 149 | { return 1; } |
145 | 150 | ||
146 | // generate NIC name based on instance nr | 151 | // generate NIC name based on instance nr |
147 | // only relevant if node instances are devices | 152 | // only relevant if node instances are devices |
148 | virtual QString genNic( long ) | 153 | virtual QString genNic( long ) |
149 | { return QString(""); } | 154 | { return QString(""); } |
150 | 155 | ||
151 | // max number of instances for this node type | 156 | // max number of instances for this node type |
152 | // only relevant if node instances are devices | 157 | // only relevant if node instances are devices |
153 | virtual long instanceCount( void ) | 158 | virtual long instanceCount( void ) |
154 | { return 1; } | 159 | { return 1; } |
155 | 160 | ||
156 | // return ID list for each file generated specially for | 161 | // return ID list for each file generated specially for |
157 | // this node type | 162 | // this node type |
158 | virtual QStringList properFiles( void ) | 163 | virtual QStringList properFiles( void ) |
159 | { return QStringList(); } | 164 | { return QStringList(); } |
@@ -230,65 +235,66 @@ public: | |||
230 | { return IsNew; } | 235 | { return IsNew; } |
231 | 236 | ||
232 | // return description for this instance | 237 | // return description for this instance |
233 | inline QString & description( void ) | 238 | inline QString & description( void ) |
234 | { return Description; } | 239 | { return Description; } |
235 | inline void setDescription( const QString & S ) | 240 | inline void setDescription( const QString & S ) |
236 | { Description = S; } | 241 | { Description = S; } |
237 | 242 | ||
238 | // pixmap for this instance -> from NetNode | 243 | // pixmap for this instance -> from NetNode |
239 | inline const QString pixmapName( void ) | 244 | inline const QString pixmapName( void ) |
240 | { return NodeType->pixmapName(); } | 245 | { return NodeType->pixmapName(); } |
241 | 246 | ||
242 | inline const char ** provides( void ) | 247 | inline const char ** provides( void ) |
243 | { return NodeType->provides(); } | 248 | { return NodeType->provides(); } |
244 | 249 | ||
245 | inline const char ** needs( void ) | 250 | inline const char ** needs( void ) |
246 | { return NodeType->needs(); } | 251 | { return NodeType->needs(); } |
247 | 252 | ||
248 | inline void setNetworkSetup( NetworkSetup * NC ) | 253 | inline void setNetworkSetup( NetworkSetup * NC ) |
249 | { TheNetworkSetup = NC; } | 254 | { TheNetworkSetup = NC; } |
250 | inline NetworkSetup * networkSetup( void ) | 255 | inline NetworkSetup * networkSetup( void ) |
251 | { return TheNetworkSetup; } | 256 | { return TheNetworkSetup; } |
252 | 257 | ||
253 | // | 258 | // |
254 | // | 259 | // |
255 | // Virtual methods with sensible defaults | 260 | // Virtual methods with sensible defaults |
256 | // | 261 | // |
257 | // | 262 | // |
258 | 263 | ||
259 | 264 | ||
260 | 265 | ||
261 | // open proper file identified by S | 266 | // open proper file identified by S |
262 | virtual bool openFile( SystemFile & ) | 267 | virtual bool openFile( SystemFile &, |
268 | QStringList & ) | ||
263 | { return 0; } | 269 | { return 0; } |
264 | 270 | ||
265 | // check if this node (or sub nodes) have data for this file | 271 | // check if this node (or sub nodes) have data for this file |
266 | virtual bool hasDataForFile( SystemFile & S ) | 272 | virtual bool hasDataForFile( SystemFile & S ) |
267 | { return nodeClass()->hasDataForFile( S ); } | 273 | { return nodeClass()->hasDataForFile( S ); } |
268 | 274 | ||
269 | // generate code specific for this node but embedded | 275 | // generate code specific for this node but embedded |
270 | // in the section of the parent | 276 | // in the section of the parent |
271 | // this is called within the code of the parent | 277 | // this is called within the code of the parent |
272 | virtual short generateFileEmbedded( SystemFile & SF, | 278 | virtual short generateFileEmbedded( SystemFile & SF, |
273 | long DevNr ) | 279 | long DevNr ) |
274 | { ANetNodeInstance * NNI = nextNode(); | 280 | { ANetNodeInstance * NNI = nextNode(); |
275 | return (NNI) ? NNI->generateFileEmbedded( SF, DevNr ) : 1; | 281 | return (NNI) ? NNI->generateFileEmbedded( SF, DevNr ) : 1; |
276 | } | 282 | } |
277 | 283 | ||
278 | // generate code specific for this node | 284 | // generate code specific for this node |
279 | // (or find the first node that does) | 285 | // (or find the first node that does) |
280 | virtual short generateFile( SystemFile & SF, | 286 | virtual short generateFile( SystemFile & SF, |
281 | long DevNr ) | 287 | long DevNr ) |
282 | { ANetNodeInstance * NNI = nextNode(); | 288 | { ANetNodeInstance * NNI = nextNode(); |
283 | return (NNI) ? NNI->generateFile( SF, DevNr ) : 1; | 289 | return (NNI) ? NNI->generateFile( SF, DevNr ) : 1; |
284 | } | 290 | } |
285 | 291 | ||
286 | // return true if this node instance is triggered by this trigger | 292 | // return true if this node instance is triggered by this trigger |
287 | // could be delegated to deeper instances | 293 | // could be delegated to deeper instances |
288 | virtual bool triggeredBy( const QString & ) | 294 | virtual bool triggeredBy( const QString & ) |
289 | { return 0; } | 295 | { return 0; } |
290 | 296 | ||
291 | // | 297 | // |
292 | // | 298 | // |
293 | // Pure virtual functions | 299 | // Pure virtual functions |
294 | // | 300 | // |
diff --git a/noncore/settings/networksettings2/nsdata.cpp b/noncore/settings/networksettings2/nsdata.cpp index 835c7c3..6b87399 100644 --- a/noncore/settings/networksettings2/nsdata.cpp +++ b/noncore/settings/networksettings2/nsdata.cpp | |||
@@ -307,116 +307,138 @@ QString NetworkSettingsData::generateSettings( void ) { | |||
307 | 307 | ||
308 | // regenerate system files | 308 | // regenerate system files |
309 | Log( ( "Generating settings from %s\n", CfgFile.latin1() )); | 309 | Log( ( "Generating settings from %s\n", CfgFile.latin1() )); |
310 | 310 | ||
311 | for( QDictIterator<ANetNode> nnit( NSResources->netNodes() ); | 311 | for( QDictIterator<ANetNode> nnit( NSResources->netNodes() ); |
312 | nnit.current(); | 312 | nnit.current(); |
313 | ++nnit ) { | 313 | ++nnit ) { |
314 | bool FirstItem = 1; | 314 | bool FirstItem = 1; |
315 | bool Generated = 0; | 315 | bool Generated = 0; |
316 | 316 | ||
317 | CurDevNN = nnit.current(); | 317 | CurDevNN = nnit.current(); |
318 | 318 | ||
319 | { QStringList SL; | 319 | { QStringList SL; |
320 | SL = CurDevNN->properFiles(); | 320 | SL = CurDevNN->properFiles(); |
321 | 321 | ||
322 | for ( QStringList::Iterator it = SL.begin(); | 322 | for ( QStringList::Iterator it = SL.begin(); |
323 | it != SL.end(); | 323 | it != SL.end(); |
324 | ++it ) { | 324 | ++it ) { |
325 | 325 | ||
326 | Generated = 0; | 326 | Generated = 0; |
327 | FirstItem = 1; | 327 | FirstItem = 1; |
328 | // iterate over NNI's of this class | 328 | // iterate over NNI's of this class |
329 | for( QDictIterator<ANetNodeInstance> nniit( | 329 | for( QDictIterator<ANetNodeInstance> nniit( |
330 | NSResources->netNodeInstances() ); | 330 | NSResources->netNodeInstances() ); |
331 | nniit.current(); | 331 | nniit.current(); |
332 | ++nniit ) { | 332 | ++nniit ) { |
333 | if( nniit.current()->nodeClass() != CurDevNN ) | 333 | if( nniit.current()->nodeClass() != CurDevNN ) |
334 | // different class | 334 | // different class |
335 | continue; | 335 | continue; |
336 | 336 | ||
337 | // open proper file | 337 | // open proper file |
338 | { SystemFile SF( (*it) ); | 338 | { SystemFile SF( (*it) ); |
339 | QStringList SL; | ||
339 | 340 | ||
340 | if( ! CurDevNN->openFile( SF, nniit.current()) ) { | 341 | if( ! CurDevNN->openFile( SF, nniit.current(), SL) ) { |
341 | // cannot open | 342 | // cannot open |
342 | S = qApp->translate( "NetworkSettings", | 343 | S = qApp->translate( "NetworkSettings", |
343 | "<p>Cannot open proper file \"%1\" for node \"%2\"</p>" ). | 344 | "<p>Cannot build proper file \"%1\" for node \"%2\"</p>" ). |
344 | arg( (*it) ).arg( CurDevNN->name() ); | 345 | arg( (*it) ). |
346 | arg( CurDevNN->name() ); | ||
347 | return S; | ||
348 | } | ||
349 | |||
350 | if( ! createPath( SL ) ) { | ||
351 | S = qApp->translate( "NetworkSettings", | ||
352 | "<p>Cannot create path \"%1\" for proper file \"%2\" for node \"%3\"</p>" ). | ||
353 | arg( SL.join("/") ). | ||
354 | arg( (*it) ). | ||
355 | arg( CurDevNN->name() ); | ||
345 | return S; | 356 | return S; |
346 | } | 357 | } |
347 | 358 | ||
348 | if( ! SF.open() ) { | 359 | if( ! SF.open() ) { |
349 | S = qApp->translate( "NetworkSettings", | 360 | S = qApp->translate( "NetworkSettings", |
350 | "<p>Cannot open proper file \"%1\" for node \"%2\"</p>" ). | 361 | "<p>Cannot open proper file \"%1\" for node \"%2\"</p>" ). |
351 | arg( (*it) ).arg( CurDevNN->name() ); | 362 | arg( (*it) ).arg( CurDevNN->name() ); |
352 | return S; | 363 | return S; |
353 | } | 364 | } |
354 | 365 | ||
355 | // preamble on first | 366 | // preamble on first |
356 | if( FirstItem ) { | 367 | if( FirstItem ) { |
357 | if( CurDevNN->generatePreamble( SF ) == 2 ) { | 368 | if( CurDevNN->generatePreamble( SF ) == 2 ) { |
358 | S = qApp->translate( "NetworkSettings", | 369 | S = qApp->translate( "NetworkSettings", |
359 | "<p>Error in section \"preamble\" for proper file \"%1\" and node \"%2\"</p>" ). | 370 | "<p>Error in section \"preamble\" for proper file \"%1\" and node \"%2\"</p>" ). |
360 | arg( (*it) ). | 371 | arg( (*it) ). |
361 | arg( CurDevNN->name() ); | 372 | arg( CurDevNN->name() ); |
362 | return S; | 373 | return S; |
363 | } | 374 | } |
364 | } | 375 | } |
365 | FirstItem = 0; | 376 | FirstItem = 0; |
366 | Generated = 1; | 377 | Generated = 1; |
367 | 378 | ||
368 | // item specific | 379 | // item specific |
369 | if( nniit.current()->generateFile( SF, -1 ) == 2 ) { | 380 | if( nniit.current()->generateFile( SF, -1 ) == 2 ) { |
370 | S = qApp->translate( "NetworkSettings", | 381 | S = qApp->translate( "NetworkSettings", |
371 | "<p>Error in section for node \"%1\" for proper file \"%2\" and node class \"%3\"</p>" ). | 382 | "<p>Error in section for node \"%1\" for proper file \"%2\" and node class \"%3\"</p>" ). |
372 | arg( nniit.current()->name() ). | 383 | arg( nniit.current()->name() ). |
373 | arg( (*it) ). | 384 | arg( (*it) ). |
374 | arg( CurDevNN->name() ); | 385 | arg( CurDevNN->name() ); |
375 | return S; | 386 | return S; |
376 | } | 387 | } |
377 | } | 388 | } |
378 | } | 389 | } |
379 | 390 | ||
380 | if( Generated ) { | 391 | if( Generated ) { |
381 | SystemFile SF( (*it) ); | 392 | SystemFile SF( (*it) ); |
393 | QStringList SL; | ||
382 | 394 | ||
383 | if( CurDevNN->openFile( SF, 0 ) && | 395 | if( CurDevNN->openFile( SF, 0, SL ) && |
384 | ! SF.path().isEmpty() | 396 | ! SF.path().isEmpty() |
385 | ) { | 397 | ) { |
386 | 398 | ||
399 | if( ! createPath( SL ) ) { | ||
400 | S = qApp->translate( "NetworkSettings", | ||
401 | "<p>Cannot create path \"%1\" for proper file \"%2\" for node \"%3\"</p>" ). | ||
402 | arg( SL.join("/") ). | ||
403 | arg( (*it) ). | ||
404 | arg( CurDevNN->name() ); | ||
405 | return S; | ||
406 | } | ||
407 | |||
387 | if( ! SF.open() ) { | 408 | if( ! SF.open() ) { |
388 | S = qApp->translate( "NetworkSettings", | 409 | S = qApp->translate( "NetworkSettings", |
389 | "<p>Cannot open proper file \"%1\" for node \"%2\"</p>" ). | 410 | "<p>Cannot open proper file \"%1\" for node \"%2\"</p>" ). |
390 | arg( (*it) ).arg( CurDevNN->name() ); | 411 | arg( (*it) ). |
412 | arg( CurDevNN->name() ); | ||
391 | return S; | 413 | return S; |
392 | } | 414 | } |
393 | 415 | ||
394 | if( CurDevNN->generatePostamble( SF ) == 2 ) { | 416 | if( CurDevNN->generatePostamble( SF ) == 2 ) { |
395 | S = qApp->translate( "NetworkSettings", | 417 | S = qApp->translate( "NetworkSettings", |
396 | "<p>Error in section \"postamble\" for proper file \"%1\" and node \"%2\"</p>" ). | 418 | "<p>Error in section \"postamble\" for proper file \"%1\" and node \"%2\"</p>" ). |
397 | arg( (*it) ). | 419 | arg( (*it) ). |
398 | arg( CurDevNN->name() ); | 420 | arg( CurDevNN->name() ); |
399 | return S; | 421 | return S; |
400 | } | 422 | } |
401 | } // no postamble | 423 | } // no postamble |
402 | } | 424 | } |
403 | } | 425 | } |
404 | } | 426 | } |
405 | } | 427 | } |
406 | 428 | ||
407 | // | 429 | // |
408 | // generate all registered files | 430 | // generate all registered files |
409 | // | 431 | // |
410 | for( QDictIterator<SystemFile> sfit(SFM); | 432 | for( QDictIterator<SystemFile> sfit(SFM); |
411 | sfit.current(); | 433 | sfit.current(); |
412 | ++sfit ) { | 434 | ++sfit ) { |
413 | SystemFile * SF; | 435 | SystemFile * SF; |
414 | 436 | ||
415 | SF = sfit.current(); | 437 | SF = sfit.current(); |
416 | 438 | ||
417 | // reset all | 439 | // reset all |
418 | for( QDictIterator<ANetNode> nnit( NSResources->netNodes() ); | 440 | for( QDictIterator<ANetNode> nnit( NSResources->netNodes() ); |
419 | nnit.current(); | 441 | nnit.current(); |
420 | ++nnit ) { | 442 | ++nnit ) { |
421 | nnit.current()->setDone(0); | 443 | nnit.current()->setDone(0); |
422 | } | 444 | } |
@@ -756,32 +778,55 @@ bool NetworkSettingsData::couldBeTriggered( const QString & Interface ) { | |||
756 | Interface.latin1(), PossibleTriggered.count() )); | 778 | Interface.latin1(), PossibleTriggered.count() )); |
757 | 779 | ||
758 | return ( PossibleTriggered.count() ) ? 1 : 0; | 780 | return ( PossibleTriggered.count() ) ? 1 : 0; |
759 | } | 781 | } |
760 | 782 | ||
761 | QList<NetworkSetup> NetworkSettingsData::collectTriggered( | 783 | QList<NetworkSetup> NetworkSettingsData::collectTriggered( |
762 | const QString & Interface ) { | 784 | const QString & Interface ) { |
763 | 785 | ||
764 | // collect NetworkSetups that could be triggered by this interface | 786 | // collect NetworkSetups that could be triggered by this interface |
765 | NetworkSetup * NC; | 787 | NetworkSetup * NC; |
766 | QList<NetworkSetup> PossibleTriggered; | 788 | QList<NetworkSetup> PossibleTriggered; |
767 | 789 | ||
768 | // for all NetworkSetups | 790 | // for all NetworkSetups |
769 | Name2NetworkSetup_t & M = NSResources->networkSetups(); | 791 | Name2NetworkSetup_t & M = NSResources->networkSetups(); |
770 | 792 | ||
771 | for( QDictIterator<NetworkSetup> it(M); | 793 | for( QDictIterator<NetworkSetup> it(M); |
772 | it.current(); | 794 | it.current(); |
773 | ++it ) { | 795 | ++it ) { |
774 | NC = it.current(); | 796 | NC = it.current(); |
775 | // check if this profile handles the requested interface | 797 | // check if this profile handles the requested interface |
776 | if( NC->triggeredBy( Interface ) && // if different Intf. | 798 | if( NC->triggeredBy( Interface ) && // if different Intf. |
777 | NC->state() != Disabled && // if enabled | 799 | NC->state() != Disabled && // if enabled |
778 | NC->state() != IsUp // if already used | 800 | NC->state() != IsUp // if already used |
779 | ) { | 801 | ) { |
780 | Log( ( "Append %s for %s\n", | 802 | Log( ( "Append %s for %s\n", |
781 | NC->name().latin1(), Interface.latin1() )); | 803 | NC->name().latin1(), Interface.latin1() )); |
782 | PossibleTriggered.append( NC ); | 804 | PossibleTriggered.append( NC ); |
783 | } | 805 | } |
784 | } | 806 | } |
785 | return PossibleTriggered; | 807 | return PossibleTriggered; |
786 | } | 808 | } |
787 | 809 | ||
810 | bool NetworkSettingsData::createPath( const QStringList & SL ) { | ||
811 | |||
812 | QDir D( SL[0] ); | ||
813 | |||
814 | for ( QStringList::ConstIterator it = SL.begin(); | ||
815 | it != SL.end(); | ||
816 | ++it ) { | ||
817 | |||
818 | printf( "Create %s\n", (*it).latin1() ); | ||
819 | if( it == SL.begin() ) | ||
820 | continue; | ||
821 | |||
822 | if( ! D.exists( *it ) ) { | ||
823 | if( ! D.mkdir( *it ) ) { | ||
824 | printf( "Failed %s %s\n", D.path().latin1(), (*it).latin1() ); | ||
825 | return 0; | ||
826 | } | ||
827 | } | ||
828 | |||
829 | D.cd( *it ); | ||
830 | } | ||
831 | return 1; | ||
832 | } | ||
diff --git a/noncore/settings/networksettings2/nsdata.h b/noncore/settings/networksettings2/nsdata.h index b9c216d..65b61a3 100644 --- a/noncore/settings/networksettings2/nsdata.h +++ b/noncore/settings/networksettings2/nsdata.h | |||
@@ -1,38 +1,39 @@ | |||
1 | #ifndef __NSDATA_H | 1 | #ifndef __NSDATA_H |
2 | #define __NSDATA_H | 2 | #define __NSDATA_H |
3 | 3 | ||
4 | #include <netnode.h> | 4 | #include <netnode.h> |
5 | 5 | ||
6 | class NetworkSettingsData { | 6 | class NetworkSettingsData { |
7 | 7 | ||
8 | public : | 8 | public : |
9 | 9 | ||
10 | NetworkSettingsData( void ); | 10 | NetworkSettingsData( void ); |
11 | ~NetworkSettingsData( void ); | 11 | ~NetworkSettingsData( void ); |
12 | 12 | ||
13 | void loadSettings( void ); | 13 | void loadSettings( void ); |
14 | QString saveSettings( void ); | 14 | QString saveSettings( void ); |
15 | 15 | ||
16 | QString generateSettings( void ); | 16 | QString generateSettings( void ); |
17 | 17 | ||
18 | bool isModified( void ); | 18 | bool isModified( void ); |
19 | inline void setModified( bool M ) | 19 | inline void setModified( bool M ) |
20 | { ForceModified = M; } | 20 | { ForceModified = M; } |
21 | 21 | ||
22 | QList<NetworkSetup> collectPossible( const QString & Interface ); | 22 | QList<NetworkSetup> collectPossible( const QString & Interface ); |
23 | // return TRUE if we need gui to decide | 23 | // return TRUE if we need gui to decide |
24 | bool canStart( const QString & Interface ); | 24 | bool canStart( const QString & Interface ); |
25 | // return TRUE if there are vpns that could be triggered | 25 | // return TRUE if there are vpns that could be triggered |
26 | // by this interface | 26 | // by this interface |
27 | bool couldBeTriggered( const QString & Interface ); | 27 | bool couldBeTriggered( const QString & Interface ); |
28 | 28 | ||
29 | private : | 29 | private : |
30 | 30 | ||
31 | QList<NetworkSetup> collectTriggered( const QString &Interface ); | 31 | QList<NetworkSetup> collectTriggered( const QString &Interface ); |
32 | bool createPath( const QStringList & SL ); | ||
32 | bool ForceModified; | 33 | bool ForceModified; |
33 | 34 | ||
34 | // collect strings in config file nobody wants | 35 | // collect strings in config file nobody wants |
35 | QStringList LeftOvers; | 36 | QStringList LeftOvers; |
36 | }; | 37 | }; |
37 | 38 | ||
38 | #endif | 39 | #endif |
diff --git a/noncore/settings/networksettings2/opietooth2/Opietooth.cpp b/noncore/settings/networksettings2/opietooth2/Opietooth.cpp index 8323549..fc30bf8 100644 --- a/noncore/settings/networksettings2/opietooth2/Opietooth.cpp +++ b/noncore/settings/networksettings2/opietooth2/Opietooth.cpp | |||
@@ -155,65 +155,64 @@ void OTSniffing::SLOT_Trace( bool Run ) { | |||
155 | break; | 155 | break; |
156 | } | 156 | } |
157 | 157 | ||
158 | SL << "-i"; | 158 | SL << "-i"; |
159 | SL << OT->scanWith()->devname(); | 159 | SL << OT->scanWith()->devname(); |
160 | 160 | ||
161 | connect( HciDump, | 161 | connect( HciDump, |
162 | SIGNAL( stdoutLine( const QString & ) ), | 162 | SIGNAL( stdoutLine( const QString & ) ), |
163 | this, | 163 | this, |
164 | SLOT( SLOT_Show( const QString & ) ) ); | 164 | SLOT( SLOT_Show( const QString & ) ) ); |
165 | 165 | ||
166 | connect( HciDump, | 166 | connect( HciDump, |
167 | SIGNAL(processExited(MyProcess*) ), | 167 | SIGNAL(processExited(MyProcess*) ), |
168 | this, | 168 | this, |
169 | SLOT( SLOT_ProcessExited(MyProcess*) ) ); | 169 | SLOT( SLOT_ProcessExited(MyProcess*) ) ); |
170 | 170 | ||
171 | HciDump->process() << SL; | 171 | HciDump->process() << SL; |
172 | 172 | ||
173 | if( ! HciDump->process().start( OProcess::DontCare, | 173 | if( ! HciDump->process().start( OProcess::DontCare, |
174 | OProcess::AllOutput ) | 174 | OProcess::AllOutput ) |
175 | ) { | 175 | ) { |
176 | QMessageBox::warning(0, | 176 | QMessageBox::warning(0, |
177 | tr("Run hcidump"), | 177 | tr("Run hcidump"), |
178 | tr("Cannot start %1").arg(SL.join(" ")) | 178 | tr("Cannot start %1").arg(SL.join(" ")) |
179 | ); | 179 | ); |
180 | delete HciDump; | 180 | delete HciDump; |
181 | HciDump = 0; | 181 | HciDump = 0; |
182 | } | 182 | } |
183 | 183 | ||
184 | } | 184 | } |
185 | 185 | ||
186 | void OTSniffing::SLOT_Show( const QString & S ) { | 186 | void OTSniffing::SLOT_Show( const QString & S ) { |
187 | printf( "%s\n", S.latin1() ); | ||
188 | Output_TV->setText( Output_TV->text() + S + "\n" ); | 187 | Output_TV->setText( Output_TV->text() + S + "\n" ); |
189 | 188 | ||
190 | QScrollBar *scroll = Output_TV->verticalScrollBar(); | 189 | QScrollBar *scroll = Output_TV->verticalScrollBar(); |
191 | scroll->setValue(scroll->maxValue()); | 190 | scroll->setValue(scroll->maxValue()); |
192 | //Output_LB->insertItem( S ); | 191 | //Output_LB->insertItem( S ); |
193 | //Output_LB->setCurrentItem( Output_LB->count()-1 ); | 192 | //Output_LB->setCurrentItem( Output_LB->count()-1 ); |
194 | //Output_LB->ensureCurrentVisible(); | 193 | //Output_LB->ensureCurrentVisible(); |
195 | } | 194 | } |
196 | 195 | ||
197 | void OTSniffing::SLOT_ProcessExited( MyProcess * ) { | 196 | void OTSniffing::SLOT_ProcessExited( MyProcess * ) { |
198 | printf( "Exited\n" ); | 197 | printf( "Exited\n" ); |
199 | delete HciDump; | 198 | delete HciDump; |
200 | HciDump = 0; | 199 | HciDump = 0; |
201 | } | 200 | } |
202 | 201 | ||
203 | void OTSniffing::SLOT_Save( void ) { | 202 | void OTSniffing::SLOT_Save( void ) { |
204 | QString S = OFileDialog::getSaveFileName( | 203 | QString S = OFileDialog::getSaveFileName( |
205 | OFileSelector::Extended, | 204 | OFileSelector::Extended, |
206 | QDir::home().path(), | 205 | QDir::home().path(), |
207 | QString::null, | 206 | QString::null, |
208 | MimeTypes(), | 207 | MimeTypes(), |
209 | this ); | 208 | this ); |
210 | 209 | ||
211 | if( ! S.isEmpty() ) { | 210 | if( ! S.isEmpty() ) { |
212 | QFile F( S ); | 211 | QFile F( S ); |
213 | if( ! F.open( IO_WriteOnly ) ) { | 212 | if( ! F.open( IO_WriteOnly ) ) { |
214 | QMessageBox::warning(0, | 213 | QMessageBox::warning(0, |
215 | tr("Save log"), | 214 | tr("Save log"), |
216 | tr("Cannot open %1").arg(S) | 215 | tr("Cannot open %1").arg(S) |
217 | ); | 216 | ); |
218 | return; | 217 | return; |
219 | } | 218 | } |
@@ -348,64 +347,65 @@ void OTPairing::SLOT_Unpair( ) { | |||
348 | // find selected pair | 347 | // find selected pair |
349 | 348 | ||
350 | QListViewItem * it = Pairs_LV->firstChild(); | 349 | QListViewItem * it = Pairs_LV->firstChild(); |
351 | while( it ) { | 350 | while( it ) { |
352 | if( it->isSelected() ) { | 351 | if( it->isSelected() ) { |
353 | // confirm ? | 352 | // confirm ? |
354 | if( QMessageBox::warning(0, | 353 | if( QMessageBox::warning(0, |
355 | tr("Break pairing"), | 354 | tr("Break pairing"), |
356 | tr("Sure ?"), | 355 | tr("Sure ?"), |
357 | tr("Yes, break"), | 356 | tr("Yes, break"), |
358 | tr("No, don't break") ) == 0 ) { | 357 | tr("No, don't break") ) == 0 ) { |
359 | LinkKeyLVI * KPIt = (LinkKeyLVI *)it; | 358 | LinkKeyLVI * KPIt = (LinkKeyLVI *)it; |
360 | // break | 359 | // break |
361 | OT->removeLinkKey( KPIt->index() ); | 360 | OT->removeLinkKey( KPIt->index() ); |
362 | delete KPIt; | 361 | delete KPIt; |
363 | } | 362 | } |
364 | return; | 363 | return; |
365 | } | 364 | } |
366 | it= it->nextSibling(); | 365 | it= it->nextSibling(); |
367 | } | 366 | } |
368 | } | 367 | } |
369 | 368 | ||
370 | // | 369 | // |
371 | // | 370 | // |
372 | // | 371 | // |
373 | // | 372 | // |
374 | // | 373 | // |
375 | 374 | ||
376 | OTScan::OTScan( QWidget * parent, OTIcons * _IC ) : | 375 | OTScan::OTScan( QWidget * parent, OTIcons * _IC ) : |
377 | OTScanGUI( parent ), Filter() { | 376 | OTScanGUI( parent ), Filter() { |
378 | 377 | ||
379 | OT = OTGateway::getOTGateway(); | 378 | OT = OTGateway::getOTGateway(); |
379 | |||
380 | Icons = (_IC ) ? _IC : new OTIcons(); | 380 | Icons = (_IC ) ? _IC : new OTIcons(); |
381 | MyIcons = (_IC == 0 ); | 381 | MyIcons = (_IC == 0 ); |
382 | DetectedPeers_LV->header()->hide(); | 382 | DetectedPeers_LV->header()->hide(); |
383 | Current = 0; | 383 | Current = 0; |
384 | SelectedPeer = 0; | 384 | SelectedPeer = 0; |
385 | SelectedChannel = 0; | 385 | SelectedChannel = 0; |
386 | 386 | ||
387 | StrengthTimer = new QTimer( this ); | 387 | StrengthTimer = new QTimer( this ); |
388 | connect( StrengthTimer, | 388 | connect( StrengthTimer, |
389 | SIGNAL( timeout()), | 389 | SIGNAL( timeout()), |
390 | this, | 390 | this, |
391 | SLOT( SLOT_UpdateStrength()) | 391 | SLOT( SLOT_UpdateStrength()) |
392 | ); | 392 | ); |
393 | 393 | ||
394 | connect( OT, | 394 | connect( OT, |
395 | SIGNAL( detectedPeer( OTPeer *, bool )), | 395 | SIGNAL( detectedPeer( OTPeer *, bool )), |
396 | this, | 396 | this, |
397 | SLOT( SLOT_NewPeer( OTPeer *, bool )) | 397 | SLOT( SLOT_NewPeer( OTPeer *, bool )) |
398 | ); | 398 | ); |
399 | connect( OT, | 399 | connect( OT, |
400 | SIGNAL( finishedDetecting()), | 400 | SIGNAL( finishedDetecting()), |
401 | this, | 401 | this, |
402 | SLOT( SLOT_FinishedDetecting()) | 402 | SLOT( SLOT_FinishedDetecting()) |
403 | ); | 403 | ); |
404 | 404 | ||
405 | // populate with peers we already know about | 405 | // populate with peers we already know about |
406 | const PeerVector & P = OT->peers(); | 406 | const PeerVector & P = OT->peers(); |
407 | for( unsigned int i = 0; | 407 | for( unsigned int i = 0; |
408 | i < P.count(); | 408 | i < P.count(); |
409 | i ++ ) { | 409 | i ++ ) { |
410 | SLOT_NewPeer( P[i], TRUE ); | 410 | SLOT_NewPeer( P[i], TRUE ); |
411 | } | 411 | } |
@@ -415,64 +415,72 @@ OTScan::OTScan( QWidget * parent, OTIcons * _IC ) : | |||
415 | 415 | ||
416 | Paired_Led = new OLedBox( green, State_Frm ); | 416 | Paired_Led = new OLedBox( green, State_Frm ); |
417 | QLabel * L1 = new QLabel( tr( "Paired" ), State_Frm ); | 417 | QLabel * L1 = new QLabel( tr( "Paired" ), State_Frm ); |
418 | 418 | ||
419 | H->addWidget( Paired_Led ); | 419 | H->addWidget( Paired_Led ); |
420 | H->addWidget( L1 ); | 420 | H->addWidget( L1 ); |
421 | H->addStretch( 1 ); | 421 | H->addStretch( 1 ); |
422 | } | 422 | } |
423 | } | 423 | } |
424 | 424 | ||
425 | OTScan::~OTScan() { | 425 | OTScan::~OTScan() { |
426 | if( MyIcons ) | 426 | if( MyIcons ) |
427 | delete Icons; | 427 | delete Icons; |
428 | OTGateway::releaseOTGateway(); | 428 | OTGateway::releaseOTGateway(); |
429 | 429 | ||
430 | // send all peers that we do not care about states | 430 | // send all peers that we do not care about states |
431 | QListViewItem * Lit = DetectedPeers_LV->firstChild(); | 431 | QListViewItem * Lit = DetectedPeers_LV->firstChild(); |
432 | while( Lit ) { | 432 | while( Lit ) { |
433 | ((PeerLVI *)Lit)->peer()->stopFindingOutState( ); | 433 | ((PeerLVI *)Lit)->peer()->stopFindingOutState( ); |
434 | Lit = Lit->nextSibling(); | 434 | Lit = Lit->nextSibling(); |
435 | } | 435 | } |
436 | } | 436 | } |
437 | 437 | ||
438 | // static scan dialog function | 438 | // static scan dialog function |
439 | int OTScan::getDevice( OTPeer *& Peer, | 439 | int OTScan::getDevice( OTPeer *& Peer, |
440 | int & Channel, | 440 | int & Channel, |
441 | OTGateway * OT, | 441 | OTGateway * OT, |
442 | const UUIDVector & Filter, | 442 | const UUIDVector & Filter, |
443 | QWidget* Parent ) { | 443 | QWidget* Parent ) { |
444 | bool IsUp = 0; | 444 | bool IsUp = 0; |
445 | unsigned int i; | 445 | unsigned int i; |
446 | 446 | ||
447 | if( ! OT->isEnabled() ) { | ||
448 | QMessageBox::warning( 0, | ||
449 | tr("Scanning problem"), | ||
450 | tr("Bluetooth not enabled" ) | ||
451 | ); | ||
452 | return QDialog::Rejected; | ||
453 | } | ||
454 | |||
447 | // check if bluetooth is up | 455 | // check if bluetooth is up |
448 | OTDriverList & DL = OT->getDriverList(); | 456 | OTDriverList & DL = OT->getDriverList(); |
449 | for( i = 0; | 457 | for( i = 0; |
450 | i < DL.count(); | 458 | i < DL.count(); |
451 | i ++ ) { | 459 | i ++ ) { |
452 | if( DL[i]->isUp() ) { | 460 | if( DL[i]->isUp() ) { |
453 | // one device that is up found | 461 | // one device that is up found |
454 | IsUp = 1; | 462 | IsUp = 1; |
455 | break; | 463 | break; |
456 | } | 464 | } |
457 | } | 465 | } |
458 | 466 | ||
459 | // use this driver | 467 | // use this driver |
460 | OT->setScanWith( OT->driver(i) ); | 468 | OT->setScanWith( OT->driver(i) ); |
461 | 469 | ||
462 | // create dialog | 470 | // create dialog |
463 | QDialog * Dlg = new QDialog( Parent, 0, TRUE ); | 471 | QDialog * Dlg = new QDialog( Parent, 0, TRUE ); |
464 | QVBoxLayout * V = new QVBoxLayout( Dlg ); | 472 | QVBoxLayout * V = new QVBoxLayout( Dlg ); |
465 | OTScan * Scn = new OTScan( Dlg ); | 473 | OTScan * Scn = new OTScan( Dlg ); |
466 | 474 | ||
467 | connect( Scn, | 475 | connect( Scn, |
468 | SIGNAL( selected() ), | 476 | SIGNAL( selected() ), |
469 | Dlg, | 477 | Dlg, |
470 | SLOT( accept() ) | 478 | SLOT( accept() ) |
471 | ); | 479 | ); |
472 | 480 | ||
473 | if( Filter ) { | 481 | if( Filter ) { |
474 | Scn->setScanFilter( Filter ); | 482 | Scn->setScanFilter( Filter ); |
475 | } | 483 | } |
476 | 484 | ||
477 | V->addWidget( Scn ); | 485 | V->addWidget( Scn ); |
478 | Dlg->setCaption( tr("Scan Neighbourhood" ) ); | 486 | Dlg->setCaption( tr("Scan Neighbourhood" ) ); |
diff --git a/noncore/settings/networksettings2/ppp/ppp_NNI.cpp b/noncore/settings/networksettings2/ppp/ppp_NNI.cpp index 7286d96..9cdd51e 100644 --- a/noncore/settings/networksettings2/ppp/ppp_NNI.cpp +++ b/noncore/settings/networksettings2/ppp/ppp_NNI.cpp | |||
@@ -117,70 +117,72 @@ void APPP::saveSpecificAttribute( QTextStream & TS ) { | |||
117 | TS << "ipgwautomatic=" << ( ( Data.IP.GWAutomatic ) ? "yes" : "no" ) << endl; | 117 | TS << "ipgwautomatic=" << ( ( Data.IP.GWAutomatic ) ? "yes" : "no" ) << endl; |
118 | TS << "ipgwisdefault=" << ( ( Data.IP.GWIsDefault ) ? "yes" : "no" ) << endl; | 118 | TS << "ipgwisdefault=" << ( ( Data.IP.GWIsDefault ) ? "yes" : "no" ) << endl; |
119 | TS << "ipgwifnotset=" << ( ( Data.IP.GWIfNotSet ) ? "yes" : "no" ) << endl; | 119 | TS << "ipgwifnotset=" << ( ( Data.IP.GWIfNotSet ) ? "yes" : "no" ) << endl; |
120 | TS << "iplocaloverrule=" << ( ( Data.IP.LocalOverrule ) ? "yes" : "no" ) << endl; | 120 | TS << "iplocaloverrule=" << ( ( Data.IP.LocalOverrule ) ? "yes" : "no" ) << endl; |
121 | TS << "ipremoteoverrule=" << ( ( Data.IP.RemoteOverrule ) ? "yes" : "no" ) << endl; | 121 | TS << "ipremoteoverrule=" << ( ( Data.IP.RemoteOverrule ) ? "yes" : "no" ) << endl; |
122 | TS << "iplocaladdress=" << Data.IP.LocalAddress << endl; | 122 | TS << "iplocaladdress=" << Data.IP.LocalAddress << endl; |
123 | TS << "ipremoteaddress=" << Data.IP.RemoteAddress << endl; | 123 | TS << "ipremoteaddress=" << Data.IP.RemoteAddress << endl; |
124 | TS << "ipgwaddress=" << Data.IP.GWAddress << endl; | 124 | TS << "ipgwaddress=" << Data.IP.GWAddress << endl; |
125 | 125 | ||
126 | TS << "runpreconnect=" << Data.Run.PreConnect << endl; | 126 | TS << "runpreconnect=" << Data.Run.PreConnect << endl; |
127 | TS << "runpostconnect=" << Data.Run.PostConnect << endl; | 127 | TS << "runpostconnect=" << Data.Run.PostConnect << endl; |
128 | TS << "runpredisconnect=" << Data.Run.PreDisconnect << endl; | 128 | TS << "runpredisconnect=" << Data.Run.PreDisconnect << endl; |
129 | TS << "runpostdisconnect=" << Data.Run.PostDisconnect << endl; | 129 | TS << "runpostdisconnect=" << Data.Run.PostDisconnect << endl; |
130 | 130 | ||
131 | } | 131 | } |
132 | 132 | ||
133 | QWidget * APPP::edit( QWidget * parent ) { | 133 | QWidget * APPP::edit( QWidget * parent ) { |
134 | GUI = new PPPEdit( parent ); | 134 | GUI = new PPPEdit( parent ); |
135 | GUI->showData( Data ); | 135 | GUI->showData( Data ); |
136 | return GUI; | 136 | return GUI; |
137 | } | 137 | } |
138 | 138 | ||
139 | QString APPP::acceptable( void ) { | 139 | QString APPP::acceptable( void ) { |
140 | return ( GUI ) ? GUI->acceptable( ) : QString(); | 140 | return ( GUI ) ? GUI->acceptable( ) : QString(); |
141 | } | 141 | } |
142 | 142 | ||
143 | void APPP::commit( void ) { | 143 | void APPP::commit( void ) { |
144 | if( GUI && GUI->commit( Data ) ) { | 144 | if( GUI && GUI->commit( Data ) ) { |
145 | setModified( 1 ); | 145 | setModified( 1 ); |
146 | } | 146 | } |
147 | } | 147 | } |
148 | 148 | ||
149 | bool APPP::openFile( SystemFile & SF ) { | 149 | bool APPP::openFile( SystemFile & SF, QStringList & SL ) { |
150 | if( SF.name() == "peers" ) { | 150 | if( SF.name() == "peers" ) { |
151 | SL << "/tmp/ppp" << "peers" ; | ||
151 | SF.setPath( removeSpaces( | 152 | SF.setPath( removeSpaces( |
152 | QString( "/tmp/ppp/peers/" ) + networkSetup()->name() ) ); | 153 | QString( "/tmp/ppp/peers/" ) + networkSetup()->name() ) ); |
153 | return 1; | 154 | return 1; |
154 | } else if ( SF.name() == "chatscripts" ) { | 155 | } else if ( SF.name() == "chatscripts" ) { |
156 | SL << "/tmp/chatscripts"; | ||
155 | SF.setPath( removeSpaces( | 157 | SF.setPath( removeSpaces( |
156 | QString( "/tmp/chatscripts/" ) + networkSetup()->name() ) ); | 158 | QString( "/tmp/chatscripts/" ) + networkSetup()->name() ) ); |
157 | return 1; | 159 | return 1; |
158 | } | 160 | } |
159 | return 0; | 161 | return 0; |
160 | } | 162 | } |
161 | 163 | ||
162 | short APPP::generateFile( SystemFile & SF, long DevNr ) { | 164 | short APPP::generateFile( SystemFile & SF, long DevNr ) { |
163 | short rvl, rvd; | 165 | short rvl, rvd; |
164 | 166 | ||
165 | rvl = 1; | 167 | rvl = 1; |
166 | rvd = 1; | 168 | rvd = 1; |
167 | 169 | ||
168 | if( SF.name() == "pap-secrets" ) { | 170 | if( SF.name() == "pap-secrets" ) { |
169 | Log(("Generate PPP for %s\n", SF.name().latin1() )); | 171 | Log(("Generate PPP for %s\n", SF.name().latin1() )); |
170 | 172 | ||
171 | if( Data.Auth.Mode == 1 && Data.Auth.PCEMode == 0 ) { | 173 | if( Data.Auth.Mode == 1 && Data.Auth.PCEMode == 0 ) { |
172 | SF << "# secrets for " | 174 | SF << "# secrets for " |
173 | << networkSetup()->name().latin1() | 175 | << networkSetup()->name().latin1() |
174 | << endl; | 176 | << endl; |
175 | SF << Data.Auth.Client | 177 | SF << Data.Auth.Client |
176 | << " " | 178 | << " " |
177 | << Data.Auth.Server | 179 | << Data.Auth.Server |
178 | << " " | 180 | << " " |
179 | << Data.Auth.Secret | 181 | << Data.Auth.Secret |
180 | << endl; | 182 | << endl; |
181 | rvl = 0; | 183 | rvl = 0; |
182 | rvd = networkSetup()->getToplevel()->generateFileEmbedded( | 184 | rvd = networkSetup()->getToplevel()->generateFileEmbedded( |
183 | SF, DevNr ); | 185 | SF, DevNr ); |
184 | } | 186 | } |
185 | } else if( SF.name() == "chap-secrets" ) { | 187 | } else if( SF.name() == "chap-secrets" ) { |
186 | Log(("Generate PPP for %s\n", SF.name().latin1() )); | 188 | Log(("Generate PPP for %s\n", SF.name().latin1() )); |
diff --git a/noncore/settings/networksettings2/ppp/ppp_NNI.h b/noncore/settings/networksettings2/ppp/ppp_NNI.h index 76afb21..7830a4a 100644 --- a/noncore/settings/networksettings2/ppp/ppp_NNI.h +++ b/noncore/settings/networksettings2/ppp/ppp_NNI.h | |||
@@ -1,45 +1,45 @@ | |||
1 | #ifndef PPP_H | 1 | #ifndef PPP_H |
2 | #define PPP_H | 2 | #define PPP_H |
3 | 3 | ||
4 | #include <netnode.h> | 4 | #include <netnode.h> |
5 | #include "pppdata.h" | 5 | #include "pppdata.h" |
6 | #include "ppprun.h" | 6 | #include "ppprun.h" |
7 | 7 | ||
8 | class PPPNetNode; | 8 | class PPPNetNode; |
9 | class PPPEdit; | 9 | class PPPEdit; |
10 | class QTextStream; | 10 | class QTextStream; |
11 | 11 | ||
12 | class APPP : public ANetNodeInstance { | 12 | class APPP : public ANetNodeInstance { |
13 | 13 | ||
14 | public : | 14 | public : |
15 | 15 | ||
16 | APPP( PPPNetNode * PNN ); | 16 | APPP( PPPNetNode * PNN ); |
17 | 17 | ||
18 | RuntimeInfo * runtime( void ) | 18 | RuntimeInfo * runtime( void ) |
19 | { return (RT) ? RT : (RT = new PPPRun( this, Data ) ); } | 19 | { return (RT) ? RT : (RT = new PPPRun( this, Data ) ); } |
20 | 20 | ||
21 | QWidget * edit( QWidget * parent ); | 21 | QWidget * edit( QWidget * parent ); |
22 | QString acceptable( void ); | 22 | QString acceptable( void ); |
23 | void commit( void ); | 23 | void commit( void ); |
24 | 24 | ||
25 | virtual void * data( void ) | 25 | virtual void * data( void ) |
26 | { return (void *)&Data; } | 26 | { return (void *)&Data; } |
27 | 27 | ||
28 | virtual bool openFile( SystemFile & Sf ); | 28 | virtual bool openFile( SystemFile & Sf, QStringList &SL ); |
29 | short generateFile( SystemFile & TS, | 29 | short generateFile( SystemFile & TS, |
30 | long DevNr ); | 30 | long DevNr ); |
31 | 31 | ||
32 | protected : | 32 | protected : |
33 | 33 | ||
34 | virtual void setSpecificAttribute( QString & Attr, QString & Value ); | 34 | virtual void setSpecificAttribute( QString & Attr, QString & Value ); |
35 | virtual void saveSpecificAttribute( QTextStream & TS ); | 35 | virtual void saveSpecificAttribute( QTextStream & TS ); |
36 | 36 | ||
37 | private : | 37 | private : |
38 | 38 | ||
39 | PPPEdit * GUI; | 39 | PPPEdit * GUI; |
40 | PPPData Data; | 40 | PPPData Data; |
41 | PPPRun * RT; | 41 | PPPRun * RT; |
42 | 42 | ||
43 | }; | 43 | }; |
44 | 44 | ||
45 | #endif | 45 | #endif |
diff --git a/noncore/settings/networksettings2/profile/profilerun.cpp b/noncore/settings/networksettings2/profile/profilerun.cpp index 48011ea..77bf9ac 100644 --- a/noncore/settings/networksettings2/profile/profilerun.cpp +++ b/noncore/settings/networksettings2/profile/profilerun.cpp | |||
@@ -1,31 +1,30 @@ | |||
1 | #include <resources.h> | 1 | #include <resources.h> |
2 | 2 | ||
3 | #include "profilerun.h" | 3 | #include "profilerun.h" |
4 | 4 | ||
5 | State_t ProfileRun::detectState( void ) { | 5 | State_t ProfileRun::detectState( void ) { |
6 | InterfaceInfo * II = networkSetup()->assignedInterface(); | ||
7 | 6 | ||
8 | Log(( "Interface %p %p %p: %d\n", II, | 7 | Log(( "Profile %sabled\n", (Data->Disabled) ? "dis" : "en" )); |
9 | netNode(), netNode()->networkSetup(), (II) ? II->IsUp : 0 )); | 8 | |
10 | if( Data->Disabled ) { | 9 | if( Data->Disabled ) { |
11 | return Disabled; | 10 | return Disabled; |
12 | } | 11 | } |
13 | return Unknown; | 12 | return Unknown; |
14 | } | 13 | } |
15 | 14 | ||
16 | QString ProfileRun::setMyState( NetworkSetup * NC, Action_t A, bool ) { | 15 | QString ProfileRun::setMyState( NetworkSetup * NC, Action_t A, bool ) { |
17 | odebug << "Profile " << Data->Disabled << oendl; | 16 | odebug << "Profile " << Data->Disabled << oendl; |
18 | if( A == Disable ) { | 17 | if( A == Disable ) { |
19 | if( ! Data->Disabled ) { | 18 | if( ! Data->Disabled ) { |
20 | Data->Disabled = 1; | 19 | Data->Disabled = 1; |
21 | NC->setModified( 1 ); | 20 | NC->setModified( 1 ); |
22 | } | 21 | } |
23 | } else if( A == Enable ) { | 22 | } else if( A == Enable ) { |
24 | if( Data->Disabled ) { | 23 | if( Data->Disabled ) { |
25 | Data->Disabled = 0; | 24 | Data->Disabled = 0; |
26 | NC->setModified( 1 ); | 25 | NC->setModified( 1 ); |
27 | } | 26 | } |
28 | } | 27 | } |
29 | 28 | ||
30 | return QString(); | 29 | return QString(); |
31 | } | 30 | } |