Diffstat (limited to 'noncore/settings/networksettings2/editconnection.cpp') (more/less context) (show whitespace changes)
-rw-r--r-- | noncore/settings/networksettings2/editconnection.cpp | 15 |
1 files changed, 5 insertions, 10 deletions
diff --git a/noncore/settings/networksettings2/editconnection.cpp b/noncore/settings/networksettings2/editconnection.cpp index ce13573..4bbe502 100644 --- a/noncore/settings/networksettings2/editconnection.cpp +++ b/noncore/settings/networksettings2/editconnection.cpp | |||
@@ -83,80 +83,78 @@ EditConnection::EditConnection( QWidget* parent ) : | |||
83 | EditConnectionGUI( parent, 0, TRUE ), TmpCollection() { | 83 | EditConnectionGUI( parent, 0, TRUE ), TmpCollection() { |
84 | 84 | ||
85 | Tab_TB->setTabEnabled( Setup_FRM, FALSE ); | 85 | Tab_TB->setTabEnabled( Setup_FRM, FALSE ); |
86 | Setup_FRM->setEnabled( FALSE ); | 86 | Setup_FRM->setEnabled( FALSE ); |
87 | 87 | ||
88 | TmpIsValid = 0; | 88 | TmpIsValid = 0; |
89 | SelectedNodes = 0; | 89 | SelectedNodes = 0; |
90 | 90 | ||
91 | AutoCollapse_CB->setChecked( AutoCollapse ); | 91 | AutoCollapse_CB->setChecked( AutoCollapse ); |
92 | 92 | ||
93 | Mapping = new QPtrDict<ANetNode>; | 93 | Mapping = new QPtrDict<ANetNode>; |
94 | Mapping->setAutoDelete( FALSE ); | 94 | Mapping->setAutoDelete( FALSE ); |
95 | Nodes_LV->header()->hide(); | 95 | Nodes_LV->header()->hide(); |
96 | // popluate tree with all NetNodes | 96 | // popluate tree with all NetNodes |
97 | buildFullTree(); | 97 | buildFullTree(); |
98 | } | 98 | } |
99 | 99 | ||
100 | NodeCollection * EditConnection::getTmpCollection( void ) { | 100 | NodeCollection * EditConnection::getTmpCollection( void ) { |
101 | 101 | ||
102 | if( TmpIsValid ) | 102 | if( TmpIsValid ) |
103 | // content is stil OK | 103 | // content is stil OK |
104 | return &(TmpCollection); | 104 | return &(TmpCollection); |
105 | 105 | ||
106 | // reset collection -> delete all NEW NetNodes | 106 | // reset collection -> delete all NEW NetNodes |
107 | { ANetNodeInstance * NNI; | ||
108 | for( QListIterator<ANetNodeInstance> it(TmpCollection); | 107 | for( QListIterator<ANetNodeInstance> it(TmpCollection); |
109 | it.current(); | 108 | it.current(); |
110 | ++it ) { | 109 | ++it ) { |
111 | if( it.current()->isNew() ) { | 110 | if( it.current()->isNew() ) { |
112 | delete it.current(); | 111 | delete it.current(); |
113 | } | 112 | } |
114 | } | 113 | } |
115 | TmpCollection.clear(); | 114 | TmpCollection.clear(); |
116 | } | ||
117 | 115 | ||
118 | // update content | 116 | // update content |
119 | QListViewItem * it = Nodes_LV->firstChild(); | 117 | QListViewItem * it = Nodes_LV->firstChild(); |
120 | ANetNode * NN; | 118 | ANetNode * NN; |
121 | // start iter | 119 | // start iter |
122 | ANetNodeInstance * NNI = | 120 | ANetNodeInstance * NNI = |
123 | (SelectedNodes) ? SelectedNodes->first() : 0 ; | 121 | (SelectedNodes) ? SelectedNodes->first() : 0 ; |
124 | 122 | ||
125 | TmpCollection.setModified( 0 ); | 123 | TmpCollection.setModified( 0 ); |
126 | 124 | ||
127 | while ( it ) { | 125 | while ( it ) { |
128 | NN = (*Mapping)[it]; | 126 | NN = (*Mapping)[it]; |
129 | if( NN == 0 ) { | 127 | if( NN == 0 ) { |
130 | // child is controller -> has sub radio | 128 | // child is controller -> has sub radio |
131 | // check if one radio is selected | 129 | // check if one radio is selected |
132 | it = it->firstChild(); | 130 | it = it->firstChild(); |
133 | while( it ) { | 131 | while( it ) { |
134 | if( ((QCheckListItem *)it)->isOn() ) { | 132 | if( ((QCheckListItem *)it)->isOn() ) { |
135 | // this radio is selected -> go deeper | 133 | // this radio is selected -> go deeper |
136 | if( SelectedNodes == 0 || | 134 | if( SelectedNodes == 0 || |
137 | NNI == 0 || | 135 | NNI == 0 || |
138 | NNI->netNode()->nodeName() != it->text(0) ) { | 136 | NNI->nodeClass()->nodeName() != it->text(0) ) { |
139 | // new item not in previous collection | 137 | // new item not in previous collection |
140 | ANetNodeInstance * NNI = (*Mapping)[it]->createInstance(); | 138 | ANetNodeInstance * NNI = (*Mapping)[it]->createInstance(); |
141 | NNI->initialize(); | 139 | NNI->initialize(); |
142 | // this node type not in collection | 140 | // this node type not in collection |
143 | TmpCollection.append( NNI ); | 141 | TmpCollection.append( NNI ); |
144 | // master collection changed because new item in it | 142 | // master collection changed because new item in it |
145 | TmpCollection.setModified( 1 ); | 143 | TmpCollection.setModified( 1 ); |
146 | // no more valid items in old list | 144 | // no more valid items in old list |
147 | NNI = 0; | 145 | NNI = 0; |
148 | } else { | 146 | } else { |
149 | // already in list -> copy pointer | 147 | // already in list -> copy pointer |
150 | TmpCollection.append( NNI ); | 148 | TmpCollection.append( NNI ); |
151 | NNI = SelectedNodes->next(); | 149 | NNI = SelectedNodes->next(); |
152 | } | 150 | } |
153 | it = it->firstChild(); | 151 | it = it->firstChild(); |
154 | // do not bother to check other items | 152 | // do not bother to check other items |
155 | break; | 153 | break; |
156 | } | 154 | } |
157 | it = it->nextSibling(); | 155 | it = it->nextSibling(); |
158 | } | 156 | } |
159 | } else { | 157 | } else { |
160 | // check children | 158 | // check children |
161 | it = it->firstChild(); | 159 | it = it->firstChild(); |
162 | } | 160 | } |
@@ -177,98 +175,95 @@ void EditConnection::setConnection( NodeCollection * NC ) { | |||
177 | 175 | ||
178 | // show configure tabl | 176 | // show configure tabl |
179 | Tab_TB->setCurrentPage( 1 ); | 177 | Tab_TB->setCurrentPage( 1 ); |
180 | 178 | ||
181 | // valid colledction | 179 | // valid colledction |
182 | Tab_TB->setTabEnabled( Setup_FRM, FALSE ); | 180 | Tab_TB->setTabEnabled( Setup_FRM, FALSE ); |
183 | Setup_FRM->setEnabled( FALSE ); | 181 | Setup_FRM->setEnabled( FALSE ); |
184 | 182 | ||
185 | // select items in collection | 183 | // select items in collection |
186 | QListViewItem * it = Nodes_LV->firstChild(); | 184 | QListViewItem * it = Nodes_LV->firstChild(); |
187 | bool Found; | 185 | bool Found; |
188 | 186 | ||
189 | TmpIsValid = 0; | 187 | TmpIsValid = 0; |
190 | 188 | ||
191 | while ( it ) { | 189 | while ( it ) { |
192 | // listitem corresponds to netnode | 190 | // listitem corresponds to netnode |
193 | NN = (*Mapping)[it]; | 191 | NN = (*Mapping)[it]; |
194 | if( NN == 0 ) { | 192 | if( NN == 0 ) { |
195 | // child is controller -> has sub radio | 193 | // child is controller -> has sub radio |
196 | QString Ctr = it->text(0); | 194 | QString Ctr = it->text(0); |
197 | // check if one radio is selected | 195 | // check if one radio is selected |
198 | it = it->firstChild(); | 196 | it = it->firstChild(); |
199 | Found = 0; | 197 | Found = 0; |
200 | while( it ) { | 198 | while( it ) { |
201 | if( NNI && NNI->netNode()->nodeName() == it->text(0) ) { | 199 | if( NNI && NNI->nodeClass()->nodeName() == it->text(0) ) { |
202 | // this radio is part of the collection | 200 | // this radio is part of the collection |
203 | ((QCheckListItem *)it)->setOn( 1 ); | 201 | ((QCheckListItem *)it)->setOn( 1 ); |
204 | updateGUI( it, NNI->netNode() ); | 202 | updateGUI( it, NNI->nodeClass() ); |
205 | // check its children | 203 | // check its children |
206 | Found = 1; | 204 | Found = 1; |
207 | it = it->firstChild(); | 205 | it = it->firstChild(); |
208 | NNI = SelectedNodes->next(); | 206 | NNI = SelectedNodes->next(); |
209 | // do not bother to check other items | 207 | // do not bother to check other items |
210 | break; | 208 | break; |
211 | } | 209 | } |
212 | it = it->nextSibling(); | 210 | it = it->nextSibling(); |
213 | } | 211 | } |
214 | if( ! Found ) { | 212 | if( ! Found ) { |
215 | // this means that this level is NOT present in collection | 213 | // this means that this level is NOT present in collection |
216 | // probably INCOMPATIBEL collection OR Missing plugin | 214 | // probably INCOMPATIBEL collection OR Missing plugin |
217 | QMessageBox::warning( | 215 | QMessageBox::warning( |
218 | 0, | 216 | 0, |
219 | tr( "Error presentig Connection" ), | 217 | tr( "Error presentig Connection" ), |
220 | tr( "<p>Old connection or missing plugin \"<i>%1</i>\"</p>" ). | 218 | tr( "<p>Old connection or missing plugin \"<i>%1</i>\"</p>" ). |
221 | arg(Ctr) ); | 219 | arg(Ctr) ); |
222 | return; | 220 | return; |
223 | } | 221 | } |
224 | } else { | 222 | } else { |
225 | // automatic item -> check children | 223 | // automatic item -> check children |
226 | it = it->firstChild(); | 224 | it = it->firstChild(); |
227 | } | 225 | } |
228 | } | 226 | } |
229 | } | 227 | } |
230 | 228 | ||
231 | // get result of editing (either new OR updated collection | 229 | // get result of editing (either new OR updated collection |
232 | NodeCollection * EditConnection::connection( void ) { | 230 | NodeCollection * EditConnection::connection( void ) { |
233 | 231 | ||
234 | if( SelectedNodes == 0 ) { | 232 | if( SelectedNodes == 0 ) { |
235 | // new collection | 233 | // new collection |
236 | SelectedNodes = new NodeCollection; | 234 | SelectedNodes = new NodeCollection; |
237 | } | 235 | } |
238 | 236 | ||
239 | // clean out old entries | 237 | // clean out old entries |
240 | SelectedNodes->clear(); | 238 | SelectedNodes->clear(); |
241 | 239 | ||
242 | // transfer | 240 | // transfer |
243 | { ANetNodeInstance * NNI; | ||
244 | |||
245 | for( QListIterator<ANetNodeInstance> it(TmpCollection); | 241 | for( QListIterator<ANetNodeInstance> it(TmpCollection); |
246 | it.current(); | 242 | it.current(); |
247 | ++it ) { | 243 | ++it ) { |
248 | SelectedNodes->append( it.current() ); | 244 | SelectedNodes->append( it.current() ); |
249 | } | 245 | } |
250 | } | ||
251 | 246 | ||
252 | if( TmpCollection.isModified() ) | 247 | if( TmpCollection.isModified() ) |
253 | SelectedNodes->setModified( 1 ); | 248 | SelectedNodes->setModified( 1 ); |
254 | 249 | ||
255 | if( SelectedNodes->name() != Name_LE->text() ) { | 250 | if( SelectedNodes->name() != Name_LE->text() ) { |
256 | SelectedNodes->setName( Name_LE->text() ); | 251 | SelectedNodes->setName( Name_LE->text() ); |
257 | SelectedNodes->setModified( 1 ); | 252 | SelectedNodes->setModified( 1 ); |
258 | } | 253 | } |
259 | 254 | ||
260 | return SelectedNodes; | 255 | return SelectedNodes; |
261 | } | 256 | } |
262 | 257 | ||
263 | // Build device tree -> start | 258 | // Build device tree -> start |
264 | void EditConnection::buildFullTree( void ) { | 259 | void EditConnection::buildFullTree( void ) { |
265 | ANetNode * NN; | 260 | ANetNode * NN; |
266 | 261 | ||
267 | // toplevel item | 262 | // toplevel item |
268 | MyQCheckListItem * TheTop = new MyQCheckListItem( | 263 | MyQCheckListItem * TheTop = new MyQCheckListItem( |
269 | Nodes_LV, | 264 | Nodes_LV, |
270 | NSResources->netNode2Name("fullsetup"), | 265 | NSResources->netNode2Name("fullsetup"), |
271 | QCheckListItem::Controller ); | 266 | QCheckListItem::Controller ); |
272 | TheTop->setOpen( TRUE ); | 267 | TheTop->setOpen( TRUE ); |
273 | Description_LBL->setText( | 268 | Description_LBL->setText( |
274 | NSResources->netNode2Description( "fullsetup" ) ); | 269 | NSResources->netNode2Description( "fullsetup" ) ); |
@@ -427,50 +422,50 @@ void EditConnection::SLOT_AlterTab( const QString & S ) { | |||
427 | if( ! TmpIsValid ) { | 422 | if( ! TmpIsValid ) { |
428 | getTmpCollection(); | 423 | getTmpCollection(); |
429 | 424 | ||
430 | // clear CB and Ws | 425 | // clear CB and Ws |
431 | { QWidget * W; | 426 | { QWidget * W; |
432 | int i = 0; | 427 | int i = 0; |
433 | 428 | ||
434 | Devices_CB->clear(); | 429 | Devices_CB->clear(); |
435 | while( ( W = Setup_WS->widget( i ) ) ) { | 430 | while( ( W = Setup_WS->widget( i ) ) ) { |
436 | Setup_WS->removeWidget( W ); | 431 | Setup_WS->removeWidget( W ); |
437 | i ++; | 432 | i ++; |
438 | } | 433 | } |
439 | } | 434 | } |
440 | 435 | ||
441 | // update CB | 436 | // update CB |
442 | // and populate WidgetStack | 437 | // and populate WidgetStack |
443 | { ANetNodeInstance * NNI; | 438 | { ANetNodeInstance * NNI; |
444 | QListIterator<ANetNodeInstance> it(TmpCollection); | 439 | QListIterator<ANetNodeInstance> it(TmpCollection); |
445 | int i = 0; | 440 | int i = 0; |
446 | QWidget * W; | 441 | QWidget * W; |
447 | 442 | ||
448 | for ( ; it.current(); ++it ) { | 443 | for ( ; it.current(); ++it ) { |
449 | NNI = it.current(); | 444 | NNI = it.current(); |
450 | Devices_CB->insertItem( | 445 | Devices_CB->insertItem( |
451 | NSResources->getPixmap( NNI->netNode()->pixmapName() ), | 446 | NSResources->getPixmap( NNI->nodeClass()->pixmapName() ), |
452 | NNI->netNode()->nodeName() | 447 | NNI->nodeClass()->nodeName() |
453 | ); | 448 | ); |
454 | 449 | ||
455 | // add edit widget | 450 | // add edit widget |
456 | W = NNI->edit( Setup_WS ); | 451 | W = NNI->edit( Setup_WS ); |
457 | if( ! W) { | 452 | if( ! W) { |
458 | W = new QLabel( Setup_WS, | 453 | W = new QLabel( Setup_WS, |
459 | tr("No configuration required")); | 454 | tr("No configuration required")); |
460 | } | 455 | } |
461 | Setup_WS->addWidget( W , i ); | 456 | Setup_WS->addWidget( W , i ); |
462 | i ++; | 457 | i ++; |
463 | } | 458 | } |
464 | } | 459 | } |
465 | Setup_WS->raiseWidget( 0 ); | 460 | Setup_WS->raiseWidget( 0 ); |
466 | } // still valid | 461 | } // still valid |
467 | } | 462 | } |
468 | } | 463 | } |
469 | 464 | ||
470 | // update visual feedback of selection state | 465 | // update visual feedback of selection state |
471 | void EditConnection::updateGUI( QListViewItem * it, ANetNode * NN ) { | 466 | void EditConnection::updateGUI( QListViewItem * it, ANetNode * NN ) { |
472 | 467 | ||
473 | bool HCC = haveCompleteConfig( it ); | 468 | bool HCC = haveCompleteConfig( it ); |
474 | Tab_TB->setTabEnabled( Setup_FRM, HCC ); | 469 | Tab_TB->setTabEnabled( Setup_FRM, HCC ); |
475 | Setup_FRM->setEnabled( HCC ); | 470 | Setup_FRM->setEnabled( HCC ); |
476 | 471 | ||