void Server :: buildLocalPackages( Server *local ) { Package *curr; QListIterator<Package> it( packageList ); QList<Package> *locallist = &local->getPackageList(); for ( ; it.current(); ++it ) { curr = it.current(); QString name = curr->getPackageName(); // If the package name is an ipk name, then convert the filename to a package name if ( name.find( ".ipk" ) != -1 ) name = Utils::getPackageNameFromIpkFilename( curr->getFilename() ); if ( local ) { Package *p = local->getPackage( name ); curr->setLocalPackage( p ); if ( p ) { // Replace local version if ( curr->getVersion() > p->getVersion() ) { int pos = locallist->at(); locallist->remove( p ); locallist->insert( pos, curr ); } // Set some default stuff like size and things if ( p->getInstalledVersion() == curr->getVersion() ) { p->setPackageSize( curr->getPackageSize() ); p->setSection( curr->getSection() ); p->setDescription( curr->getDescription() ); } } } else curr->setLocalPackage( 0 ); } }
void PackagesPage::onPackageRemove() { QModelIndex index = _ui->_listPackages->currentIndex(); Package package = PackageTable::getFromModel(_model, index.row()); QMessageBox msg(this); msg.setWindowIcon(getIcon()); msg.setWindowTitle(tr("Remove package?")); msg.setInformativeText(tr("Are you sure to delete package\n'%1'\nwith description\n'%2'?").arg(package.getName()).arg(package.getDescription())); msg.setStandardButtons(QMessageBox::Yes|QMessageBox::No); msg.setDefaultButton(QMessageBox::No); msg.setIcon(QMessageBox::Warning); int button = msg.exec(); if(button!=QMessageBox::Yes) return; bool ok = _model->removeRow(index.row()); if(!ok) { QMessageBox::critical(this, tr("Error"), tr("Could not remove package:\n %1").arg(_model->lastError().text())); return; } _model->submitAll(); onCurrentRowChanged(QModelIndex()); }