summaryrefslogtreecommitdiff
path: root/noncore/settings/networksettings2/nsdata.cpp
Unidiff
Diffstat (limited to 'noncore/settings/networksettings2/nsdata.cpp') (more/less context) (show whitespace changes)
-rw-r--r--noncore/settings/networksettings2/nsdata.cpp178
1 files changed, 165 insertions, 13 deletions
diff --git a/noncore/settings/networksettings2/nsdata.cpp b/noncore/settings/networksettings2/nsdata.cpp
index 3f5e958..6541596 100644
--- a/noncore/settings/networksettings2/nsdata.cpp
+++ b/noncore/settings/networksettings2/nsdata.cpp
@@ -190,2 +190,3 @@ QString NetworkSettingsData::generateSettings( bool ForceReq ) {
190 SystemFile * SF; 190 SystemFile * SF;
191 AsDevice * CurDev;
191 bool needToRegenerate = ForceIt; 192 bool needToRegenerate = ForceIt;
@@ -216,3 +217,5 @@ QString NetworkSettingsData::generateSettings( bool ForceReq ) {
216 NNI = cncit.current(); 217 NNI = cncit.current();
217 if( NNI->netNode()->hasDataFor( SF->name() ) && 218 if( ( NNI->netNode()->hasDataFor( SF->name(), 1 ) ||
219 NNI->netNode()->hasDataFor( SF->name(), 0 )
220 ) &&
218 NNI->isModified() ) { 221 NNI->isModified() ) {
@@ -243,3 +246,2 @@ QString NetworkSettingsData::generateSettings( bool ForceReq ) {
243 { Name2Instance_t & NNIs = NSResources->netNodeInstances(); 246 { Name2Instance_t & NNIs = NSResources->netNodeInstances();
244 ANetNodeInstance * NNI;
245 247
@@ -265,3 +267,3 @@ QString NetworkSettingsData::generateSettings( bool ForceReq ) {
265 // 267 //
266 // generate system files 268 // generate all system files
267 // 269 //
@@ -272,5 +274,2 @@ QString NetworkSettingsData::generateSettings( bool ForceReq ) {
272 274
273 //
274 // regenerate current file
275 //
276 printf( "Generating %s\n", SF->name().latin1() ); 275 printf( "Generating %s\n", SF->name().latin1() );
@@ -280,2 +279,3 @@ QString NetworkSettingsData::generateSettings( bool ForceReq ) {
280 279
280 // global presection for this system file
281 if( SF->preSection() ) { 281 if( SF->preSection() ) {
@@ -287,2 +287,74 @@ QString NetworkSettingsData::generateSettings( bool ForceReq ) {
287 287
288 // find all netnodes and figure out if
289 // for that node there are instances
290 for( QDictIterator<NetNode_t> nnit(
291 NSResources->netNodes() );
292 nnit.current();
293 ++nnit ) {
294 ANetNode * NN;
295
296 NN = nnit.current()->NetNode;
297
298 // are there instances ?
299 NNI = 0;
300 for( QDictIterator<ANetNodeInstance> nniit(
301 NSResources->netNodeInstances() );
302 nniit.current();
303 ++nniit ) {
304 if( nniit.current()->netNode() == NN ) {
305 NNI = nniit.current();
306 break;
307 }
308 }
309
310 if( ! NNI )
311 // no instances
312 continue;
313
314 // has this node data for this system file ?
315 if( (CurDev = NNI->runtime()->asDevice() ) ) {
316 // generate start for this nodetype for all possible devices of this type
317 for( int i = 0; i < CurDev->count(); i ++ ) {
318 if( SF->preDeviceSection( NNI, i ) ) {
319 S = qApp->translate( "NetworkSettings",
320 "<p>Error in preDeviceSection for file %1 and node %2</p>" ).
321 arg( SF->name() ).
322 arg( NN->nodeName() );
323 return S;
324 }
325
326 if( ! NN->hasDataFor( SF->name(), 1 ) ) {
327 if( NN->generateDeviceDataForCommonFile( *SF, i, NNI ) ) {
328 S = qApp->translate( "NetworkSettings",
329 "<p>Error in node part for file %1 and node %2</p>" ).
330 arg( SF->name() ).
331 arg( NN->nodeName() );
332 return S;
333 }
334 }
335 }
336 } else {
337 // just request this once
338 if( SF->preDeviceSection( NNI, -1 ) ) {
339 S = qApp->translate( "NetworkSettings",
340 "<p>Error in preDeviceSection for file %1 and node %2</p>" ).
341 arg( SF->name() ).
342 arg( NN->nodeName() );
343 return S;
344 }
345
346 if( ! NN->hasDataFor( SF->name(), 1 ) ) {
347 if( NN->generateDeviceDataForCommonFile( *SF, -1, NNI ) ) {
348 S = qApp->translate( "NetworkSettings",
349 "<p>Error in node part for file %1 and node %2</p>" ).
350 arg( SF->name() ).
351 arg( NN->nodeName() );
352 return S;
353 }
354 }
355 }
356
357 // now generate profile specific data for all
358 // connections working on a device of the current
359 // netnode type
288 for( QDictIterator<NodeCollection> ncit(M); 360 for( QDictIterator<NodeCollection> ncit(M);
@@ -292,2 +364,8 @@ QString NetworkSettingsData::generateSettings( bool ForceReq ) {
292 364
365 NNI = NC->getToplevel();
366
367 // no output needed
368 if( ! NNI->netNode()->hasDataFor( SF->name(), 0 ) )
369 continue;
370
293 // get the netnode that serves as the device for this 371 // get the netnode that serves as the device for this
@@ -296,10 +374,11 @@ QString NetworkSettingsData::generateSettings( bool ForceReq ) {
296 374
297 // generate 'entry' for every possible device this profile handles 375 if( CurDev ) {
376 if( CurDev != Dev ) {
377 // other device -> later
378 continue;
379 }
298 380
299 for( QListIterator<ANetNodeInstance> cncit(*NC); 381 // generate 'entry' for every combination of device and profile
300 cncit.current(); 382 // each node delegates to deeper level
301 ++cncit ) { 383 for( int i = 0; i < CurDev->count(); i ++ ) {
302 NNI = cncit.current();
303 for( int i = 0; i < Dev->count(); i ++ ) {
304 if( NNI->netNode()->hasDataFor( SF->name() ) ) {
305 if( SF->preNodeSection( NNI, i ) ) { 384 if( SF->preNodeSection( NNI, i ) ) {
@@ -312,2 +391,10 @@ QString NetworkSettingsData::generateSettings( bool ForceReq ) {
312 391
392 // ask all nodes in connection
393
394 for( QListIterator<ANetNodeInstance> cncit(*NC);
395 cncit.current();
396 ++cncit ) {
397 NNI = cncit.current();
398
399 if( NNI->netNode()->hasDataFor( SF->name(), 0 ) ) {
313 if( NNI->netNode()->generateDataForCommonFile(*SF,i,NNI) ) { 400 if( NNI->netNode()->generateDataForCommonFile(*SF,i,NNI) ) {
@@ -319,2 +406,4 @@ QString NetworkSettingsData::generateSettings( bool ForceReq ) {
319 } 406 }
407 }
408 }
320 409
@@ -328,3 +417,42 @@ QString NetworkSettingsData::generateSettings( bool ForceReq ) {
328 } 417 }
418
419 } else {
420 if( Dev ) {
421 // other
422 continue;
329 } 423 }
424
425 // one entry to generate
426 if( SF->preNodeSection( NNI, -1 ) ) {
427 S = qApp->translate( "NetworkSettings",
428 "<p>Error in preNodeSection for file %1 and node %2</p>" ).
429 arg( SF->name() ).
430 arg( NNI->netNode()->nodeName() );
431 return S;
432 }
433
434 if( NNI->netNode()->generateDataForCommonFile(*SF,-1,NNI) ) {
435 S = qApp->translate( "NetworkSettings",
436 "<p>Error in node part for file %1 and node %2</p>" ).
437 arg( SF->name() ).
438 arg( NNI->netNode()->nodeName() );
439 return S;
440 }
441
442 if( SF->postNodeSection( NNI, -1 ) ) {
443 S = qApp->translate( "NetworkSettings",
444 "<p>Error in postNodeSection for file %1 and node %2</p>" ).
445 arg( SF->name() ).
446 arg( NNI->netNode()->nodeName() );
447 return S;
448 }
449 }
450
451 // generated some data
452 if( SF->postNodeSection( NNI, -1 ) ) {
453 S = qApp->translate( "NetworkSettings",
454 "<p>Error in postNodeSection for file %1 and node %2</p>" ).
455 arg( SF->name() ).
456 arg( NNI->netNode()->nodeName() );
457 return S;
330 } 458 }
@@ -333,2 +461,25 @@ QString NetworkSettingsData::generateSettings( bool ForceReq ) {
333 461
462 if( CurDev ) {
463 // generate 'entry' for every combination of device and profile
464 // each node delegates to deeper level
465 for( int i = 0; i < CurDev->count(); i ++ ) {
466 if( SF->postDeviceSection( NNI, i ) ) {
467 S = qApp->translate( "NetworkSettings",
468 "<p>Error in postDeviceSection for file %1 and node %2</p>" ).
469 arg( SF->name() ).
470 arg( NNI->netNode()->nodeName() );
471 return S;
472 }
473 }
474 } else {
475 if( SF->postDeviceSection( NNI, -1 ) ) {
476 S = qApp->translate( "NetworkSettings",
477 "<p>Error in postDeviceSection for file %1 and node %2</p>" ).
478 arg( SF->name() ).
479 arg( NNI->netNode()->nodeName() );
480 return S;
481 }
482 }
483 }
484
334 if( SF->postSection() ) { 485 if( SF->postSection() ) {
@@ -339,2 +490,3 @@ QString NetworkSettingsData::generateSettings( bool ForceReq ) {
339 } 490 }
491
340 } while( 0 ); 492 } while( 0 );