summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/settings/aqpkg/settingsimpl.cpp114
1 files changed, 72 insertions, 42 deletions
diff --git a/noncore/settings/aqpkg/settingsimpl.cpp b/noncore/settings/aqpkg/settingsimpl.cpp
index 9f611da..e2afada 100644
--- a/noncore/settings/aqpkg/settingsimpl.cpp
+++ b/noncore/settings/aqpkg/settingsimpl.cpp
@@ -277,45 +277,58 @@ void SettingsImpl :: setupData()
277 txtUsername->setText( dataMgr->getProxyUsername() ); 277 txtUsername->setText( dataMgr->getProxyUsername() );
278 txtPassword->setText( dataMgr->getProxyPassword() ); 278 txtPassword->setText( dataMgr->getProxyPassword() );
279 chkHttpProxyEnabled->setChecked( dataMgr->getHttpProxyEnabled() ); 279 chkHttpProxyEnabled->setChecked( dataMgr->getHttpProxyEnabled() );
280 chkFtpProxyEnabled->setChecked( dataMgr->getFtpProxyEnabled() ); 280 chkFtpProxyEnabled->setChecked( dataMgr->getFtpProxyEnabled() );
281} 281}
282 282
283//------------------ Servers tab ---------------------- 283//------------------ Servers tab ----------------------
284 284
285void SettingsImpl :: editServer( int sel ) 285void SettingsImpl :: editServer( int sel )
286{ 286{
287 currentSelectedServer = sel; 287 currentSelectedServer = sel;
288 Server *s = dataMgr->getServer( servers->currentText() ); 288 Server *s = dataMgr->getServer( servers->currentText() );
289 serverName = s->getServerName(); 289 if ( s )
290 servername->setText( s->getServerName() ); 290 {
291 serverurl->setText( s->getServerUrl() ); 291 serverName = s->getServerName();
292 active->setChecked( s->isServerActive() ); 292 servername->setText( s->getServerName() );
293 serverurl->setText( s->getServerUrl() );
294 active->setChecked( s->isServerActive() );
295 }
296 else
297 {
298 serverName = "";
299 servername->setText( "" );
300 serverurl->setText( "" );
301 active->setChecked( false );
302 }
293} 303}
294 304
295void SettingsImpl :: newServer() 305void SettingsImpl :: newServer()
296{ 306{
297 newserver = true; 307 newserver = true;
298 servername->setText( "" ); 308 servername->setText( "" );
299 serverurl->setText( "" ); 309 serverurl->setText( "" );
300 servername->setFocus(); 310 servername->setFocus();
301 active->setChecked( true ); 311 active->setChecked( true );
302} 312}
303 313
304void SettingsImpl :: removeServer() 314void SettingsImpl :: removeServer()
305{ 315{
306 changed = true; 316 changed = true;
307 Server *s = dataMgr->getServer( servers->currentText() ); 317 Server *s = dataMgr->getServer( servers->currentText() );
308 dataMgr->getServerList().removeRef( s ); 318 if ( s )
309 servers->removeItem( currentSelectedServer ); 319 {
320 dataMgr->getServerList().removeRef( s );
321 servers->removeItem( currentSelectedServer );
322 }
310} 323}
311 324
312void SettingsImpl :: changeServerDetails() 325void SettingsImpl :: changeServerDetails()
313{ 326{
314 changed = true; 327 changed = true;
315 328
316 QString newName = servername->text(); 329 QString newName = servername->text();
317 330
318 // Convert any spaces to underscores 331 // Convert any spaces to underscores
319 char *tmpStr = new char[newName.length() + 1]; 332 char *tmpStr = new char[newName.length() + 1];
320 for ( unsigned int i = 0 ; i < newName.length() ; ++i ) 333 for ( unsigned int i = 0 ; i < newName.length() ; ++i )
321 { 334 {
@@ -323,113 +336,130 @@ void SettingsImpl :: changeServerDetails()
323 tmpStr[i] = '_'; 336 tmpStr[i] = '_';
324 else 337 else
325 tmpStr[i] = newName[i].latin1(); 338 tmpStr[i] = newName[i].latin1();
326 } 339 }
327 tmpStr[newName.length()] = '\0'; 340 tmpStr[newName.length()] = '\0';
328 341
329 newName = tmpStr; 342 newName = tmpStr;
330 delete tmpStr; 343 delete tmpStr;
331 344
332 if ( !newserver ) 345 if ( !newserver )
333 { 346 {
334 Server *s = dataMgr->getServer( servers->currentText() ); 347 Server *s = dataMgr->getServer( servers->currentText() );
335 348 if ( s )
336 // Update url
337 s->setServerUrl( serverurl->text() );
338 s->setActive( active->isChecked() );
339
340
341 // Check if server name has changed, if it has then we need to replace the key in the map
342 if ( serverName != newName )
343 { 349 {
344 // Update server name 350 // Update url
345 s->setServerName( newName ); 351 s->setServerUrl( serverurl->text() );
346 } 352 s->setActive( active->isChecked() );
353
354 // Check if server name has changed, if it has then we need to replace the key in the map
355 if ( serverName != newName )
356 {
357 // Update server name
358 s->setServerName( newName );
359 }
347 360
348 // Update list box 361 // Update list box
349 servers->changeItem( newName, currentSelectedServer ); 362 servers->changeItem( newName, currentSelectedServer );
363 }
350 } 364 }
351 else 365 else
352 { 366 {
353 Server s( newName, serverurl->text() ); 367 Server s( newName, serverurl->text() );
354 dataMgr->getServerList().append( new Server( newName, serverurl->text() ) ); 368 dataMgr->getServerList().append( new Server( newName, serverurl->text() ) );
355 dataMgr->getServerList().last()->setActive( active->isChecked() ); 369 dataMgr->getServerList().last()->setActive( active->isChecked() );
356 servers->insertItem( newName ); 370 servers->insertItem( newName );
357 servers->setCurrentItem( servers->count() ); 371 servers->setCurrentItem( servers->count() );
358 newserver = false; 372 newserver = false;
359 } 373 }
360} 374}
361 375
362//------------------ Destinations tab ---------------------- 376//------------------ Destinations tab ----------------------
363 377
364void SettingsImpl :: editDestination( int sel ) 378void SettingsImpl :: editDestination( int sel )
365{ 379{
366 currentSelectedDestination = sel; 380 currentSelectedDestination = sel;
367 Destination *d = dataMgr->getDestination( destinations->currentText() ); 381 Destination *d = dataMgr->getDestination( destinations->currentText() );
368 destinationName = d->getDestinationName(); 382 if ( d )
369 destinationname->setText( d->getDestinationName() ); 383 {
370 destinationurl->setText( d->getDestinationPath() ); 384 destinationName = d->getDestinationName();
371 linkToRoot->setChecked( d->linkToRoot() ); 385 destinationname->setText( d->getDestinationName() );
386 destinationurl->setText( d->getDestinationPath() );
387 linkToRoot->setChecked( d->linkToRoot() );
388 }
389 else
390 {
391 destinationName = "";
392 destinationname->setText( "" );
393 destinationurl->setText( "" );
394 linkToRoot->setChecked( false );
395 }
372} 396}
373 397
374void SettingsImpl :: newDestination() 398void SettingsImpl :: newDestination()
375{ 399{
376 newdestination = true; 400 newdestination = true;
377 destinationname->setText( "" ); 401 destinationname->setText( "" );
378 destinationurl->setText( "" ); 402 destinationurl->setText( "" );
379 destinationname->setFocus(); 403 destinationname->setFocus();
380 linkToRoot->setChecked( true ); 404 linkToRoot->setChecked( true );
381} 405}
382 406
383void SettingsImpl :: removeDestination() 407void SettingsImpl :: removeDestination()
384{ 408{
385 changed = true; 409 changed = true;
386 Destination *d = dataMgr->getDestination( destinations->currentText() ); 410 Destination *d = dataMgr->getDestination( destinations->currentText() );
387 dataMgr->getDestinationList().removeRef( d ); 411 if ( d )
388 destinations->removeItem( currentSelectedDestination ); 412 {
413 dataMgr->getDestinationList().removeRef( d );
414 destinations->removeItem( currentSelectedDestination );
415 }
389} 416}
390 417
391void SettingsImpl :: changeDestinationDetails() 418void SettingsImpl :: changeDestinationDetails()
392{ 419{
393 changed = true; 420 changed = true;
394 421
395#ifdef QWS 422#ifdef QWS
396 Config cfg( "aqpkg" ); 423 Config cfg( "aqpkg" );
397 cfg.setGroup( "destinations" ); 424 cfg.setGroup( "destinations" );
398#endif 425#endif
399 426
400 QString newName = destinationname->text(); 427 QString newName = destinationname->text();
401 if ( !newdestination ) 428 if ( !newdestination )
402 { 429 {
403 Destination *d = dataMgr->getDestination( destinations->currentText() ); 430 Destination *d = dataMgr->getDestination( destinations->currentText() );
431 if ( d )
432 {
433 // Update url
434 d->setDestinationPath( destinationurl->text() );
435 d->linkToRoot( linkToRoot->isChecked() );
404 436
405 // Update url 437 // Check if server name has changed, if it has then we need to replace the key in the map
406 d->setDestinationPath( destinationurl->text() ); 438 if ( destinationName != newName )
407 d->linkToRoot( linkToRoot->isChecked() ); 439 {
440 // Update server name
441 d->setDestinationName( newName );
408 442
409 // Check if server name has changed, if it has then we need to replace the key in the map 443 // Update list box
410 if ( destinationName != newName ) 444 destinations->changeItem( newName, currentSelectedDestination );
411 { 445 }
412 // Update server name
413 d->setDestinationName( newName );
414 446
415 // Update list box
416 destinations->changeItem( newName, currentSelectedDestination );
417 }
418#ifdef QWS 447#ifdef QWS
419 QString key = newName; 448 QString key = newName;
420 key += "_linkToRoot"; 449 key += "_linkToRoot";
421 int val = d->linkToRoot(); 450 int val = d->linkToRoot();
422 cfg.writeEntry( key, val ); 451 cfg.writeEntry( key, val );
423#endif 452#endif
453 }
424 } 454 }
425 else 455 else
426 { 456 {
427 dataMgr->getDestinationList().append( new Destination( newName, destinationurl->text() ) ); 457 dataMgr->getDestinationList().append( new Destination( newName, destinationurl->text() ) );
428 destinations->insertItem( newName ); 458 destinations->insertItem( newName );
429 destinations->setCurrentItem( destinations->count() ); 459 destinations->setCurrentItem( destinations->count() );
430 newdestination = false; 460 newdestination = false;
431 461
432#ifdef QWS 462#ifdef QWS
433 QString key = newName; 463 QString key = newName;
434 key += "_linkToRoot"; 464 key += "_linkToRoot";
435 cfg.writeEntry( key, true ); 465 cfg.writeEntry( key, true );