summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/settings/aqpkg/networkpkgmgr.cpp21
1 files changed, 17 insertions, 4 deletions
diff --git a/noncore/settings/aqpkg/networkpkgmgr.cpp b/noncore/settings/aqpkg/networkpkgmgr.cpp
index dee834e..ccce401 100644
--- a/noncore/settings/aqpkg/networkpkgmgr.cpp
+++ b/noncore/settings/aqpkg/networkpkgmgr.cpp
@@ -333,146 +333,159 @@ void NetworkPackageManager :: updateServer()
333void NetworkPackageManager :: upgradePackages() 333void NetworkPackageManager :: upgradePackages()
334{ 334{
335 // We're gonna do an upgrade of all packages 335 // We're gonna do an upgrade of all packages
336 // First warn user that this isn't recommended 336 // First warn user that this isn't recommended
337 QString text = "WARNING: Upgrading while\nOpie/Qtopia is running\nis NOT recommended!\n\nAre you sure?\n"; 337 QString text = "WARNING: Upgrading while\nOpie/Qtopia is running\nis NOT recommended!\n\nAre you sure?\n";
338 QMessageBox warn("Warning", text, QMessageBox::Warning, 338 QMessageBox warn("Warning", text, QMessageBox::Warning,
339 QMessageBox::Yes, 339 QMessageBox::Yes,
340 QMessageBox::No | QMessageBox::Escape | QMessageBox::Default , 340 QMessageBox::No | QMessageBox::Escape | QMessageBox::Default ,
341 0, this ); 341 0, this );
342 warn.adjustSize(); 342 warn.adjustSize();
343 343
344 if ( warn.exec() == QMessageBox::Yes ) 344 if ( warn.exec() == QMessageBox::Yes )
345 { 345 {
346 // First, write out ipkg_conf file so that ipkg can use it 346 // First, write out ipkg_conf file so that ipkg can use it
347 dataMgr->writeOutIpkgConf(); 347 dataMgr->writeOutIpkgConf();
348 348
349 // Now run upgrade 349 // Now run upgrade
350 Ipkg ipkg; 350 Ipkg ipkg;
351 ipkg.setOption( "upgrade" ); 351 ipkg.setOption( "upgrade" );
352 352
353 InstallDlgImpl dlg( &ipkg, "Upgrading installed packages", this, "Upgrade", true ); 353 InstallDlgImpl dlg( &ipkg, "Upgrading installed packages", this, "Upgrade", true );
354 dlg.showDlg(); 354 dlg.showDlg();
355 355
356 // Reload data 356 // Reload data
357 dataMgr->reloadServerData(); 357 dataMgr->reloadServerData();
358 serverSelected(-1); 358 serverSelected(-1);
359 } 359 }
360} 360}
361 361
362 362
363void NetworkPackageManager :: downloadPackage() 363void NetworkPackageManager :: downloadPackage()
364{ 364{
365 bool doUpdate = true;
365 if ( download->text() == "Download" ) 366 if ( download->text() == "Download" )
366 { 367 {
367 // First, write out ipkg_conf file so that ipkg can use it 368 // First, write out ipkg_conf file so that ipkg can use it
368 dataMgr->writeOutIpkgConf(); 369 dataMgr->writeOutIpkgConf();
369 370
370 // Display dialog to user asking where to download the files to 371 // Display dialog to user asking where to download the files to
371 bool ok = FALSE; 372 bool ok = FALSE;
372 QString dir = ""; 373 QString dir = "";
373#ifdef QWS 374#ifdef QWS
374 // read download directory from config file 375 // read download directory from config file
375 Config cfg( "aqpkg" ); 376 Config cfg( "aqpkg" );
376 cfg.setGroup( "settings" ); 377 cfg.setGroup( "settings" );
377 dir = cfg.readEntry( "downloadDir", "/home/root/Documents/application/ipkg" ); 378 dir = cfg.readEntry( "downloadDir", "/home/root/Documents/application/ipkg" );
378#endif 379#endif
379 380
380 QString text = InputDialog::getText( tr( "Download to where" ), tr( "Enter path to download to" ), dir, &ok, this ); 381 QString text = InputDialog::getText( tr( "Download to where" ), tr( "Enter path to download to" ), dir, &ok, this );
381 if ( ok && !text.isEmpty() ) 382 if ( ok && !text.isEmpty() )
382 dir = text; // user entered something and pressed ok 383 dir = text; // user entered something and pressed ok
383 else 384 else
384 return; // user entered nothing or pressed cancel 385 return; // user entered nothing or pressed cancel
385 386
386#ifdef QWS 387#ifdef QWS
387 // Store download directory in config file 388 // Store download directory in config file
388 cfg.writeEntry( "downloadDir", dir ); 389 cfg.writeEntry( "downloadDir", dir );
389#endif 390#endif
390 391
391 // Get starting directory 392 // Get starting directory
392 char initDir[PATH_MAX]; 393 char initDir[PATH_MAX];
393 getcwd( initDir, PATH_MAX ); 394 getcwd( initDir, PATH_MAX );
394 395
395 // Download each package 396 // Download each package
396 Ipkg ipkg; 397 Ipkg ipkg;
397 connect( &ipkg, SIGNAL(outputText(const QString &)), this, SLOT(displayText(const QString &))); 398 connect( &ipkg, SIGNAL(outputText(const QString &)), this, SLOT(displayText(const QString &)));
398 399
399 ipkg.setOption( "download" ); 400 ipkg.setOption( "download" );
400 ipkg.setRuntimeDirectory( dir ); 401 ipkg.setRuntimeDirectory( dir );
401 for ( QCheckListItem *item = (QCheckListItem *)packagesList->firstChild(); 402 for ( QCheckListItem *item = (QCheckListItem *)packagesList->firstChild();
402 item != 0 ; 403 item != 0 ;
403 item = (QCheckListItem *)item->nextSibling() ) 404 item = (QCheckListItem *)item->nextSibling() )
404 { 405 {
405 if ( item->isOn() ) 406 if ( item->isOn() )
406 { 407 {
407 QString name = item->text(); 408 QString name = item->text();
408 int pos = name.find( "*" ); 409 int pos = name.find( "*" );
409 name.truncate( pos ); 410 name.truncate( pos );
410 411
411 // if (there is a (installed), remove it 412 // if (there is a (installed), remove it
412 pos = name.find( "(installed)" ); 413 pos = name.find( "(installed)" );
413 if ( pos > 0 ) 414 if ( pos > 0 )
414 name.truncate( pos - 1 ); 415 name.truncate( pos - 1 );
415 416
416 ipkg.setPackage( name ); 417 ipkg.setPackage( name );
417 ipkg.runIpkg( ); 418 ipkg.runIpkg( );
418 } 419 }
419 } 420 }
420 } 421 }
421 else if ( download->text() == "Remove" ) 422 else if ( download->text() == "Remove" )
422 { 423 {
424 doUpdate = false;
423 for ( QCheckListItem *item = (QCheckListItem *)packagesList->firstChild(); 425 for ( QCheckListItem *item = (QCheckListItem *)packagesList->firstChild();
424 item != 0 ; 426 item != 0 ;
425 item = (QCheckListItem *)item->nextSibling() ) 427 item = (QCheckListItem *)item->nextSibling() )
426 { 428 {
427 if ( item->isOn() ) 429 if ( item->isOn() )
428 { 430 {
429 QString name = item->text(); 431 QString name = item->text();
430 int pos = name.find( "*" ); 432 int pos = name.find( "*" );
431 name.truncate( pos ); 433 name.truncate( pos );
432 434
433 // if (there is a (installed), remove it 435 // if (there is a (installed), remove it
434 pos = name.find( "(installed)" ); 436 pos = name.find( "(installed)" );
435 if ( pos > 0 ) 437 if ( pos > 0 )
436 name.truncate( pos - 1 ); 438 name.truncate( pos - 1 );
437 439
438 Package *p = dataMgr->getServer( serversList->currentText() )->getPackage( name ); 440 Package *p = dataMgr->getServer( serversList->currentText() )->getPackage( name );
439 QFile f( p->getFilename() ); 441
440 f.remove(); 442 QString msgtext;
443 msgtext.sprintf( "Are you sure you wish to delete\n%s?", (const char *)p->getPackageName() );
444 if ( QMessageBox::information( this, "Are you sure?",
445 msgtext, "No", "Yes" ) == 1 )
446 {
447 doUpdate = true;
448 QFile f( p->getFilename() );
449 f.remove();
450 }
441 } 451 }
442 } 452 }
443 } 453 }
444 454
445 dataMgr->reloadServerData(); 455 if ( doUpdate )
446 serverSelected( -1 ); 456 {
457 dataMgr->reloadServerData();
458 serverSelected( -1 );
459 }
447} 460}
448 461
449 462
450void NetworkPackageManager :: applyChanges() 463void NetworkPackageManager :: applyChanges()
451{ 464{
452 stickyOption = ""; 465 stickyOption = "";
453 466
454 // First, write out ipkg_conf file so that ipkg can use it 467 // First, write out ipkg_conf file so that ipkg can use it
455 dataMgr->writeOutIpkgConf(); 468 dataMgr->writeOutIpkgConf();
456 469
457 // Now for each selected item 470 // Now for each selected item
458 // deal with it 471 // deal with it
459 472
460 vector<InstallData> workingPackages; 473 vector<InstallData> workingPackages;
461 for ( QCheckListItem *item = (QCheckListItem *)packagesList->firstChild(); 474 for ( QCheckListItem *item = (QCheckListItem *)packagesList->firstChild();
462 item != 0 ; 475 item != 0 ;
463 item = (QCheckListItem *)item->nextSibling() ) 476 item = (QCheckListItem *)item->nextSibling() )
464 { 477 {
465 if ( item->isOn() ) 478 if ( item->isOn() )
466 { 479 {
467 InstallData data = dealWithItem( item ); 480 InstallData data = dealWithItem( item );
468 workingPackages.push_back( data ); 481 workingPackages.push_back( data );
469 } 482 }
470 } 483 }
471 484
472 if ( workingPackages.size() == 0 ) 485 if ( workingPackages.size() == 0 )
473 { 486 {
474 // Nothing to do 487 // Nothing to do
475 QMessageBox::information( this, "Nothing to do", 488 QMessageBox::information( this, "Nothing to do",
476 "No packages selected", "OK" ); 489 "No packages selected", "OK" );
477 490
478 return; 491 return;