iSearchDescLong = false;
// fine-tune kinetic scrolling parameters
+#ifdef Q_WS_MAEMO_5
QAbstractKineticScroller* listscroller = ui->listWidget->property("kineticScroller").value<QAbstractKineticScroller*>();
if( listscroller )
{
// not good because it alse sets horizontal overshoot:
//listscroller->setOvershootPolicy( QAbstractKineticScroller::OvershootAlwaysOn );
}
+#endif
}
PackageView::~PackageView()
void PackageView::resizeEvent(QResizeEvent* event)
{
+ if( iDimmer ) {
+ iDimmer->resize( this->size() );
+ }
+
iListCoverLabel->setGeometry( ui->listWidget->rect() );
QWidget::resizeEvent(event);
}
ui->actionRestore_all->setVisible(false);
}
+ if( iSelectedStatFilter==Package::PkgStatInstalled ) {
+ ui->actionStore_list->setVisible(true);
+ } else {
+ ui->actionStore_list->setVisible(false);
+ }
+
show();
if( !ui->searchBar->isVisible() ) {
iSortNoticeShown = false;
openWin();
+
+ if( iSelectedCatFilter==CatFilterBlacklisted && iAptInterface->needListOrDateRefresh() )
+ {
+ ConfirmDialog d(false, this);
+ d.setText("Notice","Since you don't have all package lists currently loaded, not all blacklisted "
+ "packages are necessarily shown");
+ d.exec();
+ }
}
}
if( oldfilter==Package::PkgStatInstalled && iSelectedStatFilter!=Package::PkgStatInstalled &&
iAptInterface->needListOrDateRefresh() )
{
+ iMainWindow->openNetworkConnection();
+
iMainWindow->setNextOperation(MainWindow::OpOpenPkgView);
iMainWindow->busyDialog(true,"Operation in progress","Reading the rest of the package lists");
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("/root/.fapman/selections.list");
+ QFile f( filename );
if( f.open(QIODevice::ReadOnly | QIODevice::Text ) )
{
while(!f.atEnd()) {
unknownList << parts.at(0);
}
else if( pkgIn ) {
- wrongverList << parts.at(0);
+ wrongstatusList << parts.at(0);
}
else if( pkgAv ) {
- if( pkgAv->version() == parts.at(1) && !pkgAv->isInstalled() ) {
+ if( !pkgAv->isInstalled() )
+ {
pkgAv->setMarkedForOperation(Package::PkgOpInstallUpgrade);
success++;
+ if( pkgAv->version() != parts.at(1) ) {
+ wrongverList << parts.at(0);
+ }
} else {
- wrongverList << parts.at(0);
+ wrongstatusList << parts.at(0);
}
}
unknownList << parts.at(0);
}
else if( (pkgAv && !pkgIn) || (pkgIn && !pkgAv) ) {
- wrongverList << parts.at(0);
+ wrongstatusList << parts.at(0);
}
else if( pkgIn && pkgAv ) {
- if( pkgIn->version() == parts.at(1) && pkgIn->isInstalled() && pkgIn->isUpgradeable() ) {
+ if( pkgIn->isInstalled() && pkgIn->isUpgradeable() )
+ {
pkgIn->setMarkedForOperation(Package::PkgOpInstallUpgrade);
success++;
+ if( pkgIn->version() != parts.at(1) ) {
+ wrongverList << parts.at(0);
+ }
} else {
- wrongverList << parts.at(0);
+ wrongstatusList << parts.at(0);
}
}
unknownList << parts.at(0);
}
else if( pkgAv && !pkgIn ) {
- wrongverList << parts.at(0);
+ wrongstatusList << parts.at(0);
}
else if( pkgIn ) {
- if( pkgIn->version() == parts.at(1) && pkgIn->isInstalled() ) {
+ if( pkgIn->isInstalled() )
+ {
pkgIn->setMarkedForOperation(Package::PkgOpRemove);
success++;
+ if( pkgIn->version() != parts.at(1) ) {
+ wrongverList << parts.at(0);
+ }
} else {
- wrongverList << parts.at(0);
+ wrongstatusList << parts.at(0);
}
}
} else {
ConfirmDialog d(false, this);
QString msg;
msg += QString("<b>%1 successful</b><br>").arg(success);
+
if( wrongverList.count() > 0 ) {
- msg += QString("%1 wrong versions/changed statuses (not selected):<br>").arg(wrongverList.count());
+ 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\">";
}
msg += "</font><br>";
}
- if( errors>0 || (wrongverList.count()==0 && unknownList.count()==0) ) {
+
+ if( errors>0 || (wrongstatusList.count()==0 && unknownList.count()==0) ) {
msg += QString("%1 errors<br>").arg(errors);
}
- if( success==0 && wrongverList.count()==0 && unknownList.count()==0 )
+ if( success==0 && wrongstatusList.count()==0 && unknownList.count()==0 )
msg = "No stored selections";
QString title;
if( success > 0 )
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;
if( iAptInterface->numSelectedPackages() == 0 )
return;
- QFile f("/root/.fapman/selections.list");
+ QString filename = QFileDialog::getSaveFileName(this, "Save selections to...", KDefaultUserOpenSaveDir, "Selection lists (*.slist)");
+ if( filename.isNull() || filename.isEmpty() )
+ return;
+
+ if( !filename.endsWith(".slist") )
+ filename.append(".slist");
+
+ QFile f( filename );
bool fail = false;
int count = 0;
if( f.open(QIODevice::WriteOnly | QIODevice::Text) )
iAptInterface->writeBlacklist();
openWin();
}
+
+void PackageView::on_actionStore_list_triggered()
+{
+ QString filename = QFileDialog::getSaveFileName(this, "Save application list to...", KDefaultUserOpenSaveDir, "Selection lists (*.slist)");
+ if( filename.isNull() || filename.isEmpty() )
+ return;
+
+ if( !filename.endsWith(".slist") )
+ filename.append(".slist");
+
+ QFile f( filename );
+ bool fail = false;
+ int count = 0;
+ if( f.open(QIODevice::WriteOnly | QIODevice::Text) )
+ {
+ QTextStream out(&f);
+
+ QHashIterator<QString, Package*> r( *iAptInterface->packagesInstalled() );
+ while (r.hasNext())
+ {
+ r.next();
+
+ if( r.value()->isInstalled() && r.value()->section().startsWith("user/") ) {
+ out << r.value()->name() << " " << r.value()->version() << " install\n";
+ count++;
+ }
+ }
+
+ f.close();
+ } else {
+ fail = true;
+ }
+
+ ConfirmDialog d(false, this);
+ if( fail )
+ d.setText( "Error", "Failed to write application list" );
+ else
+ d.setText( "List stored", QString("Stored %1 selections.").arg(count) + "<br>"
+ "The list can be used to restore removed applications later." );
+ d.exec();
+}