6 files changed, 476 insertions, 466 deletions
diff --git a/noncore/settings/networksettings2/networksettings2/resources.cpp b/noncore/settings/networksettings2/networksettings2/resources.cpp index 2dd91f8..4d46778 100644 --- a/noncore/settings/networksettings2/networksettings2/resources.cpp +++ b/noncore/settings/networksettings2/networksettings2/resources.cpp | |||
@@ -1,483 +1,483 @@ | |||
1 | #include <unistd.h> | 1 | #include <unistd.h> |
2 | #include <errno.h> | 2 | #include <errno.h> |
3 | #include <fcntl.h> | 3 | #include <fcntl.h> |
4 | #include <pwd.h> | 4 | #include <pwd.h> |
5 | #include <qpixmap.h> | 5 | #include <qpixmap.h> |
6 | #include <qdir.h> | 6 | #include <qdir.h> |
7 | #include <qmessagebox.h> | 7 | #include <qmessagebox.h> |
8 | 8 | ||
9 | #include <qpe/qlibrary.h> | 9 | #include <qpe/qlibrary.h> |
10 | #include <qpe/qpeapplication.h> | 10 | #include <qpe/qpeapplication.h> |
11 | 11 | ||
12 | #include <opie2/odebug.h> | 12 | #include <opie2/odebug.h> |
13 | #include <opie2/opluginloader.h> | 13 | #include <opie2/opluginloader.h> |
14 | 14 | ||
15 | #include <qtopia/resource.h> | 15 | #include <qtopia/resource.h> |
16 | 16 | ||
17 | #include "netnode.h" | 17 | #include "netnode.h" |
18 | #include "resources.h" | 18 | #include "resources.h" |
19 | #include "netnodeinterface.h" | 19 | #include "netnodeinterface.h" |
20 | 20 | ||
21 | #define PLUGINDIR "plugins/networksettings2" | 21 | #define PLUGINDIR "plugins/networksettings2" |
22 | #define ICONDIR "/pics/networksettings2/" | 22 | #define ICONDIR "/pics/networksettings2/" |
23 | 23 | ||
24 | // single resources instance | 24 | // single resources instance |
25 | TheNSResources * _NSResources = 0; | 25 | TheNSResources * _NSResources = 0; |
26 | 26 | ||
27 | TheNSResources::TheNSResources( void ) : NodeTypeNameMap(), | 27 | TheNSResources::TheNSResources( void ) : NodeTypeNameMap(), |
28 | NetworkSetupsMap(), DanglingNetworkSetupsMap() { | 28 | NetworkSetupsMap(), DanglingNetworkSetupsMap() { |
29 | 29 | ||
30 | _NSResources = this; | 30 | _NSResources = this; |
31 | 31 | ||
32 | detectCurrentUser(); | 32 | detectCurrentUser(); |
33 | 33 | ||
34 | // load available netnodes | 34 | // load available netnodes |
35 | 35 | ||
36 | Plugins = 0; | 36 | Plugins = 0; |
37 | findAvailableNetNodes(); | 37 | findAvailableNetNodes(); |
38 | 38 | ||
39 | // compile provides and needs lists | 39 | // compile provides and needs lists |
40 | { const char ** NeedsRun; | 40 | { const char ** NeedsRun; |
41 | QDictIterator<ANetNode> OuterIt( AllNodeTypes ); | 41 | QDictIterator<ANetNode> OuterIt( AllNodeTypes ); |
42 | bool Done; | 42 | bool Done; |
43 | 43 | ||
44 | for ( ; OuterIt.current(); ++OuterIt ) { | 44 | for ( ; OuterIt.current(); ++OuterIt ) { |
45 | // find needs list | 45 | // find needs list |
46 | ANetNode::NetNodeList * NNLP = new ANetNode::NetNodeList; | 46 | ANetNode::NetNodeList * NNLP = new ANetNode::NetNodeList; |
47 | ANetNode::NetNodeList & NNL = *(NNLP); | 47 | ANetNode::NetNodeList & NNL = *(NNLP); |
48 | 48 | ||
49 | // must iterate this way to avoid duplication pointers | 49 | // must iterate this way to avoid duplication pointers |
50 | for ( QDictIterator<ANetNode> InnerIt( AllNodeTypes ); | 50 | for ( QDictIterator<ANetNode> InnerIt( AllNodeTypes ); |
51 | InnerIt.current(); ++InnerIt ) { | 51 | InnerIt.current(); ++InnerIt ) { |
52 | 52 | ||
53 | if( InnerIt.current() == OuterIt.current() ) | 53 | if( InnerIt.current() == OuterIt.current() ) |
54 | // avoid recursive | 54 | // avoid recursive |
55 | continue; | 55 | continue; |
56 | 56 | ||
57 | const char ** Provides = InnerIt.current()->provides(); | 57 | const char ** Provides = InnerIt.current()->provides(); |
58 | NeedsRun = OuterIt.current()->needs(); | 58 | NeedsRun = OuterIt.current()->needs(); |
59 | 59 | ||
60 | for( ; *NeedsRun; NeedsRun ++ ) { | 60 | for( ; *NeedsRun; NeedsRun ++ ) { |
61 | const char ** PRun; | 61 | const char ** PRun; |
62 | PRun = Provides; | 62 | PRun = Provides; |
63 | for( ; *PRun; PRun ++ ) { | 63 | for( ; *PRun; PRun ++ ) { |
64 | if( strcmp( *PRun, *NeedsRun ) == 0 ) { | 64 | if( strcmp( *PRun, *NeedsRun ) == 0 ) { |
65 | // inner provides what outer needs | 65 | // inner provides what outer needs |
66 | NNL.resize( NNL.size() + 1 ); | 66 | NNL.resize( NNL.size() + 1 ); |
67 | NNL[NNL.size()-1] = InnerIt.current(); | 67 | NNL[NNL.size()-1] = InnerIt.current(); |
68 | Done = 1; // break from 2 loops | 68 | Done = 1; // break from 2 loops |
69 | break; | 69 | break; |
70 | } | 70 | } |
71 | } | 71 | } |
72 | } | 72 | } |
73 | } | 73 | } |
74 | OuterIt.current()->setAlternatives( NNLP ); | 74 | OuterIt.current()->setAlternatives( NNLP ); |
75 | } | 75 | } |
76 | } | 76 | } |
77 | 77 | ||
78 | // define built in Node types to Description map | 78 | // define built in Node types to Description map |
79 | addNodeType( "device", tr( "Network Device" ), | 79 | addNodeType( "device", tr( "Network Device" ), |
80 | tr( "<p>Devices that can handle IP packets</p>" ) ); | 80 | tr( "<p>Devices that can handle IP packets</p>" ) ); |
81 | addNodeType( "line", tr( "Character device" ), | 81 | addNodeType( "line", tr( "Character device" ), |
82 | tr( "<p>Devices that can handle single bytes</p>" ) ); | 82 | tr( "<p>Devices that can handle single bytes</p>" ) ); |
83 | addNodeType( "NetworkSetup", tr( "IP NetworkSetup" ), | 83 | addNodeType( "connection", tr( "IP Connection" ), |
84 | tr( "<p>Nodes that provide working IP NetworkSetups</p>" ) ); | 84 | tr( "<p>Nodes that provide working IP connection</p>" ) ); |
85 | addNodeType( "fullsetup", tr( "NetworkSetup Profile" ), | 85 | addNodeType( "fullsetup", tr( "Connection Profile" ), |
86 | tr( "<p>Fully configured NetworkSetup profile</p>" ) ); | 86 | tr( "<p>Fully configured network profile</p>" ) ); |
87 | addNodeType( "GPRS", tr( "NetworkSetup to GPRS device" ), | 87 | addNodeType( "GPRS", tr( "Connection to GPRS device" ), |
88 | tr( "<p>NetworkSetup to a GPRS capable device</p>" ) ); | 88 | tr( "<p>Connection to a GPRS capable device</p>" ) ); |
89 | 89 | ||
90 | // get access to the system | 90 | // get access to the system |
91 | TheSystem = new System(); | 91 | TheSystem = new System(); |
92 | 92 | ||
93 | } | 93 | } |
94 | 94 | ||
95 | TheNSResources::~TheNSResources( void ) { | 95 | TheNSResources::~TheNSResources( void ) { |
96 | 96 | ||
97 | if( Plugins ) { | 97 | if( Plugins ) { |
98 | delete Plugins; | 98 | delete Plugins; |
99 | delete PluginManager; | 99 | delete PluginManager; |
100 | } | 100 | } |
101 | delete TheSystem; | 101 | delete TheSystem; |
102 | 102 | ||
103 | } | 103 | } |
104 | 104 | ||
105 | void TheNSResources::addNodeType( const QString & ID, | 105 | void TheNSResources::addNodeType( const QString & ID, |
106 | const QString & Name, | 106 | const QString & Name, |
107 | const QString & Descr ) { | 107 | const QString & Descr ) { |
108 | if( NodeTypeNameMap[ID].isEmpty() ) { | 108 | if( NodeTypeNameMap[ID].isEmpty() ) { |
109 | NodeTypeNameMap.insert( ID, Name ); | 109 | NodeTypeNameMap.insert( ID, Name ); |
110 | NodeTypeDescriptionMap.insert( ID, Descr ); | 110 | NodeTypeDescriptionMap.insert( ID, Descr ); |
111 | } | 111 | } |
112 | } | 112 | } |
113 | 113 | ||
114 | void TheNSResources::addSystemFile( const QString & ID, | 114 | void TheNSResources::addSystemFile( const QString & ID, |
115 | const QString & P, | 115 | const QString & P, |
116 | bool KDI ) { | 116 | bool KDI ) { |
117 | if( ! SystemFiles.find( ID ) ) { | 117 | if( ! SystemFiles.find( ID ) ) { |
118 | // new system file | 118 | // new system file |
119 | SystemFiles.insert( ID, new SystemFile( ID, P, KDI ) ); | 119 | SystemFiles.insert( ID, new SystemFile( ID, P, KDI ) ); |
120 | } // else existed | 120 | } // else existed |
121 | } | 121 | } |
122 | 122 | ||
123 | void TheNSResources::busy( bool ) { | 123 | void TheNSResources::busy( bool ) { |
124 | /* | 124 | /* |
125 | if( B ) { | 125 | if( B ) { |
126 | ShowWait->show(); | 126 | ShowWait->show(); |
127 | qApp->process | 127 | qApp->process |
128 | } else { | 128 | } else { |
129 | ShowWait->hide(); | 129 | ShowWait->hide(); |
130 | } | 130 | } |
131 | */ | 131 | */ |
132 | } | 132 | } |
133 | 133 | ||
134 | void TheNSResources::findAvailableNetNodes( void ){ | 134 | void TheNSResources::findAvailableNetNodes( void ){ |
135 | 135 | ||
136 | Plugins = new OPluginLoader( "networksettings2" ); | 136 | Plugins = new OPluginLoader( "networksettings2" ); |
137 | Plugins->setAutoDelete( true ); | 137 | Plugins->setAutoDelete( true ); |
138 | 138 | ||
139 | PluginManager = new OPluginManager( Plugins ); | 139 | PluginManager = new OPluginManager( Plugins ); |
140 | PluginManager->load(); | 140 | PluginManager->load(); |
141 | 141 | ||
142 | if( Plugins->isInSafeMode() ) { | 142 | if( Plugins->isInSafeMode() ) { |
143 | QMessageBox::information( | 143 | QMessageBox::information( |
144 | 0, | 144 | 0, |
145 | tr( "Today Error"), | 145 | tr( "Today Error"), |
146 | tr( "<qt>The plugin '%1' caused Today to crash." | 146 | tr( "<qt>The plugin '%1' caused Today to crash." |
147 | " It could be that the plugin is not properly" | 147 | " It could be that the plugin is not properly" |
148 | " installed.<br>Today tries to continue loading" | 148 | " installed.<br>Today tries to continue loading" |
149 | " plugins.</qt>" ) | 149 | " plugins.</qt>" ) |
150 | .arg( PluginManager->crashedPlugin().name())); | 150 | .arg( PluginManager->crashedPlugin().name())); |
151 | } | 151 | } |
152 | 152 | ||
153 | // Get All Plugins | 153 | // Get All Plugins |
154 | OPluginLoader::List allplugins = Plugins->filtered(); | 154 | OPluginLoader::List allplugins = Plugins->filtered(); |
155 | QString lang = ::getenv("LANG"); | 155 | QString lang = ::getenv("LANG"); |
156 | 156 | ||
157 | for( OPluginLoader::List::Iterator it = allplugins.begin(); | 157 | for( OPluginLoader::List::Iterator it = allplugins.begin(); |
158 | it != allplugins.end(); | 158 | it != allplugins.end(); |
159 | ++it ) { | 159 | ++it ) { |
160 | 160 | ||
161 | // check if this plugin supports the proper interface | 161 | // check if this plugin supports the proper interface |
162 | NetNodeInterface * interface = | 162 | NetNodeInterface * interface = |
163 | Plugins->load<NetNodeInterface>( *it, IID_NetworkSettings2 ); | 163 | Plugins->load<NetNodeInterface>( *it, IID_NetworkSettings2 ); |
164 | 164 | ||
165 | if( ! interface ) { | 165 | if( ! interface ) { |
166 | Log(( "Plugin %s from %s does not support proper interface\n", | 166 | Log(( "Plugin %s from %s does not support proper interface\n", |
167 | (*it).name().latin1(), (*it).path().latin1() )); | 167 | (*it).name().latin1(), (*it).path().latin1() )); |
168 | continue; | 168 | continue; |
169 | } | 169 | } |
170 | 170 | ||
171 | // add the nodes in this plugin to the dictionary | 171 | // add the nodes in this plugin to the dictionary |
172 | { QList<ANetNode> PNN; | 172 | { QList<ANetNode> PNN; |
173 | 173 | ||
174 | interface->create_plugin( PNN ); | 174 | interface->create_plugin( PNN ); |
175 | 175 | ||
176 | if( PNN.isEmpty() ) { | 176 | if( PNN.isEmpty() ) { |
177 | Log(( "Plugin %s from %s does offer any nodes\n", | 177 | Log(( "Plugin %s from %s does offer any nodes\n", |
178 | (*it).name().latin1(), (*it).path().latin1() )); | 178 | (*it).name().latin1(), (*it).path().latin1() )); |
179 | delete interface; | 179 | delete interface; |
180 | continue; | 180 | continue; |
181 | } | 181 | } |
182 | 182 | ||
183 | // merge this node with global node | 183 | // merge this node with global node |
184 | for( QListIterator<ANetNode> nnit(PNN); | 184 | for( QListIterator<ANetNode> nnit(PNN); |
185 | nnit.current(); | 185 | nnit.current(); |
186 | ++nnit ) { | 186 | ++nnit ) { |
187 | Log(( "Found node type %s in plugin %s\n", | 187 | Log(( "Found node type %s in plugin %s\n", |
188 | nnit.current()->name(), (*it).name().latin1() )); | 188 | nnit.current()->name(), (*it).name().latin1() )); |
189 | AllNodeTypes.insert( nnit.current()->name(), nnit.current() ); | 189 | AllNodeTypes.insert( nnit.current()->name(), nnit.current() ); |
190 | } | 190 | } |
191 | } | 191 | } |
192 | 192 | ||
193 | // load the translation | 193 | // load the translation |
194 | QTranslator *trans = new QTranslator(qApp); | 194 | QTranslator *trans = new QTranslator(qApp); |
195 | QString fn = QPEApplication::qpeDir()+ | 195 | QString fn = QPEApplication::qpeDir()+ |
196 | "/i18n/"+lang+"/"+ (*it).name() + ".qm"; | 196 | "/i18n/"+lang+"/"+ (*it).name() + ".qm"; |
197 | 197 | ||
198 | if( trans->load( fn ) ) | 198 | if( trans->load( fn ) ) |
199 | qApp->installTranslator( trans ); | 199 | qApp->installTranslator( trans ); |
200 | else | 200 | else |
201 | delete trans; | 201 | delete trans; |
202 | } | 202 | } |
203 | 203 | ||
204 | } | 204 | } |
205 | 205 | ||
206 | // used to find unique NetworkSetup number | 206 | // used to find unique NetworkSetup number |
207 | int TheNSResources::assignNetworkSetupNumber( void ) { | 207 | int TheNSResources::assignNetworkSetupNumber( void ) { |
208 | bool found = 1; | 208 | bool found = 1; |
209 | for( int trial = 0; ; trial ++ ) { | 209 | for( int trial = 0; ; trial ++ ) { |
210 | found = 1; | 210 | found = 1; |
211 | for( QDictIterator<NetworkSetup> it(NetworkSetupsMap); | 211 | for( QDictIterator<NetworkSetup> it(NetworkSetupsMap); |
212 | it.current(); | 212 | it.current(); |
213 | ++it ) { | 213 | ++it ) { |
214 | if( it.current()->number() == trial ) { | 214 | if( it.current()->number() == trial ) { |
215 | found = 0; | 215 | found = 0; |
216 | break; | 216 | break; |
217 | } | 217 | } |
218 | } | 218 | } |
219 | 219 | ||
220 | if( found ) { | 220 | if( found ) { |
221 | Log(("Assign profile number %d\n", trial )); | 221 | Log(("Assign profile number %d\n", trial )); |
222 | return trial; | 222 | return trial; |
223 | } | 223 | } |
224 | } | 224 | } |
225 | } | 225 | } |
226 | 226 | ||
227 | QPixmap TheNSResources::getPixmap( const QString & QS ) { | 227 | QPixmap TheNSResources::getPixmap( const QString & QS ) { |
228 | QPixmap P; | 228 | QPixmap P; |
229 | QString S("networksettings2/"); | 229 | QString S("networksettings2/"); |
230 | S += QS; | 230 | S += QS; |
231 | P = Resource::loadPixmap( S ); | 231 | P = Resource::loadPixmap( S ); |
232 | if( P.isNull() ) { | 232 | if( P.isNull() ) { |
233 | Log(( "Cannot load %s\n", S.latin1() )); | 233 | Log(( "Cannot load %s\n", S.latin1() )); |
234 | } | 234 | } |
235 | return ( P.isNull() ) ? QPixmap() : P; | 235 | return ( P.isNull() ) ? QPixmap() : P; |
236 | } | 236 | } |
237 | 237 | ||
238 | QString TheNSResources::tr( const char * s ) { | 238 | QString TheNSResources::tr( const char * s ) { |
239 | return qApp->translate( "resource", s ); | 239 | return qApp->translate( "resource", s ); |
240 | } | 240 | } |
241 | 241 | ||
242 | const QString & TheNSResources::netNode2Name( const char * s ) { | 242 | const QString & TheNSResources::netNode2Name( const char * s ) { |
243 | return NodeTypeNameMap[s]; | 243 | return NodeTypeNameMap[s]; |
244 | } | 244 | } |
245 | 245 | ||
246 | const QString & TheNSResources::netNode2Description( const char * s ) { | 246 | const QString & TheNSResources::netNode2Description( const char * s ) { |
247 | return NodeTypeDescriptionMap[s]; | 247 | return NodeTypeDescriptionMap[s]; |
248 | } | 248 | } |
249 | 249 | ||
250 | void TheNSResources::addNetworkSetup( NetworkSetup * NC, bool Dangling ) { | 250 | void TheNSResources::addNetworkSetup( NetworkSetup * NC, bool Dangling ) { |
251 | ANetNodeInstance * NNI; | 251 | ANetNodeInstance * NNI; |
252 | Log(( "Add NetworkSetup %s, Dangling %d\n", | 252 | Log(( "Add NetworkSetup %s, Dangling %d\n", |
253 | NC->name().latin1(), Dangling )); | 253 | NC->name().latin1(), Dangling )); |
254 | if( Dangling ) { | 254 | if( Dangling ) { |
255 | DanglingNetworkSetupsMap.insert( NC->name(), NC ); | 255 | DanglingNetworkSetupsMap.insert( NC->name(), NC ); |
256 | } else { | 256 | } else { |
257 | NetworkSetupsMap.insert( NC->name(), NC ); | 257 | NetworkSetupsMap.insert( NC->name(), NC ); |
258 | } | 258 | } |
259 | 259 | ||
260 | // add (new) nodes to NodeList | 260 | // add (new) nodes to NodeList |
261 | for( QListIterator<ANetNodeInstance> it(*NC); | 261 | for( QListIterator<ANetNodeInstance> it(*NC); |
262 | it.current(); | 262 | it.current(); |
263 | ++it ) { | 263 | ++it ) { |
264 | NNI = it.current(); | 264 | NNI = it.current(); |
265 | if( findNodeInstance( NNI->name() ) == 0 ) { | 265 | if( findNodeInstance( NNI->name() ) == 0 ) { |
266 | // new item | 266 | // new item |
267 | addNodeInstance( NNI ); | 267 | addNodeInstance( NNI ); |
268 | } | 268 | } |
269 | } | 269 | } |
270 | } | 270 | } |
271 | 271 | ||
272 | void TheNSResources::removeNetworkSetup( const QString & N ) { | 272 | void TheNSResources::removeNetworkSetup( const QString & N ) { |
273 | NetworkSetup * NC = findNetworkSetup( N ); | 273 | NetworkSetup * NC = findNetworkSetup( N ); |
274 | if( ! NC ) | 274 | if( ! NC ) |
275 | return; | 275 | return; |
276 | 276 | ||
277 | // delete netnodes in this NetworkSetup | 277 | // delete netnodes in this NetworkSetup |
278 | ANetNodeInstance * NNI; | 278 | ANetNodeInstance * NNI; |
279 | for( NNI = NC->first(); NNI != 0; NNI = NC->next() ) { | 279 | for( NNI = NC->first(); NNI != 0; NNI = NC->next() ) { |
280 | removeNodeInstance( NNI->name() ); | 280 | removeNodeInstance( NNI->name() ); |
281 | } | 281 | } |
282 | if( NetworkSetupsMap.find( N ) ) { | 282 | if( NetworkSetupsMap.find( N ) ) { |
283 | NetworkSetupsMap.remove( N ); | 283 | NetworkSetupsMap.remove( N ); |
284 | } else { | 284 | } else { |
285 | DanglingNetworkSetupsMap.remove( N ); | 285 | DanglingNetworkSetupsMap.remove( N ); |
286 | } | 286 | } |
287 | 287 | ||
288 | } | 288 | } |
289 | 289 | ||
290 | // dangling NetworkSetups are filtered out | 290 | // dangling NetworkSetups are filtered out |
291 | NetworkSetup * TheNSResources::findNetworkSetup( const QString & S ) { | 291 | NetworkSetup * TheNSResources::findNetworkSetup( const QString & S ) { |
292 | return NetworkSetupsMap[ S ]; | 292 | return NetworkSetupsMap[ S ]; |
293 | } | 293 | } |
294 | 294 | ||
295 | NetworkSetup * TheNSResources::getNetworkSetup( int nr ) { | 295 | NetworkSetup * TheNSResources::getNetworkSetup( int nr ) { |
296 | for( QDictIterator<NetworkSetup> it(NetworkSetupsMap); | 296 | for( QDictIterator<NetworkSetup> it(NetworkSetupsMap); |
297 | it.current(); | 297 | it.current(); |
298 | ++it ) { | 298 | ++it ) { |
299 | if( it.current()->number() == nr ) { | 299 | if( it.current()->number() == nr ) { |
300 | return it.current(); | 300 | return it.current(); |
301 | } | 301 | } |
302 | } | 302 | } |
303 | return 0; | 303 | return 0; |
304 | } | 304 | } |
305 | /* | 305 | /* |
306 | void TheNSResources::renumberNetworkSetups( void ) { | 306 | void TheNSResources::renumberNetworkSetups( void ) { |
307 | Name2NetworkSetup_t & M = NSResources->NetworkSetups(); | 307 | Name2NetworkSetup_t & M = NSResources->NetworkSetups(); |
308 | NetworkSetup * NC; | 308 | NetworkSetup * NC; |
309 | 309 | ||
310 | // for all NetworkSetups | 310 | // for all NetworkSetups |
311 | NetworkSetup::resetMaxNr(); | 311 | NetworkSetup::resetMaxNr(); |
312 | for( QDictIterator<NetworkSetup> it(M); | 312 | for( QDictIterator<NetworkSetup> it(M); |
313 | it.current(); | 313 | it.current(); |
314 | ++it ) { | 314 | ++it ) { |
315 | NC = it.current(); | 315 | NC = it.current(); |
316 | NC->setNumber( NC->maxNetworkSetupNumber()+1 ); | 316 | NC->setNumber( NC->maxNetworkSetupNumber()+1 ); |
317 | NC->setModified( 1 ); | 317 | NC->setModified( 1 ); |
318 | } | 318 | } |
319 | } | 319 | } |
320 | */ | 320 | */ |
321 | 321 | ||
322 | typedef struct EnvVars { | 322 | typedef struct EnvVars { |
323 | char * Name; | 323 | char * Name; |
324 | int Len; | 324 | int Len; |
325 | } EnvVar_t; | 325 | } EnvVar_t; |
326 | 326 | ||
327 | #define AnEV(x) x, sizeof(x)-1 | 327 | #define AnEV(x) x, sizeof(x)-1 |
328 | 328 | ||
329 | static EnvVar_t EV[] = { | 329 | static EnvVar_t EV[] = { |
330 | AnEV( "HOME" ), | 330 | AnEV( "HOME" ), |
331 | AnEV( "LOGNAME" ), | 331 | AnEV( "LOGNAME" ), |
332 | AnEV( "USER" ), | 332 | AnEV( "USER" ), |
333 | AnEV( "LD_LIBRARY_PATH" ), | 333 | AnEV( "LD_LIBRARY_PATH" ), |
334 | AnEV( "PATH" ), | 334 | AnEV( "PATH" ), |
335 | AnEV( "QTDIR" ), | 335 | AnEV( "QTDIR" ), |
336 | AnEV( "OPIEDIR" ), | 336 | AnEV( "OPIEDIR" ), |
337 | AnEV( "SHELL" ), | 337 | AnEV( "SHELL" ), |
338 | { NULL, 0 } | 338 | { NULL, 0 } |
339 | }; | 339 | }; |
340 | 340 | ||
341 | void TheNSResources::detectCurrentUser( void ) { | 341 | void TheNSResources::detectCurrentUser( void ) { |
342 | // find current running qpe | 342 | // find current running qpe |
343 | QString QPEEnvFile = ""; | 343 | QString QPEEnvFile = ""; |
344 | 344 | ||
345 | CurrentUser.UserName = ""; | 345 | CurrentUser.UserName = ""; |
346 | CurrentUser.HomeDir = ""; | 346 | CurrentUser.HomeDir = ""; |
347 | 347 | ||
348 | if( getenv( "OPIEDIR" ) == 0 ) { | 348 | if( getenv( "OPIEDIR" ) == 0 ) { |
349 | // nothing known | 349 | // nothing known |
350 | { // open proc dir and find all dirs in it | 350 | { // open proc dir and find all dirs in it |
351 | QRegExp R("[0-9]+"); | 351 | QRegExp R("[0-9]+"); |
352 | QDir ProcDir( "/proc" ); | 352 | QDir ProcDir( "/proc" ); |
353 | QFileInfo FI; | 353 | QFileInfo FI; |
354 | QStringList EL = ProcDir.entryList( QDir::Dirs ); | 354 | QStringList EL = ProcDir.entryList( QDir::Dirs ); |
355 | 355 | ||
356 | // print it out | 356 | // print it out |
357 | for ( QStringList::Iterator it = EL.begin(); | 357 | for ( QStringList::Iterator it = EL.begin(); |
358 | it != EL.end(); | 358 | it != EL.end(); |
359 | ++it ) { | 359 | ++it ) { |
360 | if( R.match( (*it) ) >= 0 ) { | 360 | if( R.match( (*it) ) >= 0 ) { |
361 | QString S = ProcDir.path()+"/"+ (*it); | 361 | QString S = ProcDir.path()+"/"+ (*it); |
362 | S.append( "/exe" ); | 362 | S.append( "/exe" ); |
363 | FI.setFile( S ); | 363 | FI.setFile( S ); |
364 | // get the link | 364 | // get the link |
365 | S = FI.readLink(); | 365 | S = FI.readLink(); |
366 | if( S.right( 8 ) == "/bin/qpe" ) { | 366 | if( S.right( 8 ) == "/bin/qpe" ) { |
367 | // found running qpe | 367 | // found running qpe |
368 | QPEEnvFile.sprintf( ProcDir.path()+ "/" + (*it) + "/environ" ); | 368 | QPEEnvFile.sprintf( ProcDir.path()+ "/" + (*it) + "/environ" ); |
369 | break; | 369 | break; |
370 | } | 370 | } |
371 | } | 371 | } |
372 | } | 372 | } |
373 | } | 373 | } |
374 | 374 | ||
375 | if( QPEEnvFile.isEmpty() ) { | 375 | if( QPEEnvFile.isEmpty() ) { |
376 | // could not find qpe | 376 | // could not find qpe |
377 | Log(("Could not find qpe\n" )); | 377 | Log(("Could not find qpe\n" )); |
378 | return; | 378 | return; |
379 | } | 379 | } |
380 | 380 | ||
381 | // FI now contains path ProcDir to the cmd dir | 381 | // FI now contains path ProcDir to the cmd dir |
382 | { char * Buf = 0; | 382 | { char * Buf = 0; |
383 | char TB[1024]; | 383 | char TB[1024]; |
384 | long BufSize = 0; | 384 | long BufSize = 0; |
385 | int fd; | 385 | int fd; |
386 | int rd; | 386 | int rd; |
387 | 387 | ||
388 | fd = open( QPEEnvFile.latin1(), O_RDONLY ); | 388 | fd = open( QPEEnvFile.latin1(), O_RDONLY ); |
389 | if( fd < 0 ) { | 389 | if( fd < 0 ) { |
390 | Log(("Could not open %s : %d\n", | 390 | Log(("Could not open %s : %d\n", |
391 | QPEEnvFile.latin1(), errno )); | 391 | QPEEnvFile.latin1(), errno )); |
392 | return; | 392 | return; |
393 | } | 393 | } |
394 | 394 | ||
395 | while( (rd = read( fd, TB, sizeof(TB) ) ) > 0 ) { | 395 | while( (rd = read( fd, TB, sizeof(TB) ) ) > 0 ) { |
396 | Buf = (char *)realloc( Buf, BufSize+rd ); | 396 | Buf = (char *)realloc( Buf, BufSize+rd ); |
397 | memcpy( Buf+BufSize, TB, rd ); | 397 | memcpy( Buf+BufSize, TB, rd ); |
398 | BufSize += rd; | 398 | BufSize += rd; |
399 | } | 399 | } |
400 | 400 | ||
401 | char * Data = Buf; | 401 | char * Data = Buf; |
402 | char * DataEnd = Data+BufSize-1; | 402 | char * DataEnd = Data+BufSize-1; |
403 | 403 | ||
404 | // get env items out of list | 404 | // get env items out of list |
405 | while( Data < DataEnd ) { | 405 | while( Data < DataEnd ) { |
406 | 406 | ||
407 | EnvVar_t * Run = EV; | 407 | EnvVar_t * Run = EV; |
408 | while( Run->Name ) { | 408 | while( Run->Name ) { |
409 | if( strncmp( Data, Run->Name, Run->Len ) == 0 && | 409 | if( strncmp( Data, Run->Name, Run->Len ) == 0 && |
410 | Data[Run->Len] == '=' | 410 | Data[Run->Len] == '=' |
411 | ) { | 411 | ) { |
412 | CurrentUser.EnvList.resize( CurrentUser.EnvList.size()+1 ); | 412 | CurrentUser.EnvList.resize( CurrentUser.EnvList.size()+1 ); |
413 | CurrentUser.EnvList[CurrentUser.EnvList.size()-1] = | 413 | CurrentUser.EnvList[CurrentUser.EnvList.size()-1] = |
414 | strdup( Data ); | 414 | strdup( Data ); |
415 | 415 | ||
416 | if( strcmp( Run->Name, "OPIEDIR" ) == 0 ) { | 416 | if( strcmp( Run->Name, "OPIEDIR" ) == 0 ) { |
417 | // put OPIEDIR in env | 417 | // put OPIEDIR in env |
418 | putenv( CurrentUser.EnvList[CurrentUser.EnvList.size()-1] ); | 418 | putenv( CurrentUser.EnvList[CurrentUser.EnvList.size()-1] ); |
419 | } else if( strcmp( Run->Name, "HOME" ) == 0 ) { | 419 | } else if( strcmp( Run->Name, "HOME" ) == 0 ) { |
420 | CurrentUser.HomeDir = Data+5; | 420 | CurrentUser.HomeDir = Data+5; |
421 | } else if( strcmp( Run->Name, "LOGNAME" ) == 0 ) { | 421 | } else if( strcmp( Run->Name, "LOGNAME" ) == 0 ) { |
422 | CurrentUser.UserName = Data+8; | 422 | CurrentUser.UserName = Data+8; |
423 | } | 423 | } |
424 | break; | 424 | break; |
425 | } | 425 | } |
426 | Run ++; | 426 | Run ++; |
427 | } | 427 | } |
428 | 428 | ||
429 | Data += strlen( Data )+1; | 429 | Data += strlen( Data )+1; |
430 | } | 430 | } |
431 | 431 | ||
432 | free( Buf ); | 432 | free( Buf ); |
433 | 433 | ||
434 | if( ! CurrentUser.UserName.isEmpty() ) { | 434 | if( ! CurrentUser.UserName.isEmpty() ) { |
435 | // find user info | 435 | // find user info |
436 | struct passwd pwd; | 436 | struct passwd pwd; |
437 | struct passwd * pwdres; | 437 | struct passwd * pwdres; |
438 | 438 | ||
439 | if( getpwnam_r( CurrentUser.UserName.latin1(), | 439 | if( getpwnam_r( CurrentUser.UserName.latin1(), |
440 | &pwd, TB, sizeof(TB), &pwdres ) || | 440 | &pwd, TB, sizeof(TB), &pwdres ) || |
441 | pwdres == 0 ) { | 441 | pwdres == 0 ) { |
442 | Log(("Could not determine user %s : %d\n", | 442 | Log(("Could not determine user %s : %d\n", |
443 | CurrentUser.UserName.latin1(), errno )); | 443 | CurrentUser.UserName.latin1(), errno )); |
444 | return; | 444 | return; |
445 | } | 445 | } |
446 | CurrentUser.Uid = pwd.pw_uid; | 446 | CurrentUser.Uid = pwd.pw_uid; |
447 | CurrentUser.Gid = pwd.pw_gid; | 447 | CurrentUser.Gid = pwd.pw_gid; |
448 | } else{ | 448 | } else{ |
449 | CurrentUser.Uid = | 449 | CurrentUser.Uid = |
450 | CurrentUser.Gid = -1; | 450 | CurrentUser.Gid = -1; |
451 | } | 451 | } |
452 | } | 452 | } |
453 | 453 | ||
454 | } else { | 454 | } else { |
455 | char * X; | 455 | char * X; |
456 | QString S; | 456 | QString S; |
457 | 457 | ||
458 | EnvVar_t * Run = EV; | 458 | EnvVar_t * Run = EV; |
459 | while( Run->Name ) { | 459 | while( Run->Name ) { |
460 | 460 | ||
461 | if( ( X = getenv( Run->Name ) ) ) { | 461 | if( ( X = getenv( Run->Name ) ) ) { |
462 | Log(( "Env : %s = %s\n", Run->Name, X )); | 462 | Log(( "Env : %s = %s\n", Run->Name, X )); |
463 | 463 | ||
464 | S.sprintf( "%s=%s", Run->Name, X ); | 464 | S.sprintf( "%s=%s", Run->Name, X ); |
465 | CurrentUser.EnvList.resize( CurrentUser.EnvList.size()+1 ); | 465 | CurrentUser.EnvList.resize( CurrentUser.EnvList.size()+1 ); |
466 | CurrentUser.EnvList[CurrentUser.EnvList.size()-1] = | 466 | CurrentUser.EnvList[CurrentUser.EnvList.size()-1] = |
467 | strdup( S.latin1() ); | 467 | strdup( S.latin1() ); |
468 | 468 | ||
469 | if( strcmp( Run->Name, "LOGNAME" ) == 0 ) { | 469 | if( strcmp( Run->Name, "LOGNAME" ) == 0 ) { |
470 | CurrentUser.UserName = X; | 470 | CurrentUser.UserName = X; |
471 | } else if( strcmp( Run->Name, "HOME" ) == 0 ) { | 471 | } else if( strcmp( Run->Name, "HOME" ) == 0 ) { |
472 | CurrentUser.HomeDir = X; | 472 | CurrentUser.HomeDir = X; |
473 | } // regulare env var | 473 | } // regulare env var |
474 | } else { | 474 | } else { |
475 | Log(("Could not determine %s\n", Run->Name )); | 475 | Log(("Could not determine %s\n", Run->Name )); |
476 | } | 476 | } |
477 | Run ++; | 477 | Run ++; |
478 | } | 478 | } |
479 | 479 | ||
480 | CurrentUser.Uid = getuid(); | 480 | CurrentUser.Uid = getuid(); |
481 | CurrentUser.Gid = getgid(); | 481 | CurrentUser.Gid = getgid(); |
482 | } | 482 | } |
483 | } | 483 | } |
diff --git a/noncore/settings/networksettings2/networksettings2/system.cpp b/noncore/settings/networksettings2/networksettings2/system.cpp index 33cc5bd..82f5c43 100644 --- a/noncore/settings/networksettings2/networksettings2/system.cpp +++ b/noncore/settings/networksettings2/networksettings2/system.cpp | |||
@@ -1,603 +1,615 @@ | |||
1 | #include <sys/types.h> | 1 | #include <sys/types.h> |
2 | #include <sys/wait.h> | 2 | #include <sys/wait.h> |
3 | 3 | ||
4 | #include <net/if.h> | 4 | #include <net/if.h> |
5 | #include <net/if_arp.h> | 5 | #include <net/if_arp.h> |
6 | #include <netinet/in.h> | 6 | #include <netinet/in.h> |
7 | #include <arpa/inet.h> | 7 | #include <arpa/inet.h> |
8 | #include <sys/ioctl.h> | 8 | #include <sys/ioctl.h> |
9 | #include <sys/socket.h> | 9 | #include <sys/socket.h> |
10 | #include <stdlib.h> | 10 | #include <stdlib.h> |
11 | #include <stdio.h> | 11 | #include <stdio.h> |
12 | #include <fcntl.h> | 12 | #include <fcntl.h> |
13 | #include <errno.h> | 13 | #include <errno.h> |
14 | #include <unistd.h> | 14 | #include <unistd.h> |
15 | 15 | ||
16 | #include <opie2/oprocess.h> | 16 | #include <opie2/oprocess.h> |
17 | 17 | ||
18 | #include <qdir.h> | 18 | #include <qdir.h> |
19 | #include <qregexp.h> | 19 | #include <qregexp.h> |
20 | #include <qstringlist.h> | 20 | #include <qstringlist.h> |
21 | #include <qfile.h> | 21 | #include <qfile.h> |
22 | #include <qtextstream.h> | 22 | #include <qtextstream.h> |
23 | #include <qapplication.h> | 23 | #include <qapplication.h> |
24 | 24 | ||
25 | #include "resources.h" | 25 | #include "resources.h" |
26 | #include "system.h" | 26 | #include "system.h" |
27 | 27 | ||
28 | #define PROCNETDEV "/proc/net/dev" | 28 | #define PROCNETDEV "/proc/net/dev" |
29 | 29 | ||
30 | #ifndef ARPHRD_IEEE80211 | 30 | #ifndef ARPHRD_IEEE80211 |
31 | #define ARPHRD_IEEE80211 801 | 31 | #define ARPHRD_IEEE80211 801 |
32 | #endif | 32 | #endif |
33 | 33 | ||
34 | static char Dig2Hex[] = { | 34 | static char Dig2Hex[] = { |
35 | '0', '1', '2', '3', | 35 | '0', '1', '2', '3', |
36 | '4', '5', '6', '7', | 36 | '4', '5', '6', '7', |
37 | '8', '9', 'A', 'B', | 37 | '8', '9', 'A', 'B', |
38 | 'C', 'D', 'E', 'F' | 38 | 'C', 'D', 'E', 'F' |
39 | }; | 39 | }; |
40 | 40 | ||
41 | // get HIGH nibble of byte | 41 | // get HIGH nibble of byte |
42 | #define HN(x) Dig2Hex[(((x)&0xf0)>>4)] | 42 | #define HN(x) Dig2Hex[(((x)&0xf0)>>4)] |
43 | // get LOW nibble of byte | 43 | // get LOW nibble of byte |
44 | #define LN(x) Dig2Hex[((x)&0x0f)] | 44 | #define LN(x) Dig2Hex[((x)&0x0f)] |
45 | 45 | ||
46 | System::System( void ) : QObject(), ProbedInterfaces() { | 46 | System::System( void ) : QObject(), ProbedInterfaces() { |
47 | ProcDevNet = 0; | 47 | ProcDevNet = 0; |
48 | } | 48 | } |
49 | 49 | ||
50 | System::~System( void ) { | 50 | System::~System( void ) { |
51 | if( ProcDevNet ) | 51 | if( ProcDevNet ) |
52 | delete ProcDevNet; | 52 | delete ProcDevNet; |
53 | } | 53 | } |
54 | 54 | ||
55 | QDict<InterfaceInfo> & System::interfaces( void ) { | 55 | QDict<InterfaceInfo> & System::interfaces( void ) { |
56 | if( ProbedInterfaces.count() == 0 ) { | 56 | if( ProbedInterfaces.count() == 0 ) { |
57 | probeInterfaces(); | 57 | probeInterfaces(); |
58 | } | 58 | } |
59 | return ProbedInterfaces; | 59 | return ProbedInterfaces; |
60 | } | 60 | } |
61 | 61 | ||
62 | int System::runAsRoot( QStringList & S, MyProcess * Prc ) { | 62 | int System::runAsRoot( QStringList & S, MyProcess * Prc ) { |
63 | char * usr = getenv("USER"); | 63 | char * usr = getenv("USER"); |
64 | 64 | ||
65 | if( S.count() == 0 ) { | 65 | if( S.count() == 0 ) { |
66 | // close loophole to start shell | 66 | // close loophole to start shell |
67 | return 8888; | 67 | return 8888; |
68 | } | 68 | } |
69 | if( usr == 0 || strcmp( usr, "root" ) ) { | 69 | if( usr == 0 || strcmp( usr, "root" ) ) { |
70 | // unknown or non-root user -> use SUDO | 70 | // unknown or non-root user -> use SUDO |
71 | S.prepend( "sudo" ); | 71 | S.prepend( "sudo" ); |
72 | } | 72 | } |
73 | 73 | ||
74 | if( getenv( "NS2TESTMODE" ) ) { | 74 | if( getenv( "NS2TESTMODE" ) ) { |
75 | odebug << "TESTMODE !!! execute " | 75 | odebug << "TESTMODE !!! execute " |
76 | << S.join( " ") | 76 | << S.join( " ") |
77 | << oendl; | 77 | << oendl; |
78 | } else { | 78 | } else { |
79 | MyProcess * P; | 79 | MyProcess * P; |
80 | 80 | ||
81 | if( Prc ) { | 81 | if( Prc ) { |
82 | P = Prc; | 82 | P = Prc; |
83 | } else { | 83 | } else { |
84 | P = new MyProcess(); | 84 | P = new MyProcess(); |
85 | emit processEvent( tr("Command : ") + S.join( " " ) ); | 85 | emit processEvent( tr("Command : ") + S.join( " " ) ); |
86 | 86 | ||
87 | connect( P, | 87 | connect( P, |
88 | SIGNAL( stdoutLine( const QString & ) ), | 88 | SIGNAL( stdoutLine( const QString & ) ), |
89 | this, | 89 | this, |
90 | SIGNAL( stdoutLine( const QString & ) ) ); | 90 | SIGNAL( stdoutLine( const QString & ) ) ); |
91 | 91 | ||
92 | connect( P, | 92 | connect( P, |
93 | SIGNAL( stderrLine( const QString & ) ), | 93 | SIGNAL( stderrLine( const QString & ) ), |
94 | this, | 94 | this, |
95 | SIGNAL( stderrLine( const QString & ) ) ); | 95 | SIGNAL( stderrLine( const QString & ) ) ); |
96 | 96 | ||
97 | connect( P, | 97 | connect( P, |
98 | SIGNAL(processExited(MyProcess*) ), | 98 | SIGNAL(processExited(MyProcess*) ), |
99 | this, SLOT | 99 | this, SLOT |
100 | (SLOT_ProcessExited(MyProcess*) ) ); | 100 | (SLOT_ProcessExited(MyProcess*) ) ); |
101 | } | 101 | } |
102 | 102 | ||
103 | P->process() << S; | 103 | P->process() << S; |
104 | 104 | ||
105 | Log(("Executing %s\n", S.join( " " ).latin1() )); | 105 | Log(("Executing %s\n", S.join( " " ).latin1() )); |
106 | 106 | ||
107 | if( ! P->process().start( OProcess::DontCare, | 107 | if( ! P->process().start( OProcess::DontCare, |
108 | OProcess::AllOutput ) ) { | 108 | OProcess::AllOutput ) ) { |
109 | odebug << "Error starting " << S << oendl; | 109 | odebug << "Error starting " << S << oendl; |
110 | if( ! Prc ) | 110 | if( ! Prc ) |
111 | delete P; | 111 | delete P; |
112 | // error starting app | 112 | // error starting app |
113 | return 0; | 113 | return 0; |
114 | } | 114 | } |
115 | odebug << "Started " << S << oendl; | 115 | odebug << "Started " << S << oendl; |
116 | } | 116 | } |
117 | 117 | ||
118 | // all is fine | 118 | // all is fine |
119 | return 1; | 119 | return 1; |
120 | } | 120 | } |
121 | 121 | ||
122 | int System::execAsUser( QStringList & SL, bool Synchronous ) { | 122 | int System::execAsUser( QStringList & SL, bool Synchronous ) { |
123 | MyProcess * P = new MyProcess(); | 123 | MyProcess * P = new MyProcess(); |
124 | CurrentQPEUser CU = NSResources->currentUser(); | 124 | CurrentQPEUser CU = NSResources->currentUser(); |
125 | char * usr = getenv("USER"); | 125 | char * usr = getenv("USER"); |
126 | 126 | ||
127 | if( usr == 0 || | 127 | if( usr == 0 || |
128 | strcmp( usr, "root" ) == 0 ) { | 128 | strcmp( usr, "root" ) == 0 ) { |
129 | // find user running qpe | 129 | // find user running qpe |
130 | if( CU.UserName.isEmpty() ) { | 130 | if( CU.UserName.isEmpty() ) { |
131 | // if we come here, the exec was not successfull | 131 | // if we come here, the exec was not successfull |
132 | Log(("User not known \n" )); | 132 | Log(("User not known \n" )); |
133 | return 0; | 133 | return 0; |
134 | } | 134 | } |
135 | } | 135 | } |
136 | 136 | ||
137 | // now we are ready to exec the requested command | 137 | // now we are ready to exec the requested command |
138 | setuid( CU.Uid ); | 138 | setuid( CU.Uid ); |
139 | setgid( CU.Gid ); | 139 | setgid( CU.Gid ); |
140 | 140 | ||
141 | for( unsigned int i = 0 ; i < CU.EnvList.count() ; i ++ ) { | 141 | for( unsigned int i = 0 ; i < CU.EnvList.count() ; i ++ ) { |
142 | QString X; | 142 | QString X; |
143 | QStringList SL; | 143 | QStringList SL; |
144 | X = CU.EnvList[i]; | 144 | X = CU.EnvList[i]; |
145 | SL = QStringList::split( "=", X ); | 145 | SL = QStringList::split( "=", X ); |
146 | P->process().setEnvironment( SL[0], SL[1] ); | 146 | P->process().setEnvironment( SL[0], SL[1] ); |
147 | } | 147 | } |
148 | 148 | ||
149 | P->process() << SL; | 149 | P->process() << SL; |
150 | 150 | ||
151 | emit processEvent( tr("Command : ") + SL.join( " " ) ); | 151 | emit processEvent( tr("Command : ") + SL.join( " " ) ); |
152 | 152 | ||
153 | Log(("Executing as user %s : %s\n", | 153 | Log(("Executing as user %s : %s\n", |
154 | CU.UserName.latin1(), | 154 | CU.UserName.latin1(), |
155 | SL.join( " " ).latin1() )); | 155 | SL.join( " " ).latin1() )); |
156 | 156 | ||
157 | P->setEchoMode( Synchronous ); | 157 | P->setEchoMode( Synchronous ); |
158 | 158 | ||
159 | bool rv = P->process().start( | 159 | bool rv = P->process().start( |
160 | (Synchronous) ? OProcess::Block : | 160 | (Synchronous) ? OProcess::Block : |
161 | OProcess::DontCare, | 161 | OProcess::DontCare, |
162 | (Synchronous) ? OProcess::AllOutput : | 162 | (Synchronous) ? OProcess::AllOutput : |
163 | OProcess::NoCommunication ); | 163 | OProcess::NoCommunication ); |
164 | delete P; | 164 | delete P; |
165 | 165 | ||
166 | if( ! rv ) { | 166 | if( ! rv ) { |
167 | // if we come here, the exec was not successfull | 167 | // if we come here, the exec was not successfull |
168 | Log(("Could not exec : %d\n", errno )); | 168 | Log(("Could not exec : %d\n", errno )); |
169 | } | 169 | } |
170 | 170 | ||
171 | return rv; | 171 | return rv; |
172 | } | 172 | } |
173 | 173 | ||
174 | void System::SLOT_ProcessExited( MyProcess * P ) { | 174 | void System::SLOT_ProcessExited( MyProcess * P ) { |
175 | QString R; | 175 | QString R; |
176 | 176 | ||
177 | for( QValueListConstIterator<QCString> it = P->process().args().begin(); | 177 | for( QValueListConstIterator<QCString> it = P->process().args().begin(); |
178 | it != P->process().args().end(); | 178 | it != P->process().args().end(); |
179 | ++it ) { | 179 | ++it ) { |
180 | R += (*it); | 180 | R += (*it); |
181 | R += " "; | 181 | R += " "; |
182 | } | 182 | } |
183 | 183 | ||
184 | R += "Returned with " + QString().setNum( P->process().exitStatus() ); | 184 | R += "Returned with " + QString().setNum( P->process().exitStatus() ); |
185 | emit processEvent( R ); | 185 | emit processEvent( R ); |
186 | delete P; | 186 | delete P; |
187 | } | 187 | } |
188 | 188 | ||
189 | void System::refreshStatistics( InterfaceInfo & I ) { | 189 | void System::refreshStatistics( InterfaceInfo & I ) { |
190 | if( ! ProcDevNet ) { | 190 | if( ! ProcDevNet ) { |
191 | return; | 191 | return; |
192 | } | 192 | } |
193 | // cannot seek on dev | 193 | // cannot seek on dev |
194 | ProcDevNet->close(); | 194 | ProcDevNet->close(); |
195 | ProcDevNet->open( IO_ReadOnly ); | 195 | ProcDevNet->open( IO_ReadOnly ); |
196 | 196 | ||
197 | QString line; | 197 | QString line; |
198 | QTextStream procTs(ProcDevNet); | 198 | QTextStream procTs(ProcDevNet); |
199 | QStringList SL; | 199 | QStringList SL; |
200 | int loc = -1; | 200 | int loc = -1; |
201 | int version; | 201 | int version; |
202 | 202 | ||
203 | procTs.readLine(); | 203 | procTs.readLine(); |
204 | line = procTs.readLine(); | 204 | line = procTs.readLine(); |
205 | // get version | 205 | // get version |
206 | if( line.find("compressed") ) | 206 | if( line.find("compressed") ) |
207 | version = 3; | 207 | version = 3; |
208 | else if( line.find( "bytes" ) ) | 208 | else if( line.find( "bytes" ) ) |
209 | version = 2; | 209 | version = 2; |
210 | else | 210 | else |
211 | version = 1; | 211 | version = 1; |
212 | while((line = procTs.readLine().simplifyWhiteSpace()) != QString::null) { | 212 | while((line = procTs.readLine().simplifyWhiteSpace()) != QString::null) { |
213 | if( (loc = line.find(":") ) == -1) { | 213 | if( (loc = line.find(":") ) == -1) { |
214 | continue; | 214 | continue; |
215 | } | 215 | } |
216 | 216 | ||
217 | if( I.Name != line.left(loc) ) | 217 | if( I.Name != line.left(loc) ) |
218 | continue; | 218 | continue; |
219 | 219 | ||
220 | // tokenize | 220 | // tokenize |
221 | SL = QStringList::split( ' ', line, FALSE ); | 221 | SL = QStringList::split( ' ', line.mid(loc+1), FALSE ); |
222 | 222 | ||
223 | // update data | 223 | // update data |
224 | switch( version ) { | 224 | switch( version ) { |
225 | case 1 : | 225 | case 1 : |
226 | I.RcvBytes = SL[1]; | 226 | I.RcvBytes = ""; |
227 | I.RcvErrors = SL[3]; | 227 | I.RcvPackets = SL[0]; |
228 | I.RcvDropped = SL[4]; | 228 | I.RcvErrors = SL[1]; |
229 | I.RcvDropped = SL[2]; | ||
230 | |||
231 | I.SndBytes = ""; | ||
232 | I.SndPackets = SL[5]; | ||
233 | I.SndErrors = SL[6]; | ||
234 | I.SndDropped = SL[7]; | ||
235 | |||
236 | I.Collisions = SL[9]; | ||
237 | break; | ||
238 | case 2 : | ||
239 | I.RcvBytes = SL[0]; | ||
240 | I.RcvPackets = SL[1]; | ||
241 | I.RcvErrors = SL[2]; | ||
242 | I.RcvDropped = SL[3]; | ||
243 | |||
229 | I.SndBytes = SL[6]; | 244 | I.SndBytes = SL[6]; |
245 | I.SndPackets = SL[7]; | ||
230 | I.SndErrors = SL[8]; | 246 | I.SndErrors = SL[8]; |
231 | I.SndDropped = SL[9]; | 247 | I.SndDropped = SL[9]; |
248 | |||
232 | I.Collisions = SL[11]; | 249 | I.Collisions = SL[11]; |
233 | break; | 250 | break; |
234 | case 2 : | ||
235 | I.RcvBytes = SL[1]; | ||
236 | I.RcvErrors = SL[3]; | ||
237 | I.RcvDropped = SL[4]; | ||
238 | I.SndBytes = SL[7]; | ||
239 | I.SndErrors = SL[9]; | ||
240 | I.SndDropped = SL[10]; | ||
241 | I.Collisions = SL[12]; | ||
242 | break; | ||
243 | case 3 : | 251 | case 3 : |
244 | I.RcvBytes = SL[1]; | 252 | I.RcvBytes = SL[0]; |
245 | I.RcvErrors = SL[3]; | 253 | I.RcvPackets = SL[1]; |
246 | I.RcvDropped = SL[4]; | 254 | I.RcvErrors = SL[2]; |
247 | I.SndBytes = SL[9]; | 255 | I.RcvDropped = SL[3]; |
248 | I.SndErrors = SL[11]; | 256 | |
249 | I.SndDropped = SL[12]; | 257 | I.SndBytes = SL[8]; |
250 | I.Collisions = SL[14]; | 258 | I.SndPackets = SL[9]; |
259 | I.SndErrors = SL[10]; | ||
260 | I.SndDropped = SL[11]; | ||
261 | |||
262 | I.Collisions = SL[13]; | ||
251 | break; | 263 | break; |
252 | } | 264 | } |
253 | break; | 265 | break; |
254 | } | 266 | } |
255 | } | 267 | } |
256 | 268 | ||
257 | // | 269 | // |
258 | // THIS UPDATES THE LIST -> INTERFACES ARE NOT DELETED BUT | 270 | // THIS UPDATES THE LIST -> INTERFACES ARE NOT DELETED BUT |
259 | // FLAGGED AS ! 'IsUp' IF NO LONGER PRESENT | 271 | // FLAGGED AS ! 'IsUp' IF NO LONGER PRESENT |
260 | // | 272 | // |
261 | 273 | ||
262 | void System::probeInterfaces( void ) { | 274 | void System::probeInterfaces( void ) { |
263 | 275 | ||
264 | // probe interfaces | 276 | // probe interfaces |
265 | int sockfd; | 277 | int sockfd; |
266 | // get list of all interfaces | 278 | // get list of all interfaces |
267 | struct ifreq ifrs; | 279 | struct ifreq ifrs; |
268 | InterfaceInfo * IFI; | 280 | InterfaceInfo * IFI; |
269 | 281 | ||
270 | // flag all as 'down' | 282 | // flag all as 'down' |
271 | for( QDictIterator<InterfaceInfo> it( ProbedInterfaces ); | 283 | for( QDictIterator<InterfaceInfo> it( ProbedInterfaces ); |
272 | it.current(); | 284 | it.current(); |
273 | ++it ) { | 285 | ++it ) { |
274 | it.current()->IsUp = 0; | 286 | it.current()->IsUp = 0; |
275 | } | 287 | } |
276 | 288 | ||
277 | sockfd = socket(PF_INET, SOCK_DGRAM, 0); | 289 | sockfd = socket(PF_INET, SOCK_DGRAM, 0); |
278 | if(sockfd == -1) { | 290 | if(sockfd == -1) { |
279 | odebug << "Cannot open INET socket " | 291 | odebug << "Cannot open INET socket " |
280 | << errno | 292 | << errno |
281 | << " " | 293 | << " " |
282 | << strerror( errno ) | 294 | << strerror( errno ) |
283 | << oendl; | 295 | << oendl; |
284 | return; | 296 | return; |
285 | } | 297 | } |
286 | 298 | ||
287 | // read interfaces from /proc/dev/net | 299 | // read interfaces from /proc/dev/net |
288 | // SIOCGIFCONF does not return ALL interfaces ???!? | 300 | // SIOCGIFCONF does not return ALL interfaces ???!? |
289 | ProcDevNet = new QFile(PROCNETDEV); | 301 | ProcDevNet = new QFile(PROCNETDEV); |
290 | if( ! ProcDevNet->open(IO_ReadOnly) ) { | 302 | if( ! ProcDevNet->open(IO_ReadOnly) ) { |
291 | odebug << "Cannot open " | 303 | odebug << "Cannot open " |
292 | << PROCNETDEV | 304 | << PROCNETDEV |
293 | << " " | 305 | << " " |
294 | << errno | 306 | << errno |
295 | << " " | 307 | << " " |
296 | << strerror( errno ) | 308 | << strerror( errno ) |
297 | << oendl; | 309 | << oendl; |
298 | delete ProcDevNet; | 310 | delete ProcDevNet; |
299 | ProcDevNet =0; | 311 | ProcDevNet =0; |
300 | ::close( sockfd ); | 312 | ::close( sockfd ); |
301 | return; | 313 | return; |
302 | } | 314 | } |
303 | 315 | ||
304 | QString line; | 316 | QString line; |
305 | QString NicName; | 317 | QString NicName; |
306 | QTextStream procTs(ProcDevNet); | 318 | QTextStream procTs(ProcDevNet); |
307 | int loc = -1; | 319 | int loc = -1; |
308 | 320 | ||
309 | procTs.readLine(); // eat a line | 321 | procTs.readLine(); // eat a line |
310 | procTs.readLine(); // eat a line | 322 | procTs.readLine(); // eat a line |
311 | while((line = procTs.readLine().simplifyWhiteSpace()) != QString::null) { | 323 | while((line = procTs.readLine().simplifyWhiteSpace()) != QString::null) { |
312 | if((loc = line.find(":")) == -1) { | 324 | if((loc = line.find(":")) == -1) { |
313 | continue; | 325 | continue; |
314 | } | 326 | } |
315 | 327 | ||
316 | NicName = line.left(loc); | 328 | NicName = line.left(loc); |
317 | 329 | ||
318 | // set name for ioctl | 330 | // set name for ioctl |
319 | strcpy( ifrs.ifr_name, NicName.latin1() ); | 331 | strcpy( ifrs.ifr_name, NicName.latin1() ); |
320 | 332 | ||
321 | if ( ! ( IFI = ProbedInterfaces.find( NicName ) ) ) { | 333 | if ( ! ( IFI = ProbedInterfaces.find( NicName ) ) ) { |
322 | // new nic | 334 | // new nic |
323 | Log(("New NIC found : %s\n", NicName.latin1())); | 335 | Log(("New NIC found : %s\n", NicName.latin1())); |
324 | IFI = new InterfaceInfo; | 336 | IFI = new InterfaceInfo; |
325 | IFI->Name = line.left(loc); | 337 | IFI->Name = line.left(loc); |
326 | IFI->Collection = 0; | 338 | IFI->Collection = 0; |
327 | ProbedInterfaces.insert( IFI->Name, IFI ); | 339 | ProbedInterfaces.insert( IFI->Name, IFI ); |
328 | 340 | ||
329 | // get dynamic info | 341 | // get dynamic info |
330 | if( ioctl(sockfd, SIOCGIFFLAGS, &ifrs) >= 0 ) { | 342 | if( ioctl(sockfd, SIOCGIFFLAGS, &ifrs) >= 0 ) { |
331 | IFI->IsPointToPoint = ((ifrs.ifr_flags & IFF_POINTOPOINT) == IFF_POINTOPOINT); | 343 | IFI->IsPointToPoint = ((ifrs.ifr_flags & IFF_POINTOPOINT) == IFF_POINTOPOINT); |
332 | } else { | 344 | } else { |
333 | IFI->IsPointToPoint = 0; | 345 | IFI->IsPointToPoint = 0; |
334 | } | 346 | } |
335 | 347 | ||
336 | // settings that never change | 348 | // settings that never change |
337 | IFI->DstAddress = ""; | 349 | IFI->DstAddress = ""; |
338 | 350 | ||
339 | if( IFI->IsPointToPoint ) { | 351 | if( IFI->IsPointToPoint ) { |
340 | if( ioctl(sockfd, SIOCGIFDSTADDR, &ifrs) >= 0 ) { | 352 | if( ioctl(sockfd, SIOCGIFDSTADDR, &ifrs) >= 0 ) { |
341 | IFI->DstAddress = | 353 | IFI->DstAddress = |
342 | inet_ntoa(((struct sockaddr_in*)&ifrs.ifr_dstaddr)->sin_addr); | 354 | inet_ntoa(((struct sockaddr_in*)&ifrs.ifr_dstaddr)->sin_addr); |
343 | } | 355 | } |
344 | } | 356 | } |
345 | 357 | ||
346 | IFI->CardType = 999999; | 358 | IFI->CardType = 999999; |
347 | IFI->MACAddress = ""; | 359 | IFI->MACAddress = ""; |
348 | 360 | ||
349 | if( ioctl(sockfd, SIOCGIFHWADDR, &ifrs) >= 0 ) { | 361 | if( ioctl(sockfd, SIOCGIFHWADDR, &ifrs) >= 0 ) { |
350 | Log(("Family for NIC %s : %d\n", IFI->Name.latin1(), | 362 | Log(("Family for NIC %s : %d\n", IFI->Name.latin1(), |
351 | ifrs.ifr_hwaddr.sa_family )); | 363 | ifrs.ifr_hwaddr.sa_family )); |
352 | 364 | ||
353 | IFI->CardType = ifrs.ifr_hwaddr.sa_family; | 365 | IFI->CardType = ifrs.ifr_hwaddr.sa_family; |
354 | switch( ifrs.ifr_hwaddr.sa_family ) { | 366 | switch( ifrs.ifr_hwaddr.sa_family ) { |
355 | case ARPHRD_ETHER : // regular MAC address | 367 | case ARPHRD_ETHER : // regular MAC address |
356 | // valid address -> convert to regular ::: format | 368 | // valid address -> convert to regular ::: format |
357 | // length = 6 bytes = 12 DIGITS -> 6 : | 369 | // length = 6 bytes = 12 DIGITS -> 6 : |
358 | IFI->MACAddress.sprintf( | 370 | IFI->MACAddress.sprintf( |
359 | "%c%c:%c%c:%c%c:%c%c:%c%c:%c%c", | 371 | "%c%c:%c%c:%c%c:%c%c:%c%c:%c%c", |
360 | HN( ifrs.ifr_hwaddr.sa_data[0] ), | 372 | HN( ifrs.ifr_hwaddr.sa_data[0] ), |
361 | LN( ifrs.ifr_hwaddr.sa_data[0] ), | 373 | LN( ifrs.ifr_hwaddr.sa_data[0] ), |
362 | HN( ifrs.ifr_hwaddr.sa_data[1] ), | 374 | HN( ifrs.ifr_hwaddr.sa_data[1] ), |
363 | LN( ifrs.ifr_hwaddr.sa_data[1] ), | 375 | LN( ifrs.ifr_hwaddr.sa_data[1] ), |
364 | HN( ifrs.ifr_hwaddr.sa_data[2] ), | 376 | HN( ifrs.ifr_hwaddr.sa_data[2] ), |
365 | LN( ifrs.ifr_hwaddr.sa_data[2] ), | 377 | LN( ifrs.ifr_hwaddr.sa_data[2] ), |
366 | HN( ifrs.ifr_hwaddr.sa_data[3] ), | 378 | HN( ifrs.ifr_hwaddr.sa_data[3] ), |
367 | LN( ifrs.ifr_hwaddr.sa_data[3] ), | 379 | LN( ifrs.ifr_hwaddr.sa_data[3] ), |
368 | HN( ifrs.ifr_hwaddr.sa_data[4] ), | 380 | HN( ifrs.ifr_hwaddr.sa_data[4] ), |
369 | LN( ifrs.ifr_hwaddr.sa_data[4] ), | 381 | LN( ifrs.ifr_hwaddr.sa_data[4] ), |
370 | HN( ifrs.ifr_hwaddr.sa_data[5] ), | 382 | HN( ifrs.ifr_hwaddr.sa_data[5] ), |
371 | LN( ifrs.ifr_hwaddr.sa_data[5] ) | 383 | LN( ifrs.ifr_hwaddr.sa_data[5] ) |
372 | ); | 384 | ); |
373 | break; | 385 | break; |
374 | #ifdef ARPHRD_IEEE1394 | 386 | #ifdef ARPHRD_IEEE1394 |
375 | case ARPHRD_IEEE1394 : // Firewire Eth address | 387 | case ARPHRD_IEEE1394 : // Firewire Eth address |
376 | IFI->MACAddress.sprintf( | 388 | IFI->MACAddress.sprintf( |
377 | "%c%c-%c%c-%c%c-%c%c-%c%c-%c%c-%c%c-%c%c-%c%c-%c%c-%c%c-%c%c-%c%c-%c%c-00-00", | 389 | "%c%c-%c%c-%c%c-%c%c-%c%c-%c%c-%c%c-%c%c-%c%c-%c%c-%c%c-%c%c-%c%c-%c%c-00-00", |
378 | HN( ifrs.ifr_hwaddr.sa_data[0] ), | 390 | HN( ifrs.ifr_hwaddr.sa_data[0] ), |
379 | LN( ifrs.ifr_hwaddr.sa_data[0] ), | 391 | LN( ifrs.ifr_hwaddr.sa_data[0] ), |
380 | HN( ifrs.ifr_hwaddr.sa_data[1] ), | 392 | HN( ifrs.ifr_hwaddr.sa_data[1] ), |
381 | LN( ifrs.ifr_hwaddr.sa_data[1] ), | 393 | LN( ifrs.ifr_hwaddr.sa_data[1] ), |
382 | HN( ifrs.ifr_hwaddr.sa_data[2] ), | 394 | HN( ifrs.ifr_hwaddr.sa_data[2] ), |
383 | LN( ifrs.ifr_hwaddr.sa_data[2] ), | 395 | LN( ifrs.ifr_hwaddr.sa_data[2] ), |
384 | HN( ifrs.ifr_hwaddr.sa_data[3] ), | 396 | HN( ifrs.ifr_hwaddr.sa_data[3] ), |
385 | LN( ifrs.ifr_hwaddr.sa_data[3] ), | 397 | LN( ifrs.ifr_hwaddr.sa_data[3] ), |
386 | HN( ifrs.ifr_hwaddr.sa_data[4] ), | 398 | HN( ifrs.ifr_hwaddr.sa_data[4] ), |
387 | LN( ifrs.ifr_hwaddr.sa_data[4] ), | 399 | LN( ifrs.ifr_hwaddr.sa_data[4] ), |
388 | HN( ifrs.ifr_hwaddr.sa_data[5] ), | 400 | HN( ifrs.ifr_hwaddr.sa_data[5] ), |
389 | LN( ifrs.ifr_hwaddr.sa_data[5] ), | 401 | LN( ifrs.ifr_hwaddr.sa_data[5] ), |
390 | HN( ifrs.ifr_hwaddr.sa_data[6] ), | 402 | HN( ifrs.ifr_hwaddr.sa_data[6] ), |
391 | LN( ifrs.ifr_hwaddr.sa_data[6] ), | 403 | LN( ifrs.ifr_hwaddr.sa_data[6] ), |
392 | HN( ifrs.ifr_hwaddr.sa_data[7] ), | 404 | HN( ifrs.ifr_hwaddr.sa_data[7] ), |
393 | LN( ifrs.ifr_hwaddr.sa_data[7] ), | 405 | LN( ifrs.ifr_hwaddr.sa_data[7] ), |
394 | HN( ifrs.ifr_hwaddr.sa_data[8] ), | 406 | HN( ifrs.ifr_hwaddr.sa_data[8] ), |
395 | LN( ifrs.ifr_hwaddr.sa_data[8] ), | 407 | LN( ifrs.ifr_hwaddr.sa_data[8] ), |
396 | HN( ifrs.ifr_hwaddr.sa_data[9] ), | 408 | HN( ifrs.ifr_hwaddr.sa_data[9] ), |
397 | LN( ifrs.ifr_hwaddr.sa_data[9] ), | 409 | LN( ifrs.ifr_hwaddr.sa_data[9] ), |
398 | HN( ifrs.ifr_hwaddr.sa_data[10] ), | 410 | HN( ifrs.ifr_hwaddr.sa_data[10] ), |
399 | LN( ifrs.ifr_hwaddr.sa_data[10] ), | 411 | LN( ifrs.ifr_hwaddr.sa_data[10] ), |
400 | HN( ifrs.ifr_hwaddr.sa_data[11] ), | 412 | HN( ifrs.ifr_hwaddr.sa_data[11] ), |
401 | LN( ifrs.ifr_hwaddr.sa_data[11] ), | 413 | LN( ifrs.ifr_hwaddr.sa_data[11] ), |
402 | HN( ifrs.ifr_hwaddr.sa_data[12] ), | 414 | HN( ifrs.ifr_hwaddr.sa_data[12] ), |
403 | LN( ifrs.ifr_hwaddr.sa_data[12] ), | 415 | LN( ifrs.ifr_hwaddr.sa_data[12] ), |
404 | HN( ifrs.ifr_hwaddr.sa_data[13] ), | 416 | HN( ifrs.ifr_hwaddr.sa_data[13] ), |
405 | LN( ifrs.ifr_hwaddr.sa_data[13] ) | 417 | LN( ifrs.ifr_hwaddr.sa_data[13] ) |
406 | ); | 418 | ); |
407 | break; | 419 | break; |
408 | #endif | 420 | #endif |
409 | case ARPHRD_PPP : // PPP | 421 | case ARPHRD_PPP : // PPP |
410 | break; | 422 | break; |
411 | case ARPHRD_IEEE80211 : // WLAN | 423 | case ARPHRD_IEEE80211 : // WLAN |
412 | break; | 424 | break; |
413 | case ARPHRD_IRDA : // IRDA | 425 | case ARPHRD_IRDA : // IRDA |
414 | break; | 426 | break; |
415 | } | 427 | } |
416 | } | 428 | } |
417 | } else // else already probed before -> just update | 429 | } else // else already probed before -> just update |
418 | Log(("Redetected NIC %s\n", NicName.latin1())); | 430 | Log(("Redetected NIC %s\n", NicName.latin1())); |
419 | 431 | ||
420 | // get dynamic info | 432 | // get dynamic info |
421 | if( ioctl(sockfd, SIOCGIFFLAGS, &ifrs) >= 0 ) { | 433 | if( ioctl(sockfd, SIOCGIFFLAGS, &ifrs) >= 0 ) { |
422 | IFI->IsUp = ((ifrs.ifr_flags & IFF_UP) == IFF_UP); | 434 | IFI->IsUp = ((ifrs.ifr_flags & IFF_UP) == IFF_UP); |
423 | IFI->HasMulticast = ((ifrs.ifr_flags & IFF_MULTICAST) == IFF_MULTICAST); | 435 | IFI->HasMulticast = ((ifrs.ifr_flags & IFF_MULTICAST) == IFF_MULTICAST); |
424 | } else { | 436 | } else { |
425 | IFI->IsUp = 0; | 437 | IFI->IsUp = 0; |
426 | IFI->HasMulticast = 0; | 438 | IFI->HasMulticast = 0; |
427 | } | 439 | } |
428 | 440 | ||
429 | if( ioctl(sockfd, SIOCGIFADDR, &ifrs) >= 0 ) { | 441 | if( ioctl(sockfd, SIOCGIFADDR, &ifrs) >= 0 ) { |
430 | IFI->Address = | 442 | IFI->Address = |
431 | inet_ntoa(((struct sockaddr_in*)&ifrs.ifr_addr)->sin_addr); | 443 | inet_ntoa(((struct sockaddr_in*)&ifrs.ifr_addr)->sin_addr); |
432 | } else { | 444 | } else { |
433 | IFI->Address = ""; | 445 | IFI->Address = ""; |
434 | IFI->IsUp = 0; | 446 | IFI->IsUp = 0; |
435 | } | 447 | } |
436 | if( ioctl(sockfd, SIOCGIFBRDADDR, &ifrs) >= 0 ) { | 448 | if( ioctl(sockfd, SIOCGIFBRDADDR, &ifrs) >= 0 ) { |
437 | IFI->BCastAddress = | 449 | IFI->BCastAddress = |
438 | inet_ntoa(((struct sockaddr_in*)&ifrs.ifr_broadaddr)->sin_addr); | 450 | inet_ntoa(((struct sockaddr_in*)&ifrs.ifr_broadaddr)->sin_addr); |
439 | } else { | 451 | } else { |
440 | IFI->BCastAddress = ""; | 452 | IFI->BCastAddress = ""; |
441 | } | 453 | } |
442 | if( ioctl(sockfd, SIOCGIFNETMASK, &ifrs) >= 0 ) { | 454 | if( ioctl(sockfd, SIOCGIFNETMASK, &ifrs) >= 0 ) { |
443 | IFI->Netmask = | 455 | IFI->Netmask = |
444 | inet_ntoa(((struct sockaddr_in*)&ifrs.ifr_netmask)->sin_addr); | 456 | inet_ntoa(((struct sockaddr_in*)&ifrs.ifr_netmask)->sin_addr); |
445 | } else { | 457 | } else { |
446 | IFI->Netmask = ""; | 458 | IFI->Netmask = ""; |
447 | } | 459 | } |
448 | Log(("NIC %s UP ? %d\n", NicName.latin1(), IFI->IsUp )); | 460 | Log(("NIC %s UP ? %d\n", NicName.latin1(), IFI->IsUp )); |
449 | } | 461 | } |
450 | 462 | ||
451 | ::close( sockfd ); | 463 | ::close( sockfd ); |
452 | } | 464 | } |
453 | 465 | ||
454 | InterfaceInfo * System::findInterface( const QString & N ) { | 466 | InterfaceInfo * System::findInterface( const QString & N ) { |
455 | InterfaceInfo * Run; | 467 | InterfaceInfo * Run; |
456 | // has PAN NetworkSetup UP interface ? | 468 | // has PAN NetworkSetup UP interface ? |
457 | for( QDictIterator<InterfaceInfo> It(ProbedInterfaces); | 469 | for( QDictIterator<InterfaceInfo> It(ProbedInterfaces); |
458 | It.current(); | 470 | It.current(); |
459 | ++It ) { | 471 | ++It ) { |
460 | Run = It.current(); | 472 | Run = It.current(); |
461 | if( N == Run->Name ) { | 473 | if( N == Run->Name ) { |
462 | // this PAN NetworkSetup is up | 474 | // this PAN NetworkSetup is up |
463 | return Run; | 475 | return Run; |
464 | } | 476 | } |
465 | } | 477 | } |
466 | return 0; | 478 | return 0; |
467 | } | 479 | } |
468 | 480 | ||
469 | #include <stdarg.h> | 481 | #include <stdarg.h> |
470 | static FILE * logf = 0; | 482 | static FILE * logf = 0; |
471 | 483 | ||
472 | void VLog( char * Format, ... ) { | 484 | void VLog( char * Format, ... ) { |
473 | va_list l; | 485 | va_list l; |
474 | 486 | ||
475 | va_start(l, Format ); | 487 | va_start(l, Format ); |
476 | 488 | ||
477 | if( logf == (FILE *)0 ) { | 489 | if( logf == (FILE *)0 ) { |
478 | QString S = getenv("NS2LOG"); | 490 | QString S = getenv("NS2LOG"); |
479 | if( S == "stderr" ) { | 491 | if( S == "stderr" ) { |
480 | logf = stderr; | 492 | logf = stderr; |
481 | } else if( S.isEmpty() ) { | 493 | } else if( S.isEmpty() ) { |
482 | logf = fopen( "/tmp/ns2log", "a" ); | 494 | logf = fopen( "/tmp/ns2log", "a" ); |
483 | } else { | 495 | } else { |
484 | logf = fopen( S, "a" ); | 496 | logf = fopen( S, "a" ); |
485 | } | 497 | } |
486 | 498 | ||
487 | if( ! logf ) { | 499 | if( ! logf ) { |
488 | fprintf( stderr, "Cannot open logfile %s : %d\n", | 500 | fprintf( stderr, "Cannot open logfile %s : %d\n", |
489 | S.latin1(), errno ); | 501 | S.latin1(), errno ); |
490 | logf = (FILE *)1; | 502 | logf = (FILE *)1; |
491 | } else { | 503 | } else { |
492 | fprintf( logf, "____ OPEN LOGFILE ____\n"); | 504 | fprintf( logf, "____ OPEN LOGFILE ____\n"); |
493 | } | 505 | } |
494 | } | 506 | } |
495 | 507 | ||
496 | if( (unsigned long)logf > 1 ) { | 508 | if( (unsigned long)logf > 1 ) { |
497 | vfprintf( logf, Format, l ); | 509 | vfprintf( logf, Format, l ); |
498 | } | 510 | } |
499 | va_end( l ); | 511 | va_end( l ); |
500 | fflush( logf ); | 512 | fflush( logf ); |
501 | 513 | ||
502 | } | 514 | } |
503 | 515 | ||
504 | void LogClose( void ) { | 516 | void LogClose( void ) { |
505 | if( (long)logf > 1 ) { | 517 | if( (long)logf > 1 ) { |
506 | fprintf( logf, "____ CLOSE LOGFILE ____\n"); | 518 | fprintf( logf, "____ CLOSE LOGFILE ____\n"); |
507 | if( logf != stderr ) { | 519 | if( logf != stderr ) { |
508 | fclose( logf ); | 520 | fclose( logf ); |
509 | } | 521 | } |
510 | logf = 0; | 522 | logf = 0; |
511 | } | 523 | } |
512 | } | 524 | } |
513 | 525 | ||
514 | QString removeSpaces( const QString & X ) { | 526 | QString removeSpaces( const QString & X ) { |
515 | QString Y; | 527 | QString Y; |
516 | Y = X.simplifyWhiteSpace(); | 528 | Y = X.simplifyWhiteSpace(); |
517 | Y.replace( QRegExp(" "), "_" ); | 529 | Y.replace( QRegExp(" "), "_" ); |
518 | odebug << X << " **" << Y << "**" << oendl; | 530 | odebug << X << " **" << Y << "**" << oendl; |
519 | return Y; | 531 | return Y; |
520 | } | 532 | } |
521 | 533 | ||
522 | // | 534 | // |
523 | // | 535 | // |
524 | // | 536 | // |
525 | // | 537 | // |
526 | // | 538 | // |
527 | 539 | ||
528 | MyProcess::MyProcess() : QObject(), StdoutBuffer(), StderrBuffer() { | 540 | MyProcess::MyProcess() : QObject(), StdoutBuffer(), StderrBuffer() { |
529 | P = new OProcess(); | 541 | P = new OProcess(); |
530 | connect( P, | 542 | connect( P, |
531 | SIGNAL( receivedStdout(Opie::Core::OProcess*, char*, int ) ), | 543 | SIGNAL( receivedStdout(Opie::Core::OProcess*, char*, int ) ), |
532 | this, | 544 | this, |
533 | SLOT( SLOT_Stdout(Opie::Core::OProcess*,char*,int) ) ); | 545 | SLOT( SLOT_Stdout(Opie::Core::OProcess*,char*,int) ) ); |
534 | 546 | ||
535 | connect( P, | 547 | connect( P, |
536 | SIGNAL( receivedStderr(Opie::Core::OProcess*, char*, int ) ), | 548 | SIGNAL( receivedStderr(Opie::Core::OProcess*, char*, int ) ), |
537 | this, | 549 | this, |
538 | SLOT( SLOT_Stderr(Opie::Core::OProcess*,char*,int) ) ); | 550 | SLOT( SLOT_Stderr(Opie::Core::OProcess*,char*,int) ) ); |
539 | connect( P, | 551 | connect( P, |
540 | SIGNAL( processExited(Opie::Core::OProcess*) ), | 552 | SIGNAL( processExited(Opie::Core::OProcess*) ), |
541 | this, | 553 | this, |
542 | SLOT( SLOT_ProcessExited(Opie::Core::OProcess*) ) ); | 554 | SLOT( SLOT_ProcessExited(Opie::Core::OProcess*) ) ); |
543 | } | 555 | } |
544 | 556 | ||
545 | MyProcess::~MyProcess() { | 557 | MyProcess::~MyProcess() { |
546 | delete P; | 558 | delete P; |
547 | } | 559 | } |
548 | 560 | ||
549 | void MyProcess::SLOT_Stdout( Opie::Core::OProcess * , char * Buf, int len ) { | 561 | void MyProcess::SLOT_Stdout( Opie::Core::OProcess * , char * Buf, int len ) { |
550 | if( EchoMode ) { | 562 | if( EchoMode ) { |
551 | write( 1, Buf, len ); | 563 | write( 1, Buf, len ); |
552 | return; | 564 | return; |
553 | } | 565 | } |
554 | 566 | ||
555 | char * LB = (char *)alloca( len + 1 ); | 567 | char * LB = (char *)alloca( len + 1 ); |
556 | memcpy( LB, Buf, len ); | 568 | memcpy( LB, Buf, len ); |
557 | LB[len] = '\0'; | 569 | LB[len] = '\0'; |
558 | 570 | ||
559 | // now input is zero terminated | 571 | // now input is zero terminated |
560 | StdoutBuffer += LB; | 572 | StdoutBuffer += LB; |
561 | 573 | ||
562 | odebug << "Received " << len << " bytes on stdout" << oendl; | 574 | odebug << "Received " << len << " bytes on stdout" << oendl; |
563 | // see if we have some lines (allow empty lines) | 575 | // see if we have some lines (allow empty lines) |
564 | QStringList SL = QStringList::split( "\n", StdoutBuffer, TRUE ); | 576 | QStringList SL = QStringList::split( "\n", StdoutBuffer, TRUE ); |
565 | 577 | ||
566 | for( unsigned int i = 0; i < SL.count()-1; i ++ ) { | 578 | for( unsigned int i = 0; i < SL.count()-1; i ++ ) { |
567 | Log(( "Stdout : \"%s\"\n", SL[i].latin1() ) ); | 579 | Log(( "Stdout : \"%s\"\n", SL[i].latin1() ) ); |
568 | emit stdoutLine( SL[i] ); | 580 | emit stdoutLine( SL[i] ); |
569 | } | 581 | } |
570 | 582 | ||
571 | // last line is rest | 583 | // last line is rest |
572 | StdoutBuffer = SL[ SL.count()-1 ]; | 584 | StdoutBuffer = SL[ SL.count()-1 ]; |
573 | } | 585 | } |
574 | 586 | ||
575 | void MyProcess::SLOT_Stderr( Opie::Core::OProcess * , char * Buf, int len ) { | 587 | void MyProcess::SLOT_Stderr( Opie::Core::OProcess * , char * Buf, int len ) { |
576 | if( EchoMode ) { | 588 | if( EchoMode ) { |
577 | write( 2, Buf, len ); | 589 | write( 2, Buf, len ); |
578 | return; | 590 | return; |
579 | } | 591 | } |
580 | 592 | ||
581 | char * LB = (char *)alloca( len + 1 ); | 593 | char * LB = (char *)alloca( len + 1 ); |
582 | memcpy( LB, Buf, len ); | 594 | memcpy( LB, Buf, len ); |
583 | LB[len] = '\0'; | 595 | LB[len] = '\0'; |
584 | 596 | ||
585 | // now input is zero terminated | 597 | // now input is zero terminated |
586 | StderrBuffer += LB; | 598 | StderrBuffer += LB; |
587 | 599 | ||
588 | odebug << "Received " << len << " bytes on stderr" << oendl; | 600 | odebug << "Received " << len << " bytes on stderr" << oendl; |
589 | // see if we have some lines (allow empty lines) | 601 | // see if we have some lines (allow empty lines) |
590 | QStringList SL = QStringList::split( "\n", StderrBuffer, TRUE ); | 602 | QStringList SL = QStringList::split( "\n", StderrBuffer, TRUE ); |
591 | 603 | ||
592 | for( unsigned int i = 0; i < SL.count()-1; i ++ ) { | 604 | for( unsigned int i = 0; i < SL.count()-1; i ++ ) { |
593 | Log(( "Stderr : \"%s\"\n", SL[i].latin1() ) ); | 605 | Log(( "Stderr : \"%s\"\n", SL[i].latin1() ) ); |
594 | emit stderrLine( SL[i] ); | 606 | emit stderrLine( SL[i] ); |
595 | } | 607 | } |
596 | 608 | ||
597 | // last line is rest | 609 | // last line is rest |
598 | StderrBuffer = SL[ SL.count()-1 ]; | 610 | StderrBuffer = SL[ SL.count()-1 ]; |
599 | } | 611 | } |
600 | 612 | ||
601 | void MyProcess::SLOT_ProcessExited( Opie::Core::OProcess * ) { | 613 | void MyProcess::SLOT_ProcessExited( Opie::Core::OProcess * ) { |
602 | emit processExited( this ); | 614 | emit processExited( this ); |
603 | } | 615 | } |
diff --git a/noncore/settings/networksettings2/networksettings2/system.h b/noncore/settings/networksettings2/networksettings2/system.h index 794b868..52613d8 100644 --- a/noncore/settings/networksettings2/networksettings2/system.h +++ b/noncore/settings/networksettings2/networksettings2/system.h | |||
@@ -1,140 +1,143 @@ | |||
1 | #ifndef __SYSTEM__H | 1 | #ifndef __SYSTEM__H |
2 | #define __SYSTEM__H | 2 | #define __SYSTEM__H |
3 | 3 | ||
4 | #include <qstring.h> | 4 | #include <qstring.h> |
5 | 5 | ||
6 | #include <opie2/oprocess.h> | 6 | #include <opie2/oprocess.h> |
7 | 7 | ||
8 | using namespace Opie::Core; | 8 | using namespace Opie::Core; |
9 | 9 | ||
10 | // for hardware types | 10 | // for hardware types |
11 | #include <net/if_arp.h> | 11 | #include <net/if_arp.h> |
12 | #include <qdict.h> | 12 | #include <qdict.h> |
13 | #include <qobject.h> | 13 | #include <qobject.h> |
14 | #include <stdio.h> | 14 | #include <stdio.h> |
15 | 15 | ||
16 | class NetworkSetup; | 16 | class NetworkSetup; |
17 | class ANetNodeInstance; | 17 | class ANetNodeInstance; |
18 | class QFile; | 18 | class QFile; |
19 | 19 | ||
20 | class MyProcess : public QObject { | 20 | class MyProcess : public QObject { |
21 | 21 | ||
22 | Q_OBJECT | 22 | Q_OBJECT |
23 | 23 | ||
24 | public : | 24 | public : |
25 | 25 | ||
26 | MyProcess(); | 26 | MyProcess(); |
27 | ~MyProcess(); | 27 | ~MyProcess(); |
28 | 28 | ||
29 | inline OProcess & process() | 29 | inline OProcess & process() |
30 | { return *P; } | 30 | { return *P; } |
31 | 31 | ||
32 | inline void setEchoMode( bool M ) { | 32 | inline void setEchoMode( bool M ) { |
33 | EchoMode = M; | 33 | EchoMode = M; |
34 | } | 34 | } |
35 | 35 | ||
36 | public slots : | 36 | public slots : |
37 | 37 | ||
38 | void SLOT_Stdout( Opie::Core::OProcess * P, char *, int ); | 38 | void SLOT_Stdout( Opie::Core::OProcess * P, char *, int ); |
39 | void SLOT_Stderr( Opie::Core::OProcess * P, char *, int ); | 39 | void SLOT_Stderr( Opie::Core::OProcess * P, char *, int ); |
40 | void SLOT_ProcessExited( Opie::Core::OProcess * P); | 40 | void SLOT_ProcessExited( Opie::Core::OProcess * P); |
41 | 41 | ||
42 | signals : | 42 | signals : |
43 | 43 | ||
44 | void stdoutLine( const QString & ); | 44 | void stdoutLine( const QString & ); |
45 | void stderrLine( const QString & ); | 45 | void stderrLine( const QString & ); |
46 | void processExited( MyProcess * ); | 46 | void processExited( MyProcess * ); |
47 | 47 | ||
48 | private : | 48 | private : |
49 | 49 | ||
50 | QString StdoutBuffer; | 50 | QString StdoutBuffer; |
51 | QString StderrBuffer; | 51 | QString StderrBuffer; |
52 | OProcess * P; | 52 | OProcess * P; |
53 | // output all output to my output | 53 | // output all output to my output |
54 | bool EchoMode; | 54 | bool EchoMode; |
55 | }; | 55 | }; |
56 | 56 | ||
57 | class InterfaceInfo { | 57 | class InterfaceInfo { |
58 | 58 | ||
59 | public : | 59 | public : |
60 | 60 | ||
61 | InterfaceInfo() : | 61 | InterfaceInfo() : |
62 | Name(), | 62 | Name(), |
63 | MACAddress(), | 63 | MACAddress(), |
64 | BCastAddress(), | 64 | BCastAddress(), |
65 | Netmask(), | 65 | Netmask(), |
66 | DstAddress() { | 66 | DstAddress() { |
67 | } | 67 | } |
68 | 68 | ||
69 | NetworkSetup * assignedToNetworkSetup() | 69 | NetworkSetup * assignedToNetworkSetup() |
70 | { return Collection; } | 70 | { return Collection; } |
71 | 71 | ||
72 | void assignToNetworkSetup( NetworkSetup * NNI ) | 72 | void assignToNetworkSetup( NetworkSetup * NNI ) |
73 | { Collection = NNI; } | 73 | { Collection = NNI; } |
74 | 74 | ||
75 | NetworkSetup * Collection; // networkSetup taking care of me | 75 | NetworkSetup * Collection; // networkSetup taking care of me |
76 | QString Name; // name of interface | 76 | QString Name; // name of interface |
77 | int CardType; // type of card | 77 | int CardType; // type of card |
78 | QString MACAddress; // MAC address | 78 | QString MACAddress; // MAC address |
79 | QString Address; // IP Address | 79 | QString Address; // IP Address |
80 | QString BCastAddress; // Broadcast Address | 80 | QString BCastAddress; // Broadcast Address |
81 | QString Netmask; // Netmask | 81 | QString Netmask; // Netmask |
82 | QString DstAddress; // Peer address (if P-t-P) | 82 | QString DstAddress; // Peer address (if P-t-P) |
83 | bool IsUp; // interface is UP | 83 | bool IsUp; // interface is UP |
84 | bool HasMulticast; // Supports Multicast | 84 | bool HasMulticast; // Supports Multicast |
85 | bool IsPointToPoint; // IsPointToPoint card | 85 | bool IsPointToPoint; // IsPointToPoint card |
86 | 86 | ||
87 | QString RcvBytes; | 87 | QString RcvBytes; |
88 | QString SndBytes; | ||
89 | QString RcvErrors; | 88 | QString RcvErrors; |
90 | QString SndErrors; | 89 | QString RcvPackets; |
91 | QString RcvDropped; | 90 | QString RcvDropped; |
91 | |||
92 | QString SndBytes; | ||
93 | QString SndErrors; | ||
94 | QString SndPackets; | ||
92 | QString SndDropped; | 95 | QString SndDropped; |
93 | QString Collisions; | 96 | QString Collisions; |
94 | }; | 97 | }; |
95 | 98 | ||
96 | class System : public QObject { | 99 | class System : public QObject { |
97 | 100 | ||
98 | Q_OBJECT | 101 | Q_OBJECT |
99 | 102 | ||
100 | public : | 103 | public : |
101 | 104 | ||
102 | System( void ); | 105 | System( void ); |
103 | ~System( void ); | 106 | ~System( void ); |
104 | 107 | ||
105 | QDict<InterfaceInfo> & interfaces( void ); | 108 | QDict<InterfaceInfo> & interfaces( void ); |
106 | InterfaceInfo * interface( const QString& N ) | 109 | InterfaceInfo * interface( const QString& N ) |
107 | { return interfaces()[N]; } | 110 | { return interfaces()[N]; } |
108 | 111 | ||
109 | // exec command as root | 112 | // exec command as root |
110 | int runAsRoot( QStringList & S, MyProcess * Prc = 0 ); | 113 | int runAsRoot( QStringList & S, MyProcess * Prc = 0 ); |
111 | 114 | ||
112 | // exec command as user | 115 | // exec command as user |
113 | int execAsUser( QStringList & Cmd, bool Synchronous = 0 ); | 116 | int execAsUser( QStringList & Cmd, bool Synchronous = 0 ); |
114 | 117 | ||
115 | // refresh stats for this interface | 118 | // refresh stats for this interface |
116 | void refreshStatistics( InterfaceInfo & ); | 119 | void refreshStatistics( InterfaceInfo & ); |
117 | 120 | ||
118 | // reloads interfaces | 121 | // reloads interfaces |
119 | void probeInterfaces( void ); | 122 | void probeInterfaces( void ); |
120 | 123 | ||
121 | InterfaceInfo * findInterface( const QString & DevName ); | 124 | InterfaceInfo * findInterface( const QString & DevName ); |
122 | 125 | ||
123 | private slots : | 126 | private slots : |
124 | 127 | ||
125 | void SLOT_ProcessExited( MyProcess * ); | 128 | void SLOT_ProcessExited( MyProcess * ); |
126 | 129 | ||
127 | signals : | 130 | signals : |
128 | 131 | ||
129 | void stdoutLine( const QString & ); | 132 | void stdoutLine( const QString & ); |
130 | void stderrLine( const QString & ); | 133 | void stderrLine( const QString & ); |
131 | void processEvent( const QString & ); | 134 | void processEvent( const QString & ); |
132 | 135 | ||
133 | private : | 136 | private : |
134 | 137 | ||
135 | QDict<InterfaceInfo> ProbedInterfaces; | 138 | QDict<InterfaceInfo> ProbedInterfaces; |
136 | FILE * OutputOfCmd; | 139 | FILE * OutputOfCmd; |
137 | QFile * ProcDevNet; | 140 | QFile * ProcDevNet; |
138 | }; | 141 | }; |
139 | 142 | ||
140 | #endif | 143 | #endif |
diff --git a/noncore/settings/networksettings2/profile/profileGUI.ui b/noncore/settings/networksettings2/profile/profileGUI.ui index 5bf9a9c..8b421e8 100644 --- a/noncore/settings/networksettings2/profile/profileGUI.ui +++ b/noncore/settings/networksettings2/profile/profileGUI.ui | |||
@@ -1,1785 +1,1754 @@ | |||
1 | <!DOCTYPE UI><UI> | 1 | <!DOCTYPE UI><UI> |
2 | <class>ProfileGUI</class> | 2 | <class>ProfileGUI</class> |
3 | <widget> | 3 | <widget> |
4 | <class>QWidget</class> | 4 | <class>QWidget</class> |
5 | <property stdset="1"> | 5 | <property stdset="1"> |
6 | <name>name</name> | 6 | <name>name</name> |
7 | <cstring>Profile_FRM</cstring> | 7 | <cstring>Profile_FRM</cstring> |
8 | </property> | 8 | </property> |
9 | <property stdset="1"> | 9 | <property stdset="1"> |
10 | <name>geometry</name> | 10 | <name>geometry</name> |
11 | <rect> | 11 | <rect> |
12 | <x>0</x> | 12 | <x>0</x> |
13 | <y>0</y> | 13 | <y>0</y> |
14 | <width>276</width> | 14 | <width>551</width> |
15 | <height>231</height> | 15 | <height>547</height> |
16 | </rect> | 16 | </rect> |
17 | </property> | 17 | </property> |
18 | <property stdset="1"> | 18 | <property stdset="1"> |
19 | <name>caption</name> | 19 | <name>caption</name> |
20 | <string>Profile</string> | 20 | <string>Profile</string> |
21 | </property> | 21 | </property> |
22 | <property> | 22 | <property> |
23 | <name>layoutMargin</name> | 23 | <name>layoutMargin</name> |
24 | </property> | 24 | </property> |
25 | <property> | 25 | <property> |
26 | <name>layoutSpacing</name> | 26 | <name>layoutSpacing</name> |
27 | </property> | 27 | </property> |
28 | <vbox> | 28 | <vbox> |
29 | <property stdset="1"> | 29 | <property stdset="1"> |
30 | <name>margin</name> | 30 | <name>margin</name> |
31 | <number>0</number> | 31 | <number>1</number> |
32 | </property> | 32 | </property> |
33 | <property stdset="1"> | 33 | <property stdset="1"> |
34 | <name>spacing</name> | 34 | <name>spacing</name> |
35 | <number>0</number> | 35 | <number>3</number> |
36 | </property> | 36 | </property> |
37 | <widget> | 37 | <widget> |
38 | <class>QTabWidget</class> | 38 | <class>QTabWidget</class> |
39 | <property stdset="1"> | 39 | <property stdset="1"> |
40 | <name>name</name> | 40 | <name>name</name> |
41 | <cstring>TabWidget6</cstring> | 41 | <cstring>TabWidget6</cstring> |
42 | </property> | 42 | </property> |
43 | <property> | 43 | <property> |
44 | <name>layoutMargin</name> | 44 | <name>layoutMargin</name> |
45 | </property> | 45 | </property> |
46 | <property> | 46 | <property> |
47 | <name>layoutSpacing</name> | 47 | <name>layoutSpacing</name> |
48 | </property> | 48 | </property> |
49 | <widget> | 49 | <widget> |
50 | <class>QWidget</class> | 50 | <class>QWidget</class> |
51 | <property stdset="1"> | 51 | <property stdset="1"> |
52 | <name>name</name> | 52 | <name>name</name> |
53 | <cstring>tab</cstring> | 53 | <cstring>tab</cstring> |
54 | </property> | 54 | </property> |
55 | <attribute> | 55 | <attribute> |
56 | <name>title</name> | 56 | <name>title</name> |
57 | <string>Setup</string> | 57 | <string>Setup</string> |
58 | </attribute> | 58 | </attribute> |
59 | <vbox> | 59 | <vbox> |
60 | <property stdset="1"> | 60 | <property stdset="1"> |
61 | <name>margin</name> | 61 | <name>margin</name> |
62 | <number>1</number> | 62 | <number>1</number> |
63 | </property> | 63 | </property> |
64 | <property stdset="1"> | 64 | <property stdset="1"> |
65 | <name>spacing</name> | 65 | <name>spacing</name> |
66 | <number>2</number> | 66 | <number>2</number> |
67 | </property> | 67 | </property> |
68 | <widget> | 68 | <widget> |
69 | <class>QLayoutWidget</class> | 69 | <class>QLayoutWidget</class> |
70 | <property stdset="1"> | 70 | <property stdset="1"> |
71 | <name>name</name> | 71 | <name>name</name> |
72 | <cstring>Layout8</cstring> | 72 | <cstring>Layout8</cstring> |
73 | </property> | 73 | </property> |
74 | <grid> | 74 | <grid> |
75 | <property stdset="1"> | 75 | <property stdset="1"> |
76 | <name>margin</name> | 76 | <name>margin</name> |
77 | <number>0</number> | 77 | <number>0</number> |
78 | </property> | 78 | </property> |
79 | <property stdset="1"> | 79 | <property stdset="1"> |
80 | <name>spacing</name> | 80 | <name>spacing</name> |
81 | <number>6</number> | 81 | <number>6</number> |
82 | </property> | 82 | </property> |
83 | <widget row="0" column="0" rowspan="2" colspan="1" > | 83 | <widget row="0" column="0" rowspan="2" colspan="1" > |
84 | <class>QGroupBox</class> | 84 | <class>QGroupBox</class> |
85 | <property stdset="1"> | 85 | <property stdset="1"> |
86 | <name>name</name> | 86 | <name>name</name> |
87 | <cstring>GroupBox1</cstring> | 87 | <cstring>GroupBox1</cstring> |
88 | </property> | 88 | </property> |
89 | <property stdset="1"> | 89 | <property stdset="1"> |
90 | <name>title</name> | 90 | <name>title</name> |
91 | <string>Start</string> | 91 | <string>Start</string> |
92 | </property> | 92 | </property> |
93 | <vbox> | 93 | <vbox> |
94 | <property stdset="1"> | 94 | <property stdset="1"> |
95 | <name>margin</name> | 95 | <name>margin</name> |
96 | <number>11</number> | 96 | <number>11</number> |
97 | </property> | 97 | </property> |
98 | <property stdset="1"> | 98 | <property stdset="1"> |
99 | <name>spacing</name> | 99 | <name>spacing</name> |
100 | <number>6</number> | 100 | <number>6</number> |
101 | </property> | 101 | </property> |
102 | <widget> | 102 | <widget> |
103 | <class>QCheckBox</class> | 103 | <class>QCheckBox</class> |
104 | <property stdset="1"> | 104 | <property stdset="1"> |
105 | <name>name</name> | 105 | <name>name</name> |
106 | <cstring>Automatic_CB</cstring> | 106 | <cstring>Automatic_CB</cstring> |
107 | </property> | 107 | </property> |
108 | <property stdset="1"> | 108 | <property stdset="1"> |
109 | <name>text</name> | 109 | <name>text</name> |
110 | <string>Automatically</string> | 110 | <string>Automatically</string> |
111 | </property> | 111 | </property> |
112 | </widget> | 112 | </widget> |
113 | <widget> | 113 | <widget> |
114 | <class>QCheckBox</class> | 114 | <class>QCheckBox</class> |
115 | <property stdset="1"> | 115 | <property stdset="1"> |
116 | <name>name</name> | 116 | <name>name</name> |
117 | <cstring>Confirm_CB</cstring> | 117 | <cstring>Confirm_CB</cstring> |
118 | </property> | 118 | </property> |
119 | <property stdset="1"> | 119 | <property stdset="1"> |
120 | <name>enabled</name> | 120 | <name>enabled</name> |
121 | <bool>true</bool> | 121 | <bool>true</bool> |
122 | </property> | 122 | </property> |
123 | <property stdset="1"> | 123 | <property stdset="1"> |
124 | <name>text</name> | 124 | <name>text</name> |
125 | <string>Ask</string> | 125 | <string>Ask</string> |
126 | </property> | 126 | </property> |
127 | <property> | 127 | <property> |
128 | <name>layoutMargin</name> | 128 | <name>layoutMargin</name> |
129 | </property> | 129 | </property> |
130 | </widget> | 130 | </widget> |
131 | <widget> | 131 | <widget> |
132 | <class>QCheckBox</class> | 132 | <class>QCheckBox</class> |
133 | <property stdset="1"> | 133 | <property stdset="1"> |
134 | <name>name</name> | 134 | <name>name</name> |
135 | <cstring>Disabled_CB</cstring> | 135 | <cstring>Disabled_CB</cstring> |
136 | </property> | 136 | </property> |
137 | <property stdset="1"> | 137 | <property stdset="1"> |
138 | <name>enabled</name> | 138 | <name>enabled</name> |
139 | <bool>true</bool> | 139 | <bool>true</bool> |
140 | </property> | 140 | </property> |
141 | <property stdset="1"> | 141 | <property stdset="1"> |
142 | <name>text</name> | 142 | <name>text</name> |
143 | <string>Disabled</string> | 143 | <string>Disabled</string> |
144 | </property> | 144 | </property> |
145 | <property> | 145 | <property> |
146 | <name>layoutMargin</name> | 146 | <name>layoutMargin</name> |
147 | </property> | 147 | </property> |
148 | </widget> | 148 | </widget> |
149 | </vbox> | 149 | </vbox> |
150 | </widget> | 150 | </widget> |
151 | <widget row="0" column="1" > | 151 | <widget row="0" column="1" > |
152 | <class>QCheckBox</class> | 152 | <class>QCheckBox</class> |
153 | <property stdset="1"> | 153 | <property stdset="1"> |
154 | <name>name</name> | 154 | <name>name</name> |
155 | <cstring>TriggersVPN_CB</cstring> | 155 | <cstring>TriggersVPN_CB</cstring> |
156 | </property> | 156 | </property> |
157 | <property stdset="1"> | 157 | <property stdset="1"> |
158 | <name>text</name> | 158 | <name>text</name> |
159 | <string>Trigger VPN</string> | 159 | <string>Trigger VPN</string> |
160 | </property> | 160 | </property> |
161 | </widget> | 161 | </widget> |
162 | <spacer row="1" column="1" > | 162 | <spacer row="1" column="1" > |
163 | <property> | 163 | <property> |
164 | <name>name</name> | 164 | <name>name</name> |
165 | <cstring>Spacer8</cstring> | 165 | <cstring>Spacer8</cstring> |
166 | </property> | 166 | </property> |
167 | <property stdset="1"> | 167 | <property stdset="1"> |
168 | <name>orientation</name> | 168 | <name>orientation</name> |
169 | <enum>Vertical</enum> | 169 | <enum>Vertical</enum> |
170 | </property> | 170 | </property> |
171 | <property stdset="1"> | 171 | <property stdset="1"> |
172 | <name>sizeType</name> | 172 | <name>sizeType</name> |
173 | <enum>Expanding</enum> | 173 | <enum>Expanding</enum> |
174 | </property> | 174 | </property> |
175 | <property> | 175 | <property> |
176 | <name>sizeHint</name> | 176 | <name>sizeHint</name> |
177 | <size> | 177 | <size> |
178 | <width>20</width> | 178 | <width>20</width> |
179 | <height>20</height> | 179 | <height>20</height> |
180 | </size> | 180 | </size> |
181 | </property> | 181 | </property> |
182 | </spacer> | 182 | </spacer> |
183 | </grid> | 183 | </grid> |
184 | </widget> | 184 | </widget> |
185 | <widget> | 185 | <widget> |
186 | <class>QLabel</class> | 186 | <class>QLabel</class> |
187 | <property stdset="1"> | 187 | <property stdset="1"> |
188 | <name>name</name> | 188 | <name>name</name> |
189 | <cstring>TextLabel3</cstring> | 189 | <cstring>TextLabel3</cstring> |
190 | </property> | 190 | </property> |
191 | <property stdset="1"> | 191 | <property stdset="1"> |
192 | <name>text</name> | 192 | <name>text</name> |
193 | <string>Description</string> | 193 | <string>Description</string> |
194 | </property> | 194 | </property> |
195 | </widget> | 195 | </widget> |
196 | <widget> | 196 | <widget> |
197 | <class>QMultiLineEdit</class> | 197 | <class>QMultiLineEdit</class> |
198 | <property stdset="1"> | 198 | <property stdset="1"> |
199 | <name>name</name> | 199 | <name>name</name> |
200 | <cstring>Description_LE</cstring> | 200 | <cstring>Description_LE</cstring> |
201 | </property> | 201 | </property> |
202 | </widget> | 202 | </widget> |
203 | </vbox> | 203 | </vbox> |
204 | </widget> | 204 | </widget> |
205 | <widget> | 205 | <widget> |
206 | <class>QWidget</class> | 206 | <class>QWidget</class> |
207 | <property stdset="1"> | 207 | <property stdset="1"> |
208 | <name>name</name> | 208 | <name>name</name> |
209 | <cstring>tab</cstring> | 209 | <cstring>tab</cstring> |
210 | </property> | 210 | </property> |
211 | <attribute> | 211 | <attribute> |
212 | <name>title</name> | 212 | <name>title</name> |
213 | <string>State</string> | 213 | <string>State</string> |
214 | </attribute> | 214 | </attribute> |
215 | <vbox> | 215 | <vbox> |
216 | <property stdset="1"> | 216 | <property stdset="1"> |
217 | <name>margin</name> | 217 | <name>margin</name> |
218 | <number>0</number> | 218 | <number>0</number> |
219 | </property> | 219 | </property> |
220 | <property stdset="1"> | 220 | <property stdset="1"> |
221 | <name>spacing</name> | 221 | <name>spacing</name> |
222 | <number>2</number> | 222 | <number>2</number> |
223 | </property> | 223 | </property> |
224 | <widget> | 224 | <widget> |
225 | <class>QFrame</class> | 225 | <class>QFrame</class> |
226 | <property stdset="1"> | 226 | <property stdset="1"> |
227 | <name>name</name> | 227 | <name>name</name> |
228 | <cstring>Frame73</cstring> | 228 | <cstring>Frame73</cstring> |
229 | </property> | 229 | </property> |
230 | <property stdset="1"> | 230 | <property stdset="1"> |
231 | <name>sizePolicy</name> | 231 | <name>sizePolicy</name> |
232 | <sizepolicy> | 232 | <sizepolicy> |
233 | <hsizetype>7</hsizetype> | 233 | <hsizetype>7</hsizetype> |
234 | <vsizetype>5</vsizetype> | 234 | <vsizetype>5</vsizetype> |
235 | </sizepolicy> | 235 | </sizepolicy> |
236 | </property> | 236 | </property> |
237 | <property stdset="1"> | 237 | <property stdset="1"> |
238 | <name>frameShape</name> | 238 | <name>frameShape</name> |
239 | <enum>NoFrame</enum> | 239 | <enum>NoFrame</enum> |
240 | </property> | 240 | </property> |
241 | <property stdset="1"> | 241 | <property stdset="1"> |
242 | <name>frameShadow</name> | 242 | <name>frameShadow</name> |
243 | <enum>Plain</enum> | 243 | <enum>Plain</enum> |
244 | </property> | 244 | </property> |
245 | <property> | 245 | <property> |
246 | <name>layoutMargin</name> | 246 | <name>layoutMargin</name> |
247 | </property> | 247 | </property> |
248 | <property> | 248 | <property> |
249 | <name>layoutSpacing</name> | 249 | <name>layoutSpacing</name> |
250 | </property> | 250 | </property> |
251 | <hbox> | 251 | <hbox> |
252 | <property stdset="1"> | 252 | <property stdset="1"> |
253 | <name>margin</name> | 253 | <name>margin</name> |
254 | <number>2</number> | 254 | <number>2</number> |
255 | </property> | 255 | </property> |
256 | <property stdset="1"> | 256 | <property stdset="1"> |
257 | <name>spacing</name> | 257 | <name>spacing</name> |
258 | <number>0</number> | 258 | <number>0</number> |
259 | </property> | 259 | </property> |
260 | <widget> | 260 | <widget> |
261 | <class>QLabel</class> | 261 | <class>QLabel</class> |
262 | <property stdset="1"> | 262 | <property stdset="1"> |
263 | <name>name</name> | 263 | <name>name</name> |
264 | <cstring>InterfaceName_LBL</cstring> | 264 | <cstring>InterfaceName_LBL</cstring> |
265 | </property> | 265 | </property> |
266 | <property stdset="1"> | 266 | <property stdset="1"> |
267 | <name>font</name> | 267 | <name>font</name> |
268 | <font> | 268 | <font> |
269 | <underline>1</underline> | 269 | <underline>1</underline> |
270 | </font> | 270 | </font> |
271 | </property> | 271 | </property> |
272 | <property stdset="1"> | 272 | <property stdset="1"> |
273 | <name>text</name> | 273 | <name>text</name> |
274 | <string>eth0</string> | 274 | <string>eth0</string> |
275 | </property> | 275 | </property> |
276 | </widget> | 276 | </widget> |
277 | <widget> | 277 | <widget> |
278 | <class>QLabel</class> | 278 | <class>QLabel</class> |
279 | <property stdset="1"> | 279 | <property stdset="1"> |
280 | <name>name</name> | 280 | <name>name</name> |
281 | <cstring>InterfaceOptions_LBL</cstring> | 281 | <cstring>InterfaceOptions_LBL</cstring> |
282 | </property> | 282 | </property> |
283 | <property stdset="1"> | 283 | <property stdset="1"> |
284 | <name>sizePolicy</name> | 284 | <name>sizePolicy</name> |
285 | <sizepolicy> | 285 | <sizepolicy> |
286 | <hsizetype>7</hsizetype> | 286 | <hsizetype>7</hsizetype> |
287 | <vsizetype>1</vsizetype> | 287 | <vsizetype>1</vsizetype> |
288 | </sizepolicy> | 288 | </sizepolicy> |
289 | </property> | 289 | </property> |
290 | <property stdset="1"> | 290 | <property stdset="1"> |
291 | <name>font</name> | 291 | <name>font</name> |
292 | <font> | 292 | <font> |
293 | <underline>1</underline> | 293 | <underline>1</underline> |
294 | </font> | 294 | </font> |
295 | </property> | 295 | </property> |
296 | <property stdset="1"> | 296 | <property stdset="1"> |
297 | <name>text</name> | 297 | <name>text</name> |
298 | <string>(Multicast, Up)</string> | 298 | <string>(Multicast, Up)</string> |
299 | </property> | 299 | </property> |
300 | <property stdset="1"> | 300 | <property stdset="1"> |
301 | <name>indent</name> | 301 | <name>indent</name> |
302 | <number>0</number> | 302 | <number>0</number> |
303 | </property> | 303 | </property> |
304 | </widget> | 304 | </widget> |
305 | </hbox> | 305 | </hbox> |
306 | </widget> | 306 | </widget> |
307 | <widget> | 307 | <widget> |
308 | <class>QFrame</class> | 308 | <class>QFrame</class> |
309 | <property stdset="1"> | 309 | <property stdset="1"> |
310 | <name>name</name> | 310 | <name>name</name> |
311 | <cstring>Interface_GB</cstring> | 311 | <cstring>Interface_GB</cstring> |
312 | </property> | 312 | </property> |
313 | <property stdset="1"> | 313 | <property stdset="1"> |
314 | <name>enabled</name> | 314 | <name>enabled</name> |
315 | <bool>true</bool> | 315 | <bool>true</bool> |
316 | </property> | 316 | </property> |
317 | <property stdset="1"> | 317 | <property stdset="1"> |
318 | <name>sizePolicy</name> | 318 | <name>sizePolicy</name> |
319 | <sizepolicy> | 319 | <sizepolicy> |
320 | <hsizetype>7</hsizetype> | 320 | <hsizetype>7</hsizetype> |
321 | <vsizetype>5</vsizetype> | 321 | <vsizetype>5</vsizetype> |
322 | </sizepolicy> | 322 | </sizepolicy> |
323 | </property> | 323 | </property> |
324 | <property stdset="1"> | 324 | <property stdset="1"> |
325 | <name>frameShape</name> | 325 | <name>frameShape</name> |
326 | <enum>NoFrame</enum> | 326 | <enum>NoFrame</enum> |
327 | </property> | 327 | </property> |
328 | <property stdset="1"> | 328 | <property stdset="1"> |
329 | <name>frameShadow</name> | 329 | <name>frameShadow</name> |
330 | <enum>Raised</enum> | 330 | <enum>Raised</enum> |
331 | </property> | 331 | </property> |
332 | <property> | 332 | <property> |
333 | <name>layoutMargin</name> | 333 | <name>layoutMargin</name> |
334 | </property> | 334 | </property> |
335 | <property> | 335 | <property> |
336 | <name>layoutSpacing</name> | 336 | <name>layoutSpacing</name> |
337 | </property> | 337 | </property> |
338 | <grid> | 338 | <grid> |
339 | <property stdset="1"> | 339 | <property stdset="1"> |
340 | <name>margin</name> | 340 | <name>margin</name> |
341 | <number>2</number> | 341 | <number>2</number> |
342 | </property> | 342 | </property> |
343 | <property stdset="1"> | 343 | <property stdset="1"> |
344 | <name>spacing</name> | 344 | <name>spacing</name> |
345 | <number>1</number> | 345 | <number>1</number> |
346 | </property> | 346 | </property> |
347 | <widget row="0" column="2" > | 347 | <widget row="0" column="2" > |
348 | <class>QLabel</class> | 348 | <class>QLabel</class> |
349 | <property stdset="1"> | 349 | <property stdset="1"> |
350 | <name>name</name> | 350 | <name>name</name> |
351 | <cstring>TextLabel4_2_3</cstring> | 351 | <cstring>TextLabel4_2_3</cstring> |
352 | </property> | 352 | </property> |
353 | <property stdset="1"> | 353 | <property stdset="1"> |
354 | <name>enabled</name> | 354 | <name>enabled</name> |
355 | <bool>true</bool> | 355 | <bool>true</bool> |
356 | </property> | 356 | </property> |
357 | <property stdset="1"> | 357 | <property stdset="1"> |
358 | <name>sizePolicy</name> | 358 | <name>sizePolicy</name> |
359 | <sizepolicy> | 359 | <sizepolicy> |
360 | <hsizetype>0</hsizetype> | 360 | <hsizetype>0</hsizetype> |
361 | <vsizetype>1</vsizetype> | 361 | <vsizetype>1</vsizetype> |
362 | </sizepolicy> | 362 | </sizepolicy> |
363 | </property> | 363 | </property> |
364 | <property stdset="1"> | 364 | <property stdset="1"> |
365 | <name>frameShape</name> | 365 | <name>frameShape</name> |
366 | <enum>NoFrame</enum> | 366 | <enum>NoFrame</enum> |
367 | </property> | 367 | </property> |
368 | <property stdset="1"> | 368 | <property stdset="1"> |
369 | <name>frameShadow</name> | 369 | <name>frameShadow</name> |
370 | <enum>Raised</enum> | 370 | <enum>Raised</enum> |
371 | </property> | 371 | </property> |
372 | <property stdset="1"> | 372 | <property stdset="1"> |
373 | <name>text</name> | 373 | <name>text</name> |
374 | <string>Subnet Mask</string> | 374 | <string>Subnet Mask</string> |
375 | </property> | 375 | </property> |
376 | </widget> | 376 | </widget> |
377 | <widget row="0" column="3" > | 377 | <widget row="0" column="3" > |
378 | <class>QLabel</class> | 378 | <class>QLabel</class> |
379 | <property stdset="1"> | 379 | <property stdset="1"> |
380 | <name>name</name> | 380 | <name>name</name> |
381 | <cstring>TextLabel1_3_3</cstring> | 381 | <cstring>TextLabel1_3_3</cstring> |
382 | </property> | 382 | </property> |
383 | <property stdset="1"> | 383 | <property stdset="1"> |
384 | <name>enabled</name> | 384 | <name>enabled</name> |
385 | <bool>true</bool> | 385 | <bool>true</bool> |
386 | </property> | 386 | </property> |
387 | <property stdset="1"> | 387 | <property stdset="1"> |
388 | <name>sizePolicy</name> | 388 | <name>sizePolicy</name> |
389 | <sizepolicy> | 389 | <sizepolicy> |
390 | <hsizetype>0</hsizetype> | 390 | <hsizetype>0</hsizetype> |
391 | <vsizetype>1</vsizetype> | 391 | <vsizetype>1</vsizetype> |
392 | </sizepolicy> | 392 | </sizepolicy> |
393 | </property> | 393 | </property> |
394 | <property stdset="1"> | 394 | <property stdset="1"> |
395 | <name>frameShape</name> | 395 | <name>frameShape</name> |
396 | <enum>NoFrame</enum> | 396 | <enum>NoFrame</enum> |
397 | </property> | 397 | </property> |
398 | <property stdset="1"> | 398 | <property stdset="1"> |
399 | <name>frameShadow</name> | 399 | <name>frameShadow</name> |
400 | <enum>Raised</enum> | 400 | <enum>Raised</enum> |
401 | </property> | 401 | </property> |
402 | <property stdset="1"> | 402 | <property stdset="1"> |
403 | <name>text</name> | 403 | <name>text</name> |
404 | <string>Broadcast</string> | 404 | <string>Broadcast</string> |
405 | </property> | 405 | </property> |
406 | </widget> | 406 | </widget> |
407 | <widget row="3" column="0" > | 407 | <widget row="3" column="0" > |
408 | <class>QLabel</class> | 408 | <class>QLabel</class> |
409 | <property stdset="1"> | 409 | <property stdset="1"> |
410 | <name>name</name> | 410 | <name>name</name> |
411 | <cstring>TextLabel1_5</cstring> | 411 | <cstring>TextLabel1_5</cstring> |
412 | </property> | 412 | </property> |
413 | <property stdset="1"> | 413 | <property stdset="1"> |
414 | <name>enabled</name> | 414 | <name>enabled</name> |
415 | <bool>true</bool> | 415 | <bool>true</bool> |
416 | </property> | 416 | </property> |
417 | <property stdset="1"> | 417 | <property stdset="1"> |
418 | <name>sizePolicy</name> | 418 | <name>sizePolicy</name> |
419 | <sizepolicy> | 419 | <sizepolicy> |
420 | <hsizetype>1</hsizetype> | 420 | <hsizetype>1</hsizetype> |
421 | <vsizetype>1</vsizetype> | 421 | <vsizetype>1</vsizetype> |
422 | </sizepolicy> | 422 | </sizepolicy> |
423 | </property> | 423 | </property> |
424 | <property stdset="1"> | 424 | <property stdset="1"> |
425 | <name>text</name> | 425 | <name>text</name> |
426 | <string>MAC</string> | 426 | <string>MAC</string> |
427 | </property> | 427 | </property> |
428 | <property stdset="1"> | 428 | <property stdset="1"> |
429 | <name>indent</name> | 429 | <name>indent</name> |
430 | <number>0</number> | 430 | <number>0</number> |
431 | </property> | 431 | </property> |
432 | </widget> | 432 | </widget> |
433 | <widget row="2" column="0" > | 433 | <widget row="2" column="0" > |
434 | <class>QLabel</class> | 434 | <class>QLabel</class> |
435 | <property stdset="1"> | 435 | <property stdset="1"> |
436 | <name>name</name> | 436 | <name>name</name> |
437 | <cstring>TextLabel1_5_2</cstring> | 437 | <cstring>TextLabel1_5_2</cstring> |
438 | </property> | 438 | </property> |
439 | <property stdset="1"> | 439 | <property stdset="1"> |
440 | <name>enabled</name> | 440 | <name>enabled</name> |
441 | <bool>true</bool> | 441 | <bool>true</bool> |
442 | </property> | 442 | </property> |
443 | <property stdset="1"> | 443 | <property stdset="1"> |
444 | <name>sizePolicy</name> | 444 | <name>sizePolicy</name> |
445 | <sizepolicy> | 445 | <sizepolicy> |
446 | <hsizetype>1</hsizetype> | 446 | <hsizetype>1</hsizetype> |
447 | <vsizetype>1</vsizetype> | 447 | <vsizetype>1</vsizetype> |
448 | </sizepolicy> | 448 | </sizepolicy> |
449 | </property> | 449 | </property> |
450 | <property stdset="1"> | 450 | <property stdset="1"> |
451 | <name>text</name> | 451 | <name>text</name> |
452 | <string>P-t-P</string> | 452 | <string>P-t-P</string> |
453 | </property> | 453 | </property> |
454 | <property stdset="1"> | 454 | <property stdset="1"> |
455 | <name>indent</name> | 455 | <name>indent</name> |
456 | <number>0</number> | 456 | <number>0</number> |
457 | </property> | 457 | </property> |
458 | </widget> | 458 | </widget> |
459 | <widget row="0" column="0" rowspan="1" colspan="2" > | 459 | <widget row="0" column="0" rowspan="1" colspan="2" > |
460 | <class>QLabel</class> | 460 | <class>QLabel</class> |
461 | <property stdset="1"> | 461 | <property stdset="1"> |
462 | <name>name</name> | 462 | <name>name</name> |
463 | <cstring>TextLabel3_2_3</cstring> | 463 | <cstring>TextLabel3_2_3</cstring> |
464 | </property> | 464 | </property> |
465 | <property stdset="1"> | 465 | <property stdset="1"> |
466 | <name>enabled</name> | 466 | <name>enabled</name> |
467 | <bool>true</bool> | 467 | <bool>true</bool> |
468 | </property> | 468 | </property> |
469 | <property stdset="1"> | 469 | <property stdset="1"> |
470 | <name>sizePolicy</name> | 470 | <name>sizePolicy</name> |
471 | <sizepolicy> | 471 | <sizepolicy> |
472 | <hsizetype>0</hsizetype> | 472 | <hsizetype>0</hsizetype> |
473 | <vsizetype>1</vsizetype> | 473 | <vsizetype>1</vsizetype> |
474 | </sizepolicy> | 474 | </sizepolicy> |
475 | </property> | 475 | </property> |
476 | <property stdset="1"> | 476 | <property stdset="1"> |
477 | <name>text</name> | 477 | <name>text</name> |
478 | <string>IP Address</string> | 478 | <string>IP Address</string> |
479 | </property> | 479 | </property> |
480 | </widget> | 480 | </widget> |
481 | <widget row="1" column="0" rowspan="1" colspan="2" > | 481 | <widget row="1" column="0" rowspan="1" colspan="2" > |
482 | <class>QLabel</class> | 482 | <class>QLabel</class> |
483 | <property stdset="1"> | 483 | <property stdset="1"> |
484 | <name>name</name> | 484 | <name>name</name> |
485 | <cstring>IPAddress_LBL</cstring> | 485 | <cstring>IPAddress_LBL</cstring> |
486 | </property> | 486 | </property> |
487 | <property stdset="1"> | 487 | <property stdset="1"> |
488 | <name>enabled</name> | 488 | <name>enabled</name> |
489 | <bool>true</bool> | 489 | <bool>true</bool> |
490 | </property> | 490 | </property> |
491 | <property stdset="1"> | 491 | <property stdset="1"> |
492 | <name>sizePolicy</name> | 492 | <name>sizePolicy</name> |
493 | <sizepolicy> | 493 | <sizepolicy> |
494 | <hsizetype>7</hsizetype> | 494 | <hsizetype>7</hsizetype> |
495 | <vsizetype>1</vsizetype> | 495 | <vsizetype>1</vsizetype> |
496 | </sizepolicy> | 496 | </sizepolicy> |
497 | </property> | 497 | </property> |
498 | <property stdset="1"> | 498 | <property stdset="1"> |
499 | <name>frameShape</name> | 499 | <name>frameShape</name> |
500 | <enum>Panel</enum> | 500 | <enum>Panel</enum> |
501 | </property> | 501 | </property> |
502 | <property stdset="1"> | 502 | <property stdset="1"> |
503 | <name>frameShadow</name> | 503 | <name>frameShadow</name> |
504 | <enum>Sunken</enum> | 504 | <enum>Sunken</enum> |
505 | </property> | 505 | </property> |
506 | <property stdset="1"> | 506 | <property stdset="1"> |
507 | <name>text</name> | 507 | <name>text</name> |
508 | <string>0.0.0.0</string> | 508 | <string>0.0.0.0</string> |
509 | </property> | 509 | </property> |
510 | <property stdset="1"> | 510 | <property stdset="1"> |
511 | <name>alignment</name> | 511 | <name>alignment</name> |
512 | <set>AlignCenter</set> | 512 | <set>AlignCenter</set> |
513 | </property> | 513 | </property> |
514 | <property stdset="1"> | 514 | <property stdset="1"> |
515 | <name>indent</name> | 515 | <name>indent</name> |
516 | <number>0</number> | 516 | <number>0</number> |
517 | </property> | 517 | </property> |
518 | <property> | 518 | <property> |
519 | <name>hAlign</name> | 519 | <name>hAlign</name> |
520 | </property> | 520 | </property> |
521 | </widget> | 521 | </widget> |
522 | <widget row="1" column="2" > | 522 | <widget row="1" column="2" > |
523 | <class>QLabel</class> | 523 | <class>QLabel</class> |
524 | <property stdset="1"> | 524 | <property stdset="1"> |
525 | <name>name</name> | 525 | <name>name</name> |
526 | <cstring>SubnetMask_LBL</cstring> | 526 | <cstring>SubnetMask_LBL</cstring> |
527 | </property> | 527 | </property> |
528 | <property stdset="1"> | 528 | <property stdset="1"> |
529 | <name>enabled</name> | 529 | <name>enabled</name> |
530 | <bool>true</bool> | 530 | <bool>true</bool> |
531 | </property> | 531 | </property> |
532 | <property stdset="1"> | 532 | <property stdset="1"> |
533 | <name>sizePolicy</name> | 533 | <name>sizePolicy</name> |
534 | <sizepolicy> | 534 | <sizepolicy> |
535 | <hsizetype>7</hsizetype> | 535 | <hsizetype>7</hsizetype> |
536 | <vsizetype>1</vsizetype> | 536 | <vsizetype>1</vsizetype> |
537 | </sizepolicy> | 537 | </sizepolicy> |
538 | </property> | 538 | </property> |
539 | <property stdset="1"> | 539 | <property stdset="1"> |
540 | <name>frameShape</name> | 540 | <name>frameShape</name> |
541 | <enum>Panel</enum> | 541 | <enum>Panel</enum> |
542 | </property> | 542 | </property> |
543 | <property stdset="1"> | 543 | <property stdset="1"> |
544 | <name>frameShadow</name> | 544 | <name>frameShadow</name> |
545 | <enum>Sunken</enum> | 545 | <enum>Sunken</enum> |
546 | </property> | 546 | </property> |
547 | <property stdset="1"> | 547 | <property stdset="1"> |
548 | <name>text</name> | 548 | <name>text</name> |
549 | <string>0.0.0.0</string> | 549 | <string>0.0.0.0</string> |
550 | </property> | 550 | </property> |
551 | <property stdset="1"> | 551 | <property stdset="1"> |
552 | <name>alignment</name> | 552 | <name>alignment</name> |
553 | <set>AlignCenter</set> | 553 | <set>AlignCenter</set> |
554 | </property> | 554 | </property> |
555 | <property stdset="1"> | 555 | <property stdset="1"> |
556 | <name>indent</name> | 556 | <name>indent</name> |
557 | <number>0</number> | 557 | <number>0</number> |
558 | </property> | 558 | </property> |
559 | <property> | 559 | <property> |
560 | <name>hAlign</name> | 560 | <name>hAlign</name> |
561 | </property> | 561 | </property> |
562 | </widget> | 562 | </widget> |
563 | <widget row="1" column="3" > | 563 | <widget row="1" column="3" > |
564 | <class>QLabel</class> | 564 | <class>QLabel</class> |
565 | <property stdset="1"> | 565 | <property stdset="1"> |
566 | <name>name</name> | 566 | <name>name</name> |
567 | <cstring>Broadcast_LBL</cstring> | 567 | <cstring>Broadcast_LBL</cstring> |
568 | </property> | 568 | </property> |
569 | <property stdset="1"> | 569 | <property stdset="1"> |
570 | <name>enabled</name> | 570 | <name>enabled</name> |
571 | <bool>true</bool> | 571 | <bool>true</bool> |
572 | </property> | 572 | </property> |
573 | <property stdset="1"> | 573 | <property stdset="1"> |
574 | <name>sizePolicy</name> | 574 | <name>sizePolicy</name> |
575 | <sizepolicy> | 575 | <sizepolicy> |
576 | <hsizetype>7</hsizetype> | 576 | <hsizetype>7</hsizetype> |
577 | <vsizetype>1</vsizetype> | 577 | <vsizetype>1</vsizetype> |
578 | </sizepolicy> | 578 | </sizepolicy> |
579 | </property> | 579 | </property> |
580 | <property stdset="1"> | 580 | <property stdset="1"> |
581 | <name>frameShape</name> | 581 | <name>frameShape</name> |
582 | <enum>StyledPanel</enum> | 582 | <enum>StyledPanel</enum> |
583 | </property> | 583 | </property> |
584 | <property stdset="1"> | 584 | <property stdset="1"> |
585 | <name>frameShadow</name> | 585 | <name>frameShadow</name> |
586 | <enum>Sunken</enum> | 586 | <enum>Sunken</enum> |
587 | </property> | 587 | </property> |
588 | <property stdset="1"> | 588 | <property stdset="1"> |
589 | <name>alignment</name> | 589 | <name>alignment</name> |
590 | <set>AlignCenter</set> | 590 | <set>AlignCenter</set> |
591 | </property> | 591 | </property> |
592 | <property stdset="1"> | 592 | <property stdset="1"> |
593 | <name>indent</name> | 593 | <name>indent</name> |
594 | <number>0</number> | 594 | <number>0</number> |
595 | </property> | 595 | </property> |
596 | <property> | 596 | <property> |
597 | <name>hAlign</name> | 597 | <name>hAlign</name> |
598 | </property> | 598 | </property> |
599 | </widget> | 599 | </widget> |
600 | <widget row="2" column="1" rowspan="1" colspan="3" > | 600 | <widget row="2" column="1" rowspan="1" colspan="3" > |
601 | <class>QLabel</class> | 601 | <class>QLabel</class> |
602 | <property stdset="1"> | 602 | <property stdset="1"> |
603 | <name>name</name> | 603 | <name>name</name> |
604 | <cstring>PointToPoint_LBL</cstring> | 604 | <cstring>PointToPoint_LBL</cstring> |
605 | </property> | 605 | </property> |
606 | <property stdset="1"> | 606 | <property stdset="1"> |
607 | <name>enabled</name> | 607 | <name>enabled</name> |
608 | <bool>true</bool> | 608 | <bool>true</bool> |
609 | </property> | 609 | </property> |
610 | <property stdset="1"> | 610 | <property stdset="1"> |
611 | <name>sizePolicy</name> | 611 | <name>sizePolicy</name> |
612 | <sizepolicy> | 612 | <sizepolicy> |
613 | <hsizetype>5</hsizetype> | 613 | <hsizetype>5</hsizetype> |
614 | <vsizetype>0</vsizetype> | 614 | <vsizetype>0</vsizetype> |
615 | </sizepolicy> | 615 | </sizepolicy> |
616 | </property> | 616 | </property> |
617 | <property stdset="1"> | 617 | <property stdset="1"> |
618 | <name>frameShape</name> | 618 | <name>frameShape</name> |
619 | <enum>Panel</enum> | 619 | <enum>Panel</enum> |
620 | </property> | 620 | </property> |
621 | <property stdset="1"> | 621 | <property stdset="1"> |
622 | <name>frameShadow</name> | 622 | <name>frameShadow</name> |
623 | <enum>Sunken</enum> | 623 | <enum>Sunken</enum> |
624 | </property> | 624 | </property> |
625 | <property stdset="1"> | 625 | <property stdset="1"> |
626 | <name>indent</name> | 626 | <name>indent</name> |
627 | <number>0</number> | 627 | <number>0</number> |
628 | </property> | 628 | </property> |
629 | </widget> | 629 | </widget> |
630 | <widget row="3" column="1" rowspan="1" colspan="3" > | 630 | <widget row="3" column="1" rowspan="1" colspan="3" > |
631 | <class>QLabel</class> | 631 | <class>QLabel</class> |
632 | <property stdset="1"> | 632 | <property stdset="1"> |
633 | <name>name</name> | 633 | <name>name</name> |
634 | <cstring>MACAddress_LBL</cstring> | 634 | <cstring>MACAddress_LBL</cstring> |
635 | </property> | 635 | </property> |
636 | <property stdset="1"> | 636 | <property stdset="1"> |
637 | <name>enabled</name> | 637 | <name>enabled</name> |
638 | <bool>true</bool> | 638 | <bool>true</bool> |
639 | </property> | 639 | </property> |
640 | <property stdset="1"> | 640 | <property stdset="1"> |
641 | <name>sizePolicy</name> | 641 | <name>sizePolicy</name> |
642 | <sizepolicy> | 642 | <sizepolicy> |
643 | <hsizetype>5</hsizetype> | 643 | <hsizetype>5</hsizetype> |
644 | <vsizetype>0</vsizetype> | 644 | <vsizetype>0</vsizetype> |
645 | </sizepolicy> | 645 | </sizepolicy> |
646 | </property> | 646 | </property> |
647 | <property stdset="1"> | 647 | <property stdset="1"> |
648 | <name>frameShape</name> | 648 | <name>frameShape</name> |
649 | <enum>Panel</enum> | 649 | <enum>Panel</enum> |
650 | </property> | 650 | </property> |
651 | <property stdset="1"> | 651 | <property stdset="1"> |
652 | <name>frameShadow</name> | 652 | <name>frameShadow</name> |
653 | <enum>Sunken</enum> | 653 | <enum>Sunken</enum> |
654 | </property> | 654 | </property> |
655 | <property stdset="1"> | 655 | <property stdset="1"> |
656 | <name>text</name> | 656 | <name>text</name> |
657 | <string>00:00:00:00:00:00</string> | 657 | <string>00:00:00:00:00:00</string> |
658 | </property> | 658 | </property> |
659 | <property stdset="1"> | 659 | <property stdset="1"> |
660 | <name>indent</name> | 660 | <name>indent</name> |
661 | <number>0</number> | 661 | <number>0</number> |
662 | </property> | 662 | </property> |
663 | </widget> | 663 | </widget> |
664 | </grid> | 664 | </grid> |
665 | </widget> | 665 | </widget> |
666 | <widget> | 666 | <widget> |
667 | <class>QLabel</class> | 667 | <class>QLabel</class> |
668 | <property stdset="1"> | 668 | <property stdset="1"> |
669 | <name>name</name> | 669 | <name>name</name> |
670 | <cstring>TextLabel2_2</cstring> | 670 | <cstring>TextLabel2_2</cstring> |
671 | </property> | 671 | </property> |
672 | <property stdset="1"> | 672 | <property stdset="1"> |
673 | <name>font</name> | 673 | <name>font</name> |
674 | <font> | 674 | <font> |
675 | <underline>1</underline> | 675 | <underline>1</underline> |
676 | </font> | 676 | </font> |
677 | </property> | 677 | </property> |
678 | <property stdset="1"> | 678 | <property stdset="1"> |
679 | <name>frameShape</name> | 679 | <name>frameShape</name> |
680 | <enum>NoFrame</enum> | 680 | <enum>NoFrame</enum> |
681 | </property> | 681 | </property> |
682 | <property stdset="1"> | 682 | <property stdset="1"> |
683 | <name>margin</name> | 683 | <name>margin</name> |
684 | <number>1</number> | 684 | <number>1</number> |
685 | </property> | 685 | </property> |
686 | <property stdset="1"> | 686 | <property stdset="1"> |
687 | <name>text</name> | 687 | <name>text</name> |
688 | <string>DHCP</string> | 688 | <string>DHCP</string> |
689 | </property> | 689 | </property> |
690 | <property stdset="1"> | 690 | <property stdset="1"> |
691 | <name>indent</name> | 691 | <name>indent</name> |
692 | <number>0</number> | 692 | <number>0</number> |
693 | </property> | 693 | </property> |
694 | </widget> | 694 | </widget> |
695 | <widget> | 695 | <widget> |
696 | <class>QFrame</class> | 696 | <class>QFrame</class> |
697 | <property stdset="1"> | 697 | <property stdset="1"> |
698 | <name>name</name> | 698 | <name>name</name> |
699 | <cstring>DHCP_GB</cstring> | 699 | <cstring>DHCP_GB</cstring> |
700 | </property> | 700 | </property> |
701 | <property stdset="1"> | 701 | <property stdset="1"> |
702 | <name>sizePolicy</name> | 702 | <name>sizePolicy</name> |
703 | <sizepolicy> | 703 | <sizepolicy> |
704 | <hsizetype>7</hsizetype> | 704 | <hsizetype>7</hsizetype> |
705 | <vsizetype>5</vsizetype> | 705 | <vsizetype>5</vsizetype> |
706 | </sizepolicy> | 706 | </sizepolicy> |
707 | </property> | 707 | </property> |
708 | <property stdset="1"> | 708 | <property stdset="1"> |
709 | <name>frameShape</name> | 709 | <name>frameShape</name> |
710 | <enum>NoFrame</enum> | 710 | <enum>NoFrame</enum> |
711 | </property> | 711 | </property> |
712 | <property stdset="1"> | 712 | <property stdset="1"> |
713 | <name>frameShadow</name> | 713 | <name>frameShadow</name> |
714 | <enum>Raised</enum> | 714 | <enum>Raised</enum> |
715 | </property> | 715 | </property> |
716 | <property> | 716 | <property> |
717 | <name>layoutMargin</name> | 717 | <name>layoutMargin</name> |
718 | </property> | 718 | </property> |
719 | <property> | 719 | <property> |
720 | <name>layoutSpacing</name> | 720 | <name>layoutSpacing</name> |
721 | </property> | 721 | </property> |
722 | <grid> | 722 | <grid> |
723 | <property stdset="1"> | 723 | <property stdset="1"> |
724 | <name>margin</name> | 724 | <name>margin</name> |
725 | <number>2</number> | 725 | <number>2</number> |
726 | </property> | 726 | </property> |
727 | <property stdset="1"> | 727 | <property stdset="1"> |
728 | <name>spacing</name> | 728 | <name>spacing</name> |
729 | <number>1</number> | 729 | <number>1</number> |
730 | </property> | 730 | </property> |
731 | <widget row="2" column="0" > | 731 | <widget row="2" column="0" > |
732 | <class>QLabel</class> | 732 | <class>QLabel</class> |
733 | <property stdset="1"> | 733 | <property stdset="1"> |
734 | <name>name</name> | 734 | <name>name</name> |
735 | <cstring>TextLabel9_3</cstring> | 735 | <cstring>TextLabel9_3</cstring> |
736 | </property> | 736 | </property> |
737 | <property stdset="1"> | 737 | <property stdset="1"> |
738 | <name>enabled</name> | 738 | <name>enabled</name> |
739 | <bool>true</bool> | 739 | <bool>true</bool> |
740 | </property> | 740 | </property> |
741 | <property stdset="1"> | 741 | <property stdset="1"> |
742 | <name>sizePolicy</name> | 742 | <name>sizePolicy</name> |
743 | <sizepolicy> | 743 | <sizepolicy> |
744 | <hsizetype>1</hsizetype> | 744 | <hsizetype>1</hsizetype> |
745 | <vsizetype>1</vsizetype> | 745 | <vsizetype>1</vsizetype> |
746 | </sizepolicy> | 746 | </sizepolicy> |
747 | </property> | 747 | </property> |
748 | <property stdset="1"> | 748 | <property stdset="1"> |
749 | <name>text</name> | 749 | <name>text</name> |
750 | <string>Lease Expires</string> | 750 | <string>Lease Expires</string> |
751 | </property> | 751 | </property> |
752 | </widget> | 752 | </widget> |
753 | <widget row="1" column="0" > | 753 | <widget row="1" column="0" > |
754 | <class>QLabel</class> | 754 | <class>QLabel</class> |
755 | <property stdset="1"> | 755 | <property stdset="1"> |
756 | <name>name</name> | 756 | <name>name</name> |
757 | <cstring>TextLabel8_3</cstring> | 757 | <cstring>TextLabel8_3</cstring> |
758 | </property> | 758 | </property> |
759 | <property stdset="1"> | 759 | <property stdset="1"> |
760 | <name>enabled</name> | 760 | <name>enabled</name> |
761 | <bool>true</bool> | 761 | <bool>true</bool> |
762 | </property> | 762 | </property> |
763 | <property stdset="1"> | 763 | <property stdset="1"> |
764 | <name>sizePolicy</name> | 764 | <name>sizePolicy</name> |
765 | <sizepolicy> | 765 | <sizepolicy> |
766 | <hsizetype>0</hsizetype> | 766 | <hsizetype>0</hsizetype> |
767 | <vsizetype>1</vsizetype> | 767 | <vsizetype>1</vsizetype> |
768 | </sizepolicy> | 768 | </sizepolicy> |
769 | </property> | 769 | </property> |
770 | <property stdset="1"> | 770 | <property stdset="1"> |
771 | <name>text</name> | 771 | <name>text</name> |
772 | <string>Lease Obtained</string> | 772 | <string>Lease Obtained</string> |
773 | </property> | 773 | </property> |
774 | </widget> | 774 | </widget> |
775 | <widget row="0" column="1" > | 775 | <widget row="0" column="1" > |
776 | <class>QLabel</class> | 776 | <class>QLabel</class> |
777 | <property stdset="1"> | 777 | <property stdset="1"> |
778 | <name>name</name> | 778 | <name>name</name> |
779 | <cstring>DHCPServer_LBL</cstring> | 779 | <cstring>DHCPServer_LBL</cstring> |
780 | </property> | 780 | </property> |
781 | <property stdset="1"> | 781 | <property stdset="1"> |
782 | <name>enabled</name> | 782 | <name>enabled</name> |
783 | <bool>true</bool> | 783 | <bool>true</bool> |
784 | </property> | 784 | </property> |
785 | <property stdset="1"> | 785 | <property stdset="1"> |
786 | <name>sizePolicy</name> | 786 | <name>sizePolicy</name> |
787 | <sizepolicy> | 787 | <sizepolicy> |
788 | <hsizetype>5</hsizetype> | 788 | <hsizetype>5</hsizetype> |
789 | <vsizetype>1</vsizetype> | 789 | <vsizetype>1</vsizetype> |
790 | </sizepolicy> | 790 | </sizepolicy> |
791 | </property> | 791 | </property> |
792 | <property stdset="1"> | 792 | <property stdset="1"> |
793 | <name>frameShape</name> | 793 | <name>frameShape</name> |
794 | <enum>Panel</enum> | 794 | <enum>Panel</enum> |
795 | </property> | 795 | </property> |
796 | <property stdset="1"> | 796 | <property stdset="1"> |
797 | <name>frameShadow</name> | 797 | <name>frameShadow</name> |
798 | <enum>Sunken</enum> | 798 | <enum>Sunken</enum> |
799 | </property> | 799 | </property> |
800 | <property stdset="1"> | 800 | <property stdset="1"> |
801 | <name>text</name> | 801 | <name>text</name> |
802 | <string></string> | 802 | <string></string> |
803 | </property> | 803 | </property> |
804 | <property stdset="1"> | 804 | <property stdset="1"> |
805 | <name>indent</name> | 805 | <name>indent</name> |
806 | <number>0</number> | 806 | <number>0</number> |
807 | </property> | 807 | </property> |
808 | </widget> | 808 | </widget> |
809 | <widget row="1" column="1" > | 809 | <widget row="1" column="1" > |
810 | <class>QLabel</class> | 810 | <class>QLabel</class> |
811 | <property stdset="1"> | 811 | <property stdset="1"> |
812 | <name>name</name> | 812 | <name>name</name> |
813 | <cstring>LeaseObtained_LBL</cstring> | 813 | <cstring>LeaseObtained_LBL</cstring> |
814 | </property> | 814 | </property> |
815 | <property stdset="1"> | 815 | <property stdset="1"> |
816 | <name>enabled</name> | 816 | <name>enabled</name> |
817 | <bool>true</bool> | 817 | <bool>true</bool> |
818 | </property> | 818 | </property> |
819 | <property stdset="1"> | 819 | <property stdset="1"> |
820 | <name>sizePolicy</name> | 820 | <name>sizePolicy</name> |
821 | <sizepolicy> | 821 | <sizepolicy> |
822 | <hsizetype>5</hsizetype> | 822 | <hsizetype>5</hsizetype> |
823 | <vsizetype>1</vsizetype> | 823 | <vsizetype>1</vsizetype> |
824 | </sizepolicy> | 824 | </sizepolicy> |
825 | </property> | 825 | </property> |
826 | <property stdset="1"> | 826 | <property stdset="1"> |
827 | <name>minimumSize</name> | 827 | <name>minimumSize</name> |
828 | <size> | 828 | <size> |
829 | <width>94</width> | 829 | <width>94</width> |
830 | <height>0</height> | 830 | <height>0</height> |
831 | </size> | 831 | </size> |
832 | </property> | 832 | </property> |
833 | <property stdset="1"> | 833 | <property stdset="1"> |
834 | <name>frameShape</name> | 834 | <name>frameShape</name> |
835 | <enum>Panel</enum> | 835 | <enum>Panel</enum> |
836 | </property> | 836 | </property> |
837 | <property stdset="1"> | 837 | <property stdset="1"> |
838 | <name>frameShadow</name> | 838 | <name>frameShadow</name> |
839 | <enum>Sunken</enum> | 839 | <enum>Sunken</enum> |
840 | </property> | 840 | </property> |
841 | <property stdset="1"> | 841 | <property stdset="1"> |
842 | <name>text</name> | 842 | <name>text</name> |
843 | <string></string> | 843 | <string></string> |
844 | </property> | 844 | </property> |
845 | <property stdset="1"> | 845 | <property stdset="1"> |
846 | <name>indent</name> | 846 | <name>indent</name> |
847 | <number>0</number> | 847 | <number>0</number> |
848 | </property> | 848 | </property> |
849 | </widget> | 849 | </widget> |
850 | <widget row="2" column="1" > | 850 | <widget row="2" column="1" > |
851 | <class>QLabel</class> | 851 | <class>QLabel</class> |
852 | <property stdset="1"> | 852 | <property stdset="1"> |
853 | <name>name</name> | 853 | <name>name</name> |
854 | <cstring>LeaseExpires_LBL</cstring> | 854 | <cstring>LeaseExpires_LBL</cstring> |
855 | </property> | 855 | </property> |
856 | <property stdset="1"> | 856 | <property stdset="1"> |
857 | <name>enabled</name> | 857 | <name>enabled</name> |
858 | <bool>true</bool> | 858 | <bool>true</bool> |
859 | </property> | 859 | </property> |
860 | <property stdset="1"> | 860 | <property stdset="1"> |
861 | <name>sizePolicy</name> | 861 | <name>sizePolicy</name> |
862 | <sizepolicy> | 862 | <sizepolicy> |
863 | <hsizetype>5</hsizetype> | 863 | <hsizetype>5</hsizetype> |
864 | <vsizetype>1</vsizetype> | 864 | <vsizetype>1</vsizetype> |
865 | </sizepolicy> | 865 | </sizepolicy> |
866 | </property> | 866 | </property> |
867 | <property stdset="1"> | 867 | <property stdset="1"> |
868 | <name>frameShape</name> | 868 | <name>frameShape</name> |
869 | <enum>Panel</enum> | 869 | <enum>Panel</enum> |
870 | </property> | 870 | </property> |
871 | <property stdset="1"> | 871 | <property stdset="1"> |
872 | <name>frameShadow</name> | 872 | <name>frameShadow</name> |
873 | <enum>Sunken</enum> | 873 | <enum>Sunken</enum> |
874 | </property> | 874 | </property> |
875 | <property stdset="1"> | 875 | <property stdset="1"> |
876 | <name>text</name> | 876 | <name>text</name> |
877 | <string></string> | 877 | <string></string> |
878 | </property> | 878 | </property> |
879 | <property stdset="1"> | 879 | <property stdset="1"> |
880 | <name>indent</name> | 880 | <name>indent</name> |
881 | <number>0</number> | 881 | <number>0</number> |
882 | </property> | 882 | </property> |
883 | </widget> | 883 | </widget> |
884 | <widget row="0" column="0" > | 884 | <widget row="0" column="0" > |
885 | <class>QLabel</class> | 885 | <class>QLabel</class> |
886 | <property stdset="1"> | 886 | <property stdset="1"> |
887 | <name>name</name> | 887 | <name>name</name> |
888 | <cstring>TextLabel6_3</cstring> | 888 | <cstring>TextLabel6_3</cstring> |
889 | </property> | 889 | </property> |
890 | <property stdset="1"> | 890 | <property stdset="1"> |
891 | <name>enabled</name> | 891 | <name>enabled</name> |
892 | <bool>true</bool> | 892 | <bool>true</bool> |
893 | </property> | 893 | </property> |
894 | <property stdset="1"> | 894 | <property stdset="1"> |
895 | <name>sizePolicy</name> | 895 | <name>sizePolicy</name> |
896 | <sizepolicy> | 896 | <sizepolicy> |
897 | <hsizetype>1</hsizetype> | 897 | <hsizetype>1</hsizetype> |
898 | <vsizetype>1</vsizetype> | 898 | <vsizetype>1</vsizetype> |
899 | </sizepolicy> | 899 | </sizepolicy> |
900 | </property> | 900 | </property> |
901 | <property stdset="1"> | 901 | <property stdset="1"> |
902 | <name>text</name> | 902 | <name>text</name> |
903 | <string>DHCP Server</string> | 903 | <string>DHCP Server</string> |
904 | </property> | 904 | </property> |
905 | </widget> | 905 | </widget> |
906 | </grid> | 906 | </grid> |
907 | </widget> | 907 | </widget> |
908 | <spacer> | 908 | <spacer> |
909 | <property> | 909 | <property> |
910 | <name>name</name> | 910 | <name>name</name> |
911 | <cstring>Spacer16</cstring> | 911 | <cstring>Spacer16</cstring> |
912 | </property> | 912 | </property> |
913 | <property stdset="1"> | 913 | <property stdset="1"> |
914 | <name>orientation</name> | 914 | <name>orientation</name> |
915 | <enum>Vertical</enum> | 915 | <enum>Vertical</enum> |
916 | </property> | 916 | </property> |
917 | <property stdset="1"> | 917 | <property stdset="1"> |
918 | <name>sizeType</name> | 918 | <name>sizeType</name> |
919 | <enum>Expanding</enum> | 919 | <enum>Expanding</enum> |
920 | </property> | 920 | </property> |
921 | <property> | 921 | <property> |
922 | <name>sizeHint</name> | 922 | <name>sizeHint</name> |
923 | <size> | 923 | <size> |
924 | <width>20</width> | 924 | <width>20</width> |
925 | <height>20</height> | 925 | <height>20</height> |
926 | </size> | 926 | </size> |
927 | </property> | 927 | </property> |
928 | </spacer> | 928 | </spacer> |
929 | </vbox> | 929 | </vbox> |
930 | </widget> | 930 | </widget> |
931 | <widget> | 931 | <widget> |
932 | <class>QWidget</class> | 932 | <class>QWidget</class> |
933 | <property stdset="1"> | 933 | <property stdset="1"> |
934 | <name>name</name> | 934 | <name>name</name> |
935 | <cstring>tab</cstring> | 935 | <cstring>tab</cstring> |
936 | </property> | 936 | </property> |
937 | <attribute> | 937 | <attribute> |
938 | <name>title</name> | 938 | <name>title</name> |
939 | <string>Traffic</string> | 939 | <string>Traffic</string> |
940 | </attribute> | 940 | </attribute> |
941 | <vbox> | 941 | <vbox> |
942 | <property stdset="1"> | 942 | <property stdset="1"> |
943 | <name>margin</name> | 943 | <name>margin</name> |
944 | <number>0</number> | 944 | <number>0</number> |
945 | </property> | 945 | </property> |
946 | <property stdset="1"> | 946 | <property stdset="1"> |
947 | <name>spacing</name> | 947 | <name>spacing</name> |
948 | <number>0</number> | 948 | <number>0</number> |
949 | </property> | 949 | </property> |
950 | <widget> | 950 | <widget> |
951 | <class>QLayoutWidget</class> | 951 | <class>QGroupBox</class> |
952 | <property stdset="1"> | 952 | <property stdset="1"> |
953 | <name>name</name> | 953 | <name>name</name> |
954 | <cstring>Layout5</cstring> | 954 | <cstring>Receiving_GB</cstring> |
955 | </property> | 955 | </property> |
956 | <hbox> | ||
957 | <property stdset="1"> | ||
958 | <name>margin</name> | ||
959 | <number>0</number> | ||
960 | </property> | ||
961 | <property stdset="1"> | ||
962 | <name>spacing</name> | ||
963 | <number>6</number> | ||
964 | </property> | ||
965 | <widget> | ||
966 | <class>QLabel</class> | ||
967 | <property stdset="1"> | ||
968 | <name>name</name> | ||
969 | <cstring>TextLabel1_2</cstring> | ||
970 | </property> | ||
971 | <property stdset="1"> | ||
972 | <name>sizePolicy</name> | ||
973 | <sizepolicy> | ||
974 | <hsizetype>0</hsizetype> | ||
975 | <vsizetype>1</vsizetype> | ||
976 | </sizepolicy> | ||
977 | </property> | ||
978 | <property stdset="1"> | ||
979 | <name>text</name> | ||
980 | <string>Receiving</string> | ||
981 | </property> | ||
982 | </widget> | ||
983 | <spacer> | ||
984 | <property> | ||
985 | <name>name</name> | ||
986 | <cstring>Spacer17_2</cstring> | ||
987 | </property> | ||
988 | <property stdset="1"> | ||
989 | <name>orientation</name> | ||
990 | <enum>Horizontal</enum> | ||
991 | </property> | ||
992 | <property stdset="1"> | ||
993 | <name>sizeType</name> | ||
994 | <enum>Expanding</enum> | ||
995 | </property> | ||
996 | <property> | ||
997 | <name>sizeHint</name> | ||
998 | <size> | ||
999 | <width>20</width> | ||
1000 | <height>20</height> | ||
1001 | </size> | ||
1002 | </property> | ||
1003 | </spacer> | ||
1004 | </hbox> | ||
1005 | </widget> | ||
1006 | <widget> | ||
1007 | <class>QLayoutWidget</class> | ||
1008 | <property stdset="1"> | 956 | <property stdset="1"> |
1009 | <name>name</name> | 957 | <name>enabled</name> |
1010 | <cstring>Layout43</cstring> | 958 | <bool>false</bool> |
959 | </property> | ||
960 | <property stdset="1"> | ||
961 | <name>title</name> | ||
962 | <string>Receiving</string> | ||
1011 | </property> | 963 | </property> |
1012 | <property> | 964 | <property> |
1013 | <name>layoutMargin</name> | 965 | <name>layoutMargin</name> |
1014 | </property> | 966 | </property> |
1015 | <property> | 967 | <property> |
1016 | <name>layoutSpacing</name> | 968 | <name>layoutSpacing</name> |
1017 | </property> | 969 | </property> |
1018 | <hbox> | 970 | <vbox> |
1019 | <property stdset="1"> | 971 | <property stdset="1"> |
1020 | <name>margin</name> | 972 | <name>margin</name> |
1021 | <number>2</number> | 973 | <number>4</number> |
1022 | </property> | 974 | </property> |
1023 | <property stdset="1"> | 975 | <property stdset="1"> |
1024 | <name>spacing</name> | 976 | <name>spacing</name> |
1025 | <number>0</number> | 977 | <number>2</number> |
1026 | </property> | 978 | </property> |
1027 | <widget> | 979 | <widget> |
1028 | <class>QFrame</class> | 980 | <class>QLayoutWidget</class> |
1029 | <property stdset="1"> | 981 | <property stdset="1"> |
1030 | <name>name</name> | 982 | <name>name</name> |
1031 | <cstring>Frame114</cstring> | 983 | <cstring>Layout11</cstring> |
1032 | </property> | ||
1033 | <property stdset="1"> | ||
1034 | <name>sizePolicy</name> | ||
1035 | <sizepolicy> | ||
1036 | <hsizetype>0</hsizetype> | ||
1037 | <vsizetype>5</vsizetype> | ||
1038 | </sizepolicy> | ||
1039 | </property> | ||
1040 | <property stdset="1"> | ||
1041 | <name>minimumSize</name> | ||
1042 | <size> | ||
1043 | <width>5</width> | ||
1044 | <height>0</height> | ||
1045 | </size> | ||
1046 | </property> | ||
1047 | <property stdset="1"> | ||
1048 | <name>maximumSize</name> | ||
1049 | <size> | ||
1050 | <width>5</width> | ||
1051 | <height>32767</height> | ||
1052 | </size> | ||
1053 | </property> | ||
1054 | <property stdset="1"> | ||
1055 | <name>frameShape</name> | ||
1056 | <enum>NoFrame</enum> | ||
1057 | </property> | ||
1058 | <property stdset="1"> | ||
1059 | <name>frameShadow</name> | ||
1060 | <enum>Raised</enum> | ||
1061 | </property> | ||
1062 | </widget> | ||
1063 | <widget> | ||
1064 | <class>QFrame</class> | ||
1065 | <property stdset="1"> | ||
1066 | <name>name</name> | ||
1067 | <cstring>Rcv_GB</cstring> | ||
1068 | </property> | ||
1069 | <property stdset="1"> | ||
1070 | <name>enabled</name> | ||
1071 | <bool>false</bool> | ||
1072 | </property> | ||
1073 | <property stdset="1"> | ||
1074 | <name>sizePolicy</name> | ||
1075 | <sizepolicy> | ||
1076 | <hsizetype>7</hsizetype> | ||
1077 | <vsizetype>5</vsizetype> | ||
1078 | </sizepolicy> | ||
1079 | </property> | ||
1080 | <property stdset="1"> | ||
1081 | <name>frameShape</name> | ||
1082 | <enum>NoFrame</enum> | ||
1083 | </property> | ||
1084 | <property stdset="1"> | ||
1085 | <name>frameShadow</name> | ||
1086 | <enum>Raised</enum> | ||
1087 | </property> | ||
1088 | <property> | ||
1089 | <name>layoutMargin</name> | ||
1090 | </property> | 984 | </property> |
1091 | <property> | 985 | <property> |
1092 | <name>layoutSpacing</name> | 986 | <name>layoutSpacing</name> |
1093 | </property> | 987 | </property> |
1094 | <grid> | 988 | <hbox> |
1095 | <property stdset="1"> | 989 | <property stdset="1"> |
1096 | <name>margin</name> | 990 | <name>margin</name> |
1097 | <number>0</number> | 991 | <number>0</number> |
1098 | </property> | 992 | </property> |
1099 | <property stdset="1"> | 993 | <property stdset="1"> |
1100 | <name>spacing</name> | 994 | <name>spacing</name> |
1101 | <number>1</number> | 995 | <number>2</number> |
1102 | </property> | 996 | </property> |
1103 | <widget row="1" column="0" > | 997 | <widget> |
1104 | <class>QLabel</class> | 998 | <class>QLabel</class> |
1105 | <property stdset="1"> | 999 | <property stdset="1"> |
1106 | <name>name</name> | 1000 | <name>name</name> |
1107 | <cstring>TextLabel1_5_9</cstring> | 1001 | <cstring>xxxxxxxxxxxxx</cstring> |
1108 | </property> | 1002 | </property> |
1109 | <property stdset="1"> | 1003 | <property stdset="1"> |
1110 | <name>text</name> | 1004 | <name>text</name> |
1111 | <string>Errors</string> | 1005 | <string>Pkt</string> |
1112 | </property> | 1006 | </property> |
1113 | </widget> | 1007 | </widget> |
1114 | <widget row="0" column="1" rowspan="1" colspan="3" > | 1008 | <widget> |
1009 | <class>QLabel</class> | ||
1010 | <property stdset="1"> | ||
1011 | <name>name</name> | ||
1012 | <cstring>RcvPackets_LBL</cstring> | ||
1013 | </property> | ||
1014 | <property stdset="1"> | ||
1015 | <name>sizePolicy</name> | ||
1016 | <sizepolicy> | ||
1017 | <hsizetype>7</hsizetype> | ||
1018 | <vsizetype>1</vsizetype> | ||
1019 | </sizepolicy> | ||
1020 | </property> | ||
1021 | <property stdset="1"> | ||
1022 | <name>frameShape</name> | ||
1023 | <enum>Panel</enum> | ||
1024 | </property> | ||
1025 | <property stdset="1"> | ||
1026 | <name>frameShadow</name> | ||
1027 | <enum>Sunken</enum> | ||
1028 | </property> | ||
1029 | <property stdset="1"> | ||
1030 | <name>indent</name> | ||
1031 | <number>0</number> | ||
1032 | </property> | ||
1033 | </widget> | ||
1034 | <widget> | ||
1035 | <class>QLabel</class> | ||
1036 | <property stdset="1"> | ||
1037 | <name>name</name> | ||
1038 | <cstring>TextLabel1_5_3_4</cstring> | ||
1039 | </property> | ||
1040 | <property stdset="1"> | ||
1041 | <name>text</name> | ||
1042 | <string>Bytes</string> | ||
1043 | </property> | ||
1044 | </widget> | ||
1045 | <widget> | ||
1115 | <class>QLabel</class> | 1046 | <class>QLabel</class> |
1116 | <property stdset="1"> | 1047 | <property stdset="1"> |
1117 | <name>name</name> | 1048 | <name>name</name> |
1118 | <cstring>RcvBytes_LBL</cstring> | 1049 | <cstring>RcvBytes_LBL</cstring> |
1119 | </property> | 1050 | </property> |
1120 | <property stdset="1"> | 1051 | <property stdset="1"> |
1121 | <name>sizePolicy</name> | 1052 | <name>sizePolicy</name> |
1122 | <sizepolicy> | 1053 | <sizepolicy> |
1123 | <hsizetype>7</hsizetype> | 1054 | <hsizetype>7</hsizetype> |
1124 | <vsizetype>1</vsizetype> | 1055 | <vsizetype>1</vsizetype> |
1125 | </sizepolicy> | 1056 | </sizepolicy> |
1126 | </property> | 1057 | </property> |
1127 | <property stdset="1"> | 1058 | <property stdset="1"> |
1128 | <name>frameShape</name> | 1059 | <name>frameShape</name> |
1129 | <enum>Panel</enum> | 1060 | <enum>Panel</enum> |
1130 | </property> | 1061 | </property> |
1131 | <property stdset="1"> | 1062 | <property stdset="1"> |
1132 | <name>frameShadow</name> | 1063 | <name>frameShadow</name> |
1133 | <enum>Sunken</enum> | 1064 | <enum>Sunken</enum> |
1134 | </property> | 1065 | </property> |
1135 | <property stdset="1"> | 1066 | <property stdset="1"> |
1136 | <name>indent</name> | 1067 | <name>indent</name> |
1137 | <number>0</number> | 1068 | <number>0</number> |
1138 | </property> | 1069 | </property> |
1139 | </widget> | 1070 | </widget> |
1140 | <widget row="1" column="3" > | 1071 | <widget> |
1141 | <class>QLabel</class> | 1072 | <class>QLabel</class> |
1142 | <property stdset="1"> | 1073 | <property stdset="1"> |
1143 | <name>name</name> | 1074 | <name>name</name> |
1144 | <cstring>RcvDropped_LBL</cstring> | 1075 | <cstring>TextLabel1_5_3_4_2</cstring> |
1076 | </property> | ||
1077 | <property stdset="1"> | ||
1078 | <name>text</name> | ||
1079 | <string>ODO</string> | ||
1080 | </property> | ||
1081 | </widget> | ||
1082 | <widget> | ||
1083 | <class>QLabel</class> | ||
1084 | <property stdset="1"> | ||
1085 | <name>name</name> | ||
1086 | <cstring>RcvODO_LBL</cstring> | ||
1145 | </property> | 1087 | </property> |
1146 | <property stdset="1"> | 1088 | <property stdset="1"> |
1147 | <name>sizePolicy</name> | 1089 | <name>sizePolicy</name> |
1148 | <sizepolicy> | 1090 | <sizepolicy> |
1149 | <hsizetype>7</hsizetype> | 1091 | <hsizetype>7</hsizetype> |
1150 | <vsizetype>1</vsizetype> | 1092 | <vsizetype>1</vsizetype> |
1151 | </sizepolicy> | 1093 | </sizepolicy> |
1152 | </property> | 1094 | </property> |
1153 | <property stdset="1"> | 1095 | <property stdset="1"> |
1154 | <name>frameShape</name> | 1096 | <name>frameShape</name> |
1155 | <enum>Panel</enum> | 1097 | <enum>Panel</enum> |
1156 | </property> | 1098 | </property> |
1157 | <property stdset="1"> | 1099 | <property stdset="1"> |
1158 | <name>frameShadow</name> | 1100 | <name>frameShadow</name> |
1159 | <enum>Sunken</enum> | 1101 | <enum>Sunken</enum> |
1160 | </property> | 1102 | </property> |
1161 | <property stdset="1"> | 1103 | <property stdset="1"> |
1162 | <name>indent</name> | 1104 | <name>indent</name> |
1163 | <number>0</number> | 1105 | <number>0</number> |
1164 | </property> | 1106 | </property> |
1165 | </widget> | 1107 | </widget> |
1166 | <widget row="1" column="1" > | 1108 | </hbox> |
1109 | </widget> | ||
1110 | <widget> | ||
1111 | <class>QLayoutWidget</class> | ||
1112 | <property stdset="1"> | ||
1113 | <name>name</name> | ||
1114 | <cstring>Layout12</cstring> | ||
1115 | </property> | ||
1116 | <property> | ||
1117 | <name>layoutSpacing</name> | ||
1118 | </property> | ||
1119 | <hbox> | ||
1120 | <property stdset="1"> | ||
1121 | <name>margin</name> | ||
1122 | <number>0</number> | ||
1123 | </property> | ||
1124 | <property stdset="1"> | ||
1125 | <name>spacing</name> | ||
1126 | <number>2</number> | ||
1127 | </property> | ||
1128 | <widget> | ||
1129 | <class>QLabel</class> | ||
1130 | <property stdset="1"> | ||
1131 | <name>name</name> | ||
1132 | <cstring>TextLabel1_5_9</cstring> | ||
1133 | </property> | ||
1134 | <property stdset="1"> | ||
1135 | <name>text</name> | ||
1136 | <string>Errors</string> | ||
1137 | </property> | ||
1138 | </widget> | ||
1139 | <widget> | ||
1167 | <class>QLabel</class> | 1140 | <class>QLabel</class> |
1168 | <property stdset="1"> | 1141 | <property stdset="1"> |
1169 | <name>name</name> | 1142 | <name>name</name> |
1170 | <cstring>RcvErrors_LBL</cstring> | 1143 | <cstring>RcvErrors_LBL</cstring> |
1171 | </property> | 1144 | </property> |
1172 | <property stdset="1"> | 1145 | <property stdset="1"> |
1173 | <name>sizePolicy</name> | 1146 | <name>sizePolicy</name> |
1174 | <sizepolicy> | 1147 | <sizepolicy> |
1175 | <hsizetype>7</hsizetype> | 1148 | <hsizetype>7</hsizetype> |
1176 | <vsizetype>1</vsizetype> | 1149 | <vsizetype>1</vsizetype> |
1177 | </sizepolicy> | 1150 | </sizepolicy> |
1178 | </property> | 1151 | </property> |
1179 | <property stdset="1"> | 1152 | <property stdset="1"> |
1180 | <name>frameShape</name> | 1153 | <name>frameShape</name> |
1181 | <enum>Panel</enum> | 1154 | <enum>Panel</enum> |
1182 | </property> | 1155 | </property> |
1183 | <property stdset="1"> | 1156 | <property stdset="1"> |
1184 | <name>frameShadow</name> | 1157 | <name>frameShadow</name> |
1185 | <enum>Sunken</enum> | 1158 | <enum>Sunken</enum> |
1186 | </property> | 1159 | </property> |
1187 | <property stdset="1"> | 1160 | <property stdset="1"> |
1188 | <name>indent</name> | 1161 | <name>indent</name> |
1189 | <number>0</number> | 1162 | <number>0</number> |
1190 | </property> | 1163 | </property> |
1191 | </widget> | 1164 | </widget> |
1192 | <widget row="1" column="2" > | 1165 | <widget> |
1193 | <class>QLabel</class> | 1166 | <class>QLabel</class> |
1194 | <property stdset="1"> | 1167 | <property stdset="1"> |
1195 | <name>name</name> | 1168 | <name>name</name> |
1196 | <cstring>TextLabel1_5_4</cstring> | 1169 | <cstring>TextLabel1_5_4</cstring> |
1197 | </property> | 1170 | </property> |
1198 | <property stdset="1"> | 1171 | <property stdset="1"> |
1199 | <name>text</name> | 1172 | <name>text</name> |
1200 | <string>Dropped</string> | 1173 | <string>Dropped</string> |
1201 | </property> | 1174 | </property> |
1202 | </widget> | 1175 | </widget> |
1203 | <widget row="0" column="0" > | 1176 | <widget> |
1204 | <class>QLabel</class> | 1177 | <class>QLabel</class> |
1205 | <property stdset="1"> | 1178 | <property stdset="1"> |
1206 | <name>name</name> | 1179 | <name>name</name> |
1207 | <cstring>TextLabel1_5_3</cstring> | 1180 | <cstring>RcvDropped_LBL</cstring> |
1208 | </property> | 1181 | </property> |
1209 | <property stdset="1"> | 1182 | <property stdset="1"> |
1210 | <name>text</name> | 1183 | <name>sizePolicy</name> |
1211 | <string>Bytes</string> | 1184 | <sizepolicy> |
1185 | <hsizetype>7</hsizetype> | ||
1186 | <vsizetype>1</vsizetype> | ||
1187 | </sizepolicy> | ||
1188 | </property> | ||
1189 | <property stdset="1"> | ||
1190 | <name>frameShape</name> | ||
1191 | <enum>Panel</enum> | ||
1192 | </property> | ||
1193 | <property stdset="1"> | ||
1194 | <name>frameShadow</name> | ||
1195 | <enum>Sunken</enum> | ||
1196 | </property> | ||
1197 | <property stdset="1"> | ||
1198 | <name>indent</name> | ||
1199 | <number>0</number> | ||
1212 | </property> | 1200 | </property> |
1213 | </widget> | 1201 | </widget> |
1214 | </grid> | 1202 | </hbox> |
1215 | </widget> | 1203 | </widget> |
1216 | </hbox> | 1204 | </vbox> |
1217 | </widget> | 1205 | </widget> |
1218 | <widget> | 1206 | <widget> |
1219 | <class>QLayoutWidget</class> | 1207 | <class>QFrame</class> |
1220 | <property stdset="1"> | 1208 | <property stdset="1"> |
1221 | <name>name</name> | 1209 | <name>name</name> |
1222 | <cstring>Layout6</cstring> | 1210 | <cstring>Frame114</cstring> |
1211 | </property> | ||
1212 | <property stdset="1"> | ||
1213 | <name>sizePolicy</name> | ||
1214 | <sizepolicy> | ||
1215 | <hsizetype>0</hsizetype> | ||
1216 | <vsizetype>5</vsizetype> | ||
1217 | </sizepolicy> | ||
1218 | </property> | ||
1219 | <property stdset="1"> | ||
1220 | <name>minimumSize</name> | ||
1221 | <size> | ||
1222 | <width>5</width> | ||
1223 | <height>0</height> | ||
1224 | </size> | ||
1225 | </property> | ||
1226 | <property stdset="1"> | ||
1227 | <name>maximumSize</name> | ||
1228 | <size> | ||
1229 | <width>5</width> | ||
1230 | <height>32767</height> | ||
1231 | </size> | ||
1232 | </property> | ||
1233 | <property stdset="1"> | ||
1234 | <name>frameShape</name> | ||
1235 | <enum>NoFrame</enum> | ||
1236 | </property> | ||
1237 | <property stdset="1"> | ||
1238 | <name>frameShadow</name> | ||
1239 | <enum>Raised</enum> | ||
1223 | </property> | 1240 | </property> |
1224 | <hbox> | ||
1225 | <property stdset="1"> | ||
1226 | <name>margin</name> | ||
1227 | <number>0</number> | ||
1228 | </property> | ||
1229 | <property stdset="1"> | ||
1230 | <name>spacing</name> | ||
1231 | <number>6</number> | ||
1232 | </property> | ||
1233 | <widget> | ||
1234 | <class>QLabel</class> | ||
1235 | <property stdset="1"> | ||
1236 | <name>name</name> | ||
1237 | <cstring>TextLabel1</cstring> | ||
1238 | </property> | ||
1239 | <property stdset="1"> | ||
1240 | <name>sizePolicy</name> | ||
1241 | <sizepolicy> | ||
1242 | <hsizetype>0</hsizetype> | ||
1243 | <vsizetype>1</vsizetype> | ||
1244 | </sizepolicy> | ||
1245 | </property> | ||
1246 | <property stdset="1"> | ||
1247 | <name>text</name> | ||
1248 | <string>Transmitting</string> | ||
1249 | </property> | ||
1250 | </widget> | ||
1251 | <spacer> | ||
1252 | <property> | ||
1253 | <name>name</name> | ||
1254 | <cstring>Spacer18_2</cstring> | ||
1255 | </property> | ||
1256 | <property stdset="1"> | ||
1257 | <name>orientation</name> | ||
1258 | <enum>Horizontal</enum> | ||
1259 | </property> | ||
1260 | <property stdset="1"> | ||
1261 | <name>sizeType</name> | ||
1262 | <enum>Expanding</enum> | ||
1263 | </property> | ||
1264 | <property> | ||
1265 | <name>sizeHint</name> | ||
1266 | <size> | ||
1267 | <width>20</width> | ||
1268 | <height>20</height> | ||
1269 | </size> | ||
1270 | </property> | ||
1271 | </spacer> | ||
1272 | </hbox> | ||
1273 | </widget> | 1241 | </widget> |
1274 | <widget> | 1242 | <widget> |
1275 | <class>QLayoutWidget</class> | 1243 | <class>QFrame</class> |
1276 | <property stdset="1"> | 1244 | <property stdset="1"> |
1277 | <name>name</name> | 1245 | <name>name</name> |
1278 | <cstring>Layout44</cstring> | 1246 | <cstring>Frame115</cstring> |
1247 | </property> | ||
1248 | <property stdset="1"> | ||
1249 | <name>sizePolicy</name> | ||
1250 | <sizepolicy> | ||
1251 | <hsizetype>0</hsizetype> | ||
1252 | <vsizetype>5</vsizetype> | ||
1253 | </sizepolicy> | ||
1254 | </property> | ||
1255 | <property stdset="1"> | ||
1256 | <name>minimumSize</name> | ||
1257 | <size> | ||
1258 | <width>5</width> | ||
1259 | <height>0</height> | ||
1260 | </size> | ||
1261 | </property> | ||
1262 | <property stdset="1"> | ||
1263 | <name>maximumSize</name> | ||
1264 | <size> | ||
1265 | <width>5</width> | ||
1266 | <height>32767</height> | ||
1267 | </size> | ||
1268 | </property> | ||
1269 | <property stdset="1"> | ||
1270 | <name>frameShape</name> | ||
1271 | <enum>NoFrame</enum> | ||
1272 | </property> | ||
1273 | <property stdset="1"> | ||
1274 | <name>frameShadow</name> | ||
1275 | <enum>Plain</enum> | ||
1276 | </property> | ||
1277 | </widget> | ||
1278 | <widget> | ||
1279 | <class>QGroupBox</class> | ||
1280 | <property stdset="1"> | ||
1281 | <name>name</name> | ||
1282 | <cstring>Sending_GB</cstring> | ||
1283 | </property> | ||
1284 | <property stdset="1"> | ||
1285 | <name>enabled</name> | ||
1286 | <bool>false</bool> | ||
1287 | </property> | ||
1288 | <property stdset="1"> | ||
1289 | <name>title</name> | ||
1290 | <string>Sending</string> | ||
1279 | </property> | 1291 | </property> |
1280 | <property> | 1292 | <property> |
1281 | <name>layoutMargin</name> | 1293 | <name>layoutMargin</name> |
1282 | </property> | 1294 | </property> |
1283 | <property> | 1295 | <property> |
1284 | <name>layoutSpacing</name> | 1296 | <name>layoutSpacing</name> |
1285 | </property> | 1297 | </property> |
1286 | <hbox> | 1298 | <vbox> |
1287 | <property stdset="1"> | 1299 | <property stdset="1"> |
1288 | <name>margin</name> | 1300 | <name>margin</name> |
1289 | <number>2</number> | 1301 | <number>4</number> |
1290 | </property> | 1302 | </property> |
1291 | <property stdset="1"> | 1303 | <property stdset="1"> |
1292 | <name>spacing</name> | 1304 | <name>spacing</name> |
1293 | <number>0</number> | 1305 | <number>2</number> |
1294 | </property> | 1306 | </property> |
1295 | <widget> | 1307 | <widget> |
1296 | <class>QFrame</class> | 1308 | <class>QLayoutWidget</class> |
1297 | <property stdset="1"> | 1309 | <property stdset="1"> |
1298 | <name>name</name> | 1310 | <name>name</name> |
1299 | <cstring>Frame115</cstring> | 1311 | <cstring>Layout13</cstring> |
1300 | </property> | ||
1301 | <property stdset="1"> | ||
1302 | <name>sizePolicy</name> | ||
1303 | <sizepolicy> | ||
1304 | <hsizetype>0</hsizetype> | ||
1305 | <vsizetype>5</vsizetype> | ||
1306 | </sizepolicy> | ||
1307 | </property> | ||
1308 | <property stdset="1"> | ||
1309 | <name>minimumSize</name> | ||
1310 | <size> | ||
1311 | <width>5</width> | ||
1312 | <height>0</height> | ||
1313 | </size> | ||
1314 | </property> | ||
1315 | <property stdset="1"> | ||
1316 | <name>maximumSize</name> | ||
1317 | <size> | ||
1318 | <width>5</width> | ||
1319 | <height>32767</height> | ||
1320 | </size> | ||
1321 | </property> | ||
1322 | <property stdset="1"> | ||
1323 | <name>frameShape</name> | ||
1324 | <enum>NoFrame</enum> | ||
1325 | </property> | ||
1326 | <property stdset="1"> | ||
1327 | <name>frameShadow</name> | ||
1328 | <enum>Plain</enum> | ||
1329 | </property> | ||
1330 | </widget> | ||
1331 | <widget> | ||
1332 | <class>QFrame</class> | ||
1333 | <property stdset="1"> | ||
1334 | <name>name</name> | ||
1335 | <cstring>Snd_GB</cstring> | ||
1336 | </property> | ||
1337 | <property stdset="1"> | ||
1338 | <name>enabled</name> | ||
1339 | <bool>false</bool> | ||
1340 | </property> | ||
1341 | <property stdset="1"> | ||
1342 | <name>sizePolicy</name> | ||
1343 | <sizepolicy> | ||
1344 | <hsizetype>7</hsizetype> | ||
1345 | <vsizetype>5</vsizetype> | ||
1346 | </sizepolicy> | ||
1347 | </property> | ||
1348 | <property stdset="1"> | ||
1349 | <name>frameShape</name> | ||
1350 | <enum>NoFrame</enum> | ||
1351 | </property> | ||
1352 | <property stdset="1"> | ||
1353 | <name>frameShadow</name> | ||
1354 | <enum>Raised</enum> | ||
1355 | </property> | ||
1356 | <property> | ||
1357 | <name>layoutMargin</name> | ||
1358 | </property> | 1312 | </property> |
1359 | <property> | 1313 | <property> |
1360 | <name>layoutSpacing</name> | 1314 | <name>layoutSpacing</name> |
1361 | </property> | 1315 | </property> |
1362 | <grid> | 1316 | <hbox> |
1363 | <property stdset="1"> | 1317 | <property stdset="1"> |
1364 | <name>margin</name> | 1318 | <name>margin</name> |
1365 | <number>0</number> | 1319 | <number>0</number> |
1366 | </property> | 1320 | </property> |
1367 | <property stdset="1"> | 1321 | <property stdset="1"> |
1368 | <name>spacing</name> | 1322 | <name>spacing</name> |
1369 | <number>1</number> | 1323 | <number>2</number> |
1370 | </property> | 1324 | </property> |
1371 | <widget row="1" column="0" > | 1325 | <widget> |
1372 | <class>QLabel</class> | 1326 | <class>QLabel</class> |
1373 | <property stdset="1"> | 1327 | <property stdset="1"> |
1374 | <name>name</name> | 1328 | <name>name</name> |
1375 | <cstring>TextLabel1_5_9_2</cstring> | 1329 | <cstring>dfsfadf</cstring> |
1376 | </property> | 1330 | </property> |
1377 | <property stdset="1"> | 1331 | <property stdset="1"> |
1378 | <name>text</name> | 1332 | <name>text</name> |
1379 | <string>Errors</string> | 1333 | <string>Pkt</string> |
1380 | </property> | 1334 | </property> |
1381 | </widget> | 1335 | </widget> |
1382 | <widget row="1" column="2" > | 1336 | <widget> |
1383 | <class>QLabel</class> | 1337 | <class>QLabel</class> |
1384 | <property stdset="1"> | 1338 | <property stdset="1"> |
1385 | <name>name</name> | 1339 | <name>name</name> |
1386 | <cstring>TextLabel1_5_4_2</cstring> | 1340 | <cstring>SndPackets_LBL</cstring> |
1387 | </property> | 1341 | </property> |
1388 | <property stdset="1"> | 1342 | <property stdset="1"> |
1389 | <name>text</name> | 1343 | <name>sizePolicy</name> |
1390 | <string>Dropped</string> | 1344 | <sizepolicy> |
1345 | <hsizetype>7</hsizetype> | ||
1346 | <vsizetype>1</vsizetype> | ||
1347 | </sizepolicy> | ||
1348 | </property> | ||
1349 | <property stdset="1"> | ||
1350 | <name>frameShape</name> | ||
1351 | <enum>Panel</enum> | ||
1352 | </property> | ||
1353 | <property stdset="1"> | ||
1354 | <name>frameShadow</name> | ||
1355 | <enum>Sunken</enum> | ||
1356 | </property> | ||
1357 | <property stdset="1"> | ||
1358 | <name>indent</name> | ||
1359 | <number>0</number> | ||
1391 | </property> | 1360 | </property> |
1392 | </widget> | 1361 | </widget> |
1393 | <widget row="0" column="0" > | 1362 | <widget> |
1394 | <class>QLabel</class> | 1363 | <class>QLabel</class> |
1395 | <property stdset="1"> | 1364 | <property stdset="1"> |
1396 | <name>name</name> | 1365 | <name>name</name> |
1397 | <cstring>TextLabel1_5_3_2</cstring> | 1366 | <cstring>TextLabel1_5_3_4_4</cstring> |
1398 | </property> | 1367 | </property> |
1399 | <property stdset="1"> | 1368 | <property stdset="1"> |
1400 | <name>text</name> | 1369 | <name>text</name> |
1401 | <string>Bytes</string> | 1370 | <string>Bytes</string> |
1402 | </property> | 1371 | </property> |
1403 | </widget> | 1372 | </widget> |
1404 | <widget row="1" column="3" > | 1373 | <widget> |
1405 | <class>QLabel</class> | 1374 | <class>QLabel</class> |
1406 | <property stdset="1"> | 1375 | <property stdset="1"> |
1407 | <name>name</name> | 1376 | <name>name</name> |
1408 | <cstring>SndDropped_LBL</cstring> | 1377 | <cstring>SndBytes_LBL</cstring> |
1378 | </property> | ||
1379 | <property stdset="1"> | ||
1380 | <name>sizePolicy</name> | ||
1381 | <sizepolicy> | ||
1382 | <hsizetype>7</hsizetype> | ||
1383 | <vsizetype>1</vsizetype> | ||
1384 | </sizepolicy> | ||
1385 | </property> | ||
1386 | <property stdset="1"> | ||
1387 | <name>frameShape</name> | ||
1388 | <enum>Panel</enum> | ||
1389 | </property> | ||
1390 | <property stdset="1"> | ||
1391 | <name>frameShadow</name> | ||
1392 | <enum>Sunken</enum> | ||
1393 | </property> | ||
1394 | <property stdset="1"> | ||
1395 | <name>indent</name> | ||
1396 | <number>0</number> | ||
1397 | </property> | ||
1398 | </widget> | ||
1399 | <widget> | ||
1400 | <class>QLabel</class> | ||
1401 | <property stdset="1"> | ||
1402 | <name>name</name> | ||
1403 | <cstring>TextLabel1_5_3_4_2_3</cstring> | ||
1404 | </property> | ||
1405 | <property stdset="1"> | ||
1406 | <name>text</name> | ||
1407 | <string>ODO</string> | ||
1408 | </property> | ||
1409 | </widget> | ||
1410 | <widget> | ||
1411 | <class>QLabel</class> | ||
1412 | <property stdset="1"> | ||
1413 | <name>name</name> | ||
1414 | <cstring>SndODO_LBL</cstring> | ||
1409 | </property> | 1415 | </property> |
1410 | <property stdset="1"> | 1416 | <property stdset="1"> |
1411 | <name>sizePolicy</name> | 1417 | <name>sizePolicy</name> |
1412 | <sizepolicy> | 1418 | <sizepolicy> |
1413 | <hsizetype>7</hsizetype> | 1419 | <hsizetype>7</hsizetype> |
1414 | <vsizetype>1</vsizetype> | 1420 | <vsizetype>1</vsizetype> |
1415 | </sizepolicy> | 1421 | </sizepolicy> |
1416 | </property> | 1422 | </property> |
1417 | <property stdset="1"> | 1423 | <property stdset="1"> |
1418 | <name>frameShape</name> | 1424 | <name>frameShape</name> |
1419 | <enum>Panel</enum> | 1425 | <enum>Panel</enum> |
1420 | </property> | 1426 | </property> |
1421 | <property stdset="1"> | 1427 | <property stdset="1"> |
1422 | <name>frameShadow</name> | 1428 | <name>frameShadow</name> |
1423 | <enum>Sunken</enum> | 1429 | <enum>Sunken</enum> |
1424 | </property> | 1430 | </property> |
1425 | <property stdset="1"> | 1431 | <property stdset="1"> |
1426 | <name>indent</name> | 1432 | <name>indent</name> |
1427 | <number>0</number> | 1433 | <number>0</number> |
1428 | </property> | 1434 | </property> |
1429 | </widget> | 1435 | </widget> |
1430 | <widget row="1" column="1" > | 1436 | </hbox> |
1437 | </widget> | ||
1438 | <widget> | ||
1439 | <class>QLayoutWidget</class> | ||
1440 | <property stdset="1"> | ||
1441 | <name>name</name> | ||
1442 | <cstring>Layout14</cstring> | ||
1443 | </property> | ||
1444 | <property> | ||
1445 | <name>layoutSpacing</name> | ||
1446 | </property> | ||
1447 | <hbox> | ||
1448 | <property stdset="1"> | ||
1449 | <name>margin</name> | ||
1450 | <number>0</number> | ||
1451 | </property> | ||
1452 | <property stdset="1"> | ||
1453 | <name>spacing</name> | ||
1454 | <number>2</number> | ||
1455 | </property> | ||
1456 | <widget> | ||
1457 | <class>QLabel</class> | ||
1458 | <property stdset="1"> | ||
1459 | <name>name</name> | ||
1460 | <cstring>TextLabel1_5_9_3</cstring> | ||
1461 | </property> | ||
1462 | <property stdset="1"> | ||
1463 | <name>text</name> | ||
1464 | <string>Errors</string> | ||
1465 | </property> | ||
1466 | </widget> | ||
1467 | <widget> | ||
1431 | <class>QLabel</class> | 1468 | <class>QLabel</class> |
1432 | <property stdset="1"> | 1469 | <property stdset="1"> |
1433 | <name>name</name> | 1470 | <name>name</name> |
1434 | <cstring>SndErrors_LBL</cstring> | 1471 | <cstring>SndErrors_LBL</cstring> |
1435 | </property> | 1472 | </property> |
1436 | <property stdset="1"> | 1473 | <property stdset="1"> |
1437 | <name>sizePolicy</name> | 1474 | <name>sizePolicy</name> |
1438 | <sizepolicy> | 1475 | <sizepolicy> |
1439 | <hsizetype>7</hsizetype> | 1476 | <hsizetype>7</hsizetype> |
1440 | <vsizetype>1</vsizetype> | 1477 | <vsizetype>1</vsizetype> |
1441 | </sizepolicy> | 1478 | </sizepolicy> |
1442 | </property> | 1479 | </property> |
1443 | <property stdset="1"> | 1480 | <property stdset="1"> |
1444 | <name>frameShape</name> | 1481 | <name>frameShape</name> |
1445 | <enum>Panel</enum> | 1482 | <enum>Panel</enum> |
1446 | </property> | 1483 | </property> |
1447 | <property stdset="1"> | 1484 | <property stdset="1"> |
1448 | <name>frameShadow</name> | 1485 | <name>frameShadow</name> |
1449 | <enum>Sunken</enum> | 1486 | <enum>Sunken</enum> |
1450 | </property> | 1487 | </property> |
1451 | <property stdset="1"> | 1488 | <property stdset="1"> |
1452 | <name>indent</name> | 1489 | <name>indent</name> |
1453 | <number>0</number> | 1490 | <number>0</number> |
1454 | </property> | 1491 | </property> |
1455 | </widget> | 1492 | </widget> |
1456 | <widget row="0" column="1" rowspan="1" colspan="3" > | 1493 | <widget> |
1457 | <class>QLabel</class> | 1494 | <class>QLabel</class> |
1458 | <property stdset="1"> | 1495 | <property stdset="1"> |
1459 | <name>name</name> | 1496 | <name>name</name> |
1460 | <cstring>SndBytes_LBL</cstring> | 1497 | <cstring>TextLabel1_5_4_3</cstring> |
1498 | </property> | ||
1499 | <property stdset="1"> | ||
1500 | <name>text</name> | ||
1501 | <string>Dropped</string> | ||
1502 | </property> | ||
1503 | </widget> | ||
1504 | <widget> | ||
1505 | <class>QLabel</class> | ||
1506 | <property stdset="1"> | ||
1507 | <name>name</name> | ||
1508 | <cstring>SndDropped_LBL</cstring> | ||
1461 | </property> | 1509 | </property> |
1462 | <property stdset="1"> | 1510 | <property stdset="1"> |
1463 | <name>sizePolicy</name> | 1511 | <name>sizePolicy</name> |
1464 | <sizepolicy> | 1512 | <sizepolicy> |
1465 | <hsizetype>7</hsizetype> | 1513 | <hsizetype>7</hsizetype> |
1466 | <vsizetype>1</vsizetype> | 1514 | <vsizetype>1</vsizetype> |
1467 | </sizepolicy> | 1515 | </sizepolicy> |
1468 | </property> | 1516 | </property> |
1469 | <property stdset="1"> | 1517 | <property stdset="1"> |
1470 | <name>frameShape</name> | 1518 | <name>frameShape</name> |
1471 | <enum>Panel</enum> | 1519 | <enum>Panel</enum> |
1472 | </property> | 1520 | </property> |
1473 | <property stdset="1"> | 1521 | <property stdset="1"> |
1474 | <name>frameShadow</name> | 1522 | <name>frameShadow</name> |
1475 | <enum>Sunken</enum> | 1523 | <enum>Sunken</enum> |
1476 | </property> | 1524 | </property> |
1477 | <property stdset="1"> | 1525 | <property stdset="1"> |
1478 | <name>indent</name> | 1526 | <name>indent</name> |
1479 | <number>0</number> | 1527 | <number>0</number> |
1480 | </property> | 1528 | </property> |
1481 | </widget> | 1529 | </widget> |
1482 | </grid> | 1530 | </hbox> |
1483 | </widget> | 1531 | </widget> |
1484 | </hbox> | 1532 | </vbox> |
1485 | </widget> | 1533 | </widget> |
1486 | <widget> | 1534 | <widget> |
1487 | <class>QLayoutWidget</class> | 1535 | <class>QGroupBox</class> |
1488 | <property stdset="1"> | 1536 | <property stdset="1"> |
1489 | <name>name</name> | 1537 | <name>name</name> |
1490 | <cstring>Layout7</cstring> | 1538 | <cstring>Misc_GB</cstring> |
1539 | </property> | ||
1540 | <property stdset="1"> | ||
1541 | <name>enabled</name> | ||
1542 | <bool>false</bool> | ||
1543 | </property> | ||
1544 | <property stdset="1"> | ||
1545 | <name>title</name> | ||
1546 | <string>Miscellaneous</string> | ||
1547 | </property> | ||
1548 | <property> | ||
1549 | <name>layoutMargin</name> | ||
1550 | </property> | ||
1551 | <property> | ||
1552 | <name>layoutSpacing</name> | ||
1491 | </property> | 1553 | </property> |
1492 | <hbox> | 1554 | <hbox> |
1493 | <property stdset="1"> | 1555 | <property stdset="1"> |
1494 | <name>margin</name> | 1556 | <name>margin</name> |
1495 | <number>0</number> | 1557 | <number>4</number> |
1496 | </property> | 1558 | </property> |
1497 | <property stdset="1"> | 1559 | <property stdset="1"> |
1498 | <name>spacing</name> | 1560 | <name>spacing</name> |
1499 | <number>6</number> | 1561 | <number>2</number> |
1500 | </property> | 1562 | </property> |
1501 | <widget> | 1563 | <widget> |
1502 | <class>QLabel</class> | 1564 | <class>QLabel</class> |
1503 | <property stdset="1"> | 1565 | <property stdset="1"> |
1504 | <name>name</name> | 1566 | <name>name</name> |
1505 | <cstring>TextLabel1_3</cstring> | 1567 | <cstring>TextLabel1_5_3_3</cstring> |
1568 | </property> | ||
1569 | <property stdset="1"> | ||
1570 | <name>text</name> | ||
1571 | <string>Collisions</string> | ||
1572 | </property> | ||
1573 | </widget> | ||
1574 | <widget> | ||
1575 | <class>QLabel</class> | ||
1576 | <property stdset="1"> | ||
1577 | <name>name</name> | ||
1578 | <cstring>Collisions_LBL</cstring> | ||
1506 | </property> | 1579 | </property> |
1507 | <property stdset="1"> | 1580 | <property stdset="1"> |
1508 | <name>sizePolicy</name> | 1581 | <name>sizePolicy</name> |
1509 | <sizepolicy> | 1582 | <sizepolicy> |
1510 | <hsizetype>0</hsizetype> | 1583 | <hsizetype>7</hsizetype> |
1511 | <vsizetype>1</vsizetype> | 1584 | <vsizetype>1</vsizetype> |
1512 | </sizepolicy> | 1585 | </sizepolicy> |
1513 | </property> | 1586 | </property> |
1514 | <property stdset="1"> | 1587 | <property stdset="1"> |
1515 | <name>text</name> | 1588 | <name>frameShape</name> |
1516 | <string>Others</string> | 1589 | <enum>Panel</enum> |
1590 | </property> | ||
1591 | <property stdset="1"> | ||
1592 | <name>frameShadow</name> | ||
1593 | <enum>Sunken</enum> | ||
1594 | </property> | ||
1595 | <property stdset="1"> | ||
1596 | <name>indent</name> | ||
1597 | <number>0</number> | ||
1517 | </property> | 1598 | </property> |
1518 | </widget> | 1599 | </widget> |
1519 | <spacer> | 1600 | <spacer> |
1520 | <property> | 1601 | <property> |
1521 | <name>name</name> | 1602 | <name>name</name> |
1522 | <cstring>Spacer19</cstring> | 1603 | <cstring>Spacer10</cstring> |
1523 | </property> | 1604 | </property> |
1524 | <property stdset="1"> | 1605 | <property stdset="1"> |
1525 | <name>orientation</name> | 1606 | <name>orientation</name> |
1526 | <enum>Horizontal</enum> | 1607 | <enum>Horizontal</enum> |
1527 | </property> | 1608 | </property> |
1528 | <property stdset="1"> | 1609 | <property stdset="1"> |
1529 | <name>sizeType</name> | 1610 | <name>sizeType</name> |
1530 | <enum>Expanding</enum> | 1611 | <enum>Expanding</enum> |
1531 | </property> | 1612 | </property> |
1532 | <property> | 1613 | <property> |
1533 | <name>sizeHint</name> | 1614 | <name>sizeHint</name> |
1534 | <size> | 1615 | <size> |
1535 | <width>20</width> | 1616 | <width>20</width> |
1536 | <height>20</height> | 1617 | <height>20</height> |
1537 | </size> | 1618 | </size> |
1538 | </property> | 1619 | </property> |
1539 | </spacer> | 1620 | </spacer> |
1540 | </hbox> | 1621 | <spacer> |
1541 | </widget> | 1622 | <property> |
1542 | <widget> | ||
1543 | <class>QLayoutWidget</class> | ||
1544 | <property stdset="1"> | ||
1545 | <name>name</name> | ||
1546 | <cstring>Layout45</cstring> | ||
1547 | </property> | ||
1548 | <property> | ||
1549 | <name>layoutMargin</name> | ||
1550 | </property> | ||
1551 | <property> | ||
1552 | <name>layoutSpacing</name> | ||
1553 | </property> | ||
1554 | <hbox> | ||
1555 | <property stdset="1"> | ||
1556 | <name>margin</name> | ||
1557 | <number>2</number> | ||
1558 | </property> | ||
1559 | <property stdset="1"> | ||
1560 | <name>spacing</name> | ||
1561 | <number>0</number> | ||
1562 | </property> | ||
1563 | <widget> | ||
1564 | <class>QFrame</class> | ||
1565 | <property stdset="1"> | ||
1566 | <name>name</name> | 1623 | <name>name</name> |
1567 | <cstring>Frame116</cstring> | 1624 | <cstring>Spacer13</cstring> |
1568 | </property> | 1625 | </property> |
1569 | <property stdset="1"> | 1626 | <property stdset="1"> |
1570 | <name>sizePolicy</name> | 1627 | <name>orientation</name> |
1571 | <sizepolicy> | 1628 | <enum>Horizontal</enum> |
1572 | <hsizetype>0</hsizetype> | ||
1573 | <vsizetype>5</vsizetype> | ||
1574 | </sizepolicy> | ||
1575 | </property> | 1629 | </property> |
1576 | <property stdset="1"> | 1630 | <property stdset="1"> |
1577 | <name>minimumSize</name> | 1631 | <name>sizeType</name> |
1578 | <size> | 1632 | <enum>Expanding</enum> |
1579 | <width>5</width> | ||
1580 | <height>0</height> | ||
1581 | </size> | ||
1582 | </property> | 1633 | </property> |
1583 | <property stdset="1"> | 1634 | <property> |
1584 | <name>maximumSize</name> | 1635 | <name>sizeHint</name> |
1585 | <size> | 1636 | <size> |
1586 | <width>5</width> | 1637 | <width>20</width> |
1587 | <height>32767</height> | 1638 | <height>20</height> |
1588 | </size> | 1639 | </size> |
1589 | </property> | 1640 | </property> |
1590 | <property stdset="1"> | 1641 | </spacer> |
1591 | <name>frameShape</name> | ||
1592 | <enum>NoFrame</enum> | ||
1593 | </property> | ||
1594 | <property stdset="1"> | ||
1595 | <name>frameShadow</name> | ||
1596 | <enum>Raised</enum> | ||
1597 | </property> | ||
1598 | </widget> | ||
1599 | <widget> | ||
1600 | <class>QFrame</class> | ||
1601 | <property stdset="1"> | ||
1602 | <name>name</name> | ||
1603 | <cstring>Collisions_FRM</cstring> | ||
1604 | </property> | ||
1605 | <property stdset="1"> | ||
1606 | <name>enabled</name> | ||
1607 | <bool>false</bool> | ||
1608 | </property> | ||
1609 | <property stdset="1"> | ||
1610 | <name>sizePolicy</name> | ||
1611 | <sizepolicy> | ||
1612 | <hsizetype>7</hsizetype> | ||
1613 | <vsizetype>5</vsizetype> | ||
1614 | </sizepolicy> | ||
1615 | </property> | ||
1616 | <property stdset="1"> | ||
1617 | <name>frameShape</name> | ||
1618 | <enum>NoFrame</enum> | ||
1619 | </property> | ||
1620 | <property stdset="1"> | ||
1621 | <name>frameShadow</name> | ||
1622 | <enum>Raised</enum> | ||
1623 | </property> | ||
1624 | <property> | ||
1625 | <name>layoutMargin</name> | ||
1626 | </property> | ||
1627 | <property> | ||
1628 | <name>layoutSpacing</name> | ||
1629 | </property> | ||
1630 | <hbox> | ||
1631 | <property stdset="1"> | ||
1632 | <name>margin</name> | ||
1633 | <number>0</number> | ||
1634 | </property> | ||
1635 | <property stdset="1"> | ||
1636 | <name>spacing</name> | ||
1637 | <number>2</number> | ||
1638 | </property> | ||
1639 | <widget> | ||
1640 | <class>QLabel</class> | ||
1641 | <property stdset="1"> | ||
1642 | <name>name</name> | ||
1643 | <cstring>TextLabel1_5_3_3</cstring> | ||
1644 | </property> | ||
1645 | <property stdset="1"> | ||
1646 | <name>text</name> | ||
1647 | <string>Collisions</string> | ||
1648 | </property> | ||
1649 | </widget> | ||
1650 | <widget> | ||
1651 | <class>QLabel</class> | ||
1652 | <property stdset="1"> | ||
1653 | <name>name</name> | ||
1654 | <cstring>Collisions_LBL</cstring> | ||
1655 | </property> | ||
1656 | <property stdset="1"> | ||
1657 | <name>sizePolicy</name> | ||
1658 | <sizepolicy> | ||
1659 | <hsizetype>7</hsizetype> | ||
1660 | <vsizetype>1</vsizetype> | ||
1661 | </sizepolicy> | ||
1662 | </property> | ||
1663 | <property stdset="1"> | ||
1664 | <name>frameShape</name> | ||
1665 | <enum>Panel</enum> | ||
1666 | </property> | ||
1667 | <property stdset="1"> | ||
1668 | <name>frameShadow</name> | ||
1669 | <enum>Sunken</enum> | ||
1670 | </property> | ||
1671 | <property stdset="1"> | ||
1672 | <name>indent</name> | ||
1673 | <number>0</number> | ||
1674 | </property> | ||
1675 | </widget> | ||
1676 | <spacer> | ||
1677 | <property> | ||
1678 | <name>name</name> | ||
1679 | <cstring>Spacer18</cstring> | ||
1680 | </property> | ||
1681 | <property stdset="1"> | ||
1682 | <name>orientation</name> | ||
1683 | <enum>Horizontal</enum> | ||
1684 | </property> | ||
1685 | <property stdset="1"> | ||
1686 | <name>sizeType</name> | ||
1687 | <enum>Expanding</enum> | ||
1688 | </property> | ||
1689 | <property> | ||
1690 | <name>sizeHint</name> | ||
1691 | <size> | ||
1692 | <width>20</width> | ||
1693 | <height>20</height> | ||
1694 | </size> | ||
1695 | </property> | ||
1696 | </spacer> | ||
1697 | </hbox> | ||
1698 | </widget> | ||
1699 | </hbox> | 1642 | </hbox> |
1700 | </widget> | 1643 | </widget> |
1701 | <spacer> | 1644 | <spacer> |
1702 | <property> | 1645 | <property> |
1703 | <name>name</name> | 1646 | <name>name</name> |
1704 | <cstring>Spacer17</cstring> | 1647 | <cstring>Spacer17</cstring> |
1705 | </property> | 1648 | </property> |
1706 | <property stdset="1"> | 1649 | <property stdset="1"> |
1707 | <name>orientation</name> | 1650 | <name>orientation</name> |
1708 | <enum>Vertical</enum> | 1651 | <enum>Vertical</enum> |
1709 | </property> | 1652 | </property> |
1710 | <property stdset="1"> | 1653 | <property stdset="1"> |
1711 | <name>sizeType</name> | 1654 | <name>sizeType</name> |
1712 | <enum>Expanding</enum> | 1655 | <enum>Expanding</enum> |
1713 | </property> | 1656 | </property> |
1714 | <property> | 1657 | <property> |
1715 | <name>sizeHint</name> | 1658 | <name>sizeHint</name> |
1716 | <size> | 1659 | <size> |
1717 | <width>20</width> | 1660 | <width>20</width> |
1718 | <height>20</height> | 1661 | <height>20</height> |
1719 | </size> | 1662 | </size> |
1720 | </property> | 1663 | </property> |
1721 | </spacer> | 1664 | </spacer> |
1722 | <widget> | 1665 | <widget> |
1723 | <class>QLayoutWidget</class> | 1666 | <class>QLayoutWidget</class> |
1724 | <property stdset="1"> | 1667 | <property stdset="1"> |
1725 | <name>name</name> | 1668 | <name>name</name> |
1726 | <cstring>Layout17</cstring> | 1669 | <cstring>Layout10</cstring> |
1727 | </property> | 1670 | </property> |
1728 | <hbox> | 1671 | <hbox> |
1729 | <property stdset="1"> | 1672 | <property stdset="1"> |
1730 | <name>margin</name> | 1673 | <name>margin</name> |
1731 | <number>0</number> | 1674 | <number>0</number> |
1732 | </property> | 1675 | </property> |
1733 | <property stdset="1"> | 1676 | <property stdset="1"> |
1734 | <name>spacing</name> | 1677 | <name>spacing</name> |
1735 | <number>6</number> | 1678 | <number>6</number> |
1736 | </property> | 1679 | </property> |
1737 | <widget> | 1680 | <widget> |
1738 | <class>QCheckBox</class> | 1681 | <class>QCheckBox</class> |
1739 | <property stdset="1"> | 1682 | <property stdset="1"> |
1740 | <name>name</name> | 1683 | <name>name</name> |
1741 | <cstring>Refresh_CB</cstring> | 1684 | <cstring>Refresh_CB</cstring> |
1742 | </property> | 1685 | </property> |
1743 | <property stdset="1"> | 1686 | <property stdset="1"> |
1687 | <name>enabled</name> | ||
1688 | <bool>false</bool> | ||
1689 | </property> | ||
1690 | <property stdset="1"> | ||
1744 | <name>text</name> | 1691 | <name>text</name> |
1745 | <string>Live feed </string> | 1692 | <string>Live feed </string> |
1746 | </property> | 1693 | </property> |
1747 | </widget> | 1694 | </widget> |
1748 | <spacer> | 1695 | <spacer> |
1749 | <property> | 1696 | <property> |
1750 | <name>name</name> | 1697 | <name>name</name> |
1751 | <cstring>Spacer57</cstring> | 1698 | <cstring>Spacer57</cstring> |
1752 | </property> | 1699 | </property> |
1753 | <property stdset="1"> | 1700 | <property stdset="1"> |
1754 | <name>orientation</name> | 1701 | <name>orientation</name> |
1755 | <enum>Horizontal</enum> | 1702 | <enum>Horizontal</enum> |
1756 | </property> | 1703 | </property> |
1757 | <property stdset="1"> | 1704 | <property stdset="1"> |
1758 | <name>sizeType</name> | 1705 | <name>sizeType</name> |
1759 | <enum>Expanding</enum> | 1706 | <enum>Expanding</enum> |
1760 | </property> | 1707 | </property> |
1761 | <property> | 1708 | <property> |
1762 | <name>sizeHint</name> | 1709 | <name>sizeHint</name> |
1763 | <size> | 1710 | <size> |
1764 | <width>20</width> | 1711 | <width>20</width> |
1765 | <height>20</height> | 1712 | <height>20</height> |
1766 | </size> | 1713 | </size> |
1767 | </property> | 1714 | </property> |
1768 | </spacer> | 1715 | </spacer> |
1716 | <widget> | ||
1717 | <class>QPushButton</class> | ||
1718 | <property stdset="1"> | ||
1719 | <name>name</name> | ||
1720 | <cstring>ResetODO_But</cstring> | ||
1721 | </property> | ||
1722 | <property stdset="1"> | ||
1723 | <name>enabled</name> | ||
1724 | <bool>false</bool> | ||
1725 | </property> | ||
1726 | <property stdset="1"> | ||
1727 | <name>text</name> | ||
1728 | <string>Reset ODO</string> | ||
1729 | </property> | ||
1730 | </widget> | ||
1769 | </hbox> | 1731 | </hbox> |
1770 | </widget> | 1732 | </widget> |
1771 | </vbox> | 1733 | </vbox> |
1772 | </widget> | 1734 | </widget> |
1773 | </widget> | 1735 | </widget> |
1774 | </vbox> | 1736 | </vbox> |
1775 | </widget> | 1737 | </widget> |
1776 | <connections> | 1738 | <connections> |
1777 | <connection> | 1739 | <connection> |
1778 | <sender>Refresh_CB</sender> | 1740 | <sender>Refresh_CB</sender> |
1779 | <signal>toggled(bool)</signal> | 1741 | <signal>toggled(bool)</signal> |
1780 | <receiver>Profile_FRM</receiver> | 1742 | <receiver>Profile_FRM</receiver> |
1781 | <slot>SLOT_AutoRefresh(bool)</slot> | 1743 | <slot>SLOT_AutoRefresh(bool)</slot> |
1782 | </connection> | 1744 | </connection> |
1745 | <connection> | ||
1746 | <sender>ResetODO_But</sender> | ||
1747 | <signal>clicked()</signal> | ||
1748 | <receiver>Profile_FRM</receiver> | ||
1749 | <slot>SLOT_ResetODO()</slot> | ||
1750 | </connection> | ||
1783 | <slot access="public">SLOT_AutoRefresh(bool)</slot> | 1751 | <slot access="public">SLOT_AutoRefresh(bool)</slot> |
1752 | <slot access="public">SLOT_ResetODO()</slot> | ||
1784 | </connections> | 1753 | </connections> |
1785 | </UI> | 1754 | </UI> |
diff --git a/noncore/settings/networksettings2/profile/profileedit.cpp b/noncore/settings/networksettings2/profile/profileedit.cpp index ad943fe..1713f0c 100644 --- a/noncore/settings/networksettings2/profile/profileedit.cpp +++ b/noncore/settings/networksettings2/profile/profileedit.cpp | |||
@@ -1,102 +1,125 @@ | |||
1 | #include <qlabel.h> | 1 | #include <qlabel.h> |
2 | #include <qgroupbox.h> | ||
3 | #include <qpushbutton.h> | ||
2 | #include <qframe.h> | 4 | #include <qframe.h> |
3 | #include <qcheckbox.h> | 5 | #include <qcheckbox.h> |
4 | #include <qmultilineedit.h> | 6 | #include <qmultilineedit.h> |
5 | #include <qcheckbox.h> | 7 | #include <qcheckbox.h> |
6 | 8 | ||
7 | #include <GUIUtils.h> | 9 | #include <GUIUtils.h> |
8 | #include <netnode.h> | 10 | #include <netnode.h> |
9 | #include <resources.h> | 11 | #include <resources.h> |
10 | 12 | ||
11 | #include "profileedit.h" | 13 | #include "profileedit.h" |
12 | 14 | ||
13 | ProfileEdit::ProfileEdit( QWidget * Parent, ANetNodeInstance * TNNI ) : | 15 | ProfileEdit::ProfileEdit( QWidget * Parent, ANetNodeInstance * TNNI ) : |
14 | ProfileGUI( Parent ), RefreshTimer(this) { | 16 | ProfileGUI( Parent ), RefreshTimer(this) { |
15 | InterfaceInfo * II; | 17 | InterfaceInfo * II; |
16 | 18 | ||
17 | II = TNNI->networkSetup()->assignedInterface(); | 19 | II = TNNI->networkSetup()->assignedInterface(); |
18 | Log(( "Interface %p %p %p: %d\n", II, | 20 | Log(( "Interface %p %p %p: %d\n", II, |
19 | TNNI, TNNI->networkSetup(), (II) ? II->IsUp : 0 )); | 21 | TNNI, TNNI->networkSetup(), (II) ? II->IsUp : 0 )); |
20 | 22 | ||
21 | NNI = TNNI; | 23 | NNI = TNNI; |
22 | Dev = NNI->runtime()->device(); | 24 | Dev = NNI->runtime()->device(); |
23 | if( ( II = NNI->networkSetup()->assignedInterface() ) ) { | 25 | if( ( II = NNI->networkSetup()->assignedInterface() ) ) { |
24 | 26 | ||
25 | Refresh_CB->setEnabled( TRUE ); | 27 | Refresh_CB->setEnabled( TRUE ); |
26 | Snd_GB->setEnabled( TRUE ); | 28 | ResetODO_But->setEnabled( TRUE ); |
27 | Rcv_GB->setEnabled( TRUE ); | 29 | Sending_GB->setEnabled( TRUE ); |
28 | Collisions_FRM->setEnabled( TRUE ); | 30 | Receiving_GB->setEnabled( TRUE ); |
31 | Misc_GB->setEnabled( TRUE ); | ||
29 | 32 | ||
30 | // show current content | 33 | // show current content |
31 | SLOT_Refresh(); | 34 | SLOT_Refresh(); |
32 | 35 | ||
36 | // initialize ODO | ||
37 | SLOT_ResetODO(); | ||
38 | |||
33 | // fill in static data | 39 | // fill in static data |
34 | InterfaceName_LBL->setText( II->Name ); | 40 | InterfaceName_LBL->setText( II->Name ); |
35 | IPAddress_LBL->setText( II->Address ); | 41 | IPAddress_LBL->setText( II->Address ); |
36 | SubnetMask_LBL->setText( II->Netmask ); | 42 | SubnetMask_LBL->setText( II->Netmask ); |
37 | Broadcast_LBL->setText( II->BCastAddress ); | 43 | Broadcast_LBL->setText( II->BCastAddress ); |
38 | MACAddress_LBL->setText( II->MACAddress ); | 44 | MACAddress_LBL->setText( II->MACAddress ); |
39 | if( II->IsPointToPoint ) { | 45 | if( II->IsPointToPoint ) { |
40 | PointToPoint_LBL->setText( II->DstAddress ); | 46 | PointToPoint_LBL->setText( II->DstAddress ); |
41 | } | 47 | } |
42 | QString S; | 48 | QString S; |
43 | InterfaceName_LBL->setText( II->Name ); | 49 | InterfaceName_LBL->setText( II->Name ); |
44 | if( II->HasMulticast ) { | 50 | if( II->HasMulticast ) { |
45 | S += "Multicast"; | 51 | S += "Multicast"; |
46 | } | 52 | } |
47 | if( ! S.isEmpty() ) { | 53 | if( ! S.isEmpty() ) { |
48 | S.prepend( " : " ); | 54 | S.prepend( " : " ); |
49 | } | 55 | } |
50 | InterfaceOptions_LBL->setText( S ); | 56 | InterfaceOptions_LBL->setText( S ); |
51 | 57 | ||
52 | connect( &RefreshTimer, SIGNAL( timeout() ), | 58 | connect( &RefreshTimer, SIGNAL( timeout() ), |
53 | this, SLOT( SLOT_Refresh() ) ); | 59 | this, SLOT( SLOT_Refresh() ) ); |
54 | } | 60 | } |
55 | 61 | ||
56 | } | 62 | } |
57 | 63 | ||
58 | QString ProfileEdit::acceptable( void ) { | 64 | QString ProfileEdit::acceptable( void ) { |
59 | return QString(); | 65 | return QString(); |
60 | } | 66 | } |
61 | 67 | ||
62 | void ProfileEdit::showData( ProfileData & Data ) { | 68 | void ProfileEdit::showData( ProfileData & Data ) { |
63 | Description_LE->setText( Data.Description ); | 69 | Description_LE->setText( Data.Description ); |
64 | Automatic_CB->setChecked( Data.Automatic ); | 70 | Automatic_CB->setChecked( Data.Automatic ); |
65 | TriggersVPN_CB->setChecked( Data.TriggerVPN ); | 71 | TriggersVPN_CB->setChecked( Data.TriggerVPN ); |
66 | Confirm_CB->setChecked( Data.Confirm ); | 72 | Confirm_CB->setChecked( Data.Confirm ); |
67 | Disabled_CB->setChecked( Data.Disabled ); | 73 | Disabled_CB->setChecked( Data.Disabled ); |
68 | } | 74 | } |
69 | 75 | ||
70 | 76 | ||
71 | bool ProfileEdit::commit( ProfileData & Data ) { | 77 | bool ProfileEdit::commit( ProfileData & Data ) { |
72 | bool SM = 0; | 78 | bool SM = 0; |
73 | TXTM( Data.Description, Description_LE, SM ); | 79 | TXTM( Data.Description, Description_LE, SM ); |
74 | 80 | ||
75 | CBM( Data.Automatic, Automatic_CB, SM ); | 81 | CBM( Data.Automatic, Automatic_CB, SM ); |
76 | CBM( Data.TriggerVPN, TriggersVPN_CB, SM ); | 82 | CBM( Data.TriggerVPN, TriggersVPN_CB, SM ); |
77 | CBM( Data.Disabled, Disabled_CB, SM ); | 83 | CBM( Data.Disabled, Disabled_CB, SM ); |
78 | CBM( Data.Confirm, Confirm_CB, SM ); | 84 | CBM( Data.Confirm, Confirm_CB, SM ); |
79 | 85 | ||
80 | return SM; | 86 | return SM; |
81 | } | 87 | } |
82 | 88 | ||
83 | void ProfileEdit::SLOT_Refresh( void ) { | 89 | void ProfileEdit::SLOT_Refresh( void ) { |
84 | InterfaceInfo * II = NNI->networkSetup()->assignedInterface(); | 90 | InterfaceInfo * II = NNI->networkSetup()->assignedInterface(); |
91 | QString S; | ||
85 | NSResources->system().refreshStatistics( *II ); | 92 | NSResources->system().refreshStatistics( *II ); |
93 | |||
86 | RcvBytes_LBL->setText( II->RcvBytes ); | 94 | RcvBytes_LBL->setText( II->RcvBytes ); |
87 | SndBytes_LBL->setText( II->SndBytes ); | 95 | RcvPackets_LBL->setText( II->RcvPackets ); |
88 | RcvErrors_LBL->setText( II->RcvErrors ); | 96 | RcvErrors_LBL->setText( II->RcvErrors ); |
89 | SndErrors_LBL->setText( II->SndErrors ); | ||
90 | RcvDropped_LBL->setText( II->RcvDropped ); | 97 | RcvDropped_LBL->setText( II->RcvDropped ); |
98 | S.setNum( II->RcvBytes.toLong() - RcvODO ); | ||
99 | RcvODO_LBL->setText( S ); | ||
100 | |||
101 | SndBytes_LBL->setText( II->SndBytes ); | ||
102 | SndPackets_LBL->setText( II->SndPackets ); | ||
103 | SndErrors_LBL->setText( II->SndErrors ); | ||
91 | SndDropped_LBL->setText( II->SndDropped ); | 104 | SndDropped_LBL->setText( II->SndDropped ); |
105 | S.setNum( II->SndBytes.toLong() - SndODO ); | ||
106 | SndODO_LBL->setText( S ); | ||
107 | |||
92 | Collisions_LBL->setText( II->Collisions ); | 108 | Collisions_LBL->setText( II->Collisions ); |
93 | } | 109 | } |
94 | 110 | ||
95 | void ProfileEdit::SLOT_AutoRefresh( bool ar ) { | 111 | void ProfileEdit::SLOT_AutoRefresh( bool ar ) { |
96 | if( ar ) { | 112 | if( ar ) { |
97 | RefreshTimer.start( 1000 ); | 113 | RefreshTimer.start( 1000 ); |
98 | SLOT_Refresh(); | 114 | SLOT_Refresh(); |
99 | } else { | 115 | } else { |
100 | RefreshTimer.stop(); | 116 | RefreshTimer.stop(); |
101 | } | 117 | } |
102 | } | 118 | } |
119 | |||
120 | void ProfileEdit::SLOT_ResetODO( void ) { | ||
121 | InterfaceInfo * II = NNI->networkSetup()->assignedInterface(); | ||
122 | RcvODO = II->RcvBytes.toLong(); | ||
123 | SndODO = II->SndBytes.toLong(); | ||
124 | SLOT_Refresh(); | ||
125 | } | ||
diff --git a/noncore/settings/networksettings2/profile/profileedit.h b/noncore/settings/networksettings2/profile/profileedit.h index 9cde845..56bd15d 100644 --- a/noncore/settings/networksettings2/profile/profileedit.h +++ b/noncore/settings/networksettings2/profile/profileedit.h | |||
@@ -1,29 +1,32 @@ | |||
1 | #include "profiledata.h" | 1 | #include "profiledata.h" |
2 | #include "profileGUI.h" | 2 | #include "profileGUI.h" |
3 | 3 | ||
4 | #include <qtimer.h> | 4 | #include <qtimer.h> |
5 | class ANetNodeInstance; | 5 | class ANetNodeInstance; |
6 | class RuntimeInfo; | 6 | class RuntimeInfo; |
7 | 7 | ||
8 | class ProfileEdit : public ProfileGUI { | 8 | class ProfileEdit : public ProfileGUI { |
9 | 9 | ||
10 | Q_OBJECT | 10 | Q_OBJECT |
11 | 11 | ||
12 | public : | 12 | public : |
13 | 13 | ||
14 | ProfileEdit( QWidget * parent, ANetNodeInstance * NNI ); | 14 | ProfileEdit( QWidget * parent, ANetNodeInstance * NNI ); |
15 | QString acceptable( void ); | 15 | QString acceptable( void ); |
16 | bool commit( ProfileData & Data ); | 16 | bool commit( ProfileData & Data ); |
17 | void showData( ProfileData & Data ); | 17 | void showData( ProfileData & Data ); |
18 | 18 | ||
19 | public slots : | 19 | public slots : |
20 | 20 | ||
21 | void SLOT_AutoRefresh( bool ); | 21 | void SLOT_AutoRefresh( bool ); |
22 | void SLOT_Refresh( void ); | 22 | void SLOT_Refresh( void ); |
23 | void SLOT_ResetODO( void ); | ||
23 | 24 | ||
24 | private : | 25 | private : |
25 | 26 | ||
26 | QTimer RefreshTimer; | 27 | QTimer RefreshTimer; |
27 | ANetNodeInstance * NNI; | 28 | ANetNodeInstance * NNI; |
28 | RuntimeInfo * Dev; | 29 | RuntimeInfo * Dev; |
30 | long RcvODO; | ||
31 | long SndODO; | ||
29 | }; | 32 | }; |