author | drw <drw> | 2004-12-21 19:58:58 (UTC) |
---|---|---|
committer | drw <drw> | 2004-12-21 19:58:58 (UTC) |
commit | 2e21be2e93866511f55e2a200514b3ce15b14791 (patch) (unidiff) | |
tree | 0aa6ca907bfbcfc5b8abbc5a83f0a2cae70730fe | |
parent | 570c8709d1d7622e2a57432f40a67213216d2606 (diff) | |
download | opie-2e21be2e93866511f55e2a200514b3ce15b14791.zip opie-2e21be2e93866511f55e2a200514b3ce15b14791.tar.gz opie-2e21be2e93866511f55e2a200514b3ce15b14791.tar.bz2 |
Fix app linking to link all dependent packages as well as selected packages.
-rw-r--r-- | noncore/settings/packagemanager/installdlg.cpp | 52 | ||||
-rw-r--r-- | noncore/settings/packagemanager/installdlg.h | 2 |
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 | ||
306 | void InstallDlg::slotProcessDone( Opie::Core::OProcess *proc ) | 322 | void 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 | ||
57 | public: | 57 | public: |
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(), |