summaryrefslogtreecommitdiff
authorandyq <andyq>2002-11-01 12:41:03 (UTC)
committer andyq <andyq>2002-11-01 12:41:03 (UTC)
commit0e34499726f7fa275363988ea466d13aab09f544 (patch) (unidiff)
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()
130 d.linkToRoot( linkToRoot ); 130 d.linkToRoot( linkToRoot );
131 131
132 destList.push_back( d ); 132 destList.push_back( d );
133 } 133 }
134 } 134 }
135 } 135 }
136 fclose( fp ); 136 fclose( fp );
137 137
138 vector<Server>::iterator it; 138 reloadServerData( );
139 for ( it = serverList.begin() ; it != serverList.end() ; ++it )
140 reloadServerData( it->getServerName() );
141} 139}
142 140
143void DataManager :: reloadServerData( const char *serverName ) 141void DataManager :: reloadServerData( )
144{ 142{
145 Server *s = getServer( serverName ); 143 vector<Server>::iterator it = serverList.begin();
146 // Now we've read the config file in we need to read the servers 144 for ( it = serverList.begin() ; it != serverList.end() ; ++it )
147 // The local server is a special case. This holds the contents of the 145 {
148 // status files the number of which depends on how many destinations 146 // Now we've read the config file in we need to read the servers
149 // we've set up 147 // The local server is a special case. This holds the contents of the
150 // The other servers files hold the contents of the server package list 148 // status files the number of which depends on how many destinations
151 if ( s->getServerName() == LOCAL_SERVER ) 149 // we've set up
152 s->readStatusFile( destList ); 150 // The other servers files hold the contents of the server package list
153 else if ( s->getServerName() == LOCAL_IPKGS ) 151 if ( it->getServerName() == LOCAL_SERVER )
154 s->readLocalIpks( getServer( LOCAL_SERVER ) ); 152 it->readStatusFile( destList );
155 else 153 else if ( it->getServerName() == LOCAL_IPKGS )
156 s->readPackageFile( getServer( LOCAL_SERVER ) ); 154 it->readLocalIpks( getServer( LOCAL_SERVER ) );
157 155 else
156 it->readPackageFile( getServer( LOCAL_SERVER ) );
157 }
158} 158}
159 159
160void DataManager :: writeOutIpkgConf() 160void DataManager :: writeOutIpkgConf()
161{ 161{
162 QString ipkg_conf = IPKG_CONF; 162 QString ipkg_conf = IPKG_CONF;
163 ofstream out( ipkg_conf ); 163 ofstream out( ipkg_conf );
164 164
165 out << "# Written by AQPkg" << endl; 165 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:
44 Server *getLocalServer() { return getServer( LOCAL_SERVER ); } 44 Server *getLocalServer() { return getServer( LOCAL_SERVER ); }
45 vector<Server> &getServerList() { return serverList; } 45 vector<Server> &getServerList() { return serverList; }
46 Server *getServer( const char *name ); 46 Server *getServer( const char *name );
47 47
48 vector<Destination> &getDestinationList() { return destList; } 48 vector<Destination> &getDestinationList() { return destList; }
49 Destination *getDestination( const char *name ); 49 Destination *getDestination( const char *name );
50 50
51 void loadServers(); 51 void loadServers();
52 void reloadServerData( const char *sn ); 52 void reloadServerData( );
53 53
54 void writeOutIpkgConf(); 54 void writeOutIpkgConf();
55 55
56 56
57private: 57private:
58 QString activeServer; 58 QString activeServer;
59 59
60 vector<Server> serverList; 60 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 )
210#ifdef QWS 210#ifdef QWS
211 // read download directory from config file 211 // read download directory from config file
212 Config cfg( "aqpkg" ); 212 Config cfg( "aqpkg" );
213 cfg.setGroup( "settings" ); 213 cfg.setGroup( "settings" );
214 cfg.writeEntry( "selectedServer", currentlySelectedServer ); 214 cfg.writeEntry( "selectedServer", currentlySelectedServer );
215#endif 215#endif
216 216
217 Server *s = dataMgr->getServer( serverName ); 217 Server *s = dataMgr->getServer( serverName );
218// dataMgr->setActiveServer( serverName );
219 218
220 vector<Package> &list = s->getPackageList(); 219 vector<Package> &list = s->getPackageList();
221 vector<Package>::iterator it; 220 vector<Package>::iterator it;
222 for ( it = list.begin() ; it != list.end() ; ++it ) 221 for ( it = list.begin() ; it != list.end() ; ++it )
223 { 222 {
223
224 QString text = ""; 224 QString text = "";
225 225
226 // If the local server, only display installed packages 226 // If the local server, only display installed packages
227 if ( serverName == LOCAL_SERVER && !it->isInstalled() ) 227 if ( serverName == LOCAL_SERVER && !it->isInstalled() )
228 continue; 228 continue;
229 229
230 text += it->getPackageName(); 230 text += it->getPackageName();
231 if ( it->isInstalled() ) 231 if ( it->isInstalled() )
232 { 232 {
233 text += " (installed)"; 233 text += " (installed)";
234 234
235 // If a different version of package is available, postfix it with an * 235 // If a different version of package is available, postfix it with an *
236 if ( it->getVersion() != it->getInstalledVersion() ) 236 if ( it->getVersion() != it->getInstalledVersion() )
237 { 237 {
238
238 if ( compareVersions( it->getInstalledVersion(), it->getVersion() ) == 1 ) 239 if ( compareVersions( it->getInstalledVersion(), it->getVersion() ) == 1 )
239 text += "*"; 240 text += "*";
240 } 241 }
241 } 242 }
242 243
243 QCheckListItem *item = new QCheckListItem( packagesList, text, QCheckListItem::CheckBox ); 244 QCheckListItem *item = new QCheckListItem( packagesList, text, QCheckListItem::CheckBox );
244 245
245 if ( it->isInstalled() ) 246 if ( it->isInstalled() )
@@ -259,21 +260,28 @@ void NetworkPackageManager :: serverSelected( int )
259 new QCheckListItem( item, QString( "Installed To - " ) + destName ); 260 new QCheckListItem( item, QString( "Installed To - " ) + destName );
260 } 261 }
261 262
262 if ( !it->isPackageStoredLocally() ) 263 if ( !it->isPackageStoredLocally() )
263 new QCheckListItem( item, QString( "Description - " ) + it->getDescription() ); 264 new QCheckListItem( item, QString( "Description - " ) + it->getDescription() );
264 else 265 else
265 new QCheckListItem( item, QString( "Filename - " ) + it->getFilename() ); 266 new QCheckListItem( item, QString( "Filename - " ) + it->getFilename() );
266 267
267 new QCheckListItem( item, QString( "V. Available - " ) + it->getVersion() ); 268 if ( serverName == LOCAL_SERVER )
268 if ( it->getLocalPackage() ) 269 {
269 { 270 new QCheckListItem( item, QString( "V. Installed - " ) + it->getVersion() );
270 if ( it->isInstalled() ) 271 }
271 new QCheckListItem( item, QString( "V. Installed - " ) + it->getInstalledVersion() ); 272 else
273 {
274 new QCheckListItem( item, QString( "V. Available - " ) + it->getVersion() );
275 if ( it->getLocalPackage() )
276 {
277 if ( it->isInstalled() )
278 new QCheckListItem( item, QString( "V. Installed - " ) + it->getInstalledVersion() );
279 }
272 } 280 }
273 packagesList->insertItem( item ); 281 packagesList->insertItem( item );
274 } 282 }
275 283
276 // If the local server or the local ipkgs server disable the download button 284 // If the local server or the local ipkgs server disable the download button
277 if ( serverName == LOCAL_SERVER ) 285 if ( serverName == LOCAL_SERVER )
278 { 286 {
279 upgrade->setEnabled( false ); 287 upgrade->setEnabled( false );
@@ -312,17 +320,17 @@ void NetworkPackageManager :: updateServer()
312 320
313 Ipkg ipkg; 321 Ipkg ipkg;
314 ipkg.setOption( "update" ); 322 ipkg.setOption( "update" );
315 323
316 InstallDlgImpl dlg( &ipkg, "Refreshing server package lists", this, "Upgrade", true ); 324 InstallDlgImpl dlg( &ipkg, "Refreshing server package lists", this, "Upgrade", true );
317 dlg.showDlg(); 325 dlg.showDlg();
318 326
319 // Reload data 327 // Reload data
320 dataMgr->reloadServerData( serversList->currentText() ); 328 dataMgr->reloadServerData();
321 serverSelected(-1); 329 serverSelected(-1);
322// delete progDlg; 330// delete progDlg;
323} 331}
324 332
325void NetworkPackageManager :: upgradePackages() 333void NetworkPackageManager :: upgradePackages()
326{ 334{
327 // We're gonna do an upgrade of all packages 335 // We're gonna do an upgrade of all packages
328 // First warn user that this isn't recommended 336 // First warn user that this isn't recommended
@@ -341,19 +349,17 @@ void NetworkPackageManager :: upgradePackages()
341 // Now run upgrade 349 // Now run upgrade
342 Ipkg ipkg; 350 Ipkg ipkg;
343 ipkg.setOption( "upgrade" ); 351 ipkg.setOption( "upgrade" );
344 352
345 InstallDlgImpl dlg( &ipkg, "Upgrading installed packages", this, "Upgrade", true ); 353 InstallDlgImpl dlg( &ipkg, "Upgrading installed packages", this, "Upgrade", true );
346 dlg.showDlg(); 354 dlg.showDlg();
347 355
348 // Reload data 356 // Reload data
349 dataMgr->reloadServerData( LOCAL_SERVER ); 357 dataMgr->reloadServerData();
350
351 dataMgr->reloadServerData( serversList->currentText() );
352 serverSelected(-1); 358 serverSelected(-1);
353 } 359 }
354} 360}
355 361
356 362
357void NetworkPackageManager :: downloadPackage() 363void NetworkPackageManager :: downloadPackage()
358{ 364{
359 if ( download->text() == "Download" ) 365 if ( download->text() == "Download" )
@@ -431,17 +437,17 @@ void NetworkPackageManager :: downloadPackage()
431 437
432 Package *p = dataMgr->getServer( serversList->currentText() )->getPackage( name ); 438 Package *p = dataMgr->getServer( serversList->currentText() )->getPackage( name );
433 QFile f( p->getFilename() ); 439 QFile f( p->getFilename() );
434 f.remove(); 440 f.remove();
435 } 441 }
436 } 442 }
437 } 443 }
438 444
439 dataMgr->reloadServerData( LOCAL_IPKGS ); 445 dataMgr->reloadServerData();
440 serverSelected( -1 ); 446 serverSelected( -1 );
441} 447}
442 448
443 449
444void NetworkPackageManager :: applyChanges() 450void NetworkPackageManager :: applyChanges()
445{ 451{
446 stickyOption = ""; 452 stickyOption = "";
447 453
@@ -472,19 +478,17 @@ void NetworkPackageManager :: applyChanges()
472 return; 478 return;
473 } 479 }
474 480
475 // do the stuff 481 // do the stuff
476 InstallDlgImpl dlg( workingPackages, dataMgr, this, "Install", true ); 482 InstallDlgImpl dlg( workingPackages, dataMgr, this, "Install", true );
477 dlg.showDlg(); 483 dlg.showDlg();
478 484
479 // Reload data 485 // Reload data
480 dataMgr->reloadServerData( LOCAL_SERVER ); 486 dataMgr->reloadServerData();
481
482 dataMgr->reloadServerData( serversList->currentText() );
483 serverSelected(-1); 487 serverSelected(-1);
484 488
485#ifdef QWS 489#ifdef QWS
486 // Finally let the main system update itself 490 // Finally let the main system update itself
487 QCopEnvelope e("QPE/System", "linkChanged(QString)"); 491 QCopEnvelope e("QPE/System", "linkChanged(QString)");
488 QString lf = QString::null; 492 QString lf = QString::null;
489 e << lf; 493 e << lf;
490#endif 494#endif