-rw-r--r-- | noncore/settings/aqpkg/networkpkgmgr.cpp | 21 |
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() | |||
333 | void NetworkPackageManager :: upgradePackages() | 333 | void 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 | ||
363 | void NetworkPackageManager :: downloadPackage() | 363 | void 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 | ||
450 | void NetworkPackageManager :: applyChanges() | 463 | void 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; |