summaryrefslogtreecommitdiff
authorwimpie <wimpie>2005-01-12 00:29:48 (UTC)
committer wimpie <wimpie>2005-01-12 00:29:48 (UTC)
commita846a0be197d3a6ff7f8c76a3ba322db0da7d058 (patch) (unidiff)
tree0db1eccb73b0756ff49029dcfa71ff1a3699cab0
parent4b1d4fc9f4170ec22d196dd352cae5d9c1ecb232 (diff)
downloadopie-a846a0be197d3a6ff7f8c76a3ba322db0da7d058.zip
opie-a846a0be197d3a6ff7f8c76a3ba322db0da7d058.tar.gz
opie-a846a0be197d3a6ff7f8c76a3ba322db0da7d058.tar.bz2
Fixed Crash in editing new profiles
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/settings/networksettings2/editconnection.cpp17
-rw-r--r--noncore/settings/networksettings2/nsdata.cpp2
2 files changed, 14 insertions, 5 deletions
diff --git a/noncore/settings/networksettings2/editconnection.cpp b/noncore/settings/networksettings2/editconnection.cpp
index 6ab2dd6..bda9d7e 100644
--- a/noncore/settings/networksettings2/editconnection.cpp
+++ b/noncore/settings/networksettings2/editconnection.cpp
@@ -108,33 +108,36 @@ EditNetworkSetup::EditNetworkSetup( QWidget* parent ) :
108NetworkSetup * EditNetworkSetup::getTmpCollection( void ) { 108NetworkSetup * EditNetworkSetup::getTmpCollection( void ) {
109 109
110 if( TmpIsValid ) 110 if( TmpIsValid )
111 // content is stil OK 111 // content is stil OK
112 return &(TmpCollection); 112 return &(TmpCollection);
113 113
114 // reset collection -> delete all NEW NetNodes 114 // reset collection -> delete all NEW NetNodes
115 for( QListIterator<ANetNodeInstance> it(TmpCollection); 115 for( QListIterator<ANetNodeInstance> it(TmpCollection);
116 it.current(); 116 it.current();
117 ++it ) { 117 ++it ) {
118 if( it.current()->isNew() ) { 118 if( it.current()->isNew() ) {
119 delete it.current(); 119 delete it.current();
120 } 120 }
121 } 121 }
122 122
123 TmpCollection.clear(); 123 TmpCollection.clear();
124 TmpCollection.copyFrom( *SelectedNodes ); 124 if( SelectedNodes ) {
125 // initialize like original
126 TmpCollection.copyFrom( *SelectedNodes );
127 }
125 128
126 // update content 129 // update content
127 QListViewItem * it = Nodes_LV->firstChild(); 130 QListViewItem * it = Nodes_LV->firstChild();
128 ANetNode * NN; 131 ANetNode * NN;
129 132
130 // start iter (if there is a collection) 133 // start iter (if there is a collection)
131 /* 134 /*
132 135
133 a node collection is sorted from the toplevel 136 a node collection is sorted from the toplevel
134 node to the deepest node 137 node to the deepest node
135 138
136 */ 139 */
137 ANetNodeInstance * NNI = 140 ANetNodeInstance * NNI =
138 (SelectedNodes) ? SelectedNodes->first() : 0 ; 141 (SelectedNodes) ? SelectedNodes->first() : 0 ;
139 142
140 TmpCollection.setModified( 0 ); 143 TmpCollection.setModified( 0 );
@@ -443,35 +446,41 @@ void EditNetworkSetup::SLOT_SelectNode( QListViewItem * it ) {
443 if( NN ) { 446 if( NN ) {
444 // figure out type of this node -> produce mesage 447 // figure out type of this node -> produce mesage
445 Description_LBL->setText( NSResources->netNode2Description( 448 Description_LBL->setText( NSResources->netNode2Description(
446 NN->needs()[0]) ); 449 NN->needs()[0]) );
447 } else { 450 } else {
448 Description_LBL->setText( "" ); 451 Description_LBL->setText( "" );
449 } 452 }
450 return; 453 return;
451 } 454 }
452 455
453 Description_LBL->setText( NN->nodeDescription() ); 456 Description_LBL->setText( NN->nodeDescription() );
454 457
455 if( ! it->isSelectable() ) { 458 if( ! it->isSelectable() ) {
456 return; 459 return;
457 } 460 }
458 461
459 if( ! ((QCheckListItem *)it)->isOn() ) { 462 ANetNode::NetNodeList & NNL = NN->alternatives();
460 // clicked on line but NOT on Check or Radio item 463
461 return; 464 if( NNL.size() != 1 ) {
465 if( NNL.size() == 0 ||
466 ! ((MyQCheckListItem *)it)->isOn()
467 ) {
468 // not clicked on Check or Radio item
469 return;
470 }
462 } 471 }
463 472
464 // item has really changed -> update 473 // item has really changed -> update
465 TmpIsValid = 0; 474 TmpIsValid = 0;
466 updateGUI( it, NN ); 475 updateGUI( it, NN );
467} 476}
468 477
469// cliecked on TAB to go to setup 478// cliecked on TAB to go to setup
470void EditNetworkSetup::SLOT_AlterTab( const QString & S ) { 479void EditNetworkSetup::SLOT_AlterTab( const QString & S ) {
471 if( S == tr( "Setup" ) && Setup_FRM->isEnabled() ) { 480 if( S == tr( "Setup" ) && Setup_FRM->isEnabled() ) {
472 // switched to setup -> update CB and populate ws with 481 // switched to setup -> update CB and populate ws with
473 // forms for devices 482 // forms for devices
474 483
475 if( ! TmpIsValid ) { 484 if( ! TmpIsValid ) {
476 getTmpCollection(); 485 getTmpCollection();
477 486
diff --git a/noncore/settings/networksettings2/nsdata.cpp b/noncore/settings/networksettings2/nsdata.cpp
index b4622fc..835c7c3 100644
--- a/noncore/settings/networksettings2/nsdata.cpp
+++ b/noncore/settings/networksettings2/nsdata.cpp
@@ -708,33 +708,33 @@ bool NetworkSettingsData::canStart( const QString & Interface ) {
708 case Off : 708 case Off :
709 // try to UP the device 709 // try to UP the device
710 { QString S= NC->setState( Activate ); 710 { QString S= NC->setState( Activate );
711 if( ! S.isEmpty() ) { 711 if( ! S.isEmpty() ) {
712 // could not bring device Online -> try other alters 712 // could not bring device Online -> try other alters
713 Log(( "disallow %ld for %s : %s\n", 713 Log(( "disallow %ld for %s : %s\n",
714 NC->number(), Interface.latin1(), S.latin1() )); 714 NC->number(), Interface.latin1(), S.latin1() ));
715 break; 715 break;
716 } 716 }
717 // interface assigned 717 // interface assigned
718 } 718 }
719 // FT 719 // FT
720 case Available : 720 case Available :
721 case IsUp : // also called for 'ifdown' 721 case IsUp : // also called for 'ifdown'
722 // device is ready -> done 722 // device is ready -> done
723 Log(( "allow %ld for %s\n", NC->number(), Interface.latin1())); 723 Log(( "allow %ld for %s\n", NC->number(), Interface.latin1()));
724 printf( "A%ld%s\n", NC->number(), Interface.latin1() ); 724 printf( "A%d%s\n", NC->number(), Interface.latin1() );
725 return 0; 725 return 0;
726 } 726 }
727 } 727 }
728 728
729 // if we come here no alternatives are possible 729 // if we come here no alternatives are possible
730 Log(( "disallow %s\n", Interface.latin1())); 730 Log(( "disallow %s\n", Interface.latin1()));
731 printf( "D-%s\n", Interface.latin1() ); 731 printf( "D-%s\n", Interface.latin1() );
732 return 0; 732 return 0;
733} 733}
734 734
735bool NetworkSettingsData::isModified( void ) { 735bool NetworkSettingsData::isModified( void ) {
736 if( ForceModified ) 736 if( ForceModified )
737 return 1; 737 return 1;
738 738
739 for( QDictIterator<NetworkSetup> it(NSResources->networkSetups()); 739 for( QDictIterator<NetworkSetup> it(NSResources->networkSetups());
740 it.current(); 740 it.current();