summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/settings/aqpkg/mainwin.cpp6
-rw-r--r--noncore/settings/aqpkg/package.cpp5
-rw-r--r--noncore/settings/aqpkg/package.h19
-rw-r--r--noncore/settings/aqpkg/server.cpp2
4 files changed, 16 insertions, 16 deletions
diff --git a/noncore/settings/aqpkg/mainwin.cpp b/noncore/settings/aqpkg/mainwin.cpp
index 6ea619c..fb40d52 100644
--- a/noncore/settings/aqpkg/mainwin.cpp
+++ b/noncore/settings/aqpkg/mainwin.cpp
@@ -450,410 +450,408 @@ bool MainWindow :: setFilterCategory()
450void MainWindow :: filterCategory() 450void MainWindow :: filterCategory()
451{ 451{
452 if ( !actionFilter->isOn() ) 452 if ( !actionFilter->isOn() )
453 { 453 {
454 filterByCategory( FALSE ); 454 filterByCategory( FALSE );
455 } 455 }
456 else 456 else
457 { 457 {
458 actionFilter->setOn( filterByCategory( TRUE ) ); 458 actionFilter->setOn( filterByCategory( TRUE ) );
459 } 459 }
460} 460}
461 461
462bool MainWindow :: filterByCategory( bool val ) 462bool MainWindow :: filterByCategory( bool val )
463{ 463{
464 if ( val ) 464 if ( val )
465 { 465 {
466 if ( categoryFilter == "" ) 466 if ( categoryFilter == "" )
467 { 467 {
468 if ( !setFilterCategory() ) 468 if ( !setFilterCategory() )
469 return false; 469 return false;
470 } 470 }
471 471
472 categoryFilterEnabled = true; 472 categoryFilterEnabled = true;
473 serverSelected( -1 ); 473 serverSelected( -1 );
474 return true; 474 return true;
475 } 475 }
476 else 476 else
477 { 477 {
478 // Turn off filter 478 // Turn off filter
479 categoryFilterEnabled = false; 479 categoryFilterEnabled = false;
480 serverSelected( -1 ); 480 serverSelected( -1 );
481 return false; 481 return false;
482 } 482 }
483} 483}
484 484
485void MainWindow :: raiseMainWidget() 485void MainWindow :: raiseMainWidget()
486{ 486{
487 stack->raiseWidget( networkPkgWindow ); 487 stack->raiseWidget( networkPkgWindow );
488} 488}
489 489
490void MainWindow :: raiseProgressWidget() 490void MainWindow :: raiseProgressWidget()
491{ 491{
492 stack->raiseWidget( progressWindow ); 492 stack->raiseWidget( progressWindow );
493} 493}
494 494
495void MainWindow :: enableUpgrade( bool enabled ) 495void MainWindow :: enableUpgrade( bool enabled )
496{ 496{
497 actionUpgrade->setEnabled( enabled ); 497 actionUpgrade->setEnabled( enabled );
498} 498}
499 499
500void MainWindow :: enableDownload( bool enabled ) 500void MainWindow :: enableDownload( bool enabled )
501{ 501{
502 if ( enabled ) 502 if ( enabled )
503 { 503 {
504 actionDownload->setIconSet( iconDownload ); 504 actionDownload->setIconSet( iconDownload );
505 actionDownload->setText( tr( "Download" ) ); 505 actionDownload->setText( tr( "Download" ) );
506 actionDownload->setWhatsThis( tr( "Click here to download the currently selected package(s)." ) ); 506 actionDownload->setWhatsThis( tr( "Click here to download the currently selected package(s)." ) );
507 } 507 }
508 else 508 else
509 { 509 {
510 actionDownload->setIconSet( iconRemove ); 510 actionDownload->setIconSet( iconRemove );
511 actionDownload->setText( tr( "Remove" ) ); 511 actionDownload->setText( tr( "Remove" ) );
512 actionDownload->setWhatsThis( tr( "Click here to uninstall the currently selected package(s)." ) ); 512 actionDownload->setWhatsThis( tr( "Click here to uninstall the currently selected package(s)." ) );
513 } 513 }
514} 514}
515 515
516void MainWindow :: setProgressSteps( int numsteps ) 516void MainWindow :: setProgressSteps( int numsteps )
517{ 517{
518 m_progress->setTotalSteps( numsteps ); 518 m_progress->setTotalSteps( numsteps );
519} 519}
520 520
521void MainWindow :: setProgressMessage( const QString &msg ) 521void MainWindow :: setProgressMessage( const QString &msg )
522{ 522{
523 m_status->setText( msg ); 523 m_status->setText( msg );
524} 524}
525 525
526void MainWindow :: updateProgress( int progress ) 526void MainWindow :: updateProgress( int progress )
527{ 527{
528 m_progress->setProgress( progress ); 528 m_progress->setProgress( progress );
529} 529}
530 530
531void MainWindow :: updateData() 531void MainWindow :: updateData()
532{ 532{
533 m_progress->setTotalSteps( mgr->getServerList().count() ); 533 m_progress->setTotalSteps( mgr->getServerList().count() );
534 534
535 serversList->clear(); 535 serversList->clear();
536 packagesList->clear(); 536 packagesList->clear();
537 537
538 int activeItem = -1; 538 int activeItem = -1;
539 int i = 0; 539 int i = 0;
540 QString serverName; 540 QString serverName;
541 541
542 QListIterator<Server> it( mgr->getServerList() ); 542 QListIterator<Server> it( mgr->getServerList() );
543 Server *server; 543 Server *server;
544 544
545 for ( ; it.current(); ++it, ++i ) 545 for ( ; it.current(); ++it, ++i )
546 { 546 {
547 server = it.current(); 547 server = it.current();
548 serverName = server->getServerName(); 548 serverName = server->getServerName();
549 m_status->setText( tr( "Building server list:\n\t%1" ).arg( serverName ) ); 549 m_status->setText( tr( "Building server list:\n\t%1" ).arg( serverName ) );
550 m_progress->setProgress( i ); 550 m_progress->setProgress( i );
551 qApp->processEvents(); 551 qApp->processEvents();
552 552
553// cout << "Adding " << it->getServerName() << " to combobox" << endl; 553// cout << "Adding " << it->getServerName() << " to combobox" << endl;
554 if ( !server->isServerActive() ) 554 if ( !server->isServerActive() )
555 { 555 {
556// cout << serverName << " is not active" << endl; 556// cout << serverName << " is not active" << endl;
557 i--; 557 i--;
558 continue; 558 continue;
559 } 559 }
560 560
561 serversList->insertItem( serverName ); 561 serversList->insertItem( serverName );
562 if ( serverName == currentlySelectedServer ) 562 if ( serverName == currentlySelectedServer )
563 activeItem = i; 563 activeItem = i;
564 } 564 }
565 565
566 // set selected server to be active server 566 // set selected server to be active server
567 if ( activeItem != -1 ) 567 if ( activeItem != -1 )
568 serversList->setCurrentItem( activeItem ); 568 serversList->setCurrentItem( activeItem );
569 serverSelected( 0, FALSE ); 569 serverSelected( 0, FALSE );
570} 570}
571 571
572void MainWindow :: serverSelected( int index ) 572void MainWindow :: serverSelected( int index )
573{ 573{
574 serverSelected( index, TRUE ); 574 serverSelected( index, TRUE );
575} 575}
576 576
577void MainWindow :: serverSelected( int, bool raiseProgress ) 577void MainWindow :: serverSelected( int, bool raiseProgress )
578{ 578{
579 QPixmap nullIcon( installedIcon.size() ); 579 QPixmap nullIcon( installedIcon.size() );
580 nullIcon.fill( colorGroup().base() ); 580 nullIcon.fill( colorGroup().base() );
581 581
582 // display packages 582 // display packages
583 QString serverName = serversList->currentText(); 583 QString serverName = serversList->currentText();
584 currentlySelectedServer = serverName; 584 currentlySelectedServer = serverName;
585 585
586 Server *s = mgr->getServer( serverName ); 586 Server *s = mgr->getServer( serverName );
587 587
588 QList<Package> &list = s->getPackageList(); 588 QList<Package> &list = s->getPackageList();
589 QListIterator<Package> it( list ); 589 QListIterator<Package> it( list );
590 590
591 // Display progress widget while loading list 591 // Display progress widget while loading list
592 bool doProgress = ( list.count() > 200 ); 592 bool doProgress = ( list.count() > 200 );
593 if ( doProgress ) 593 if ( doProgress )
594 { 594 {
595 if ( raiseProgress ) 595 if ( raiseProgress )
596 { 596 {
597 stack->raiseWidget( progressWindow ); 597 stack->raiseWidget( progressWindow );
598 } 598 }
599 m_progress->setTotalSteps( list.count() ); 599 m_progress->setTotalSteps( list.count() );
600 m_status->setText( tr( "Building package list for:\n\t%1" ).arg( serverName ) ); 600 m_status->setText( tr( "Building package list for:\n\t%1" ).arg( serverName ) );
601 } 601 }
602 602
603 packagesList->clear(); 603 packagesList->clear();
604 604
605#ifdef QWS 605#ifdef QWS
606 // read download directory from config file 606 // read download directory from config file
607 Config cfg( "aqpkg" ); 607 Config cfg( "aqpkg" );
608 cfg.setGroup( "settings" ); 608 cfg.setGroup( "settings" );
609 cfg.writeEntry( "selectedServer", currentlySelectedServer ); 609 cfg.writeEntry( "selectedServer", currentlySelectedServer );
610#endif 610#endif
611 611
612 int i = 0; 612 int i = 0;
613 Package *package; 613 Package *package;
614 for ( ; it.current(); ++it ) 614 for ( ; it.current(); ++it )
615 { 615 {
616 // Update progress after every 100th package (arbitrary value, seems to give good balance) 616 // Update progress after every 100th package (arbitrary value, seems to give good balance)
617 i++; 617 i++;
618 if ( ( i % 100 ) == 0 ) 618 if ( ( i % 100 ) == 0 )
619 { 619 {
620 if ( doProgress ) 620 if ( doProgress )
621 { 621 {
622 m_progress->setProgress( i ); 622 m_progress->setProgress( i );
623 } 623 }
624 qApp->processEvents(); 624 qApp->processEvents();
625 } 625 }
626 626
627 QString text = ""; 627 QString text = "";
628 628
629 package = it.current(); 629 package = it.current();
630 630
631 // Apply show only uninstalled packages filter 631 // Apply show only uninstalled packages filter
632 if ( showUninstalledPkgs && package->isInstalled() ) 632 if ( showUninstalledPkgs && package->isInstalled() )
633 continue; 633 continue;
634 634
635 // Apply show only installed packages filter 635 // Apply show only installed packages filter
636 if ( showInstalledPkgs && !package->isInstalled() ) 636 if ( showInstalledPkgs && !package->isInstalled() )
637 continue; 637 continue;
638 638
639 // Apply show only new installed packages filter 639 // Apply show only new installed packages filter
640 if ( showUpgradedPkgs ) 640 if ( showUpgradedPkgs )
641 { 641 {
642 if ( !package->isInstalled() || 642 if ( !package->isInstalled() || !package->getNewVersionAvailable() )
643 compareVersions( package->getInstalledVersion(), package->getVersion() ) != 1 )
644 continue; 643 continue;
645 } 644 }
646 645
647 // Apply the section filter 646 // Apply the section filter
648 if ( categoryFilterEnabled && categoryFilter != "" ) 647 if ( categoryFilterEnabled && categoryFilter != "" )
649 { 648 {
650 if ( package->getSection() == "" || categoryFilter.find( package->getSection().lower() ) == -1 ) 649 if ( package->getSection() == "" || categoryFilter.find( package->getSection().lower() ) == -1 )
651 continue; 650 continue;
652 } 651 }
653 652
654 // If the local server, only display installed packages 653 // If the local server, only display installed packages
655 if ( serverName == LOCAL_SERVER && !package->isInstalled() ) 654 if ( serverName == LOCAL_SERVER && !package->isInstalled() )
656 continue; 655 continue;
657 656
658 657
659 QCheckListItem *item = new QCheckListItem( packagesList, package->getPackageName(), 658 QCheckListItem *item = new QCheckListItem( packagesList, package->getPackageName(),
660 QCheckListItem::CheckBox ); 659 QCheckListItem::CheckBox );
661 660
662 if ( package->isInstalled() ) 661 if ( package->isInstalled() )
663 { 662 {
664 // If a different version of package is available, show update available icon 663 // If a different version of package is available, show update available icon
665 // Otherwise, show installed icon 664 // Otherwise, show installed icon
666 if ( package->getVersion() != package->getInstalledVersion() && 665 if ( package->getNewVersionAvailable())
667 compareVersions( package->getInstalledVersion(), package->getVersion() ) == 1)
668 { 666 {
669 667
670 item->setPixmap( 0, updatedIcon ); 668 item->setPixmap( 0, updatedIcon );
671 } 669 }
672 else 670 else
673 { 671 {
674 item->setPixmap( 0, installedIcon ); 672 item->setPixmap( 0, installedIcon );
675 } 673 }
676 674
677 QString destName = ""; 675 QString destName = "";
678 if ( package->getLocalPackage() ) 676 if ( package->getLocalPackage() )
679 { 677 {
680 if ( package->getLocalPackage()->getInstalledTo() ) 678 if ( package->getLocalPackage()->getInstalledTo() )
681 destName = package->getLocalPackage()->getInstalledTo()->getDestinationName(); 679 destName = package->getLocalPackage()->getInstalledTo()->getDestinationName();
682 } 680 }
683 else 681 else
684 { 682 {
685 if ( package->getInstalledTo() ) 683 if ( package->getInstalledTo() )
686 destName = package->getInstalledTo()->getDestinationName(); 684 destName = package->getInstalledTo()->getDestinationName();
687 } 685 }
688 if ( destName != "" ) 686 if ( destName != "" )
689 new QCheckListItem( item, QString( tr( "Installed To - %1" ).arg( destName ) ) ); 687 new QCheckListItem( item, QString( tr( "Installed To - %1" ).arg( destName ) ) );
690 } 688 }
691 else 689 else
692 { 690 {
693 item->setPixmap( 0, nullIcon ); 691 item->setPixmap( 0, nullIcon );
694 } 692 }
695 693
696 if ( !package->isPackageStoredLocally() ) 694 if ( !package->isPackageStoredLocally() )
697 { 695 {
698 new QCheckListItem( item, QString( tr( "Description - %1" ).arg( package->getDescription() ) ) ); 696 new QCheckListItem( item, QString( tr( "Description - %1" ).arg( package->getDescription() ) ) );
699 new QCheckListItem( item, QString( tr( "Size - %1" ).arg( package->getPackageSize() ) ) ); 697 new QCheckListItem( item, QString( tr( "Size - %1" ).arg( package->getPackageSize() ) ) );
700 new QCheckListItem( item, QString( tr( "Section - %1" ).arg( package->getSection() ) ) ); 698 new QCheckListItem( item, QString( tr( "Section - %1" ).arg( package->getSection() ) ) );
701 } 699 }
702 else 700 else
703 new QCheckListItem( item, QString( tr( "Filename - %1" ).arg( package->getFilename() ) ) ); 701 new QCheckListItem( item, QString( tr( "Filename - %1" ).arg( package->getFilename() ) ) );
704 702
705 if ( serverName == LOCAL_SERVER ) 703 if ( serverName == LOCAL_SERVER )
706 { 704 {
707 new QCheckListItem( item, QString( tr( "V. Installed - %1" ).arg( package->getVersion() ) ) ); 705 new QCheckListItem( item, QString( tr( "V. Installed - %1" ).arg( package->getVersion() ) ) );
708 } 706 }
709 else 707 else
710 { 708 {
711 new QCheckListItem( item, QString( tr( "V. Available - %1" ).arg( package->getVersion() ) ) ); 709 new QCheckListItem( item, QString( tr( "V. Available - %1" ).arg( package->getVersion() ) ) );
712 if ( package->getLocalPackage() ) 710 if ( package->getLocalPackage() )
713 { 711 {
714 if ( package->isInstalled() ) 712 if ( package->isInstalled() )
715 new QCheckListItem( item, QString( tr( "V. Installed - %1" ).arg( package->getInstalledVersion() ) ) ); 713 new QCheckListItem( item, QString( tr( "V. Installed - %1" ).arg( package->getInstalledVersion() ) ) );
716 } 714 }
717 } 715 }
718 716
719 packagesList->insertItem( item ); 717 packagesList->insertItem( item );
720 } 718 }
721 719
722 // If the local server or the local ipkgs server disable the download button 720 // If the local server or the local ipkgs server disable the download button
723 if ( serverName == LOCAL_SERVER ) 721 if ( serverName == LOCAL_SERVER )
724 { 722 {
725 downloadEnabled = TRUE; 723 downloadEnabled = TRUE;
726 actionUpgrade->setEnabled( FALSE ); 724 actionUpgrade->setEnabled( FALSE );
727 } 725 }
728 else if ( serverName == LOCAL_IPKGS ) 726 else if ( serverName == LOCAL_IPKGS )
729 { 727 {
730 downloadEnabled = FALSE; 728 downloadEnabled = FALSE;
731 actionUpgrade->setEnabled( FALSE ); 729 actionUpgrade->setEnabled( FALSE );
732 } 730 }
733 else 731 else
734 { 732 {
735 downloadEnabled = TRUE; 733 downloadEnabled = TRUE;
736 actionUpgrade->setEnabled( TRUE ); 734 actionUpgrade->setEnabled( TRUE );
737 } 735 }
738 enableDownload( downloadEnabled ); 736 enableDownload( downloadEnabled );
739 737
740 // Display this widget once everything is done 738 // Display this widget once everything is done
741 if ( doProgress && raiseProgress ) 739 if ( doProgress && raiseProgress )
742 { 740 {
743 stack->raiseWidget( networkPkgWindow ); 741 stack->raiseWidget( networkPkgWindow );
744 } 742 }
745} 743}
746 744
747void MainWindow :: searchForPackage( const QString &text ) 745void MainWindow :: searchForPackage( const QString &text )
748{ 746{
749 if ( !text.isEmpty() ) 747 if ( !text.isEmpty() )
750 { 748 {
751// cout << "searching for " << text << endl; 749// cout << "searching for " << text << endl;
752 // look through package list for text startng at current position 750 // look through package list for text startng at current position
753// vector<InstallData> workingPackages; 751// vector<InstallData> workingPackages;
754 QCheckListItem *start = (QCheckListItem *)packagesList->currentItem(); 752 QCheckListItem *start = (QCheckListItem *)packagesList->currentItem();
755// if ( start != 0 ) 753// if ( start != 0 )
756// start = (QCheckListItem *)start->nextSibling(); 754// start = (QCheckListItem *)start->nextSibling();
757 755
758 if ( start == 0 ) 756 if ( start == 0 )
759 start = (QCheckListItem *)packagesList->firstChild(); 757 start = (QCheckListItem *)packagesList->firstChild();
760 758
761 for ( QCheckListItem *item = start; item != 0 ; 759 for ( QCheckListItem *item = start; item != 0 ;
762 item = (QCheckListItem *)item->nextSibling() ) 760 item = (QCheckListItem *)item->nextSibling() )
763 { 761 {
764// cout << "checking " << item->text().lower() << endl; 762// cout << "checking " << item->text().lower() << endl;
765 if ( item->text().lower().find( text ) != -1 ) 763 if ( item->text().lower().find( text ) != -1 )
766 { 764 {
767// cout << "matched " << item->text() << endl; 765// cout << "matched " << item->text() << endl;
768 packagesList->ensureItemVisible( item ); 766 packagesList->ensureItemVisible( item );
769 packagesList->setCurrentItem( item ); 767 packagesList->setCurrentItem( item );
770 break; 768 break;
771 } 769 }
772 } 770 }
773 } 771 }
774} 772}
775 773
776void MainWindow :: updateServer() 774void MainWindow :: updateServer()
777{ 775{
778 QString serverName = serversList->currentText(); 776 QString serverName = serversList->currentText();
779 777
780 // Update the current server 778 // Update the current server
781 // Display dialog 779 // Display dialog
782 780
783 // Disable buttons to stop silly people clicking lots on them :) 781 // Disable buttons to stop silly people clicking lots on them :)
784 782
785 // First, write out ipkg_conf file so that ipkg can use it 783 // First, write out ipkg_conf file so that ipkg can use it
786 mgr->writeOutIpkgConf(); 784 mgr->writeOutIpkgConf();
787 785
788 Ipkg *ipkg = new Ipkg; 786 Ipkg *ipkg = new Ipkg;
789 ipkg->setOption( "update" ); 787 ipkg->setOption( "update" );
790 788
791 InstallDlgImpl *dlg = new InstallDlgImpl( ipkg, tr( "Refreshing server package lists" ), 789 InstallDlgImpl *dlg = new InstallDlgImpl( ipkg, tr( "Refreshing server package lists" ),
792 tr( "Update lists" ) ); 790 tr( "Update lists" ) );
793 connect( dlg, SIGNAL( reloadData( InstallDlgImpl * ) ), this, SLOT( reloadData( InstallDlgImpl * ) ) ); 791 connect( dlg, SIGNAL( reloadData( InstallDlgImpl * ) ), this, SLOT( reloadData( InstallDlgImpl * ) ) );
794 stack->addWidget( dlg, 3 ); 792 stack->addWidget( dlg, 3 );
795 stack->raiseWidget( dlg ); 793 stack->raiseWidget( dlg );
796 794
797// delete progDlg; 795// delete progDlg;
798} 796}
799 797
800void MainWindow :: upgradePackages() 798void MainWindow :: upgradePackages()
801{ 799{
802 // We're gonna do an upgrade of all packages 800 // We're gonna do an upgrade of all packages
803 // First warn user that this isn't recommended 801 // First warn user that this isn't recommended
804 // TODO - ODevice???? 802 // TODO - ODevice????
805 QString text = tr( "WARNING: Upgrading while\nOpie/Qtopia is running\nis NOT recommended!\n\nAre you sure?\n" ); 803 QString text = tr( "WARNING: Upgrading while\nOpie/Qtopia is running\nis NOT recommended!\n\nAre you sure?\n" );
806 QMessageBox warn( tr( "Warning" ), text, QMessageBox::Warning, 804 QMessageBox warn( tr( "Warning" ), text, QMessageBox::Warning,
807 QMessageBox::Yes, 805 QMessageBox::Yes,
808 QMessageBox::No | QMessageBox::Escape | QMessageBox::Default , 806 QMessageBox::No | QMessageBox::Escape | QMessageBox::Default ,
809 0, this ); 807 0, this );
810 warn.adjustSize(); 808 warn.adjustSize();
811 809
812 if ( warn.exec() == QMessageBox::Yes ) 810 if ( warn.exec() == QMessageBox::Yes )
813 { 811 {
814 // First, write out ipkg_conf file so that ipkg can use it 812 // First, write out ipkg_conf file so that ipkg can use it
815 mgr->writeOutIpkgConf(); 813 mgr->writeOutIpkgConf();
816 814
817 // Now run upgrade 815 // Now run upgrade
818 Ipkg *ipkg = new Ipkg; 816 Ipkg *ipkg = new Ipkg;
819 ipkg->setOption( "upgrade" ); 817 ipkg->setOption( "upgrade" );
820 818
821 InstallDlgImpl *dlg = new InstallDlgImpl( ipkg, tr( "Upgrading installed packages" ), 819 InstallDlgImpl *dlg = new InstallDlgImpl( ipkg, tr( "Upgrading installed packages" ),
822 tr ( "Upgrade" ) ); 820 tr ( "Upgrade" ) );
823 connect( dlg, SIGNAL( reloadData( InstallDlgImpl * ) ), this, SLOT( reloadData( InstallDlgImpl * ) ) ); 821 connect( dlg, SIGNAL( reloadData( InstallDlgImpl * ) ), this, SLOT( reloadData( InstallDlgImpl * ) ) );
824 stack->addWidget( dlg, 3 ); 822 stack->addWidget( dlg, 3 );
825 stack->raiseWidget( dlg ); 823 stack->raiseWidget( dlg );
826 } 824 }
827} 825}
828 826
829void MainWindow :: downloadPackage() 827void MainWindow :: downloadPackage()
830{ 828{
831 bool doUpdate = true; 829 bool doUpdate = true;
832 if ( downloadEnabled ) 830 if ( downloadEnabled )
833 { 831 {
834 // See if any packages are selected 832 // See if any packages are selected
835 bool found = false; 833 bool found = false;
836 if ( serversList->currentText() != LOCAL_SERVER ) 834 if ( serversList->currentText() != LOCAL_SERVER )
837 { 835 {
838 for ( QCheckListItem *item = (QCheckListItem *)packagesList->firstChild(); 836 for ( QCheckListItem *item = (QCheckListItem *)packagesList->firstChild();
839 item != 0 && !found; 837 item != 0 && !found;
840 item = (QCheckListItem *)item->nextSibling() ) 838 item = (QCheckListItem *)item->nextSibling() )
841 { 839 {
842 if ( item->isOn() ) 840 if ( item->isOn() )
843 found = true; 841 found = true;
844 } 842 }
845 } 843 }
846 844
847 // If user selected some packages then download the and store the locally 845 // If user selected some packages then download the and store the locally
848 // otherwise, display dialog asking user what package to download from an http server 846 // otherwise, display dialog asking user what package to download from an http server
849 // and whether to install it 847 // and whether to install it
850 if ( found ) 848 if ( found )
851 downloadSelectedPackages(); 849 downloadSelectedPackages();
852 else 850 else
853 downloadRemotePackage(); 851 downloadRemotePackage();
854 852
855 } 853 }
856 else 854 else
857 { 855 {
858 doUpdate = false; 856 doUpdate = false;
859 for ( QCheckListItem *item = (QCheckListItem *)packagesList->firstChild(); 857 for ( QCheckListItem *item = (QCheckListItem *)packagesList->firstChild();
diff --git a/noncore/settings/aqpkg/package.cpp b/noncore/settings/aqpkg/package.cpp
index 83e0706..3395870 100644
--- a/noncore/settings/aqpkg/package.cpp
+++ b/noncore/settings/aqpkg/package.cpp
@@ -1,144 +1,145 @@
1/*************************************************************************** 1/***************************************************************************
2 package.cpp - description 2 package.cpp - description
3 ------------------- 3 -------------------
4 begin : Mon Aug 26 2002 4 begin : Mon Aug 26 2002
5 copyright : (C) 2002 by Andy Qua 5 copyright : (C) 2002 by Andy Qua
6 email : andy.qua@blueyonder.co.uk 6 email : andy.qua@blueyonder.co.uk
7 ***************************************************************************/ 7 ***************************************************************************/
8 8
9/*************************************************************************** 9/***************************************************************************
10 * * 10 * *
11 * This program is free software; you can redistribute it and/or modify * 11 * This program is free software; you can redistribute it and/or modify *
12 * it under the terms of the GNU General Public License as published by * 12 * it under the terms of the GNU General Public License as published by *
13 * the Free Software Foundation; either version 2 of the License, or * 13 * the Free Software Foundation; either version 2 of the License, or *
14 * (at your option) any later version. * 14 * (at your option) any later version. *
15 * * 15 * *
16 ***************************************************************************/ 16 ***************************************************************************/
17 17
18#include "package.h" 18#include "package.h"
19#include "global.h" 19#include "global.h"
20 20
21Package::Package( QString &name ) 21Package::Package( QString &name )
22{ 22{
23 packageName = name; 23 packageName = name;
24 24
25 version = "N/A"; 25 version = "N/A";
26 description = "N/A"; 26 description = "N/A";
27 packageSize = "N/A"; 27 packageSize = "N/A";
28 section = "N/A"; 28 section = "N/A";
29 29
30 localPackage = 0; 30 localPackage = 0;
31 installed = false; 31 installed = false;
32 packageStoredLocally = false; 32 packageStoredLocally = false;
33 installedToRoot = false; 33 installedToRoot = false;
34 installed = false; 34 installed = false;
35 installedTo = 0; 35 installedTo = 0;
36} 36}
37 37
38Package::Package( char *name ) 38Package::Package( char *name )
39{ 39{
40 packageName = name; 40 packageName = name;
41 41
42 version = "N/A"; 42 version = "N/A";
43 description = "N/A"; 43 description = "N/A";
44 packageSize = "N/A"; 44 packageSize = "N/A";
45 section = "N/A"; 45 section = "N/A";
46 46
47 localPackage = 0; 47 localPackage = 0;
48 installed = false; 48 installed = false;
49 packageStoredLocally = false; 49 packageStoredLocally = false;
50 installedToRoot = false; 50 installedToRoot = false;
51 installed = false; 51 installed = false;
52 installedTo = 0; 52 installedTo = 0;
53 differentVersionAvailable = false;
53} 54}
54 55
55Package::~Package() 56Package::~Package()
56{ 57{
57} 58}
58 59
59QString Package :: toString() 60QString Package :: toString()
60{ 61{
61 QString ret = "Package - " + getPackageName() + 62 QString ret = "Package - " + getPackageName() +
62 "\n version - " + getVersion(); 63 "\n version - " + getVersion();
63 64
64 if ( localPackage ) 65 if ( localPackage )
65 ret += "\n inst version - " + localPackage->getVersion(); 66 ret += "\n inst version - " + localPackage->getVersion();
66 67
67 68
68 return ret; 69 return ret;
69} 70}
70 71
71void Package :: setStatus( const QString &s ) 72void Package :: setStatus( const QString &s )
72{ 73{
73 QString state_status; 74 QString state_status;
74 int two, three; 75 int two, three;
75 76
76 status = s.simplifyWhiteSpace( ); 77 status = s.simplifyWhiteSpace( );
77 78
78 two = status.find( " " ); // find second column 79 two = status.find( " " ); // find second column
79 three = status.find( " ", two + 1 ); // find third column 80 three = status.find( " ", two + 1 ); // find third column
80 81
81 state_status = status.mid( three ).stripWhiteSpace( ); 82 state_status = status.mid( three ).stripWhiteSpace( );
82 83
83 if ( state_status == "installed" ) 84 if ( state_status == "installed" )
84 installed = true; 85 installed = true;
85} 86}
86 87
87void Package :: setLocalPackage( Package *p ) 88void Package :: setLocalPackage( Package *p )
88{ 89{
89 localPackage = p; 90 localPackage = p;
90 91
91 if ( localPackage ) 92 if ( localPackage )
92 if ( localPackage->getVersion() != getVersion() ) 93 if ( localPackage->getVersion() < getVersion() && !installed )
93 differentVersionAvailable = true; 94 differentVersionAvailable = true;
94 else 95 else
95 differentVersionAvailable = false; 96 differentVersionAvailable = false;
96} 97}
97 98
98void Package :: setVersion( const QString &v ) 99void Package :: setVersion( const QString &v )
99{ 100{
100 version = v; 101 version = v;
101 102
102 if ( localPackage ) 103 if ( localPackage )
103 if ( localPackage->getVersion() != getVersion() ) 104 if ( localPackage->getVersion() < getVersion() && !installed )
104 differentVersionAvailable = true; 105 differentVersionAvailable = true;
105 else 106 else
106 differentVersionAvailable = false; 107 differentVersionAvailable = false;
107} 108}
108 109
109void Package :: setPackageName( const QString &name ) 110void Package :: setPackageName( const QString &name )
110{ 111{
111 packageName = name; 112 packageName = name;
112} 113}
113 114
114void Package :: setDescription( const QString &d ) 115void Package :: setDescription( const QString &d )
115{ 116{
116 description = d; 117 description = d;
117} 118}
118 119
119void Package :: setFilename( const QString &f ) 120void Package :: setFilename( const QString &f )
120{ 121{
121 filename = f; 122 filename = f;
122} 123}
123 124
124 125
125QString Package :: getInstalledVersion() 126QString Package :: getInstalledVersion()
126{ 127{
127 if ( localPackage ) 128 if ( localPackage )
128 return localPackage->getVersion(); 129 return localPackage->getVersion();
129 else 130 else
130 return getVersion(); 131 return getVersion();
131} 132}
132 133
133QString Package :: getInstalledPackageName() 134QString Package :: getInstalledPackageName()
134{ 135{
135 if ( localPackage ) 136 if ( localPackage )
136 return localPackage->getPackageName(); 137 return localPackage->getPackageName();
137 else 138 else
138 return getPackageName(); 139 return getPackageName();
139} 140}
140 141
141bool Package :: isInstalled() 142bool Package :: isInstalled()
142{ 143{
143 return installed || ( localPackage && localPackage->isInstalled() ); 144 return installed || ( localPackage && localPackage->isInstalled() );
144} 145}
diff --git a/noncore/settings/aqpkg/package.h b/noncore/settings/aqpkg/package.h
index f5a132f..110ae91 100644
--- a/noncore/settings/aqpkg/package.h
+++ b/noncore/settings/aqpkg/package.h
@@ -1,89 +1,90 @@
1/*************************************************************************** 1/***************************************************************************
2 package.h - description 2 package.h - description
3 ------------------- 3 -------------------
4 begin : Mon Aug 26 2002 4 begin : Mon Aug 26 2002
5 copyright : (C) 2002 by Andy Qua 5 copyright : (C) 2002 by Andy Qua
6 email : andy.qua@blueyonder.co.uk 6 email : andy.qua@blueyonder.co.uk
7 ***************************************************************************/ 7 ***************************************************************************/
8 8
9/*************************************************************************** 9/***************************************************************************
10 * * 10 * *
11 * This program is free software; you can redistribute it and/or modify * 11 * This program is free software; you can redistribute it and/or modify *
12 * it under the terms of the GNU General Public License as published by * 12 * it under the terms of the GNU General Public License as published by *
13 * the Free Software Foundation; either version 2 of the License, or * 13 * the Free Software Foundation; either version 2 of the License, or *
14 * (at your option) any later version. * 14 * (at your option) any later version. *
15 * * 15 * *
16 ***************************************************************************/ 16 ***************************************************************************/
17 17
18#ifndef PACKAGE_H 18#ifndef PACKAGE_H
19#define PACKAGE_H 19#define PACKAGE_H
20 20
21#include <stdlib.h> 21#include <stdlib.h>
22 22
23/** 23/**
24 *@author Andy Qua 24 *@author Andy Qua
25 */ 25 */
26 26
27#include <qstring.h> 27#include <qstring.h>
28#include "destination.h" 28#include "destination.h"
29 29
30class Package 30class Package
31{ 31{
32public: 32public:
33 Package( QString &name ); 33 Package( QString &name );
34 Package( char *name ); 34 Package( char *name );
35 ~Package(); 35 ~Package();
36 36
37 void setLocalPackage( Package *p ); 37 void setLocalPackage( Package *p );
38 void setPackageName( const QString &name ); 38 void setPackageName( const QString &name );
39 void setVersion( const QString &v ); 39 void setVersion( const QString &v );
40 void setStatus( const QString &s ); 40 void setStatus( const QString &s );
41 void setDescription( const QString &d ); 41 void setDescription( const QString &d );
42 void setFilename( const QString &f ); 42 void setFilename( const QString &f );
43 void setPackageStoredLocally( bool local ){ packageStoredLocally = local; } 43 void setPackageStoredLocally( bool local ){ packageStoredLocally = local; }
44 void setInstalledToRoot( bool root ) { installedToRoot = root; } 44 void setInstalledToRoot( bool root ) { installedToRoot = root; }
45 void setInstalledTo( Destination *d ) { installedTo = d; } 45 void setInstalledTo( Destination *d ) { installedTo = d; }
46 void setDependancies( QString &deps ) { dependancies = deps; } 46 void setDependancies( QString &deps ) { dependancies = deps; }
47 void setPackageSize( const QString &size ) { packageSize = size; } 47 void setPackageSize( const QString &size ) { packageSize = size; }
48 void setSection( const QString &sect) { section = sect; } 48 void setSection( const QString &sect) { section = sect; }
49 49
50 Package *getLocalPackage() { return localPackage; } 50 Package *getLocalPackage() { return localPackage; }
51 QString getPackageName() { return packageName; } 51 QString getPackageName() { return packageName; }
52 QString getVersion() { return version; } 52 QString getVersion() { return version; }
53 QString getStatus() { return status; } 53 QString getStatus() { return status; }
54 QString getDescription() { return description; } 54 QString getDescription() { return description; }
55 QString getFilename() { return filename; } 55 QString getFilename() { return filename; }
56 QString getDependancies() { return dependancies; } 56 QString getDependancies() { return dependancies; }
57 QString getPackageSize() { return packageSize; } 57 QString getPackageSize() { return packageSize; }
58 QString getSection() { return section; } 58 QString getSection() { return section; }
59 bool getNewVersionAvailable() { return differentVersionAvailable; }
59 60
60 bool isInstalled(); 61 bool isInstalled();
61 bool isPackageStoredLocally(){ return packageStoredLocally; } 62 bool isPackageStoredLocally(){ return packageStoredLocally; }
62 bool isInstalledToRoot() { return installedToRoot; } 63 bool isInstalledToRoot() { return installedToRoot; }
63 QString getInstalledVersion(); 64 QString getInstalledVersion();
64 QString getInstalledPackageName(); 65 QString getInstalledPackageName();
65 Destination *getInstalledTo() { return installedTo; } 66 Destination *getInstalledTo() { return installedTo; }
66 67
67 QString toString(); 68 QString toString();
68 69
69 70
70private: 71private:
71 Package *localPackage; 72 Package *localPackage;
72 73
73 QString packageName; 74 QString packageName;
74 QString version; 75 QString version;
75 QString status; 76 QString status;
76 QString description; 77 QString description;
77 QString filename; 78 QString filename;
78 bool packageStoredLocally; 79 bool packageStoredLocally;
79 bool installedToRoot; 80 bool installedToRoot;
80 bool installed; 81 bool installed;
81 bool differentVersionAvailable; 82 bool differentVersionAvailable;
82 QString dependancies; 83 QString dependancies;
83 QString packageSize; 84 QString packageSize;
84 QString section; 85 QString section;
85 86
86 Destination *installedTo; 87 Destination *installedTo;
87}; 88};
88 89
89#endif 90#endif
diff --git a/noncore/settings/aqpkg/server.cpp b/noncore/settings/aqpkg/server.cpp
index 9a239a5..e2b8096 100644
--- a/noncore/settings/aqpkg/server.cpp
+++ b/noncore/settings/aqpkg/server.cpp
@@ -1,307 +1,307 @@
1/*************************************************************************** 1/***************************************************************************
2 server.cpp - description 2 server.cpp - description
3 ------------------- 3 -------------------
4 begin : Mon Aug 26 2002 4 begin : Mon Aug 26 2002
5 copyright : (C) 2002 by Andy Qua 5 copyright : (C) 2002 by Andy Qua
6 email : andy.qua@blueyonder.co.uk 6 email : andy.qua@blueyonder.co.uk
7 description : This class holds details about a server 7 description : This class holds details about a server
8 : e.g. all the packages that contained on the server 8 : e.g. all the packages that contained on the server
9 : the installation status 9 : the installation status
10 ***************************************************************************/ 10 ***************************************************************************/
11 11
12/*************************************************************************** 12/***************************************************************************
13 * * 13 * *
14 * This program is free software; you can redistribute it and/or modify * 14 * This program is free software; you can redistribute it and/or modify *
15 * it under the terms of the GNU General Public License as published by * 15 * it under the terms of the GNU General Public License as published by *
16 * the Free Software Foundation; either version 2 of the License, or * 16 * the Free Software Foundation; either version 2 of the License, or *
17 * (at your option) any later version. * 17 * (at your option) any later version. *
18 * * 18 * *
19 ***************************************************************************/ 19 ***************************************************************************/
20 20
21 21
22#include "server.h" 22#include "server.h"
23#include "datamgr.h" 23#include "datamgr.h"
24 24
25#include <qfile.h> 25#include <qfile.h>
26#include <qtextstream.h> 26#include <qtextstream.h>
27 27
28#ifdef QWS 28#ifdef QWS
29#include <qpe/global.h> 29#include <qpe/global.h>
30#include <qpe/applnk.h> 30#include <qpe/applnk.h>
31#include <qlist.h> 31#include <qlist.h>
32#endif 32#endif
33 33
34#include "utils.h" 34#include "utils.h"
35 35
36#include "global.h" 36#include "global.h"
37 37
38Server :: Server( const char *name, const char *url ) 38Server :: Server( const char *name, const char *url )
39{ 39{
40 serverName = name; 40 serverName = name;
41 serverUrl = url; 41 serverUrl = url;
42 packageFile = IPKG_DIR; 42 packageFile = IPKG_DIR;
43 active = true; 43 active = true;
44 packageFile += "lists/" + serverName; 44 packageFile += "lists/" + serverName;
45} 45}
46 46
47Server :: ~Server() 47Server :: ~Server()
48{ 48{
49 cleanUp(); 49 cleanUp();
50} 50}
51 51
52void Server :: cleanUp() 52void Server :: cleanUp()
53{ 53{
54 packageList.clear(); 54 packageList.clear();
55} 55}
56 56
57void Server :: readStatusFile( QList<Destination> &destList ) 57void Server :: readStatusFile( QList<Destination> &destList )
58{ 58{
59 cleanUp(); 59 cleanUp();
60 60
61 Destination *dest; 61 Destination *dest;
62 QListIterator<Destination> dit( destList ); 62 QListIterator<Destination> dit( destList );
63 bool rootRead = false; 63 bool rootRead = false;
64 for ( ; dit.current(); ++dit ) 64 for ( ; dit.current(); ++dit )
65 { 65 {
66 dest = dit.current(); 66 dest = dit.current();
67 bool installingToRoot = false; 67 bool installingToRoot = false;
68 68
69 QString path = dest->getDestinationPath(); 69 QString path = dest->getDestinationPath();
70 if ( path.right( 1 ) != "/" ) 70 if ( path.right( 1 ) != "/" )
71 path.append( "/" ); 71 path.append( "/" );
72 72
73 if ( path == "/" ) 73 if ( path == "/" )
74 { 74 {
75 rootRead = true; 75 rootRead = true;
76 installingToRoot = true; 76 installingToRoot = true;
77 } 77 }
78 78
79 packageFile = path; 79 packageFile = path;
80 packageFile.append( "usr/lib/ipkg/status" ); 80 packageFile.append( "usr/lib/ipkg/status" );
81 readPackageFile( 0, false, installingToRoot, &( *dest ) ); 81 readPackageFile( 0, false, installingToRoot, &( *dest ) );
82 } 82 }
83 83
84 // Ensure that the root status file is read 84 // Ensure that the root status file is read
85 if ( !rootRead ) 85 if ( !rootRead )
86 { 86 {
87 //cout << "Reading status file " << "/usr/lib/ipkg/status" << endl; 87 //cout << "Reading status file " << "/usr/lib/ipkg/status" << endl;
88 packageFile = "/usr/lib/ipkg/status"; 88 packageFile = "/usr/lib/ipkg/status";
89 readPackageFile( 0, false, true ); 89 readPackageFile( 0, false, true );
90 } 90 }
91} 91}
92 92
93void Server :: readLocalIpks( Server *local ) 93void Server :: readLocalIpks( Server *local )
94{ 94{
95 cleanUp(); 95 cleanUp();
96 96
97#ifdef QWS 97#ifdef QWS
98 // First, get any local IPKGs in the documents area 98 // First, get any local IPKGs in the documents area
99 // Only applicable to Qtopie/Opie 99 // Only applicable to Qtopie/Opie
100 100
101 DocLnkSet files; 101 DocLnkSet files;
102 Global::findDocuments( &files, "application/ipkg" ); 102 Global::findDocuments( &files, "application/ipkg" );
103 103
104 // Now add the items to the list 104 // Now add the items to the list
105 QListIterator<DocLnk> it( files.children() ); 105 QListIterator<DocLnk> it( files.children() );
106 106
107 for ( ; it.current() ; ++it ) 107 for ( ; it.current() ; ++it )
108 { 108 {
109 // OK, we have a local IPK file, I think the standard naming conventions 109 // OK, we have a local IPK file, I think the standard naming conventions
110 // for these are packagename_version_arm.ipk 110 // for these are packagename_version_arm.ipk
111 QString file = (*it)->file(); 111 QString file = (*it)->file();
112 112
113 // Changed to display the filename (excluding the path) 113 // Changed to display the filename (excluding the path)
114 QString packageName = Utils::getFilenameFromIpkFilename( file ); 114 QString packageName = Utils::getFilenameFromIpkFilename( file );
115 QString ver = Utils::getPackageVersionFromIpkFilename( file ); 115 QString ver = Utils::getPackageVersionFromIpkFilename( file );
116 Package *package = new Package( packageName ); 116 Package *package = new Package( packageName );
117 package->setVersion( ver ); 117 package->setVersion( ver );
118 package->setFilename( file ); 118 package->setFilename( file );
119 package->setPackageStoredLocally( true ); 119 package->setPackageStoredLocally( true );
120 packageList.append( package ); 120 packageList.append( package );
121 } 121 }
122#else 122#else
123 QString names[] = { "advancedfm_0.9.1-20020811_arm.ipk", "libopie_0.9.1-20020811_arm.ipk", "libopieobex_0.9.1-20020811.1_arm.ipk", "opie-addressbook_0.9.1-20020811_arm.ipk" }; 123 QString names[] = { "advancedfm_0.9.1-20020811_arm.ipk", "libopie_0.9.1-20020811_arm.ipk", "libopieobex_0.9.1-20020811.1_arm.ipk", "opie-addressbook_0.9.1-20020811_arm.ipk" };
124 for ( int i = 0 ; i < 4 ; ++i ) 124 for ( int i = 0 ; i < 4 ; ++i )
125 { 125 {
126 // OK, we have a local IPK file, I think the standard naming conventions 126 // OK, we have a local IPK file, I think the standard naming conventions
127 // for these are packagename_version_arm.ipk 127 // for these are packagename_version_arm.ipk
128 QString file = names[i]; 128 QString file = names[i];
129 int p = file.find( "_" ); 129 int p = file.find( "_" );
130 QString tmp = file.mid( 0, p ); 130 QString tmp = file.mid( 0, p );
131 packageList.push_back( Package( tmp ) ); 131 packageList.push_back( Package( tmp ) );
132 int p2 = file.find( "_", p+1 ); 132 int p2 = file.find( "_", p+1 );
133 tmp = file.mid( p+1, p2-(p+1) ); 133 tmp = file.mid( p+1, p2-(p+1) );
134 packageList.back().setVersion( tmp ); 134 packageList.back().setVersion( tmp );
135 packageList.back().setPackageStoredLocally( true ); 135 packageList.back().setPackageStoredLocally( true );
136 } 136 }
137#endif 137#endif
138 138
139 // build local packages 139 // build local packages
140 buildLocalPackages( local ); 140 buildLocalPackages( local );
141} 141}
142 142
143void Server :: readPackageFile( Server *local, bool clearAll, bool installingToRoot, Destination *dest ) 143void Server :: readPackageFile( Server *local, bool clearAll, bool installingToRoot, Destination *dest )
144{ 144{
145 QFile f( packageFile ); 145 QFile f( packageFile );
146 if ( !f.open( IO_ReadOnly ) ) 146 if ( !f.open( IO_ReadOnly ) )
147 return; 147 return;
148 QTextStream t( &f ); 148 QTextStream t( &f );
149 149
150 QString line; 150 QString line;
151 QString key; 151 QString key;
152 QString value; 152 QString value;
153 int pos; 153 int pos;
154 154
155 if ( clearAll ) 155 if ( clearAll )
156 cleanUp(); 156 cleanUp();
157 Package *currPackage = 0; 157 Package *currPackage = 0;
158 158
159 bool newPackage = true; 159 bool newPackage = true;
160 while ( !t.eof() ) 160 while ( !t.eof() )
161 { 161 {
162 line = t.readLine(); 162 line = t.readLine();
163 163
164 pos = line.find( ':', 0 ); 164 pos = line.find( ':', 0 );
165 if ( pos > -1 ) 165 if ( pos > -1 )
166 key = line.mid( 0, pos ).stripWhiteSpace(); 166 key = line.mid( 0, pos ).stripWhiteSpace();
167 else 167 else
168 key = QString::null; 168 key = QString::null;
169 value = line.mid( pos+1, line.length()-pos ).stripWhiteSpace(); 169 value = line.mid( pos+1, line.length()-pos ).stripWhiteSpace();
170 170
171 if ( key == "Package" && newPackage ) 171 if ( key == "Package" && newPackage )
172 { 172 {
173 newPackage = false; 173 newPackage = false;
174 174
175 currPackage = getPackage( value ); 175 currPackage = getPackage( value );
176 if ( !currPackage ) 176 if ( !currPackage )
177 { 177 {
178 Package *package = new Package( value ); 178 Package *package = new Package( value );
179 packageList.append( package ); 179 packageList.append( package );
180 currPackage = package; 180 currPackage = package;
181 currPackage->setInstalledTo( dest ); 181 currPackage->setInstalledTo( dest );
182 if ( installingToRoot ) 182 if ( installingToRoot )
183 currPackage->setInstalledToRoot( true ); 183 currPackage->setInstalledToRoot( true );
184 } 184 }
185 else 185 else
186 { 186 {
187 if (currPackage->getStatus().find( "deinstall" ) != -1 ) 187 if ( currPackage->isInstalled() )
188 currPackage->setInstalledTo( dest ); 188 currPackage->setInstalledTo( dest );
189 } 189 }
190 } 190 }
191 else if ( key == "Version" ) 191 else if ( key == "Version" )
192 { 192 {
193 if ( currPackage ) 193 if ( currPackage )
194 currPackage->setVersion( value ); 194 currPackage->setVersion( value );
195 } 195 }
196 else if ( key == "Status" ) 196 else if ( key == "Status" )
197 { 197 {
198 if ( currPackage ) 198 if ( currPackage )
199 currPackage->setStatus( value ); 199 currPackage->setStatus( value );
200 } 200 }
201 else if ( key == "Description" ) 201 else if ( key == "Description" )
202 { 202 {
203 if ( currPackage ) 203 if ( currPackage )
204 currPackage->setDescription( value ); 204 currPackage->setDescription( value );
205 } 205 }
206 else if ( key == "Filename" ) 206 else if ( key == "Filename" )
207 { 207 {
208 if ( currPackage ) 208 if ( currPackage )
209 currPackage->setFilename( value ); 209 currPackage->setFilename( value );
210 } 210 }
211 else if ( key == "Size" ) 211 else if ( key == "Size" )
212 { 212 {
213 if ( currPackage ) 213 if ( currPackage )
214 currPackage->setPackageSize( value ); 214 currPackage->setPackageSize( value );
215 } 215 }
216 else if ( key == "Section" ) 216 else if ( key == "Section" )
217 { 217 {
218 if ( currPackage ) 218 if ( currPackage )
219 currPackage->setSection( value ); 219 currPackage->setSection( value );
220 220
221 DataManager::setAvailableCategories( value ); 221 DataManager::setAvailableCategories( value );
222 } 222 }
223 else if ( key == QString::null ) 223 else if ( key == QString::null )
224 { 224 {
225 newPackage = true; 225 newPackage = true;
226 } 226 }
227 } 227 }
228 228
229 f.close(); 229 f.close();
230 230
231 // build local packages 231 // build local packages
232 buildLocalPackages( local ); 232 buildLocalPackages( local );
233} 233}
234 234
235void Server :: buildLocalPackages( Server *local ) 235void Server :: buildLocalPackages( Server *local )
236{ 236{
237 Package *curr; 237 Package *curr;
238 QListIterator<Package> it( packageList ); 238 QListIterator<Package> it( packageList );
239 for ( ; it.current(); ++it ) 239 for ( ; it.current(); ++it )
240 { 240 {
241 curr = it.current(); 241 curr = it.current();
242 QString name = curr->getPackageName(); 242 QString name = curr->getPackageName();
243 243
244 // If the package name is an ipk name, then convert the filename to a package name 244 // If the package name is an ipk name, then convert the filename to a package name
245 if ( name.find( ".ipk" ) != -1 ) 245 if ( name.find( ".ipk" ) != -1 )
246 name = Utils::getPackageNameFromIpkFilename( curr->getFilename() ); 246 name = Utils::getPackageNameFromIpkFilename( curr->getFilename() );
247 247
248 if ( local ) 248 if ( local )
249 { 249 {
250 Package *p = local->getPackage( name ); 250 Package *p = local->getPackage( name );
251 curr->setLocalPackage( p ); 251 curr->setLocalPackage( p );
252 if ( p ) 252 if ( p )
253 { 253 {
254 // Set some default stuff like size and things 254 // Set some default stuff like size and things
255 if ( p->getInstalledVersion() == curr->getVersion() ) 255 if ( p->getInstalledVersion() == curr->getVersion() )
256 { 256 {
257 p->setPackageSize( curr->getPackageSize() ); 257 p->setPackageSize( curr->getPackageSize() );
258 p->setSection( curr->getSection() ); 258 p->setSection( curr->getSection() );
259 p->setDescription( curr->getDescription() ); 259 p->setDescription( curr->getDescription() );
260 } 260 }
261 } 261 }
262 262
263 } 263 }
264 else 264 else
265 curr->setLocalPackage( 0 ); 265 curr->setLocalPackage( 0 );
266 } 266 }
267 267
268} 268}
269 269
270Package *Server :: getPackage( QString &name ) 270Package *Server :: getPackage( QString &name )
271{ 271{
272 return getPackage( (const char *)name ); 272 return getPackage( (const char *)name );
273} 273}
274 274
275Package *Server :: getPackage( const char *name ) 275Package *Server :: getPackage( const char *name )
276{ 276{
277 Package *ret = 0; 277 Package *ret = 0;
278 278
279 QListIterator<Package> it( packageList ); 279 QListIterator<Package> it( packageList );
280 for ( ; it.current(); ++it ) 280 for ( ; it.current(); ++it )
281 { 281 {
282 if ( it.current()->getPackageName() == name ) 282 if ( it.current()->getPackageName() == name )
283 ret = it.current(); 283 ret = it.current();
284 } 284 }
285 285
286 return ret; 286 return ret;
287} 287}
288 288
289QString Server :: toString() 289QString Server :: toString()
290{ 290{
291 QString ret = QString( "Server\n name - %1\n url - %2\n" ).arg( serverName ).arg( serverUrl ); 291 QString ret = QString( "Server\n name - %1\n url - %2\n" ).arg( serverName ).arg( serverUrl );
292 292
293 QListIterator<Package> it( packageList ); 293 QListIterator<Package> it( packageList );
294 for ( ; it.current(); ++it ) 294 for ( ; it.current(); ++it )
295 { 295 {
296 ret.append( QString( "\n %1" ).arg( it.current()->toString() ) ); 296 ret.append( QString( "\n %1" ).arg( it.current()->toString() ) );
297 } 297 }
298 298
299 299
300 return ret; 300 return ret;
301} 301}
302 302
303QList<Package> &Server::getPackageList() 303QList<Package> &Server::getPackageList()
304{ 304{
305 return packageList; 305 return packageList;
306} 306}
307 307