summaryrefslogtreecommitdiff
authorandyq <andyq>2002-11-01 12:41:03 (UTC)
committer andyq <andyq>2002-11-01 12:41:03 (UTC)
commit0e34499726f7fa275363988ea466d13aab09f544 (patch) (side-by-side diff)
tree20403963ae3c1b315c2d1fd4b23a33754289287c
parent4c5a56dbaddb3ac6b587c61a8ba6841987cf60fa (diff)
downloadopie-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
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/settings/aqpkg/datamgr.cpp34
-rw-r--r--noncore/settings/aqpkg/datamgr.h2
-rw-r--r--noncore/settings/aqpkg/networkpkgmgr.cpp32
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