summaryrefslogtreecommitdiff
authordrw <drw>2004-12-21 19:58:58 (UTC)
committer drw <drw>2004-12-21 19:58:58 (UTC)
commit2e21be2e93866511f55e2a200514b3ce15b14791 (patch) (unidiff)
tree0aa6ca907bfbcfc5b8abbc5a83f0a2cae70730fe
parent570c8709d1d7622e2a57432f40a67213216d2606 (diff)
downloadopie-2e21be2e93866511f55e2a200514b3ce15b14791.zip
opie-2e21be2e93866511f55e2a200514b3ce15b14791.tar.gz
opie-2e21be2e93866511f55e2a200514b3ce15b14791.tar.bz2
Fix app linking to link all dependent packages as well as selected packages.
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/settings/packagemanager/installdlg.cpp52
-rw-r--r--noncore/settings/packagemanager/installdlg.h2
2 files changed, 35 insertions, 19 deletions
diff --git a/noncore/settings/packagemanager/installdlg.cpp b/noncore/settings/packagemanager/installdlg.cpp
index 494603b..985e2bd 100644
--- a/noncore/settings/packagemanager/installdlg.cpp
+++ b/noncore/settings/packagemanager/installdlg.cpp
@@ -54,12 +54,12 @@ InstallDlg::InstallDlg( QWidget *parent, OPackageManager *pm, const QString &cap
54 OPackage::Command command1, const QStringList &packages1, 54 OPackage::Command command1, const QStringList &packages1,
55 OPackage::Command command2, const QStringList &packages2, 55 OPackage::Command command2, const QStringList &packages2,
56 OPackage::Command command3, const QStringList &packages3 ) 56 OPackage::Command command3, const QStringList &packages3 )
57 : QWidget( 0x0 ) 57 : QWidget( 0l )
58 , m_packman( pm ) 58 , m_packman( pm )
59 , m_installFound( false ) 59 , m_installFound( false )
60 , m_numCommands( 0 ) 60 , m_numCommands( 0 )
61 , m_currCommand( 0 ) 61 , m_currCommand( 0 )
62 , m_destItem( 0x0 ) 62 , m_destItem( 0l )
63{ 63{
64 // Save command/package list information 64 // Save command/package list information
65 if ( command1 != OPackage::NotDefined ) 65 if ( command1 != OPackage::NotDefined )
@@ -116,8 +116,8 @@ InstallDlg::InstallDlg( QWidget *parent, OPackageManager *pm, const QString &cap
116 } 116 }
117 else 117 else
118 { 118 {
119 m_destination = 0x0; 119 m_destination = 0l;
120 m_availSpace = 0x0; 120 m_availSpace = 0l;
121 } 121 }
122 122
123 QGroupBox *groupBox = new QGroupBox( 0, Qt::Vertical, tr( "Output" ), this ); 123 QGroupBox *groupBox = new QGroupBox( 0, Qt::Vertical, tr( "Output" ), this );
@@ -254,12 +254,9 @@ void InstallDlg::slotBtnStart()
254 m_packman->executeCommand( m_command[ m_currCommand ], m_packages[ m_currCommand ], dest, 254 m_packman->executeCommand( m_command[ m_currCommand ], m_packages[ m_currCommand ], dest,
255 this, SLOT(slotOutput(char*)), true ); 255 this, SLOT(slotOutput(char*)), true );
256 256
257 // Link/Unlink application if the package was removed from or installed to a destination 257 if ( m_command[ m_currCommand ] == OPackage::Remove )
258 // other than root
259 if ( ( m_command[ m_currCommand ] == OPackage::Install && dest != "root" ) ||
260 ( m_command[ m_currCommand ] == OPackage::Remove ) )
261 { 258 {
262 //m_packman->findPackage( m_packages[ m_currCommand ]->destination() != "root"*/ ) 259 // Unlink application if the package was removed
263 260
264 // Loop through all package names in the command group 261 // Loop through all package names in the command group
265 for ( QStringList::Iterator it = m_packages[ m_currCommand ].begin(); 262 for ( QStringList::Iterator it = m_packages[ m_currCommand ].begin();
@@ -274,12 +271,8 @@ void InstallDlg::slotBtnStart()
274 continue; 271 continue;
275 272
276 // Display feedback to user 273 // Display feedback to user
277 if ( m_command[ m_currCommand ] == OPackage::Install ) 274 m_output->append( tr( QString( "Running ipkg-link to remove links for package '%1'." )
278 m_output->append( tr( QString( "Running ipkg-link to link package '%1'." ) 275 .arg( currPackage->name() ) ) );
279 .arg( currPackage->name() ) ) );
280 else
281 m_output->append( tr( QString( "Running ipkg-link to remove links for package '%1'." )
282 .arg( currPackage->name() ) ) );
283 m_output->setCursorPosition( m_output->numLines(), 0 ); 276 m_output->setCursorPosition( m_output->numLines(), 0 );
284 277
285 // Execute ipkg-link 278 // Execute ipkg-link
@@ -290,17 +283,40 @@ void InstallDlg::slotBtnStart()
290 if ( !process.start( Opie::Core::OProcess::Block, 283 if ( !process.start( Opie::Core::OProcess::Block,
291 Opie::Core::OProcess::NoCommunication ) ) 284 Opie::Core::OProcess::NoCommunication ) )
292 { 285 {
293 slotProcessDone( 0x0 ); 286 slotProcessDone( 0l );
294 m_output->append( tr( "Unable to run ipkg-link." ) ); 287 m_output->append( tr( "Unable to run ipkg-link." ) );
295 m_output->setCursorPosition( m_output->numLines(), 0 ); 288 m_output->setCursorPosition( m_output->numLines(), 0 );
296 return; 289 return;
297 } 290 }
298 } 291 }
299 292 }
293 else if ( m_command[ m_currCommand ] == OPackage::Install && dest != "root" )
294 {
295 // Link applications in the destination directory
296
297 m_output->append( tr( "Running ipkg-link to link packages in '%1'." ).arg( dest ) );
298 m_output->setCursorPosition( m_output->numLines(), 0 );
299
300 QString destPath;
301 OConfItem *destItem = m_packman->findConfItem( OConfItem::Destination, dest );
302
303 // Execute ipkg-link
304 process.clearArguments();
305 process << "ipkg-link"
306 << "mount"
307 << destItem->value();
308 if ( !process.start( Opie::Core::OProcess::Block,
309 Opie::Core::OProcess::NoCommunication ) )
310 {
311 slotProcessDone( 0l );
312 m_output->append( tr( "Unable to run ipkg-link." ) );
313 m_output->setCursorPosition( m_output->numLines(), 0 );
314 return;
315 }
300 } 316 }
301 } 317 }
302 318
303 slotProcessDone( 0x0 ); 319 slotProcessDone( 0l );
304} 320}
305 321
306void InstallDlg::slotProcessDone( Opie::Core::OProcess *proc ) 322void InstallDlg::slotProcessDone( Opie::Core::OProcess *proc )
diff --git a/noncore/settings/packagemanager/installdlg.h b/noncore/settings/packagemanager/installdlg.h
index eabb717..7a64fe0 100644
--- a/noncore/settings/packagemanager/installdlg.h
+++ b/noncore/settings/packagemanager/installdlg.h
@@ -55,7 +55,7 @@ class InstallDlg : public QWidget
55 Q_OBJECT 55 Q_OBJECT
56 56
57public: 57public:
58 InstallDlg( QWidget *parent = 0x0, OPackageManager *pm = 0x0, 58 InstallDlg( QWidget *parent = 0l, OPackageManager *pm = 0l,
59 const QString &caption = QString::null, 59 const QString &caption = QString::null,
60 OPackage::Command command1 = OPackage::NotDefined, 60 OPackage::Command command1 = OPackage::NotDefined,
61 const QStringList &packages1 = QStringList(), 61 const QStringList &packages1 = QStringList(),