summaryrefslogtreecommitdiff
path: root/noncore
authordrw <drw>2004-11-18 23:38:33 (UTC)
committer drw <drw>2004-11-18 23:38:33 (UTC)
commit0619d68ccab04095418a771349875afaee40858a (patch) (unidiff)
tree885784b6baaae2c3fb177c4d7e31c94b69c8d35e /noncore
parent770e76de2e039300a1e89f3cb0c4785a8d1c16a7 (diff)
downloadopie-0619d68ccab04095418a771349875afaee40858a.zip
opie-0619d68ccab04095418a771349875afaee40858a.tar.gz
opie-0619d68ccab04095418a771349875afaee40858a.tar.bz2
1. Implemented linking of apps to root (thanks to zecke for getting this started for me) 2. Bumped version to 0.5.0 (all v1.0 functionality is there...I think) 3. Added package dependency on ipkg-link 4. Updated Opie-PM ChangeLog, TODO
Diffstat (limited to 'noncore') (more/less context) (show whitespace changes)
-rw-r--r--noncore/settings/packagemanager/ChangeLog8
-rw-r--r--noncore/settings/packagemanager/README2
-rw-r--r--noncore/settings/packagemanager/TODO14
-rw-r--r--noncore/settings/packagemanager/installdlg.cpp84
-rw-r--r--noncore/settings/packagemanager/installdlg.h7
-rw-r--r--noncore/settings/packagemanager/mainwindow.cpp25
-rw-r--r--noncore/settings/packagemanager/opie-packagemanager.control4
7 files changed, 93 insertions, 51 deletions
diff --git a/noncore/settings/packagemanager/ChangeLog b/noncore/settings/packagemanager/ChangeLog
index c9e33c4..7799136 100644
--- a/noncore/settings/packagemanager/ChangeLog
+++ b/noncore/settings/packagemanager/ChangeLog
@@ -1,2 +1,10 @@
12004-11-18 Dan Williams <drw@handhelds.org>
2
3 * Released version 0.5.0
4 * All v1.0 functionality implemented
5 * Implemented installation of local packages
6 * Implemented linking of non-root apps (using ipkg-link)
7 * Many UI tweaks for installation and filter dialogs
8
12004-04-21 Dan Williams <drw@handhelds.org> 92004-04-21 Dan Williams <drw@handhelds.org>
2 10
diff --git a/noncore/settings/packagemanager/README b/noncore/settings/packagemanager/README
index bf93c98..c34a6af 100644
--- a/noncore/settings/packagemanager/README
+++ b/noncore/settings/packagemanager/README
@@ -3,5 +3,5 @@
3/* Opie - Package Manager 3/* Opie - Package Manager
4/* ======================== 4/* ========================
5/* Version 0.4.0 5/* Version 0.5.0
6/* 6/*
7/* A package management client for Opie 7/* A package management client for Opie
diff --git a/noncore/settings/packagemanager/TODO b/noncore/settings/packagemanager/TODO
index 633c589..265beda 100644
--- a/noncore/settings/packagemanager/TODO
+++ b/noncore/settings/packagemanager/TODO
@@ -3,5 +3,5 @@
3/* Opie - Package Manager 3/* Opie - Package Manager
4/* ======================== 4/* ========================
5/* Version 0.4.0 5/* Version 0.5.0
6/* 6/*
7/* A package management client for Opie 7/* A package management client for Opie
@@ -9,7 +9,7 @@
9/************************************************************************ 9/************************************************************************
10 10
11--------------------------------------------- 11-----------------------------------------------
12 To-do for Opie-PackageManager - April, 2004 12 To-do for Opie-PackageManager - November, 2004
13--------------------------------------------- 13-----------------------------------------------
14 14
15====================== 15======================
@@ -17,7 +17,5 @@
17====================== 17======================
18 18
191. Link non-root destination apps 191. Re-work package download dialog
202. Implement QCOP interface for installing, removing, etc.
213. Redesign configuration dialog
22 20
23====================== 21======================
@@ -25,3 +23,3 @@
25====================== 23======================
26 24
271. ??? \ No newline at end of file 251. Re-work server and destination tabs in configuration dialog \ No newline at end of file
diff --git a/noncore/settings/packagemanager/installdlg.cpp b/noncore/settings/packagemanager/installdlg.cpp
index 781f8f5..494603b 100644
--- a/noncore/settings/packagemanager/installdlg.cpp
+++ b/noncore/settings/packagemanager/installdlg.cpp
@@ -51,5 +51,5 @@ _;:, .> :=|. This file is free software; you can
51#include "opackagemanager.h" 51#include "opackagemanager.h"
52 52
53InstallDlg::InstallDlg( QWidget *parent, OPackageManager *pm, const QString &caption, bool showDestInfo, 53InstallDlg::InstallDlg( QWidget *parent, OPackageManager *pm, const QString &caption,
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,
@@ -57,4 +57,5 @@ InstallDlg::InstallDlg( QWidget *parent, OPackageManager *pm, const QString &cap
57 : QWidget( 0x0 ) 57 : QWidget( 0x0 )
58 , m_packman( pm ) 58 , m_packman( pm )
59 , m_installFound( false )
59 , m_numCommands( 0 ) 60 , m_numCommands( 0 )
60 , m_currCommand( 0 ) 61 , m_currCommand( 0 )
@@ -67,4 +68,7 @@ InstallDlg::InstallDlg( QWidget *parent, OPackageManager *pm, const QString &cap
67 m_packages[ m_numCommands ] = packages1; 68 m_packages[ m_numCommands ] = packages1;
68 ++m_numCommands; 69 ++m_numCommands;
70
71 if ( command1 == OPackage::Install )
72 m_installFound = true;
69 } 73 }
70 if ( command2 != OPackage::NotDefined ) 74 if ( command2 != OPackage::NotDefined )
@@ -73,4 +77,7 @@ InstallDlg::InstallDlg( QWidget *parent, OPackageManager *pm, const QString &cap
73 m_packages[ m_numCommands ] = packages2; 77 m_packages[ m_numCommands ] = packages2;
74 ++m_numCommands; 78 ++m_numCommands;
79
80 if ( command2 == OPackage::Install )
81 m_installFound = true;
75 } 82 }
76 if ( command3 != OPackage::NotDefined ) 83 if ( command3 != OPackage::NotDefined )
@@ -79,4 +86,7 @@ InstallDlg::InstallDlg( QWidget *parent, OPackageManager *pm, const QString &cap
79 m_packages[ m_numCommands ] = packages3; 86 m_packages[ m_numCommands ] = packages3;
80 ++m_numCommands; 87 ++m_numCommands;
88
89 if ( command3 == OPackage::Install )
90 m_installFound = true;
81 } 91 }
82 92
@@ -87,5 +97,5 @@ InstallDlg::InstallDlg( QWidget *parent, OPackageManager *pm, const QString &cap
87 QGridLayout *layout = new QGridLayout( this, 4, 2, 2, 4 ); 97 QGridLayout *layout = new QGridLayout( this, 4, 2, 2, 4 );
88 98
89 if ( showDestInfo ) 99 if ( m_installFound )
90 { 100 {
91 QLabel *label = new QLabel( tr( "Destination" ), this ); 101 QLabel *label = new QLabel( tr( "Destination" ), this );
@@ -221,5 +231,5 @@ void InstallDlg::slotBtnStart()
221 // Start was clicked, start executing 231 // Start was clicked, start executing
222 QString dest; 232 QString dest;
223 if ( m_destination ) 233 if ( m_installFound )
224 { 234 {
225 dest = m_destination->currentText(); 235 dest = m_destination->currentText();
@@ -238,4 +248,5 @@ void InstallDlg::slotBtnStart()
238 } 248 }
239 249
250 Opie::Core::OProcess process( this );
240 for ( m_currCommand = 0; m_currCommand < m_numCommands; m_currCommand++ ) 251 for ( m_currCommand = 0; m_currCommand < m_numCommands; m_currCommand++ )
241 { 252 {
@@ -243,40 +254,65 @@ void InstallDlg::slotBtnStart()
243 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,
244 this, SLOT(slotOutput(char*)), true ); 255 this, SLOT(slotOutput(char*)), true );
245 }
246 slotProcessDone(0l);
247 256
248 // Get destination 257 // Link/Unlink application if the package was removed from or installed to a destination
249/* 258 // other than root
250 if ( dest == "root" ) 259 if ( ( m_command[ m_currCommand ] == OPackage::Install && dest != "root" ) ||
260 ( m_command[ m_currCommand ] == OPackage::Remove ) )
251 { 261 {
252 slotProcessDone(0l); 262 //m_packman->findPackage( m_packages[ m_currCommand ]->destination() != "root"*/ )
253 return;
254 }
255 263
256 m_destItem = m_packman->findConfItem( OConfItem::Destination, dest ); 264 // Loop through all package names in the command group
257 if ( m_destItem ) 265 for ( QStringList::Iterator it = m_packages[ m_currCommand ].begin();
266 it != m_packages[ m_currCommand ].end();
267 ++it )
258 { 268 {
259 QString path = m_destItem->value(); 269 OPackage *currPackage = m_packman->findPackage( (*it) );
260 Opie::Core::OProcess *process = new Opie::Core::OProcess( this, "ipkg-link process" );
261 connect( process, SIGNAL(processExited(Opie::Core::OProcess*)),
262 this, SLOT(slotProcessDone(Opie::Core::OProcess*)) );
263 270
264 *process << "ipkg-link" << "mount" << path; 271 // Skip package if it is not found or being removed from 'root'
265 if ( !process->start( Opie::Core::OProcess::NotifyOnExit, 272 if ( !currPackage || ( m_command[ m_currCommand ] == OPackage::Remove &&
273 currPackage->destination() == "root" ) )
274 continue;
275
276 // Display feedback to user
277 if ( m_command[ m_currCommand ] == OPackage::Install )
278 m_output->append( tr( QString( "Running ipkg-link to link package '%1'." )
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 );
284
285 // Execute ipkg-link
286 process.clearArguments();
287 process << "ipkg-link"
288 << ( ( m_command[ m_currCommand ] == OPackage::Install ) ? "add" : "remove" )
289 << currPackage->name();
290 if ( !process.start( Opie::Core::OProcess::Block,
266 Opie::Core::OProcess::NoCommunication ) ) 291 Opie::Core::OProcess::NoCommunication ) )
267 slotProcessDone( 0l ); 292 {
268 m_output->append( tr( "Starting ipkg-link to link installed applications." ) ); 293 slotProcessDone( 0x0 );
294 m_output->append( tr( "Unable to run ipkg-link." ) );
269 m_output->setCursorPosition( m_output->numLines(), 0 ); 295 m_output->setCursorPosition( m_output->numLines(), 0 );
296 return;
270 } 297 }
271*/ 298 }
299
300 }
301 }
302
303 slotProcessDone( 0x0 );
272} 304}
273 305
274void InstallDlg::slotProcessDone( Opie::Core::OProcess *proc ) 306void InstallDlg::slotProcessDone( Opie::Core::OProcess *proc )
275{ 307{
276 delete proc; 308 if ( proc )
277 309 {
310 // Display message pnly if linking was done
278 m_output->append( tr( "The package linking is done." ) ); 311 m_output->append( tr( "The package linking is done." ) );
279 m_output->setCursorPosition( m_output->numLines(), 0 ); 312 m_output->setCursorPosition( m_output->numLines(), 0 );
280 313
314 delete proc;
315 }
316
281 // All commands executed, allow user to close dialog 317 // All commands executed, allow user to close dialog
282 m_btnStart->setEnabled( true ); 318 m_btnStart->setEnabled( true );
diff --git a/noncore/settings/packagemanager/installdlg.h b/noncore/settings/packagemanager/installdlg.h
index f45c17c..eabb717 100644
--- a/noncore/settings/packagemanager/installdlg.h
+++ b/noncore/settings/packagemanager/installdlg.h
@@ -56,6 +56,6 @@ class InstallDlg : public QWidget
56 56
57public: 57public:
58 InstallDlg( QWidget *parent = 0x0, OPackageManager *pm = 0x0, const QString &caption = QString::null, 58 InstallDlg( QWidget *parent = 0x0, OPackageManager *pm = 0x0,
59 bool showDestInfo = true, 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(),
@@ -68,4 +68,7 @@ private:
68 OPackageManager *m_packman; // Pointer to application instance of package manager 68 OPackageManager *m_packman; // Pointer to application instance of package manager
69 69
70 bool m_installFound; // Indicates if an install is being done, controls display of
71 // destination selection, available space
72
70 // UI controls 73 // UI controls
71 QComboBox *m_destination; // Destination selection list 74 QComboBox *m_destination; // Destination selection list
diff --git a/noncore/settings/packagemanager/mainwindow.cpp b/noncore/settings/packagemanager/mainwindow.cpp
index 459a75b..8a5b90c 100644
--- a/noncore/settings/packagemanager/mainwindow.cpp
+++ b/noncore/settings/packagemanager/mainwindow.cpp
@@ -313,5 +313,5 @@ void MainWindow::installLocalPackage( const QString &ipkFile )
313{ 313{
314 // Install selected file 314 // Install selected file
315 InstallDlg *dlg = new InstallDlg( this, &m_packman, tr( "Install local package" ), true, 315 InstallDlg *dlg = new InstallDlg( this, &m_packman, tr( "Install local package" ),
316 OPackage::Install, ipkFile ); 316 OPackage::Install, ipkFile );
317 connect( dlg, SIGNAL(closeInstallDlg()), this, SLOT(slotCloseDlg()) ); 317 connect( dlg, SIGNAL(closeInstallDlg()), this, SLOT(slotCloseDlg()) );
@@ -387,5 +387,5 @@ void MainWindow::slotUpdate()
387{ 387{
388 // Create package manager output widget 388 // Create package manager output widget
389 InstallDlg *dlg = new InstallDlg( this, &m_packman, tr( "Update package information" ), false, 389 InstallDlg *dlg = new InstallDlg( this, &m_packman, tr( "Update package information" ),
390 OPackage::Update ); 390 OPackage::Update );
391 connect( dlg, SIGNAL(closeInstallDlg()), this, SLOT(slotCloseDlg()) ); 391 connect( dlg, SIGNAL(closeInstallDlg()), this, SLOT(slotCloseDlg()) );
@@ -399,5 +399,5 @@ void MainWindow::slotUpgrade()
399{ 399{
400 // Create package manager output widget 400 // Create package manager output widget
401 InstallDlg *dlg = new InstallDlg( this, &m_packman, tr( "Upgrade installed packages" ), false, 401 InstallDlg *dlg = new InstallDlg( this, &m_packman, tr( "Upgrade installed packages" ),
402 OPackage::Upgrade ); 402 OPackage::Upgrade );
403 connect( dlg, SIGNAL(closeInstallDlg()), this, SLOT(slotCloseDlg()) ); 403 connect( dlg, SIGNAL(closeInstallDlg()), this, SLOT(slotCloseDlg()) );
@@ -446,5 +446,5 @@ void MainWindow::slotDownload()
446 446
447 // Create package manager output widget 447 // Create package manager output widget
448 InstallDlg *dlg = new InstallDlg( this, &m_packman, tr( "Download packages" ), false, 448 InstallDlg *dlg = new InstallDlg( this, &m_packman, tr( "Download packages" ),
449 OPackage::Download, workingPackages ); 449 OPackage::Download, workingPackages );
450 connect( dlg, SIGNAL(closeInstallDlg()), this, SLOT(slotCloseDlg()) ); 450 connect( dlg, SIGNAL(closeInstallDlg()), this, SLOT(slotCloseDlg()) );
@@ -521,16 +521,13 @@ void MainWindow::slotApply()
521 521
522 // Send command only if there are packages to process 522 // Send command only if there are packages to process
523 OPackage::Command removeCmd = OPackage::NotDefined; 523 OPackage::Command removeCmd = !removeList.isEmpty() ? OPackage::Remove
524 if ( !removeList.isEmpty() ) 524 : OPackage::NotDefined;
525 removeCmd = OPackage::Remove; 525 OPackage::Command installCmd = !installList.isEmpty() ? OPackage::Install
526 OPackage::Command installCmd = OPackage::NotDefined; 526 : OPackage::NotDefined;
527 if ( !installList.isEmpty() ) 527 OPackage::Command upgradeCmd = !upgradeList.isEmpty() ? OPackage::Upgrade
528 installCmd = OPackage::Install; 528 : OPackage::NotDefined;
529 OPackage::Command upgradeCmd = OPackage::NotDefined;
530 if ( !upgradeList.isEmpty() )
531 upgradeCmd = OPackage::Upgrade;
532 529
533 // Create package manager output widget 530 // Create package manager output widget
534 InstallDlg *dlg = new InstallDlg( this, &m_packman, tr( "Apply changes" ), !installList.isEmpty(), 531 InstallDlg *dlg = new InstallDlg( this, &m_packman, tr( "Apply changes" ),
535 removeCmd, removeList, 532 removeCmd, removeList,
536 installCmd, installList, 533 installCmd, installList,
diff --git a/noncore/settings/packagemanager/opie-packagemanager.control b/noncore/settings/packagemanager/opie-packagemanager.control
index 5385ea5..aacd0ca 100644
--- a/noncore/settings/packagemanager/opie-packagemanager.control
+++ b/noncore/settings/packagemanager/opie-packagemanager.control
@@ -3,8 +3,8 @@ Files: plugins/application/libpackagemanager.so* bin/packagemanager pics/package
3Priority: optional 3Priority: optional
4Section: opie/settings 4Section: opie/settings
5Depends: task-opie-minimal, libopiecore2, libopieui2, libipkg (>=0.99.120) 5Depends: task-opie-minimal, libopiecore2, libopieui2, libipkg (>=0.99.120), ipkg-link
6Replaces: packagemanager 6Replaces: packagemanager
7Architecture: arm 7Architecture: arm
8Maintainer: Dan Williams (drw@handhelds.org) 8Maintainer: Dan Williams (drw@handhelds.org)
9Description: Opie package management client 9Description: Opie package management client
10Version: 0.4.0$EXTRAVERSION 10Version: 0.5.0$EXTRAVERSION