- if( iAptInterface->numSelectedPackages() > 0 ) {
- ConfirmDialog d(true, this);
- d.setText("Confirmation", "Proceed loading selections? All current selections will be cleared.");
- if( !d.exec() )
- return;
- }
-
- QString filename = QFileDialog::getOpenFileName(this, "Open selections list", KDefaultUserOpenSaveDir, "Selection lists (*.slist)");
- if( filename.isNull() || filename.isEmpty() )
- return;
-
- clearSelections();
-
- QStringList unknownList;
- QStringList wrongverList;
- QStringList wrongstatusList;
- int success=0;
- int errors=0;
-
- QFile f( filename );
- if( f.open(QIODevice::ReadOnly | QIODevice::Text ) )
- {
- while(!f.atEnd()) {
- QString line = f.readLine().trimmed();
- QStringList parts = line.split(' ');
- if( parts.count()==3 ) {
- Package* pkgAv = iAptInterface->packagesAvailable()->value(parts.at(0),0);
- Package* pkgIn = iAptInterface->packagesInstalled()->value(parts.at(0),0);
- if( parts.at(2)=="install" ) {
- if( !pkgAv && !pkgIn ) {
- unknownList << parts.at(0);
- }
- else if( pkgIn ) {
- wrongstatusList << parts.at(0);
- }
- else if( pkgAv ) {
- if( !pkgAv->isInstalled() )
- {
- pkgAv->setMarkedForOperation(Package::PkgOpInstallUpgrade);
- success++;
- if( pkgAv->version() != parts.at(1) ) {
- wrongverList << parts.at(0);
- }
- } else {
- wrongstatusList << parts.at(0);
- }
- }
-
- } else if( parts.at(2)=="upgrade" ) {
- if( !pkgAv && !pkgIn ) {
- unknownList << parts.at(0);
- }
- else if( (pkgAv && !pkgIn) || (pkgIn && !pkgAv) ) {
- wrongstatusList << parts.at(0);
- }
- else if( pkgIn && pkgAv ) {
- if( pkgIn->isInstalled() && pkgIn->isUpgradeable() )
- {
- pkgIn->setMarkedForOperation(Package::PkgOpInstallUpgrade);
- success++;
- if( pkgIn->version() != parts.at(1) ) {
- wrongverList << parts.at(0);
- }
- } else {
- wrongstatusList << parts.at(0);
- }
- }
-
- } else if( parts.at(2)=="remove" ) {
- if( !pkgAv && !pkgIn ) {
- unknownList << parts.at(0);
- }
- else if( pkgAv && !pkgIn ) {
- wrongstatusList << parts.at(0);
- }
- else if( pkgIn ) {
- if( pkgIn->isInstalled() )
- {
- pkgIn->setMarkedForOperation(Package::PkgOpRemove);
- success++;
- if( pkgIn->version() != parts.at(1) ) {
- wrongverList << parts.at(0);
- }
- } else {
- wrongstatusList << parts.at(0);
- }
- }
- } else {
- errors++;
- }
- } else if( !line.isEmpty() ){
- errors++;
- }
- }
- f.close();
- }
-
- ConfirmDialog d(false, this);
- QString msg;
- msg += QString("<b>%1 successful</b><br>").arg(success);
-
- if( wrongverList.count() > 0 ) {
- msg += QString("%1 version mismatches (selected anyway):<br>").arg(wrongverList.count());
- msg += "<font size=\"-1\">";
- for( int i=0; i<wrongverList.count(); i++ ) {
- msg += wrongverList.at(i) + " ";
- }
- msg += "</font><br>";
- }
-
- if( wrongstatusList.count() > 0 ) {
- msg += QString("%1 status mismatches (packages ignored):<br>").arg(wrongstatusList.count());
- msg += "<font size=\"-1\">";
- for( int i=0; i<wrongstatusList.count(); i++ ) {
- msg += wrongstatusList.at(i) + " ";
- }
- msg += "</font><br>";
- }
-
- if( unknownList.count() > 0 ) {
- msg += QString("%1 unknown packages:<br>").arg(unknownList.count());
- msg += "<font size=\"-1\">";
- for( int i=0; i<unknownList.count(); i++ ) {
- msg += unknownList.at(i) + " ";
- }
- msg += "</font><br>";
- }
-
- if( errors>0 || (wrongstatusList.count()==0 && unknownList.count()==0) ) {
- msg += QString("%1 errors<br>").arg(errors);
- }
- if( success==0 && wrongstatusList.count()==0 && unknownList.count()==0 )
- msg = "No stored selections";
- QString title;
- if( success > 0 )
- title = "Selections loaded";
- else
- title = "No selections loaded";
- d.setText(title, msg);
- d.exec();
-
- if( unknownList.count()>0 && iAptInterface->needListOrDateRefresh() )
- {
- ConfirmDialog f(false, this);
- f.setText("About Unknown packages","You encountered unknown packages. You might want to try "
- "loading the selections again after loading the full package lists (by selecting install or upgrade view)");
- f.exec();
- }
-
- if( success > 0 ) {
- ui->btn_StatusFilter->setEnabled(false);
- iSelectedCatFilter = CatFilterAllMarked;
- }
- openWin();
+ if( iAptInterface->numSelectedPackages() > 0 ) {
+ ConfirmDialog d(true, this);
+ d.setText("Confirmation", "Proceed loading selections? All current selections will be cleared.");
+ if( !d.exec() )
+ return;
+ }
+
+ QString filename = QFileDialog::getOpenFileName(this, "Open selections list", KDefaultUserOpenSaveDir, "Selection lists (*.slist)");
+ if( filename.isNull() || filename.isEmpty() )
+ return;
+
+ clearSelections();
+
+ QStringList unknownList;
+ QStringList wrongverList;
+ QStringList wrongstatusList;
+ int success=0;
+ int errors=0;
+
+ QFile f( filename );
+ if( f.open(QIODevice::ReadOnly | QIODevice::Text ) )
+ {
+ while(!f.atEnd()) {
+ QString line = f.readLine().trimmed();
+ QStringList parts = line.split(' ');
+ if( parts.count()==3 ) {
+ Package* pkgAv = iAptInterface->packagesAvailable()->value(parts.at(0),0);
+ Package* pkgIn = iAptInterface->packagesInstalled()->value(parts.at(0),0);
+ if( parts.at(2)=="install" ) {
+ if( !pkgAv && !pkgIn ) {
+ unknownList << parts.at(0);
+ }
+ else if( pkgIn ) {
+ wrongstatusList << parts.at(0);
+ }
+ else if( pkgAv ) {
+ if( !pkgAv->isInstalled() )
+ {
+ pkgAv->setMarkedForOperation(Package::PkgOpInstallUpgrade);
+ success++;
+ if( pkgAv->version() != parts.at(1) ) {
+ wrongverList << parts.at(0);
+ }
+ } else {
+ wrongstatusList << parts.at(0);
+ }
+ }
+
+ } else if( parts.at(2)=="upgrade" ) {
+ if( !pkgAv && !pkgIn ) {
+ unknownList << parts.at(0);
+ }
+ else if( (pkgAv && !pkgIn) || (pkgIn && !pkgAv) ) {
+ wrongstatusList << parts.at(0);
+ }
+ else if( pkgIn && pkgAv ) {
+ if( pkgIn->isInstalled() && pkgIn->isUpgradeable() )
+ {
+ pkgIn->setMarkedForOperation(Package::PkgOpInstallUpgrade);
+ success++;
+ if( pkgIn->version() != parts.at(1) ) {
+ wrongverList << parts.at(0);
+ }
+ } else {
+ wrongstatusList << parts.at(0);
+ }
+ }
+
+ } else if( parts.at(2)=="remove" ) {
+ if( !pkgAv && !pkgIn ) {
+ unknownList << parts.at(0);
+ }
+ else if( pkgAv && !pkgIn ) {
+ wrongstatusList << parts.at(0);
+ }
+ else if( pkgIn ) {
+ if( pkgIn->isInstalled() )
+ {
+ pkgIn->setMarkedForOperation(Package::PkgOpRemove);
+ success++;
+ if( pkgIn->version() != parts.at(1) ) {
+ wrongverList << parts.at(0);
+ }
+ } else {
+ wrongstatusList << parts.at(0);
+ }
+ }
+ } else {
+ errors++;
+ }
+ } else if( !line.isEmpty() ){
+ errors++;
+ }
+ }
+ f.close();
+ }
+
+ ConfirmDialog d(false, this);
+ QString msg;
+ msg += QString("<b>%1 successful</b><br>").arg(success);
+
+ if( wrongverList.count() > 0 ) {
+ msg += QString("%1 version mismatches (selected anyway):<br>").arg(wrongverList.count());
+ msg += "<font size=\"-1\">";
+ for( int i=0; i<wrongverList.count(); i++ ) {
+ msg += wrongverList.at(i) + " ";
+ }
+ msg += "</font><br>";
+ }
+
+ if( wrongstatusList.count() > 0 ) {
+ msg += QString("%1 status mismatches (packages ignored):<br>").arg(wrongstatusList.count());
+ msg += "<font size=\"-1\">";
+ for( int i=0; i<wrongstatusList.count(); i++ ) {
+ msg += wrongstatusList.at(i) + " ";
+ }
+ msg += "</font><br>";
+ }
+
+ if( unknownList.count() > 0 ) {
+ msg += QString("%1 unknown packages:<br>").arg(unknownList.count());
+ msg += "<font size=\"-1\">";
+ for( int i=0; i<unknownList.count(); i++ ) {
+ msg += unknownList.at(i) + " ";
+ }
+ msg += "</font><br>";
+ }
+
+ if( errors>0 || (wrongstatusList.count()==0 && unknownList.count()==0) ) {
+ msg += QString("%1 errors<br>").arg(errors);
+ }
+ if( success==0 && wrongstatusList.count()==0 && unknownList.count()==0 )
+ msg = "No stored selections";
+ QString title;
+ if( success > 0 )
+ title = "Selections loaded";
+ else
+ title = "No selections loaded";
+ d.setText(title, msg);
+ d.exec();
+
+ if( unknownList.count()>0 && iAptInterface->needListOrDateRefresh() )
+ {
+ ConfirmDialog f(false, this);
+ f.setText("About Unknown packages","You encountered unknown packages. You might want to try "
+ "loading the selections again after loading the full package lists (by selecting install or upgrade view)");
+ f.exec();
+ }
+
+ if( success > 0 ) {
+ ui->btn_StatusFilter->setEnabled(false);
+ iSelectedCatFilter = CatFilterAllMarked;
+ }
+ openWin();