summaryrefslogtreecommitdiff
path: root/noncore/unsupported/oipkg/pmipkg.cpp
Side-by-side diff
Diffstat (limited to 'noncore/unsupported/oipkg/pmipkg.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/unsupported/oipkg/pmipkg.cpp24
1 files changed, 13 insertions, 11 deletions
diff --git a/noncore/unsupported/oipkg/pmipkg.cpp b/noncore/unsupported/oipkg/pmipkg.cpp
index f0992f5..ecc97b2 100644
--- a/noncore/unsupported/oipkg/pmipkg.cpp
+++ b/noncore/unsupported/oipkg/pmipkg.cpp
@@ -157,194 +157,196 @@ void PmIpkg::processLinkDir( QString file, QString dest )
// out( "<b>"+fi->absFilePath()+"</b>" );
processLinkDir( fi->absFilePath(), dest );
++it;
}
} else
if ( fileInfo.isFile() )
{
const char *instFile = strdup( (file).ascii() );
const char *linkFile = strdup( (destFile).ascii());
// out( "linking: "+file+" -> "+destFile );
qDebug( "linking: %s -> %s", instFile, linkFile );
symlink( instFile, linkFile );
}
}
void PmIpkg::commit( PackageList pl )
{
int sizecount = 0;
to_install.clear();
to_remove.clear();
QString rem="<b>"+tr("To remove:")+"</b><br>\n";
QString inst="<b>"+tr("To install:")+"</b><br>\n";
pl.allPackages();
for( Package *pack = pl.first();pack ; (pack = pl.next()) )
{
if ( pack && (pack->name() != "") && pack)
{
if ( pack->toInstall() )
{
to_install.append( pack );
sizecount += pack->size().toInt();
inst += pack->name()+"\t("+tr("on ")+pack->dest()+")<br>";
}
if ( pack->toRemove() )
{
to_remove.append( pack );
sizecount += 1;
rem += pack->name()+"<br>";
}
}
}
startDialog();
}
void PmIpkg::startDialog()
{
- QDialog *d = new QDialog();
- QGridLayout *RunWindowLayout = new QGridLayout( d );
+ installDialog = new QDialog(0,0,true);
+ QGridLayout *RunWindowLayout = new QGridLayout( installDialog );
RunWindowLayout->setSpacing( 2 );
RunWindowLayout->setMargin( 2 );
QHBoxLayout *buttons = new QHBoxLayout;
buttons->setSpacing( 6 );
buttons->setMargin( 0 );
- PackageListView *plv = new PackageListView(d, "install",settings);
+ PackageListView *plv = new PackageListView(installDialog, "install",settings);
RunWindowLayout->addWidget( plv, 1, 0 );
for (Package *it=to_remove.first(); it != 0; it=to_remove.next() )
{
plv->insertItem( new PackageListItem(plv, it,settings) );
}
for (Package *it=to_install.first(); it != 0; it=to_install.next() )
{
plv->insertItem( new PackageListItem(plv, it,settings) );
}
- QPushButton *doItButton = new QPushButton( d, "doItButton" );
+ QPushButton *doItButton = new QPushButton( installDialog, "doItButton" );
doItButton->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, doItButton->sizePolicy().hasHeightForWidth() ) );
QFont doItButton_font( doItButton->font() );
doItButton_font.setPointSize( 8 );
doItButton->setFont( doItButton_font );
doItButton->setText( tr( "Do all " ) );
doItButton->setAutoResize( FALSE );
buttons->addWidget( doItButton );
- QPushButton *installButton = new QPushButton( d, "installButton" );
+ QPushButton *installButton = new QPushButton( installDialog, "installButton" );
QFont installButton_font( installButton->font() );
installButton_font.setPointSize( 8 );
installButton->setFont( installButton_font );
installButton->setText( tr( "Install" ) );
installButton->setAutoResize( TRUE );
buttons->addWidget( installButton );
- QPushButton *removeButton = new QPushButton( d, "removeButton" );
+ QPushButton *removeButton = new QPushButton( installDialog, "removeButton" );
QFont removeButton_font( removeButton->font() );
removeButton_font.setPointSize( 7 );
removeButton->setFont( removeButton_font );
removeButton->setText( tr( "Remove" ) );
removeButton->setAutoResize( TRUE );
buttons->addWidget( removeButton );
- QPushButton *cancelButton = new QPushButton( d, "cancelButton" );
+ QPushButton *cancelButton = new QPushButton( installDialog, "cancelButton" );
QFont cancelButton_font( cancelButton->font() );
cancelButton_font.setPointSize( 8 );
cancelButton->setFont( cancelButton_font );
cancelButton->setText( tr( "Cancel" ) );
cancelButton->setAutoResize( TRUE );
buttons->addWidget( cancelButton );
RunWindowLayout->addLayout( buttons, 3, 0 );
connect( doItButton, SIGNAL( clicked() ),
this, SLOT( doIt() ) );
connect( installButton, SIGNAL( clicked() ),
this, SLOT( install() ) );
connect( removeButton, SIGNAL( clicked() ),
this, SLOT( remove() ) );
connect( cancelButton, SIGNAL( clicked() ),
- d, SLOT( close() ) );
- d->showMaximized();
- d->exec();
- // d->close();
+ installDialog, SLOT( close() ) );
+ installDialog->showMaximized();
+ if ( installDialog->exec() ) doIt();
+ installDialog->close();
}
void PmIpkg::doIt()
{
remove();
install();
}
void PmIpkg::remove()
{
if ( to_remove.count() == 0 ) return;
+ installDialog->close();
show( true );
out("<hr><hr><b>"+tr("Removing")+"<br>"+tr("please wait")+"</b><br>");
for (Package *it=to_remove.first(); it != 0; it=to_remove.next() )
{
if ( runIpkg("remove " + it->name()) == 0)
{
runwindow->progress->setProgress( it->size().toInt() + runwindow->progress->progress());
it->processed();
runwindow->progress->setProgress( 1 );
}else{
out("<b>"+tr("Error while removing")+"</b>"+it->name());
}
}
}
void PmIpkg::install()
{
if ( to_install.count() == 0 ) return;
+ installDialog->close();
show( true );
out("<hr><hr><b>"+tr("Installing")+"<br>"+tr("please wait")+"</b><br>");
for (Package *it=to_install.first(); it != 0; it=to_install.next() )
{
if ( runIpkg("install " + it->getPackageName(), it->dest() ) == 0 )
{
runwindow->progress->setProgress( it->size().toInt() + runwindow->progress->progress());
if ( it->link() )
makeLinks( it );
it->processed();
}else{
out("<b>"+tr("Error while installing")+"</b>"+it->name());
}
}
}
void PmIpkg::linkDestination( const QString msg, const QByteArray dest )
{
qDebug("msg="+msg+" -- "+QString(dest) );
// QDir d( src );
// d.setFilter( QDir::Files | QDir::Hidden | QDir::NoSymLinks );
//// if (! d.exists() ) return;
// const QFileInfoList *list = d.entryInfoList();
// QFileInfoListIterator it( *list );
// QFileInfo *fi;
// while ( (fi=it.current()) ) {
// processLinkDir( fi->absFilePath(), dest );
// ++it;
// }
}
void PmIpkg::update()
{
show( false );
runIpkg( "update" );
runwindow->close();
}
void PmIpkg::out( QString o )
{
runwindow->outPut->setText( runwindow->outPut->text()+o );
runwindow->outPut->setContentsPos(0, runwindow->outPut->contentsHeight());
}
void PmIpkg::showButtons(bool b)
{