author | andyq <andyq> | 2002-11-01 12:41:03 (UTC) |
---|---|---|
committer | andyq <andyq> | 2002-11-01 12:41:03 (UTC) |
commit | 0e34499726f7fa275363988ea466d13aab09f544 (patch) (side-by-side diff) | |
tree | 20403963ae3c1b315c2d1fd4b23a33754289287c | |
parent | 4c5a56dbaddb3ac6b587c61a8ba6841987cf60fa (diff) | |
download | opie-0e34499726f7fa275363988ea466d13aab09f544.zip opie-0e34499726f7fa275363988ea466d13aab09f544.tar.gz opie-0e34499726f7fa275363988ea466d13aab09f544.tar.bz2 |
Fixed a bug where if a package was removed from the local view the packages didn't get relinked properly
-rw-r--r-- | noncore/settings/aqpkg/datamgr.cpp | 34 | ||||
-rw-r--r-- | noncore/settings/aqpkg/datamgr.h | 2 | ||||
-rw-r--r-- | noncore/settings/aqpkg/networkpkgmgr.cpp | 32 |
3 files changed, 36 insertions, 32 deletions
diff --git a/noncore/settings/aqpkg/datamgr.cpp b/noncore/settings/aqpkg/datamgr.cpp index 089c3e3..f342aff 100644 --- a/noncore/settings/aqpkg/datamgr.cpp +++ b/noncore/settings/aqpkg/datamgr.cpp @@ -130,36 +130,36 @@ void DataManager :: loadServers() d.linkToRoot( linkToRoot ); destList.push_back( d ); } } } fclose( fp ); - vector<Server>::iterator it; - for ( it = serverList.begin() ; it != serverList.end() ; ++it ) - reloadServerData( it->getServerName() ); + reloadServerData( ); } -void DataManager :: reloadServerData( const char *serverName ) +void DataManager :: reloadServerData( ) { - Server *s = getServer( serverName ); - // Now we've read the config file in we need to read the servers - // The local server is a special case. This holds the contents of the - // status files the number of which depends on how many destinations - // we've set up - // The other servers files hold the contents of the server package list - if ( s->getServerName() == LOCAL_SERVER ) - s->readStatusFile( destList ); - else if ( s->getServerName() == LOCAL_IPKGS ) - s->readLocalIpks( getServer( LOCAL_SERVER ) ); - else - s->readPackageFile( getServer( LOCAL_SERVER ) ); - + vector<Server>::iterator it = serverList.begin(); + for ( it = serverList.begin() ; it != serverList.end() ; ++it ) + { + // Now we've read the config file in we need to read the servers + // The local server is a special case. This holds the contents of the + // status files the number of which depends on how many destinations + // we've set up + // The other servers files hold the contents of the server package list + if ( it->getServerName() == LOCAL_SERVER ) + it->readStatusFile( destList ); + else if ( it->getServerName() == LOCAL_IPKGS ) + it->readLocalIpks( getServer( LOCAL_SERVER ) ); + else + it->readPackageFile( getServer( LOCAL_SERVER ) ); + } } void DataManager :: writeOutIpkgConf() { QString ipkg_conf = IPKG_CONF; ofstream out( ipkg_conf ); out << "# Written by AQPkg" << endl; diff --git a/noncore/settings/aqpkg/datamgr.h b/noncore/settings/aqpkg/datamgr.h index eb802b5..8c6fb0d 100644 --- a/noncore/settings/aqpkg/datamgr.h +++ b/noncore/settings/aqpkg/datamgr.h @@ -44,17 +44,17 @@ public: Server *getLocalServer() { return getServer( LOCAL_SERVER ); } vector<Server> &getServerList() { return serverList; } Server *getServer( const char *name ); vector<Destination> &getDestinationList() { return destList; } Destination *getDestination( const char *name ); void loadServers(); - void reloadServerData( const char *sn ); + void reloadServerData( ); void writeOutIpkgConf(); private: QString activeServer; vector<Server> serverList; diff --git a/noncore/settings/aqpkg/networkpkgmgr.cpp b/noncore/settings/aqpkg/networkpkgmgr.cpp index 02e4e73..b5d7352 100644 --- a/noncore/settings/aqpkg/networkpkgmgr.cpp +++ b/noncore/settings/aqpkg/networkpkgmgr.cpp @@ -210,36 +210,37 @@ void NetworkPackageManager :: serverSelected( int ) #ifdef QWS // read download directory from config file Config cfg( "aqpkg" ); cfg.setGroup( "settings" ); cfg.writeEntry( "selectedServer", currentlySelectedServer ); #endif Server *s = dataMgr->getServer( serverName ); -// dataMgr->setActiveServer( serverName ); vector<Package> &list = s->getPackageList(); vector<Package>::iterator it; for ( it = list.begin() ; it != list.end() ; ++it ) { + QString text = ""; // If the local server, only display installed packages if ( serverName == LOCAL_SERVER && !it->isInstalled() ) continue; text += it->getPackageName(); if ( it->isInstalled() ) { text += " (installed)"; // If a different version of package is available, postfix it with an * if ( it->getVersion() != it->getInstalledVersion() ) { + if ( compareVersions( it->getInstalledVersion(), it->getVersion() ) == 1 ) text += "*"; } } QCheckListItem *item = new QCheckListItem( packagesList, text, QCheckListItem::CheckBox ); if ( it->isInstalled() ) @@ -259,21 +260,28 @@ void NetworkPackageManager :: serverSelected( int ) new QCheckListItem( item, QString( "Installed To - " ) + destName ); } if ( !it->isPackageStoredLocally() ) new QCheckListItem( item, QString( "Description - " ) + it->getDescription() ); else new QCheckListItem( item, QString( "Filename - " ) + it->getFilename() ); - new QCheckListItem( item, QString( "V. Available - " ) + it->getVersion() ); - if ( it->getLocalPackage() ) - { - if ( it->isInstalled() ) - new QCheckListItem( item, QString( "V. Installed - " ) + it->getInstalledVersion() ); + if ( serverName == LOCAL_SERVER ) + { + new QCheckListItem( item, QString( "V. Installed - " ) + it->getVersion() ); + } + else + { + new QCheckListItem( item, QString( "V. Available - " ) + it->getVersion() ); + if ( it->getLocalPackage() ) + { + if ( it->isInstalled() ) + new QCheckListItem( item, QString( "V. Installed - " ) + it->getInstalledVersion() ); + } } packagesList->insertItem( item ); } // If the local server or the local ipkgs server disable the download button if ( serverName == LOCAL_SERVER ) { upgrade->setEnabled( false ); @@ -312,17 +320,17 @@ void NetworkPackageManager :: updateServer() Ipkg ipkg; ipkg.setOption( "update" ); InstallDlgImpl dlg( &ipkg, "Refreshing server package lists", this, "Upgrade", true ); dlg.showDlg(); // Reload data - dataMgr->reloadServerData( serversList->currentText() ); + dataMgr->reloadServerData(); serverSelected(-1); // delete progDlg; } void NetworkPackageManager :: upgradePackages() { // We're gonna do an upgrade of all packages // First warn user that this isn't recommended @@ -341,19 +349,17 @@ void NetworkPackageManager :: upgradePackages() // Now run upgrade Ipkg ipkg; ipkg.setOption( "upgrade" ); InstallDlgImpl dlg( &ipkg, "Upgrading installed packages", this, "Upgrade", true ); dlg.showDlg(); // Reload data - dataMgr->reloadServerData( LOCAL_SERVER ); - - dataMgr->reloadServerData( serversList->currentText() ); + dataMgr->reloadServerData(); serverSelected(-1); } } void NetworkPackageManager :: downloadPackage() { if ( download->text() == "Download" ) @@ -431,17 +437,17 @@ void NetworkPackageManager :: downloadPackage() Package *p = dataMgr->getServer( serversList->currentText() )->getPackage( name ); QFile f( p->getFilename() ); f.remove(); } } } - dataMgr->reloadServerData( LOCAL_IPKGS ); + dataMgr->reloadServerData(); serverSelected( -1 ); } void NetworkPackageManager :: applyChanges() { stickyOption = ""; @@ -472,19 +478,17 @@ void NetworkPackageManager :: applyChanges() return; } // do the stuff InstallDlgImpl dlg( workingPackages, dataMgr, this, "Install", true ); dlg.showDlg(); // Reload data - dataMgr->reloadServerData( LOCAL_SERVER ); - - dataMgr->reloadServerData( serversList->currentText() ); + dataMgr->reloadServerData(); serverSelected(-1); #ifdef QWS // Finally let the main system update itself QCopEnvelope e("QPE/System", "linkChanged(QString)"); QString lf = QString::null; e << lf; #endif |