Diffstat (limited to 'noncore/settings/packagemanager/installdlg.cpp') (more/less context) (show whitespace changes)
-rw-r--r-- | noncore/settings/packagemanager/installdlg.cpp | 81 |
1 files changed, 2 insertions, 79 deletions
diff --git a/noncore/settings/packagemanager/installdlg.cpp b/noncore/settings/packagemanager/installdlg.cpp index 985e2bd..7dea591 100644 --- a/noncore/settings/packagemanager/installdlg.cpp +++ b/noncore/settings/packagemanager/installdlg.cpp @@ -21,25 +21,24 @@ _;:, .> :=|. This file is free software; you can : = ...= . :.=- You should have received a copy of the GNU -. .:....=;==+<; General Public License along with this file; -_. . . )=. = see the file COPYING. If not, write to the -- :-=` Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #include "installdlg.h" #include <opie2/ofiledialog.h> -#include <opie2/oprocess.h> #include <qpe/fileselector.h> #include <qpe/resource.h> #include <qpe/storage.h> #include <qapplication.h> #include <qcombobox.h> #include <qfileinfo.h> #include <qgroupbox.h> #include <qlabel.h> #include <qlayout.h> #include <qmap.h> @@ -238,105 +237,29 @@ void InstallDlg::slotBtnStart() m_btnOptions->setEnabled( false ); if ( m_numCommands > 1 ) { m_btnStart->setText( tr( "Abort" ) ); m_btnStart->setIconSet( Resource::loadPixmap( "close" ) ); } else { m_btnStart->setEnabled( false ); } - Opie::Core::OProcess process( this ); for ( m_currCommand = 0; m_currCommand < m_numCommands; m_currCommand++ ) { // Execute next command m_packman->executeCommand( m_command[ m_currCommand ], m_packages[ m_currCommand ], dest, - this, SLOT(slotOutput(char*)), true ); - - if ( m_command[ m_currCommand ] == OPackage::Remove ) - { - // Unlink application if the package was removed - - // Loop through all package names in the command group - for ( QStringList::Iterator it = m_packages[ m_currCommand ].begin(); - it != m_packages[ m_currCommand ].end(); - ++it ) - { - OPackage *currPackage = m_packman->findPackage( (*it) ); - - // Skip package if it is not found or being removed from 'root' - if ( !currPackage || ( m_command[ m_currCommand ] == OPackage::Remove && - currPackage->destination() == "root" ) ) - continue; - - // Display feedback to user - m_output->append( tr( QString( "Running ipkg-link to remove links for package '%1'." ) - .arg( currPackage->name() ) ) ); - m_output->setCursorPosition( m_output->numLines(), 0 ); - - // Execute ipkg-link - process.clearArguments(); - process << "ipkg-link" - << ( ( m_command[ m_currCommand ] == OPackage::Install ) ? "add" : "remove" ) - << currPackage->name(); - if ( !process.start( Opie::Core::OProcess::Block, - Opie::Core::OProcess::NoCommunication ) ) - { - slotProcessDone( 0l ); - m_output->append( tr( "Unable to run ipkg-link." ) ); - m_output->setCursorPosition( m_output->numLines(), 0 ); - return; - } - } - } - else if ( m_command[ m_currCommand ] == OPackage::Install && dest != "root" ) - { - // Link applications in the destination directory - - m_output->append( tr( "Running ipkg-link to link packages in '%1'." ).arg( dest ) ); - m_output->setCursorPosition( m_output->numLines(), 0 ); - - QString destPath; - OConfItem *destItem = m_packman->findConfItem( OConfItem::Destination, dest ); - - // Execute ipkg-link - process.clearArguments(); - process << "ipkg-link" - << "mount" - << destItem->value(); - if ( !process.start( Opie::Core::OProcess::Block, - Opie::Core::OProcess::NoCommunication ) ) - { - slotProcessDone( 0l ); - m_output->append( tr( "Unable to run ipkg-link." ) ); - m_output->setCursorPosition( m_output->numLines(), 0 ); - return; - } - } - } - - slotProcessDone( 0l ); -} - -void InstallDlg::slotProcessDone( Opie::Core::OProcess *proc ) -{ - if ( proc ) - { - // Display message pnly if linking was done - m_output->append( tr( "The package linking is done." ) ); - m_output->setCursorPosition( m_output->numLines(), 0 ); - - delete proc; + this, SLOT(slotOutput(const QString &)), true ); } // All commands executed, allow user to close dialog m_btnStart->setEnabled( true ); m_btnStart->setText( tr( "Close" ) ); m_btnStart->setIconSet( Resource::loadPixmap( "enter" ) ); m_btnOptions->setEnabled( true ); m_btnOptions->setText( tr( "Save output" ) ); m_btnOptions->setIconSet( Resource::loadPixmap( "save" ) ); } @@ -363,25 +286,25 @@ void InstallDlg::slotBtnOptions() if( !filename.isEmpty() ) { QString currentFileName = QFileInfo( filename ).fileName(); DocLnk doc; doc.setType( "text/plain" ); doc.setFile( filename ); doc.setName( currentFileName ); FileManager fm; fm.saveFile( doc, m_output->text() ); } } -void InstallDlg::slotOutput( char *msg ) +void InstallDlg::slotOutput( const QString &msg ) { // Allow processing of other events qApp->processEvents(); QString lineStr = msg; if ( lineStr[lineStr.length()-1] == '\n' ) lineStr.truncate( lineStr.length() - 1 ); m_output->append( lineStr ); m_output->setCursorPosition( m_output->numLines(), 0 ); // Update available space slotDisplayAvailSpace( QString::null ); |