-rw-r--r-- | noncore/settings/aqpkg/datamgr.cpp | 82 | ||||
-rw-r--r-- | noncore/settings/aqpkg/datamgr.h | 15 | ||||
-rw-r--r-- | noncore/settings/aqpkg/installdlgimpl.cpp | 82 | ||||
-rw-r--r-- | noncore/settings/aqpkg/installdlgimpl.h | 12 | ||||
-rw-r--r-- | noncore/settings/aqpkg/mainwin.cpp | 143 | ||||
-rw-r--r-- | noncore/settings/aqpkg/mainwin.h | 2 | ||||
-rw-r--r-- | noncore/settings/aqpkg/server.cpp | 69 | ||||
-rw-r--r-- | noncore/settings/aqpkg/server.h | 8 | ||||
-rw-r--r-- | noncore/settings/aqpkg/settingsimpl.cpp | 38 |
9 files changed, 241 insertions, 210 deletions
diff --git a/noncore/settings/aqpkg/datamgr.cpp b/noncore/settings/aqpkg/datamgr.cpp index 2c83e28..79f36e1 100644 --- a/noncore/settings/aqpkg/datamgr.cpp +++ b/noncore/settings/aqpkg/datamgr.cpp @@ -37,46 +37,43 @@ DataManager::DataManager() { activeServer = ""; availableCategories = "#"; + + serverList.setAutoDelete( TRUE ); + destList.setAutoDelete( TRUE ); } DataManager::~DataManager() { } -vector<Server>::iterator DataManager :: getServer( const char *name ) +Server *DataManager :: getServer( const char *name ) { - vector<Server>::iterator it = serverList.begin(); - while ( it != serverList.end() ) + QListIterator<Server> it( serverList ); + while ( it.current() && it.current()->getServerName() != name ) { - if ( it->getServerName() == name ) - return it; - ++it; } - return serverList.end(); + return it.current(); } -vector<Destination>::iterator DataManager :: getDestination( const char *name ) +Destination *DataManager :: getDestination( const char *name ) { - vector<Destination>::iterator it = destList.begin(); - while ( it != destList.end() ) + QListIterator<Destination> it( destList ); + while ( it.current() && it.current()->getDestinationName() != name ) { - if ( it->getDestinationName() == name ) - return it; - ++it; } - return destList.end(); + return it.current(); } void DataManager :: loadServers() { // First add our local server - not really a server but // the local config (which packages are installed) - serverList.push_back( Server( LOCAL_SERVER, "" ) ); - serverList.push_back( Server( LOCAL_IPKGS, "" ) ); + serverList.append( new Server( LOCAL_SERVER, "" ) ); + serverList.append( new Server( LOCAL_IPKGS, "" ) ); #ifdef QWS Config cfg( "aqpkg" ); @@ -109,13 +106,13 @@ void DataManager :: loadServers() // is next. // Should Handle #src, # src, src, and combinations of sscanf( lineStr, "%*[^r]%*[^ ] %s %s", alias, url ); - Server s( alias, url ); + Server *s = new Server( alias, url ); if ( lineStr.startsWith( "src" ) ) - s.setActive( true ); + s->setActive( true ); else - s.setActive( false ); + s->setActive( false ); - serverList.push_back( s ); + serverList.append( s ); } else if ( lineStr.startsWith( "dest" ) ) @@ -123,16 +120,16 @@ void DataManager :: loadServers() char alias[20]; char path[50]; sscanf( lineStr, "%*[^ ] %s %s", alias, path ); - Destination d( alias, path ); + Destination *d = new Destination( alias, path ); bool linkToRoot = true; #ifdef QWS QString key = alias; key += "_linkToRoot"; linkToRoot = cfg.readBoolEntry( key, true ); #endif - d.linkToRoot( linkToRoot ); + d->linkToRoot( linkToRoot ); - destList.push_back( d ); + destList.append( d ); } else if ( lineStr.startsWith( "option" ) || lineStr.startsWith( "#option" ) ) { @@ -169,15 +166,18 @@ void DataManager :: loadServers() void DataManager :: reloadServerData( ) { - emit progressSetSteps( serverList.size() ); + emit progressSetSteps( serverList.count() ); emit progressSetMessage( tr( "Reading configuration..." ) ); - vector<Server>::iterator it = serverList.begin(); QString serverName; int i = 0; - for ( it = serverList.begin() ; it != serverList.end() ; ++it ) + + Server *server; + QListIterator<Server> it( serverList ); + for ( ; it.current(); ++it ) { - serverName = it->getServerName(); + server = it.current(); + serverName = server->getServerName(); i++; emit progressUpdate( i ); qApp->processEvents(); @@ -188,11 +188,11 @@ void DataManager :: reloadServerData( ) // we've set up // The other servers files hold the contents of the server package list if ( serverName == LOCAL_SERVER ) - it->readStatusFile( destList ); + server->readStatusFile( destList ); else if ( serverName == LOCAL_IPKGS ) - it->readLocalIpks( &( *getServer( LOCAL_SERVER ) ) ); + server->readLocalIpks( getServer( LOCAL_SERVER ) ); else - it->readPackageFile( &( *getServer( LOCAL_SERVER ) ) ); + server->readPackageFile( getServer( LOCAL_SERVER ) ); } } @@ -217,31 +217,33 @@ void DataManager :: writeOutIpkgConf() out << "# that exists on the target system." << endl << endl; // Write out servers - vector<Server>::iterator it = serverList.begin(); - while ( it != serverList.end() ) + Server *server; + QListIterator<Server> it( serverList ); + while ( it.current() ) { - QString alias = it->getServerName(); + server = it.current(); + QString alias = server->getServerName(); // Don't write out local as its a dummy if ( alias != LOCAL_SERVER && alias != LOCAL_IPKGS ) { - QString url = it->getServerUrl();; + QString url = server->getServerUrl();; - if ( !it->isServerActive() ) + if ( !server->isServerActive() ) out << "#"; out << "src " << alias << " " << url << endl; } - it++; + ++it; } out << endl; // Write out destinations - vector<Destination>::iterator it2 = destList.begin(); - while ( it2 != destList.end() ) + QListIterator<Destination> it2( destList ); + while ( it2.current() ) { - out << "dest " << it2->getDestinationName() << " " << it2->getDestinationPath() << endl; - it2++; + out << "dest " << it2.current()->getDestinationName() << " " << it2.current()->getDestinationPath() << endl; + ++it2; } out << endl; diff --git a/noncore/settings/aqpkg/datamgr.h b/noncore/settings/aqpkg/datamgr.h index 90328ab..7fa42c1 100644 --- a/noncore/settings/aqpkg/datamgr.h +++ b/noncore/settings/aqpkg/datamgr.h @@ -21,6 +21,7 @@ #include <map> using namespace std; +#include <qlist.h> #include <qobject.h> #include <qstring.h> @@ -45,12 +46,12 @@ public: void setActiveServer( const QString &act ) { activeServer = act; } QString &getActiveServer( ) { return activeServer; } - Server *getLocalServer() { return &( *getServer( LOCAL_SERVER ) ); } - vector<Server> &getServerList() { return serverList; } - vector<Server>::iterator getServer( const char *name ); + Server *getLocalServer() { return ( getServer( LOCAL_SERVER ) ); } + QList<Server> &getServerList() { return serverList; } + Server *getServer( const char *name ); - vector<Destination> &getDestinationList() { return destList; } - vector<Destination>::iterator getDestination( const char *name ); + QList<Destination> &getDestinationList() { return destList; } + Destination *getDestination( const char *name ); void loadServers(); void reloadServerData( ); @@ -86,8 +87,8 @@ private: bool httpProxyEnabled; bool ftpProxyEnabled; - vector<Server> serverList; - vector<Destination> destList; + QList<Server> serverList; + QList<Destination> destList; signals: void progressSetSteps( int ); diff --git a/noncore/settings/aqpkg/installdlgimpl.cpp b/noncore/settings/aqpkg/installdlgimpl.cpp index 19fe46a..9339086 100644 --- a/noncore/settings/aqpkg/installdlgimpl.cpp +++ b/noncore/settings/aqpkg/installdlgimpl.cpp @@ -41,7 +41,7 @@ #include "utils.h" #include "global.h" -InstallDlgImpl::InstallDlgImpl( vector<InstallData> &packageList, DataManager *dataManager, const char *title ) +InstallDlgImpl::InstallDlgImpl( QList<InstallData> &packageList, DataManager *dataManager, const char *title ) : QWidget( 0, 0, 0 ) { setCaption( title ); @@ -50,7 +50,6 @@ InstallDlgImpl::InstallDlgImpl( vector<InstallData> &packageList, DataManager *d pIpkg = 0; upgradePackages = false; dataMgr = dataManager; - vector<Destination>::iterator dit; QString defaultDest = "root"; #ifdef QWS @@ -74,45 +73,52 @@ InstallDlgImpl::InstallDlgImpl( vector<InstallData> &packageList, DataManager *d // setup destination data int defIndex = 0; int i; - for ( i = 0 , dit = dataMgr->getDestinationList().begin() ; dit != dataMgr->getDestinationList().end() ; ++dit, ++i ) + QListIterator<Destination> dit( dataMgr->getDestinationList() ); + for ( i = 0; dit.current(); ++dit, ++i ) { - destination->insertItem( dit->getDestinationName() ); - if ( dit->getDestinationName() == defaultDest ) + destination->insertItem( dit.current()->getDestinationName() ); + if ( dit.current()->getDestinationName() == defaultDest ) defIndex = i; } destination->setCurrentItem( defIndex ); - vector<InstallData>::iterator it; + QListIterator<InstallData> it( packageList ); // setup package data QString remove = tr( "Remove\n" ); QString install = tr( "Install\n" ); QString upgrade = tr( "Upgrade\n" ); - for ( it = packageList.begin() ; it != packageList.end() ; ++it ) + for ( ; it.current(); ++it ) { - InstallData item = *it; - if ( item.option == "I" ) + InstallData *item = it.current(); + InstallData *newitem = new InstallData(); + + newitem->option = item->option; + newitem->packageName = item->packageName; + newitem->destination = item->destination; + newitem->recreateLinks = item->recreateLinks; + + if ( item->option == "I" ) { - installList.push_back( item ); - install.append( QString( " %1\n" ).arg( item.packageName ) ); + installList.append( newitem ); + install.append( QString( " %1\n" ).arg( item->packageName ) ); } - else if ( item.option == "D" ) + else if ( item->option == "D" ) { - removeList.push_back( item ); - remove.append( QString( " %1\n" ).arg( item.packageName ) ); + removeList.append( newitem ); + remove.append( QString( " %1\n" ).arg( item->packageName ) ); } - else if ( item.option == "U" || item.option == "R" ) + else if ( item->option == "U" || item->option == "R" ) { - updateList.push_back( item ); + updateList.append( newitem ); QString type; - if ( item.option == "R" ) + if ( item->option == "R" ) type = tr( "(ReInstall)" ); else type = tr( "(Upgrade)" ); - upgrade.append( QString( " %1 %2\n" ).arg( item.packageName ).arg( type ) ); + upgrade.append( QString( " %1 %2\n" ).arg( item->packageName ).arg( type ) ); } } - output->setText( QString( "%1\n%2\n%3\n" ).arg( remove ).arg( install ).arg( upgrade ) ); displayAvailableSpace( destination->currentText() ); @@ -229,7 +235,7 @@ void InstallDlgImpl :: installSelected() else { output->setText( "" ); - vector<Destination>::iterator d = dataMgr->getDestination( destination->currentText() ); + Destination *d = dataMgr->getDestination( destination->currentText() ); QString dest = d->getDestinationName(); QString destDir = d->getDestinationPath(); int instFlags = flags; @@ -247,16 +253,18 @@ void InstallDlgImpl :: installSelected() connect( pIpkg, SIGNAL(outputText(const QString &)), this, SLOT(displayText(const QString &))); // First run through the remove list, then the install list then the upgrade list - vector<InstallData>::iterator it; pIpkg->setOption( "remove" ); - for ( it = removeList.begin() ; it != removeList.end() ; ++it ) + QListIterator<InstallData> it( removeList ); + InstallData *idata; + for ( ; it.current(); ++it ) { - pIpkg->setDestination( it->destination->getDestinationName() ); - pIpkg->setDestinationDir( it->destination->getDestinationPath() ); - pIpkg->setPackage( it->packageName ); + idata = it.current(); + pIpkg->setDestination( idata->destination->getDestinationName() ); + pIpkg->setDestinationDir( idata->destination->getDestinationPath() ); + pIpkg->setPackage( idata->packageName ); int tmpFlags = flags; - if ( it->destination->linkToRoot() ) + if ( idata->destination->linkToRoot() ) tmpFlags |= MAKE_LINKS; pIpkg->setFlags( tmpFlags ); @@ -267,25 +275,28 @@ void InstallDlgImpl :: installSelected() pIpkg->setDestination( dest ); pIpkg->setDestinationDir( destDir ); pIpkg->setFlags( instFlags ); - for ( it = installList.begin() ; it != installList.end() ; ++it ) + QListIterator<InstallData> it2( installList ); + for ( ; it2.current(); ++it2 ) { - pIpkg->setPackage( it->packageName ); + pIpkg->setPackage( it2.current()->packageName ); pIpkg->runIpkg(); } flags |= FORCE_REINSTALL; - for ( it = updateList.begin() ; it != updateList.end() ; ++it ) + QListIterator<InstallData> it3( updateList ); + for ( ; it3.current() ; ++it3 ) { - if ( it->option == "R" ) + idata = it3.current(); + if ( idata->option == "R" ) pIpkg->setOption( "reinstall" ); else pIpkg->setOption( "upgrade" ); - pIpkg->setDestination( it->destination->getDestinationName() ); - pIpkg->setDestinationDir( it->destination->getDestinationPath() ); - pIpkg->setPackage( it->packageName ); + pIpkg->setDestination( idata->destination->getDestinationName() ); + pIpkg->setDestinationDir( idata->destination->getDestinationPath() ); + pIpkg->setPackage( idata->packageName ); int tmpFlags = flags; - if ( it->destination->linkToRoot() && it->recreateLinks ) + if ( idata->destination->linkToRoot() && idata->recreateLinks ) tmpFlags |= MAKE_LINKS; pIpkg->setFlags( tmpFlags ); pIpkg->runIpkg(); @@ -307,7 +318,6 @@ void InstallDlgImpl :: installSelected() void InstallDlgImpl :: displayText(const QString &text ) { - //output->setText( QString( "%1\n%2" ).arg( output->text() ).arg( text ) ); QString newtext = QString( "%1\n%2" ).arg( output->text() ).arg( text ); output->setText( newtext ); output->setCursorPosition( output->numLines(), 0 ); @@ -316,7 +326,7 @@ void InstallDlgImpl :: displayText(const QString &text ) void InstallDlgImpl :: displayAvailableSpace( const QString &text ) { - vector<Destination>::iterator d = dataMgr->getDestination( text ); + Destination *d = dataMgr->getDestination( text ); QString destDir = d->getDestinationPath(); long blockSize = 0; diff --git a/noncore/settings/aqpkg/installdlgimpl.h b/noncore/settings/aqpkg/installdlgimpl.h index 4c9f087..d7509bb 100644 --- a/noncore/settings/aqpkg/installdlgimpl.h +++ b/noncore/settings/aqpkg/installdlgimpl.h @@ -17,11 +17,11 @@ #ifndef INSTALLDLGIMPL_H #define INSTALLDLGIMPL_H -#include <vector> using namespace std; -#include <qwidget.h> +#include <qlist.h> #include <qstring.h> +#include <qwidget.h> class QComboBox; class QLabel; @@ -45,7 +45,7 @@ class InstallDlgImpl : public QWidget { Q_OBJECT public: - InstallDlgImpl( vector<InstallData> &packageList, DataManager *dataManager, const char *title = 0 ); + InstallDlgImpl( QList<InstallData> &packageList, DataManager *dataManager, const char *title = 0 ); InstallDlgImpl( Ipkg *ipkg, QString initialText, const char *title = 0 ); ~InstallDlgImpl(); @@ -55,9 +55,9 @@ protected: private: DataManager *dataMgr; - vector<InstallData> installList; - vector<InstallData> removeList; - vector<InstallData> updateList; + QList<InstallData> installList; + QList<InstallData> removeList; + QList<InstallData> updateList; int flags; Ipkg *pIpkg; bool upgradePackages; diff --git a/noncore/settings/aqpkg/mainwin.cpp b/noncore/settings/aqpkg/mainwin.cpp index 361946c..8ae5815 100644 --- a/noncore/settings/aqpkg/mainwin.cpp +++ b/noncore/settings/aqpkg/mainwin.cpp @@ -543,24 +543,28 @@ void MainWindow :: updateProgress( int progress ) void MainWindow :: updateData() { - m_progress->setTotalSteps( mgr->getServerList().size() ); + m_progress->setTotalSteps( mgr->getServerList().count() ); serversList->clear(); packagesList->clear(); - vector<Server>::iterator it; int activeItem = -1; - int i; + int i = 0; QString serverName; - for ( i = 0, it = mgr->getServerList().begin() ; it != mgr->getServerList().end() ; ++it, ++i ) + + QListIterator<Server> it( mgr->getServerList() ); + Server *server; + + for ( ; it.current(); ++it, ++i ) { - serverName = it->getServerName(); + server = it.current(); + serverName = server->getServerName(); m_status->setText( tr( "Building server list:\n\t%1" ).arg( serverName ) ); m_progress->setProgress( i ); qApp->processEvents(); // cout << "Adding " << it->getServerName() << " to combobox" << endl; - if ( !it->isServerActive() ) + if ( !server->isServerActive() ) { // cout << serverName << " is not active" << endl; i--; @@ -592,20 +596,20 @@ void MainWindow :: serverSelected( int, bool raiseProgress ) QString serverName = serversList->currentText(); currentlySelectedServer = serverName; - vector<Server>::iterator s = mgr->getServer( serverName ); + Server *s = mgr->getServer( serverName ); - vector<Package> &list = s->getPackageList(); - vector<Package>::iterator it; + QList<Package> &list = s->getPackageList(); + QListIterator<Package> it( list ); // Display progress widget while loading list - bool doProgress = ( list.size() > 200 ); + bool doProgress = ( list.count() > 200 ); if ( doProgress ) { if ( raiseProgress ) { stack->raiseWidget( progressWindow ); } - m_progress->setTotalSteps( list.size() ); + m_progress->setTotalSteps( list.count() ); m_status->setText( tr( "Building package list for:\n\t%1" ).arg( serverName ) ); } @@ -619,7 +623,8 @@ void MainWindow :: serverSelected( int, bool raiseProgress ) #endif int i = 0; - for ( it = list.begin() ; it != list.end() ; ++it ) + Package *package; + for ( ; it.current(); ++it ) { // Update progress after every 100th package (arbitrary value, seems to give good balance) i++; @@ -634,42 +639,45 @@ void MainWindow :: serverSelected( int, bool raiseProgress ) QString text = ""; + package = it.current(); + // Apply show only uninstalled packages filter - if ( showUninstalledPkgs && it->isInstalled() ) + if ( showUninstalledPkgs && package->isInstalled() ) continue; // Apply show only installed packages filter - if ( showInstalledPkgs && !it->isInstalled() ) + if ( showInstalledPkgs && !package->isInstalled() ) continue; // Apply show only new installed packages filter if ( showUpgradedPkgs ) { - if ( !it->isInstalled() || - compareVersions( it->getInstalledVersion(), it->getVersion() ) != 1 ) + if ( !package->isInstalled() || + compareVersions( package->getInstalledVersion(), package->getVersion() ) != 1 ) continue; } // Apply the section filter if ( categoryFilterEnabled && categoryFilter != "" ) { - if ( it->getSection() == "" || categoryFilter.find( it->getSection().lower() ) == -1 ) + if ( package->getSection() == "" || categoryFilter.find( package->getSection().lower() ) == -1 ) continue; } // If the local server, only display installed packages - if ( serverName == LOCAL_SERVER && !it->isInstalled() ) + if ( serverName == LOCAL_SERVER && !package->isInstalled() ) continue; - QCheckListItem *item = new QCheckListItem( packagesList, it->getPackageName(), QCheckListItem::CheckBox ); + QCheckListItem *item = new QCheckListItem( packagesList, package->getPackageName(), + QCheckListItem::CheckBox ); - if ( it->isInstalled() ) + if ( package->isInstalled() ) { // If a different version of package is available, show update available icon // Otherwise, show installed icon - if ( it->getVersion() != it->getInstalledVersion() && - compareVersions( it->getInstalledVersion(), it->getVersion() ) == 1) + if ( package->getVersion() != package->getInstalledVersion() && + compareVersions( package->getInstalledVersion(), package->getVersion() ) == 1) { item->setPixmap( 0, updatedIcon ); @@ -680,15 +688,15 @@ void MainWindow :: serverSelected( int, bool raiseProgress ) } QString destName = ""; - if ( it->getLocalPackage() ) + if ( package->getLocalPackage() ) { - if ( it->getLocalPackage()->getInstalledTo() ) - destName = it->getLocalPackage()->getInstalledTo()->getDestinationName(); + if ( package->getLocalPackage()->getInstalledTo() ) + destName = package->getLocalPackage()->getInstalledTo()->getDestinationName(); } else { - if ( it->getInstalledTo() ) - destName = it->getInstalledTo()->getDestinationName(); + if ( package->getInstalledTo() ) + destName = package->getInstalledTo()->getDestinationName(); } if ( destName != "" ) new QCheckListItem( item, QString( tr( "Installed To - %1" ).arg( destName ) ) ); @@ -698,26 +706,26 @@ void MainWindow :: serverSelected( int, bool raiseProgress ) item->setPixmap( 0, nullIcon ); } - if ( !it->isPackageStoredLocally() ) + if ( !package->isPackageStoredLocally() ) { - new QCheckListItem( item, QString( tr( "Description - %1" ).arg( it->getDescription() ) ) ); - new QCheckListItem( item, QString( tr( "Size - %1" ).arg( it->getPackageSize() ) ) ); - new QCheckListItem( item, QString( tr( "Section - %1" ).arg( it->getSection() ) ) ); + new QCheckListItem( item, QString( tr( "Description - %1" ).arg( package->getDescription() ) ) ); + new QCheckListItem( item, QString( tr( "Size - %1" ).arg( package->getPackageSize() ) ) ); + new QCheckListItem( item, QString( tr( "Section - %1" ).arg( package->getSection() ) ) ); } else - new QCheckListItem( item, QString( tr( "Filename - %1" ).arg( it->getFilename() ) ) ); + new QCheckListItem( item, QString( tr( "Filename - %1" ).arg( package->getFilename() ) ) ); if ( serverName == LOCAL_SERVER ) { - new QCheckListItem( item, QString( tr( "V. Installed - %1" ).arg( it->getVersion() ) ) ); + new QCheckListItem( item, QString( tr( "V. Installed - %1" ).arg( package->getVersion() ) ) ); } else { - new QCheckListItem( item, QString( tr( "V. Available - %1" ).arg( it->getVersion() ) ) ); - if ( it->getLocalPackage() ) + new QCheckListItem( item, QString( tr( "V. Available - %1" ).arg( package->getVersion() ) ) ); + if ( package->getLocalPackage() ) { - if ( it->isInstalled() ) - new QCheckListItem( item, QString( tr( "V. Installed - %1" ).arg( it->getInstalledVersion() ) ) ); + if ( package->isInstalled() ) + new QCheckListItem( item, QString( tr( "V. Installed - %1" ).arg( package->getInstalledVersion() ) ) ); } } @@ -755,7 +763,7 @@ void MainWindow :: searchForPackage( const QString &text ) { // cout << "searching for " << text << endl; // look through package list for text startng at current position - vector<InstallData> workingPackages; +// vector<InstallData> workingPackages; QCheckListItem *start = (QCheckListItem *)packagesList->currentItem(); // if ( start != 0 ) // start = (QCheckListItem *)start->nextSibling(); @@ -957,11 +965,12 @@ void MainWindow :: downloadRemotePackage() // grab details from dialog // QString package = dlg.getPackageLocation(); - InstallData item; - item.option = "I"; - item.packageName = package; - vector<InstallData> workingPackages; - workingPackages.push_back( item ); + InstallData *item = new InstallData(); + item->option = "I"; + item->packageName = package; + QList<InstallData> workingPackages; + workingPackages.setAutoDelete( TRUE ); + workingPackages.append( item ); InstallDlgImpl *dlg = new InstallDlgImpl( workingPackages, mgr, tr( "Download" ) ); connect( dlg, SIGNAL( reloadData( InstallDlgImpl * ) ), this, SLOT( reloadData( InstallDlgImpl * ) ) ); @@ -979,19 +988,19 @@ void MainWindow :: applyChanges() // Now for each selected item // deal with it - vector<InstallData> workingPackages; + QList<InstallData> workingPackages; + workingPackages.setAutoDelete( TRUE ); for ( QCheckListItem *item = (QCheckListItem *)packagesList->firstChild(); item != 0 ; item = (QCheckListItem *)item->nextSibling() ) { if ( item->isOn() ) { - InstallData data = dealWithItem( item ); - workingPackages.push_back( data ); + workingPackages.append( dealWithItem( item ) ); } } - if ( workingPackages.size() == 0 ) + if ( workingPackages.count() == 0 ) { // Nothing to do QMessageBox::information( this, tr( "Nothing to do" ), @@ -1011,12 +1020,12 @@ void MainWindow :: applyChanges() // If not installed - install // If installed and different version available - upgrade // If installed and version up to date - remove -InstallData MainWindow :: dealWithItem( QCheckListItem *item ) +InstallData *MainWindow :: dealWithItem( QCheckListItem *item ) { QString name = item->text(); // Get package - vector<Server>::iterator s = mgr->getServer( serversList->currentText() ); + Server *s = mgr->getServer( serversList->currentText() ); Package *p = s->getPackage( name ); // If the package has a filename then it is a local file @@ -1027,29 +1036,29 @@ InstallData MainWindow :: dealWithItem( QCheckListItem *item ) QString dest = "root"; if ( !p->isInstalled() ) { - InstallData item; - item.option = "I"; - item.packageName = name; - return item; + InstallData *newitem = new InstallData();; + newitem->option = "I"; + newitem->packageName = name; + return newitem; } else { - InstallData item; - item.option = "D"; + InstallData *newitem = new InstallData();; + newitem->option = "D"; if ( !p->isPackageStoredLocally() ) - item.packageName = p->getInstalledPackageName(); + newitem->packageName = p->getInstalledPackageName(); else - item.packageName = name; + newitem->packageName = name; if ( p->getInstalledTo() ) { - item.destination = p->getInstalledTo(); + newitem->destination = p->getInstalledTo(); // cout << "dest - " << p->getInstalledTo()->getDestinationName() << endl; // cout << "dest - " << p->getInstalledTo()->getDestinationPath() << endl; } else { - item.destination = p->getLocalPackage()->getInstalledTo(); + newitem->destination = p->getLocalPackage()->getInstalledTo(); } // Now see if version is newer or not @@ -1066,7 +1075,7 @@ InstallData MainWindow :: dealWithItem( QCheckListItem *item ) else if ( val == -1 ) { // Version available is older - remove only - item.option = "D"; + newitem->option = "D"; } else { @@ -1102,28 +1111,28 @@ InstallData MainWindow :: dealWithItem( QCheckListItem *item ) { case 0: // Try again or Enter // option 0 = Remove - item.option = "D"; + newitem->option = "D"; break; case 1: // Quit or Escape - item.option = secondOption; + newitem->option = secondOption; break; } } else { -// item.option = stickyOption; +// newitem->option = stickyOption; } } // Check if we are reinstalling the same version - if ( item.option != "R" ) - item.recreateLinks = true; + if ( newitem->option != "R" ) + newitem->recreateLinks = true; else - item.recreateLinks = false; + newitem->recreateLinks = false; // User hit cancel (on dlg - assume remove) - return item; + return newitem; } } diff --git a/noncore/settings/aqpkg/mainwin.h b/noncore/settings/aqpkg/mainwin.h index d0777fb..db06e16 100644 --- a/noncore/settings/aqpkg/mainwin.h +++ b/noncore/settings/aqpkg/mainwin.h @@ -92,7 +92,7 @@ private: bool filterByCategory( bool val ); void downloadSelectedPackages(); void downloadRemotePackage(); - InstallData dealWithItem( QCheckListItem *item ); + InstallData *dealWithItem( QCheckListItem *item ); // Progress widget QWidget *progressWindow; diff --git a/noncore/settings/aqpkg/server.cpp b/noncore/settings/aqpkg/server.cpp index fc5ed12..04f5ab7 100644 --- a/noncore/settings/aqpkg/server.cpp +++ b/noncore/settings/aqpkg/server.cpp @@ -59,17 +59,19 @@ void Server :: cleanUp() packageList.clear(); } -void Server :: readStatusFile( vector<Destination> &destList ) +void Server :: readStatusFile( QList<Destination> &destList ) { cleanUp(); - vector<Destination>::iterator dit; + Destination *dest; + QListIterator<Destination> dit( destList ); bool rootRead = false; - for ( dit = destList.begin() ; dit != destList.end() ; ++dit ) + for ( ; dit.current(); ++dit ) { + dest = dit.current(); bool installingToRoot = false; - QString path = dit->getDestinationPath(); + QString path = dest->getDestinationPath(); if ( path.right( 1 ) != "/" ) path += "/"; @@ -80,7 +82,7 @@ void Server :: readStatusFile( vector<Destination> &destList ) } packageFile = path + "usr/lib/ipkg/status"; - readPackageFile( 0, false, installingToRoot, &( *dit ) ); + readPackageFile( 0, false, installingToRoot, &( *dest ) ); } // Ensure that the root status file is read @@ -115,11 +117,11 @@ void Server :: readLocalIpks( Server *local ) // Changed to display the filename (excluding the path) QString packageName = Utils::getFilenameFromIpkFilename( file ); QString ver = Utils::getPackageVersionFromIpkFilename( file ); - packageList.push_back( Package( packageName ) ); - packageList.back().setVersion( ver ); - packageList.back().setFilename( file ); - packageList.back().setPackageStoredLocally( true ); - + Package *package = new Package( packageName ); + package->setVersion( ver ); + package->setFilename( file ); + package->setPackageStoredLocally( true ); + packageList.append( package ); } #else 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" }; @@ -180,10 +182,10 @@ void Server :: readPackageFile( Server *local, bool clearAll, bool installingToR currPackage = getPackage( value ); if ( !currPackage ) { - packageList.push_back( Package( value ) ); - currPackage = &(packageList.back()); + Package *package = new Package( value ); + packageList.append( package ); + currPackage = package; currPackage->setInstalledTo( dest ); - if ( installingToRoot ) currPackage->setInstalledToRoot( true ); } @@ -239,32 +241,35 @@ void Server :: readPackageFile( Server *local, bool clearAll, bool installingToR void Server :: buildLocalPackages( Server *local ) { - for ( unsigned int i = 0 ; i < packageList.size() ; ++i ) + Package *curr; + QListIterator<Package> it( packageList ); + for ( ; it.current(); ++it ) { - QString name = packageList[i].getPackageName(); + curr = it.current(); + QString name = curr->getPackageName(); // If the package name is an ipk name, then convert the filename to a package name if ( name.find( ".ipk" ) != -1 ) - name = Utils::getPackageNameFromIpkFilename( packageList[i].getFilename() ); + name = Utils::getPackageNameFromIpkFilename( curr->getFilename() ); if ( local ) { Package *p = local->getPackage( name ); - packageList[i].setLocalPackage( p ); + curr->setLocalPackage( p ); if ( p ) { // Set some default stuff like size and things - if ( p->getInstalledVersion() == packageList[i].getVersion() ) + if ( p->getInstalledVersion() == curr->getVersion() ) { - p->setPackageSize( packageList[i].getPackageSize() ); - p->setSection( packageList[i].getSection() ); - p->setDescription( packageList[i].getDescription() ); + p->setPackageSize( curr->getPackageSize() ); + p->setSection( curr->getSection() ); + p->setDescription( curr->getDescription() ); } } } else - packageList[i].setLocalPackage( 0 ); + curr->setLocalPackage( 0 ); } } @@ -278,10 +283,11 @@ Package *Server :: getPackage( const char *name ) { Package *ret = 0; - for ( unsigned int i = 0 ; i < packageList.size() && ret == 0; ++i ) + QListIterator<Package> it( packageList ); + for ( ; it.current(); ++it ) { - if ( packageList[i].getPackageName() == name ) - ret = &packageList[i]; + if ( it.current()->getPackageName() == name ) + ret = it.current(); } return ret; @@ -289,18 +295,19 @@ Package *Server :: getPackage( const char *name ) QString Server :: toString() { - QString ret = "Server\n name - " + serverName + - "\n url - " + serverUrl + - "\n"; + QString ret = QString( "Server\n name - %1\n url - %2\n" ).arg( serverName ).arg( serverUrl ); - for ( unsigned int i = 0 ; i < packageList.size() ; ++i ) - ret += "\n " + packageList[i].toString(); + QListIterator<Package> it( packageList ); + for ( ; it.current(); ++it ) + { + ret.append( QString( "\n %1" ).arg( it.current()->toString() ) ); + } return ret; } -vector<Package> &Server::getPackageList() +QList<Package> &Server::getPackageList() { return packageList; } diff --git a/noncore/settings/aqpkg/server.h b/noncore/settings/aqpkg/server.h index f585b8f..02746e0 100644 --- a/noncore/settings/aqpkg/server.h +++ b/noncore/settings/aqpkg/server.h @@ -17,9 +17,9 @@ #ifndef SERVER_H #define SERVER_H +#include <qlist.h> #include <qstring.h> -#include <vector> using namespace std; #include "package.h" @@ -35,14 +35,14 @@ public: void cleanUp(); - void readStatusFile( vector<Destination> &v ); + void readStatusFile( QList<Destination> &v ); void readLocalIpks( Server *local ); void readPackageFile( Server *local = 0, bool clearAll = true, bool installedToRoot= false, Destination *dest = 0 ); void buildLocalPackages( Server *local ); Package *getPackage( const char *name ); Package *getPackage( QString &name ); QString toString(); - vector<Package> &getPackageList(); + QList<Package> &getPackageList(); bool isServerActive() { return active; } void setServerName( const QString &name ) { serverName = name; } @@ -60,7 +60,7 @@ private: bool active; - vector<Package> packageList; + QList<Package> packageList; }; #endif diff --git a/noncore/settings/aqpkg/settingsimpl.cpp b/noncore/settings/aqpkg/settingsimpl.cpp index c5a55d2..7541f0b 100644 --- a/noncore/settings/aqpkg/settingsimpl.cpp +++ b/noncore/settings/aqpkg/settingsimpl.cpp @@ -254,20 +254,22 @@ QWidget *SettingsImpl :: initProxyTab() void SettingsImpl :: setupData() { // add servers - vector<Server>::iterator it; - for ( it = dataMgr->getServerList().begin() ; it != dataMgr->getServerList().end() ; ++it ) + QString serverName; + QListIterator<Server> it( dataMgr->getServerList() ); + for ( ; it.current(); ++it ) { - if ( it->getServerName() == LOCAL_SERVER || it->getServerName() == LOCAL_IPKGS ) + serverName = it.current()->getServerName(); + if ( serverName == LOCAL_SERVER || serverName == LOCAL_IPKGS ) continue; - servers->insertItem( it->getServerName() ); + servers->insertItem( serverName ); } // add destinations - vector<Destination>::iterator it2; - for ( it2 = dataMgr->getDestinationList().begin() ; it2 != dataMgr->getDestinationList().end() ; ++it2 ) - destinations->insertItem( it2->getDestinationName() ); + QListIterator<Destination> it2( dataMgr->getDestinationList() ); + for ( ; it2.current(); ++it2 ) + destinations->insertItem( it2.current()->getDestinationName() ); // setup proxy tab txtHttpProxy->setText( dataMgr->getHttpProxy() ); @@ -283,7 +285,7 @@ void SettingsImpl :: setupData() void SettingsImpl :: editServer( int sel ) { currentSelectedServer = sel; - vector<Server>::iterator s = dataMgr->getServer( servers->currentText() ); + Server *s = dataMgr->getServer( servers->currentText() ); serverName = s->getServerName(); servername->setText( s->getServerName() ); serverurl->setText( s->getServerUrl() ); @@ -302,8 +304,8 @@ void SettingsImpl :: newServer() void SettingsImpl :: removeServer() { changed = true; - vector<Server>::iterator s = dataMgr->getServer( servers->currentText() ); - dataMgr->getServerList().erase( s ); + Server *s = dataMgr->getServer( servers->currentText() ); + dataMgr->getServerList().removeRef( s ); servers->removeItem( currentSelectedServer ); } @@ -314,7 +316,7 @@ void SettingsImpl :: changeServerDetails() QString newName = servername->text(); if ( !newserver ) { - vector<Server>::iterator s = dataMgr->getServer( servers->currentText() ); + Server *s = dataMgr->getServer( servers->currentText() ); // Update url s->setServerUrl( serverurl->text() ); @@ -338,8 +340,8 @@ void SettingsImpl :: changeServerDetails() else { Server s( newName, serverurl->text() ); - dataMgr->getServerList().push_back( Server( newName, serverurl->text() ) ); - dataMgr->getServerList().end()->setActive( active->isChecked() ); + dataMgr->getServerList().append( new Server( newName, serverurl->text() ) ); + dataMgr->getServerList().last()->setActive( active->isChecked() ); servers->insertItem( newName ); servers->setCurrentItem( servers->count() ); newserver = false; @@ -351,7 +353,7 @@ void SettingsImpl :: changeServerDetails() void SettingsImpl :: editDestination( int sel ) { currentSelectedDestination = sel; - vector<Destination>::iterator d = dataMgr->getDestination( destinations->currentText() ); + Destination *d = dataMgr->getDestination( destinations->currentText() ); destinationName = d->getDestinationName(); destinationname->setText( d->getDestinationName() ); destinationurl->setText( d->getDestinationPath() ); @@ -370,8 +372,8 @@ void SettingsImpl :: newDestination() void SettingsImpl :: removeDestination() { changed = true; - vector<Destination>::iterator d = dataMgr->getDestination( destinations->currentText() ); - dataMgr->getDestinationList().erase( d ); + Destination *d = dataMgr->getDestination( destinations->currentText() ); + dataMgr->getDestinationList().removeRef( d ); destinations->removeItem( currentSelectedDestination ); } @@ -387,7 +389,7 @@ void SettingsImpl :: changeDestinationDetails() QString newName = destinationname->text(); if ( !newdestination ) { - vector<Destination>::iterator d = dataMgr->getDestination( destinations->currentText() ); + Destination *d = dataMgr->getDestination( destinations->currentText() ); // Update url d->setDestinationPath( destinationurl->text() ); @@ -411,7 +413,7 @@ void SettingsImpl :: changeDestinationDetails() } else { - dataMgr->getDestinationList().push_back( Destination( newName, destinationurl->text() ) ); + dataMgr->getDestinationList().append( new Destination( newName, destinationurl->text() ) ); destinations->insertItem( newName ); destinations->setCurrentItem( destinations->count() ); newdestination = false; |