-rw-r--r-- | noncore/settings/packagemanager/filterdlg.cpp | 4 | ||||
-rw-r--r-- | noncore/settings/packagemanager/installdlg.cpp | 60 | ||||
-rw-r--r-- | noncore/settings/packagemanager/installdlg.h | 59 | ||||
-rw-r--r-- | noncore/settings/packagemanager/mainwindow.cpp | 42 | ||||
-rw-r--r-- | noncore/settings/packagemanager/mainwindow.h | 2 | ||||
-rw-r--r-- | noncore/settings/packagemanager/oconfitem.h | 46 | ||||
-rw-r--r-- | noncore/settings/packagemanager/oipkg.cpp | 56 | ||||
-rw-r--r-- | noncore/settings/packagemanager/oipkg.h | 51 | ||||
-rw-r--r-- | noncore/settings/packagemanager/opackagemanager.cpp | 56 | ||||
-rw-r--r-- | noncore/settings/packagemanager/opackagemanager.h | 57 | ||||
-rw-r--r-- | noncore/settings/packagemanager/packageinfodlg.cpp | 46 | ||||
-rw-r--r-- | noncore/settings/packagemanager/promptdlg.h | 52 |
12 files changed, 265 insertions, 266 deletions
diff --git a/noncore/settings/packagemanager/filterdlg.cpp b/noncore/settings/packagemanager/filterdlg.cpp index 0e1ea52..e69b6eb 100644 --- a/noncore/settings/packagemanager/filterdlg.cpp +++ b/noncore/settings/packagemanager/filterdlg.cpp | |||
@@ -75,76 +75,76 @@ FilterDlg::FilterDlg( QWidget *parent, OPackageManager *pm, const QString &name, | |||
75 | QWhatsThis::add( m_statusCB, tr( "Tap here to filter package list by the package status." ) ); | 75 | QWhatsThis::add( m_statusCB, tr( "Tap here to filter package list by the package status." ) ); |
76 | connect( m_statusCB, SIGNAL(toggled(bool)), this, SLOT(slotStatusSelected(bool)) ); | 76 | connect( m_statusCB, SIGNAL(toggled(bool)), this, SLOT(slotStatusSelected(bool)) ); |
77 | m_status = new QComboBox( container ); | 77 | m_status = new QComboBox( container ); |
78 | QWhatsThis::add( m_status, tr( "Select the package status to filter by here." ) ); | 78 | QWhatsThis::add( m_status, tr( "Select the package status to filter by here." ) ); |
79 | connect( m_status, SIGNAL(activated(const QString&)), this, SLOT(slotStatusChanged(const QString&)) ); | 79 | connect( m_status, SIGNAL(activated(const QString&)), this, SLOT(slotStatusChanged(const QString&)) ); |
80 | QString currStatus; | 80 | QString currStatus; |
81 | switch ( status ) | 81 | switch ( status ) |
82 | { | 82 | { |
83 | case OPackageManager::All : currStatus = tr( "All" ); | 83 | case OPackageManager::All : currStatus = tr( "All" ); |
84 | break; | 84 | break; |
85 | case OPackageManager::Installed : currStatus = tr( "Installed" ); | 85 | case OPackageManager::Installed : currStatus = tr( "Installed" ); |
86 | break; | 86 | break; |
87 | case OPackageManager::NotInstalled : currStatus = tr( "Not installed" ); | 87 | case OPackageManager::NotInstalled : currStatus = tr( "Not installed" ); |
88 | break; | 88 | break; |
89 | case OPackageManager::Updated : currStatus = tr( "Updated" ); | 89 | case OPackageManager::Updated : currStatus = tr( "Updated" ); |
90 | break; | 90 | break; |
91 | default : currStatus = QString::null; | 91 | default : currStatus = QString::null; |
92 | }; | 92 | }; |
93 | m_status->insertItem( tr( "All" ) ); | 93 | m_status->insertItem( tr( "All" ) ); |
94 | m_status->insertItem( tr( "Installed" ) ); | 94 | m_status->insertItem( tr( "Installed" ) ); |
95 | m_status->insertItem( tr( "Not installed" ) ); | 95 | m_status->insertItem( tr( "Not installed" ) ); |
96 | m_status->insertItem( tr( "Updated" ) ); | 96 | m_status->insertItem( tr( "Updated" ) ); |
97 | initItem( m_status, m_statusCB, currStatus ); | 97 | initItem( m_status, m_statusCB, currStatus ); |
98 | layout->addWidget( m_statusCB ); | 98 | layout->addWidget( m_statusCB ); |
99 | layout->addWidget( m_status ); | 99 | layout->addWidget( m_status ); |
100 | 100 | ||
101 | // Server | 101 | // Server |
102 | m_serverCB = new QCheckBox( tr( "Available from the following server:" ), container ); | 102 | m_serverCB = new QCheckBox( tr( "Available from the following server:" ), container ); |
103 | QWhatsThis::add( m_serverCB, tr( "Tap here to filter package list by source server." ) ); | 103 | QWhatsThis::add( m_serverCB, tr( "Tap here to filter package list by source server." ) ); |
104 | connect( m_serverCB, SIGNAL(toggled(bool)), this, SLOT(slotServerSelected(bool)) ); | 104 | connect( m_serverCB, SIGNAL(toggled(bool)), this, SLOT(slotServerSelected(bool)) ); |
105 | m_server = new QComboBox( container ); | 105 | m_server = new QComboBox( container ); |
106 | QWhatsThis::add( m_server, tr( "Select the source server to filter by here." ) ); | 106 | QWhatsThis::add( m_server, tr( "Select the source server to filter by here." ) ); |
107 | m_server->insertStringList( *(pm->servers()) ); | 107 | m_server->insertStringList( pm->servers() ); |
108 | initItem( m_server, m_serverCB, server ); | 108 | initItem( m_server, m_serverCB, server ); |
109 | layout->addWidget( m_serverCB ); | 109 | layout->addWidget( m_serverCB ); |
110 | layout->addWidget( m_server ); | 110 | layout->addWidget( m_server ); |
111 | 111 | ||
112 | // Destination | 112 | // Destination |
113 | m_destCB = new QCheckBox( tr( "Installed on device at:" ), container ); | 113 | m_destCB = new QCheckBox( tr( "Installed on device at:" ), container ); |
114 | QWhatsThis::add( m_destCB, tr( "Tap here to filter package list by destination where the package is installed to on this device." ) ); | 114 | QWhatsThis::add( m_destCB, tr( "Tap here to filter package list by destination where the package is installed to on this device." ) ); |
115 | connect( m_destCB, SIGNAL(toggled(bool)), this, SLOT(slotDestSelected(bool)) ); | 115 | connect( m_destCB, SIGNAL(toggled(bool)), this, SLOT(slotDestSelected(bool)) ); |
116 | m_destination = new QComboBox( container ); | 116 | m_destination = new QComboBox( container ); |
117 | QWhatsThis::add( m_destination, tr( "Select the destination location to filter by here." ) ); | 117 | QWhatsThis::add( m_destination, tr( "Select the destination location to filter by here." ) ); |
118 | m_destination->insertStringList( *(pm->destinations()) ); | 118 | m_destination->insertStringList( pm->destinations() ); |
119 | initItem( m_destination, m_destCB, destination ); | 119 | initItem( m_destination, m_destCB, destination ); |
120 | layout->addWidget( m_destCB ); | 120 | layout->addWidget( m_destCB ); |
121 | layout->addWidget( m_destination ); | 121 | layout->addWidget( m_destination ); |
122 | } | 122 | } |
123 | 123 | ||
124 | void FilterDlg::initItem( QComboBox *comboBox, QCheckBox *checkBox, const QString &selection ) | 124 | void FilterDlg::initItem( QComboBox *comboBox, QCheckBox *checkBox, const QString &selection ) |
125 | { | 125 | { |
126 | if ( !selection.isNull() ) | 126 | if ( !selection.isNull() ) |
127 | { | 127 | { |
128 | checkBox->setChecked( true ); | 128 | checkBox->setChecked( true ); |
129 | 129 | ||
130 | for ( int i = 0; i < comboBox->count(); i++ ) | 130 | for ( int i = 0; i < comboBox->count(); i++ ) |
131 | { | 131 | { |
132 | if ( comboBox->text( i ) == selection ) | 132 | if ( comboBox->text( i ) == selection ) |
133 | { | 133 | { |
134 | comboBox->setCurrentItem( i ); | 134 | comboBox->setCurrentItem( i ); |
135 | return; | 135 | return; |
136 | } | 136 | } |
137 | } | 137 | } |
138 | } | 138 | } |
139 | comboBox->setEnabled( !selection.isNull() ); | 139 | comboBox->setEnabled( !selection.isNull() ); |
140 | } | 140 | } |
141 | 141 | ||
142 | void FilterDlg::slotNameSelected( bool selected ) | 142 | void FilterDlg::slotNameSelected( bool selected ) |
143 | { | 143 | { |
144 | m_name->setEnabled( selected ); | 144 | m_name->setEnabled( selected ); |
145 | m_name->setFocus(); | 145 | m_name->setFocus(); |
146 | } | 146 | } |
147 | 147 | ||
148 | void FilterDlg::slotServerSelected( bool selected ) | 148 | void FilterDlg::slotServerSelected( bool selected ) |
149 | { | 149 | { |
150 | m_server->setEnabled( selected ); | 150 | m_server->setEnabled( selected ); |
diff --git a/noncore/settings/packagemanager/installdlg.cpp b/noncore/settings/packagemanager/installdlg.cpp index 0cb30e2..945dfed 100644 --- a/noncore/settings/packagemanager/installdlg.cpp +++ b/noncore/settings/packagemanager/installdlg.cpp | |||
@@ -1,203 +1,199 @@ | |||
1 | /* | 1 | /* |
2 | This file is part of the OPIE Project | 2 | This file is part of the OPIE Project |
3 | 3 | ||
4 | =. Copyright (c) 2003 Dan Williams <drw@handhelds.org> | 4 | =. Copyright (c) 2003 Dan Williams <drw@handhelds.org> |
5 | .=l. | 5 | .=l. |
6 | .>+-= | 6 | .>+-= |
7 | _;:, .> :=|. This file is free software; you can | 7 | _;:, .> :=|. This file is free software; you can |
8 | .> <`_, > . <= redistribute it and/or modify it under | 8 | .> <`_, > . <= redistribute it and/or modify it under |
9 | :`=1 )Y*s>-.-- : the terms of the GNU General Public | 9 | :`=1 )Y*s>-.-- : the terms of the GNU General Public |
10 | .="- .-=="i, .._ License as published by the Free Software | 10 | .="- .-=="i, .._ License as published by the Free Software |
11 | - . .-<_> .<> Foundation; either version 2 of the License, | 11 | - . .-<_> .<> Foundation; either version 2 of the License, |
12 | ._= =} : or (at your option) any later version. | 12 | ._= =} : or (at your option) any later version. |
13 | .%`+i> _;_. | 13 | .%`+i> _;_. |
14 | .i_,=:_. -<s. This file is distributed in the hope that | 14 | .i_,=:_. -<s. This file is distributed in the hope that |
15 | + . -:. = it will be useful, but WITHOUT ANY WARRANTY; | 15 | + . -:. = it will be useful, but WITHOUT ANY WARRANTY; |
16 | : .. .:, . . . without even the implied warranty of | 16 | : .. .:, . . . without even the implied warranty of |
17 | =_ + =;=|` MERCHANTABILITY or FITNESS FOR A | 17 | =_ + =;=|` MERCHANTABILITY or FITNESS FOR A |
18 | _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU General | 18 | _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU General |
19 | ..}^=.= = ; Public License for more details. | 19 | ..}^=.= = ; Public License for more details. |
20 | ++= -. .` .: | 20 | ++= -. .` .: |
21 | : = ...= . :.=- You should have received a copy of the GNU | 21 | : = ...= . :.=- You should have received a copy of the GNU |
22 | -. .:....=;==+<; General Public License along with this file; | 22 | -. .:....=;==+<; General Public License along with this file; |
23 | -_. . . )=. = see the file COPYING. If not, write to the | 23 | -_. . . )=. = see the file COPYING. If not, write to the |
24 | -- :-=` Free Software Foundation, Inc., | 24 | -- :-=` Free Software Foundation, Inc., |
25 | 59 Temple Place - Suite 330, | 25 | 59 Temple Place - Suite 330, |
26 | Boston, MA 02111-1307, USA. | 26 | Boston, MA 02111-1307, USA. |
27 | 27 | ||
28 | */ | 28 | */ |
29 | 29 | ||
30 | #include "installdlg.h" | 30 | #include "installdlg.h" |
31 | 31 | ||
32 | #include <opie2/ofiledialog.h> | 32 | #include <opie2/ofiledialog.h> |
33 | 33 | ||
34 | #include <qpe/fileselector.h> | 34 | #include <qpe/fileselector.h> |
35 | #include <qpe/resource.h> | 35 | #include <qpe/resource.h> |
36 | #include <qpe/storage.h> | 36 | #include <qpe/storage.h> |
37 | 37 | ||
38 | #include <qapplication.h> | 38 | #include <qapplication.h> |
39 | #include <qcombobox.h> | 39 | #include <qcombobox.h> |
40 | #include <qfileinfo.h> | 40 | #include <qfileinfo.h> |
41 | #include <qgroupbox.h> | 41 | #include <qgroupbox.h> |
42 | #include <qlabel.h> | 42 | #include <qlabel.h> |
43 | #include <qlayout.h> | 43 | #include <qlayout.h> |
44 | #include <qmap.h> | 44 | #include <qmap.h> |
45 | #include <qmultilineedit.h> | 45 | #include <qmultilineedit.h> |
46 | #include <qpushbutton.h> | 46 | #include <qpushbutton.h> |
47 | 47 | ||
48 | #include <sys/vfs.h> | 48 | #include <sys/vfs.h> |
49 | 49 | ||
50 | #include "opackagemanager.h" | 50 | #include "opackagemanager.h" |
51 | 51 | ||
52 | InstallDlg::InstallDlg( QWidget *parent, OPackageManager *pm, const QString &caption, bool showDestInfo, | 52 | InstallDlg::InstallDlg( QWidget *parent, OPackageManager *pm, const QString &caption, bool showDestInfo, |
53 | OPackage::Command command1, QStringList *packages1, | 53 | OPackage::Command command1, const QStringList &packages1, |
54 | OPackage::Command command2, QStringList *packages2, | 54 | OPackage::Command command2, const QStringList &packages2, |
55 | OPackage::Command command3, QStringList *packages3 ) | 55 | OPackage::Command command3, const QStringList &packages3 ) |
56 | : QWidget( 0x0 ) | 56 | : QWidget( 0x0 ) |
57 | , m_packman( pm ) | 57 | , m_packman( pm ) |
58 | , m_numCommands( 0 ) | 58 | , m_numCommands( 0 ) |
59 | , m_currCommand( 0 ) | 59 | , m_currCommand( 0 ) |
60 | { | 60 | { |
61 | // Save command/package list information | 61 | // Save command/package list information |
62 | if ( command1 != OPackage::NotDefined ) | 62 | if ( command1 != OPackage::NotDefined ) |
63 | { | 63 | { |
64 | m_command[ m_numCommands ] = command1; | 64 | m_command[ m_numCommands ] = command1; |
65 | m_packages[ m_numCommands ] = packages1; | 65 | m_packages[ m_numCommands ] = packages1; |
66 | ++m_numCommands; | 66 | ++m_numCommands; |
67 | } | 67 | } |
68 | if ( command2 != OPackage::NotDefined ) | 68 | if ( command2 != OPackage::NotDefined ) |
69 | { | 69 | { |
70 | m_command[ m_numCommands ] = command2; | 70 | m_command[ m_numCommands ] = command2; |
71 | m_packages[ m_numCommands ] = packages2; | 71 | m_packages[ m_numCommands ] = packages2; |
72 | ++m_numCommands; | 72 | ++m_numCommands; |
73 | } | 73 | } |
74 | if ( command3 != OPackage::NotDefined ) | 74 | if ( command3 != OPackage::NotDefined ) |
75 | { | 75 | { |
76 | m_command[ m_numCommands ] = command3; | 76 | m_command[ m_numCommands ] = command3; |
77 | m_packages[ m_numCommands ] = packages3; | 77 | m_packages[ m_numCommands ] = packages3; |
78 | ++m_numCommands; | 78 | ++m_numCommands; |
79 | } | 79 | } |
80 | 80 | ||
81 | // Initialize UI | 81 | // Initialize UI |
82 | if ( parent ) | 82 | if ( parent ) |
83 | parent->setCaption( caption ); | 83 | parent->setCaption( caption ); |
84 | 84 | ||
85 | QGridLayout *layout = new QGridLayout( this, 4, 2, 2, 4 ); | 85 | QGridLayout *layout = new QGridLayout( this, 4, 2, 2, 4 ); |
86 | 86 | ||
87 | if ( showDestInfo ) | 87 | if ( showDestInfo ) |
88 | { | 88 | { |
89 | QLabel *label = new QLabel( tr( "Destination" ), this ); | 89 | QLabel *label = new QLabel( tr( "Destination" ), this ); |
90 | layout->addWidget( label, 0, 0 ); | 90 | layout->addWidget( label, 0, 0 ); |
91 | m_destination = new QComboBox( this ); | 91 | m_destination = new QComboBox( this ); |
92 | m_destination->insertStringList( *(m_packman->destinations()) ); | 92 | m_destination->insertStringList( m_packman->destinations() ); |
93 | layout->addWidget( m_destination, 0, 1 ); | 93 | layout->addWidget( m_destination, 0, 1 ); |
94 | connect( m_destination, SIGNAL(highlighted(const QString&)), | 94 | connect( m_destination, SIGNAL(highlighted(const QString&)), |
95 | this, SLOT(slotDisplayAvailSpace(const QString&)) ); | 95 | this, SLOT(slotDisplayAvailSpace(const QString&)) ); |
96 | 96 | ||
97 | label = new QLabel( tr( "Space Avail" ), this ); | 97 | label = new QLabel( tr( "Space Avail" ), this ); |
98 | layout->addWidget( label, 1, 0 ); | 98 | layout->addWidget( label, 1, 0 ); |
99 | m_availSpace = new QLabel( this ); | 99 | m_availSpace = new QLabel( this ); |
100 | layout->addWidget( m_availSpace, 1, 1 ); | 100 | layout->addWidget( m_availSpace, 1, 1 ); |
101 | 101 | ||
102 | // TODO - select correct destination | 102 | // TODO - select correct destination |
103 | slotDisplayAvailSpace( m_destination->currentText() ); | 103 | slotDisplayAvailSpace( m_destination->currentText() ); |
104 | } | 104 | } |
105 | else | 105 | else |
106 | { | 106 | { |
107 | m_destination = 0x0; | 107 | m_destination = 0x0; |
108 | m_availSpace = 0x0; | 108 | m_availSpace = 0x0; |
109 | } | 109 | } |
110 | 110 | ||
111 | QGroupBox *groupBox = new QGroupBox( 0, Qt::Vertical, tr( "Output" ), this ); | 111 | QGroupBox *groupBox = new QGroupBox( 0, Qt::Vertical, tr( "Output" ), this ); |
112 | groupBox->layout()->setSpacing( 0 ); | 112 | groupBox->layout()->setSpacing( 0 ); |
113 | groupBox->layout()->setMargin( 4 ); | 113 | groupBox->layout()->setMargin( 4 ); |
114 | 114 | ||
115 | QVBoxLayout *groupBoxLayout = new QVBoxLayout( groupBox->layout() ); | 115 | QVBoxLayout *groupBoxLayout = new QVBoxLayout( groupBox->layout() ); |
116 | m_output = new QMultiLineEdit( groupBox ); | 116 | m_output = new QMultiLineEdit( groupBox ); |
117 | m_output->setReadOnly( true ); | 117 | m_output->setReadOnly( true ); |
118 | groupBoxLayout->addWidget( m_output ); | 118 | groupBoxLayout->addWidget( m_output ); |
119 | layout->addMultiCellWidget( groupBox, 2, 2, 0, 1 ); | 119 | layout->addMultiCellWidget( groupBox, 2, 2, 0, 1 ); |
120 | 120 | ||
121 | m_btnStart = new QPushButton( Resource::loadPixmap( "packagemanager/apply" ), tr( "Start" ), this ); | 121 | m_btnStart = new QPushButton( Resource::loadPixmap( "packagemanager/apply" ), tr( "Start" ), this ); |
122 | layout->addWidget( m_btnStart, 3, 0 ); | 122 | layout->addWidget( m_btnStart, 3, 0 ); |
123 | connect( m_btnStart, SIGNAL(clicked()), this, SLOT(slotBtnStart()) ); | 123 | connect( m_btnStart, SIGNAL(clicked()), this, SLOT(slotBtnStart()) ); |
124 | 124 | ||
125 | m_btnOptions = new QPushButton( Resource::loadPixmap( "SettingsIcon" ), tr( "Options" ), this ); | 125 | m_btnOptions = new QPushButton( Resource::loadPixmap( "SettingsIcon" ), tr( "Options" ), this ); |
126 | layout->addWidget( m_btnOptions, 3, 1 ); | 126 | layout->addWidget( m_btnOptions, 3, 1 ); |
127 | connect( m_btnOptions, SIGNAL( clicked() ), this, SLOT(slotBtnOptions()) ); | 127 | connect( m_btnOptions, SIGNAL( clicked() ), this, SLOT(slotBtnOptions()) ); |
128 | 128 | ||
129 | // Display packages being acted upon in output widget | 129 | // Display packages being acted upon in output widget |
130 | for( int i = 0; i < m_numCommands; i++ ) | 130 | for( int i = 0; i < m_numCommands; i++ ) |
131 | { | 131 | { |
132 | if ( m_packages[ i ] ) | 132 | if ( !m_packages[ i ].isEmpty() ) |
133 | { | 133 | { |
134 | QString lineStr = tr( "Packages to " ); | 134 | QString lineStr = tr( "Packages to " ); |
135 | 135 | ||
136 | switch( m_command[ i ] ) | 136 | switch( m_command[ i ] ) |
137 | { | 137 | { |
138 | case OPackage::Install : lineStr.append( tr( "install" ) ); | 138 | case OPackage::Install : lineStr.append( tr( "install" ) ); |
139 | break; | 139 | break; |
140 | case OPackage::Remove : lineStr.append( tr( "remove" ) ); | 140 | case OPackage::Remove : lineStr.append( tr( "remove" ) ); |
141 | break; | 141 | break; |
142 | case OPackage::Upgrade : lineStr.append( tr( "upgrade" ) ); | 142 | case OPackage::Upgrade : lineStr.append( tr( "upgrade" ) ); |
143 | break; | 143 | break; |
144 | case OPackage::Download : lineStr.append( tr( "download" ) ); | 144 | case OPackage::Download : lineStr.append( tr( "download" ) ); |
145 | break; | 145 | break; |
146 | default : | 146 | default : |
147 | break; | 147 | break; |
148 | }; | 148 | }; |
149 | lineStr.append( ":\n" ); | 149 | lineStr.append( ":\n" ); |
150 | 150 | ||
151 | for ( QStringList::Iterator it = m_packages[ i ]->begin(); it != m_packages[ i ]->end(); ++it ) | 151 | QStringList tmpPackage = m_packages[ i ]; |
152 | for ( QStringList::Iterator it = tmpPackage.begin(); it != tmpPackage.end(); ++it ) | ||
152 | { | 153 | { |
153 | lineStr.append( QString( "\t%1\n" ).arg( ( *it ) ) ); | 154 | lineStr.append( QString( "\t%1\n" ).arg( ( *it ) ) ); |
154 | } | 155 | } |
155 | 156 | ||
156 | m_output->append( lineStr ); | 157 | m_output->append( lineStr ); |
157 | } | 158 | } |
158 | } | 159 | } |
159 | 160 | ||
160 | m_output->append( tr( "Press the start button to begin.\n" ) ); | 161 | m_output->append( tr( "Press the start button to begin.\n" ) ); |
161 | m_output->setCursorPosition( m_output->numLines(), 0 ); | 162 | m_output->setCursorPosition( m_output->numLines(), 0 ); |
162 | 163 | ||
163 | } | 164 | } |
164 | 165 | ||
165 | InstallDlg::~InstallDlg() | 166 | InstallDlg::~InstallDlg() |
166 | { | 167 | { |
167 | for( int i = 0; i < m_numCommands; i++ ) | ||
168 | { | ||
169 | if ( m_packages[ i ] ) | ||
170 | delete m_packages[ i ]; | ||
171 | } | ||
172 | } | 168 | } |
173 | 169 | ||
174 | void InstallDlg::slotDisplayAvailSpace( const QString &destination ) | 170 | void InstallDlg::slotDisplayAvailSpace( const QString &destination ) |
175 | { | 171 | { |
176 | // If available space is not displayed, exit | 172 | // If available space is not displayed, exit |
177 | if ( !m_availSpace ) | 173 | if ( !m_availSpace ) |
178 | return; | 174 | return; |
179 | 175 | ||
180 | QString space = tr( "Unknown" ); | 176 | QString space = tr( "Unknown" ); |
181 | 177 | ||
182 | // Get destination | 178 | // Get destination |
183 | OConfItem *dest = m_packman->findConfItem( OConfItem::Destination, destination ); | 179 | OConfItem *dest = m_packman->findConfItem( OConfItem::Destination, destination ); |
184 | 180 | ||
185 | if ( dest ) | 181 | if ( dest ) |
186 | { | 182 | { |
187 | // Calculate available space | 183 | // Calculate available space |
188 | struct statfs fs; | 184 | struct statfs fs; |
189 | if ( !statfs( dest->value(), &fs ) ) | 185 | if ( !statfs( dest->value(), &fs ) ) |
190 | { | 186 | { |
191 | long mult = fs.f_bsize / 1024; | 187 | long mult = fs.f_bsize / 1024; |
192 | long div = 1024 / fs.f_bsize; | 188 | long div = 1024 / fs.f_bsize; |
193 | 189 | ||
194 | if ( !mult ) mult = 1; | 190 | if ( !mult ) mult = 1; |
195 | if ( !div ) div = 1; | 191 | if ( !div ) div = 1; |
196 | long avail = fs.f_bavail * mult / div; | 192 | long avail = fs.f_bavail * mult / div; |
197 | 193 | ||
198 | space = tr( "%1 Kb" ).arg( avail ); | 194 | space = tr( "%1 Kb" ).arg( avail ); |
199 | } | 195 | } |
200 | } | 196 | } |
201 | 197 | ||
202 | // Display available space | 198 | // Display available space |
203 | m_availSpace->setText( space ); | 199 | m_availSpace->setText( space ); |
diff --git a/noncore/settings/packagemanager/installdlg.h b/noncore/settings/packagemanager/installdlg.h index 4da9cf6..cddc911 100644 --- a/noncore/settings/packagemanager/installdlg.h +++ b/noncore/settings/packagemanager/installdlg.h | |||
@@ -1,85 +1,88 @@ | |||
1 | /* | 1 | /* |
2 | This file is part of the OPIE Project | 2 | This file is part of the OPIE Project |
3 | 3 | ||
4 | =. Copyright (c) 2003 Dan Williams <drw@handhelds.org> | 4 | =. Copyright (c) 2003 Dan Williams <drw@handhelds.org> |
5 | .=l. | 5 | .=l. |
6 | .>+-= | 6 | .>+-= |
7 | _;:, .> :=|. This file is free software; you can | 7 | _;:, .> :=|. This file is free software; you can |
8 | .> <`_, > . <= redistribute it and/or modify it under | 8 | .> <`_, > . <= redistribute it and/or modify it under |
9 | :`=1 )Y*s>-.-- : the terms of the GNU General Public | 9 | :`=1 )Y*s>-.-- : the terms of the GNU General Public |
10 | .="- .-=="i, .._ License as published by the Free Software | 10 | .="- .-=="i, .._ License as published by the Free Software |
11 | - . .-<_> .<> Foundation; either version 2 of the License, | 11 | - . .-<_> .<> Foundation; either version 2 of the License, |
12 | ._= =} : or (at your option) any later version. | 12 | ._= =} : or (at your option) any later version. |
13 | .%`+i> _;_. | 13 | .%`+i> _;_. |
14 | .i_,=:_. -<s. This file is distributed in the hope that | 14 | .i_,=:_. -<s. This file is distributed in the hope that |
15 | + . -:. = it will be useful, but WITHOUT ANY WARRANTY; | 15 | + . -:. = it will be useful, but WITHOUT ANY WARRANTY; |
16 | : .. .:, . . . without even the implied warranty of | 16 | : .. .:, . . . without even the implied warranty of |
17 | =_ + =;=|` MERCHANTABILITY or FITNESS FOR A | 17 | =_ + =;=|` MERCHANTABILITY or FITNESS FOR A |
18 | _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU General | 18 | _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU General |
19 | ..}^=.= = ; Public License for more details. | 19 | ..}^=.= = ; Public License for more details. |
20 | ++= -. .` .: | 20 | ++= -. .` .: |
21 | : = ...= . :.=- You should have received a copy of the GNU | 21 | : = ...= . :.=- You should have received a copy of the GNU |
22 | -. .:....=;==+<; General Public License along with this file; | 22 | -. .:....=;==+<; General Public License along with this file; |
23 | -_. . . )=. = see the file COPYING. If not, write to the | 23 | -_. . . )=. = see the file COPYING. If not, write to the |
24 | -- :-=` Free Software Foundation, Inc., | 24 | -- :-=` Free Software Foundation, Inc., |
25 | 59 Temple Place - Suite 330, | 25 | 59 Temple Place - Suite 330, |
26 | Boston, MA 02111-1307, USA. | 26 | Boston, MA 02111-1307, USA. |
27 | 27 | ||
28 | */ | 28 | */ |
29 | 29 | ||
30 | #ifndef INSTALLDLG_H | 30 | #ifndef INSTALLDLG_H |
31 | #define INSTALLDLG_H | 31 | #define INSTALLDLG_H |
32 | 32 | ||
33 | #include <qwidget.h> | 33 | #include <qwidget.h> |
34 | 34 | ||
35 | #include "opackage.h" | 35 | #include "opackage.h" |
36 | 36 | ||
37 | class QComboBox; | 37 | class QComboBox; |
38 | class QLabel; | 38 | class QLabel; |
39 | class QMultiLineEdit; | 39 | class QMultiLineEdit; |
40 | class QPushButton; | 40 | class QPushButton; |
41 | 41 | ||
42 | class OPackageManager; | 42 | class OPackageManager; |
43 | 43 | ||
44 | class InstallDlg : public QWidget | 44 | class InstallDlg : public QWidget |
45 | { | 45 | { |
46 | Q_OBJECT | 46 | Q_OBJECT |
47 | 47 | ||
48 | public: | 48 | public: |
49 | InstallDlg( QWidget *parent = 0x0, OPackageManager *pm = 0x0, const QString &caption = QString::null, | 49 | InstallDlg( QWidget *parent = 0x0, OPackageManager *pm = 0x0, const QString &caption = QString::null, |
50 | bool showDestInfo = true, | 50 | bool showDestInfo = true, |
51 | OPackage::Command command1 = OPackage::NotDefined, QStringList *packages1 = 0x0, | 51 | OPackage::Command command1 = OPackage::NotDefined, |
52 | OPackage::Command command2 = OPackage::NotDefined, QStringList *packages2 = 0x0, | 52 | const QStringList &packages1 = QStringList(), |
53 | OPackage::Command command3 = OPackage::NotDefined, QStringList *packages3 = 0x0 ); | 53 | OPackage::Command command2 = OPackage::NotDefined, |
54 | const QStringList &packages2 = QStringList(), | ||
55 | OPackage::Command command3 = OPackage::NotDefined, | ||
56 | const QStringList &packages3 = QStringList() ); | ||
54 | ~InstallDlg(); | 57 | ~InstallDlg(); |
55 | 58 | ||
56 | private: | 59 | private: |
57 | OPackageManager *m_packman; // Pointer to application instance of package manager | 60 | OPackageManager *m_packman; // Pointer to application instance of package manager |
58 | 61 | ||
59 | // UI controls | 62 | // UI controls |
60 | QComboBox *m_destination; // Destination selection list | 63 | QComboBox *m_destination; // Destination selection list |
61 | QLabel *m_availSpace; // Text label to display available space on selected destination | 64 | QLabel *m_availSpace; // Text label to display available space on selected destination |
62 | QMultiLineEdit *m_output; // Multi-line edit to display status | 65 | QMultiLineEdit *m_output; // Multi-line edit to display status |
63 | QPushButton *m_btnStart; // Start/abort/close button | 66 | QPushButton *m_btnStart; // Start/abort/close button |
64 | QPushButton *m_btnOptions; // Installation options button | 67 | QPushButton *m_btnOptions; // Installation options button |
65 | 68 | ||
66 | // Commands and packages to execute | 69 | // Commands and packages to execute |
67 | int m_numCommands; // Number of commands to be executed | 70 | int m_numCommands; // Number of commands to be executed |
68 | int m_currCommand; // Number of currently executing command | 71 | int m_currCommand; // Number of currently executing command |
69 | OPackage::Command m_command[3]; // List of commands to be executed | 72 | OPackage::Command m_command[3]; // List of commands to be executed |
70 | QStringList *m_packages[3]; // Lists of package names associated to commands (m_command[]) | 73 | QStringList m_packages[3]; // Lists of package names associated to commands (m_command[]) |
71 | 74 | ||
72 | private slots: | 75 | private slots: |
73 | // UI control slots | 76 | // UI control slots |
74 | void slotDisplayAvailSpace( const QString &destination ); | 77 | void slotDisplayAvailSpace( const QString &destination ); |
75 | void slotBtnStart(); | 78 | void slotBtnStart(); |
76 | void slotBtnOptions(); | 79 | void slotBtnOptions(); |
77 | 80 | ||
78 | // Execution slots | 81 | // Execution slots |
79 | void slotOutput( char *msg ); | 82 | void slotOutput( char *msg ); |
80 | 83 | ||
81 | signals: | 84 | signals: |
82 | void closeInstallDlg(); | 85 | void closeInstallDlg(); |
83 | }; | 86 | }; |
84 | 87 | ||
85 | #endif | 88 | #endif |
diff --git a/noncore/settings/packagemanager/mainwindow.cpp b/noncore/settings/packagemanager/mainwindow.cpp index 349094d..5e15874 100644 --- a/noncore/settings/packagemanager/mainwindow.cpp +++ b/noncore/settings/packagemanager/mainwindow.cpp | |||
@@ -284,65 +284,65 @@ void MainWindow::loadPackageList( OPackageList *packages, bool clearList ) | |||
284 | item->setPixmap( 0, m_iconNull ); | 284 | item->setPixmap( 0, m_iconNull ); |
285 | } | 285 | } |
286 | } | 286 | } |
287 | } | 287 | } |
288 | 288 | ||
289 | void MainWindow::searchForPackage( const QString &text ) | 289 | void MainWindow::searchForPackage( const QString &text ) |
290 | { | 290 | { |
291 | if ( !text.isEmpty() ) | 291 | if ( !text.isEmpty() ) |
292 | { | 292 | { |
293 | // look through package list for text startng at current position | 293 | // look through package list for text startng at current position |
294 | QCheckListItem *start = static_cast<QCheckListItem *>(m_packageList.currentItem()); | 294 | QCheckListItem *start = static_cast<QCheckListItem *>(m_packageList.currentItem()); |
295 | if ( start == 0 ) | 295 | if ( start == 0 ) |
296 | start = static_cast<QCheckListItem *>(m_packageList.firstChild()); | 296 | start = static_cast<QCheckListItem *>(m_packageList.firstChild()); |
297 | 297 | ||
298 | // for ( QCheckListItem *item = static_cast<QCheckListItem *>(start->nextSibling()); item != 0 ; | 298 | // for ( QCheckListItem *item = static_cast<QCheckListItem *>(start->nextSibling()); item != 0 ; |
299 | for ( QCheckListItem *item = static_cast<QCheckListItem *>(start); item != 0 ; | 299 | for ( QCheckListItem *item = static_cast<QCheckListItem *>(start); item != 0 ; |
300 | item = static_cast<QCheckListItem *>(item->nextSibling()) ) | 300 | item = static_cast<QCheckListItem *>(item->nextSibling()) ) |
301 | { | 301 | { |
302 | if ( item->text().lower().find( text ) != -1 ) | 302 | if ( item->text().lower().find( text ) != -1 ) |
303 | { | 303 | { |
304 | m_packageList.ensureItemVisible( item ); | 304 | m_packageList.ensureItemVisible( item ); |
305 | m_packageList.setCurrentItem( item ); | 305 | m_packageList.setCurrentItem( item ); |
306 | break; | 306 | break; |
307 | } | 307 | } |
308 | } | 308 | } |
309 | } | 309 | } |
310 | } | 310 | } |
311 | 311 | ||
312 | void MainWindow::installLocalPackage( const QString &ipkFile ) | 312 | 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" ), true, |
316 | OPackage::Install, new QStringList( ipkFile ) ); | 316 | OPackage::Install, ipkFile ); |
317 | connect( dlg, SIGNAL(closeInstallDlg()), this, SLOT(slotCloseDlg()) ); | 317 | connect( dlg, SIGNAL(closeInstallDlg()), this, SLOT(slotCloseDlg()) ); |
318 | 318 | ||
319 | // Display widget | 319 | // Display widget |
320 | m_widgetStack.addWidget( dlg, 3 ); | 320 | m_widgetStack.addWidget( dlg, 3 ); |
321 | m_widgetStack.raiseWidget( dlg ); | 321 | m_widgetStack.raiseWidget( dlg ); |
322 | } | 322 | } |
323 | 323 | ||
324 | void MainWindow::setDocument( const QString &ipkFile ) | 324 | void MainWindow::setDocument( const QString &ipkFile ) |
325 | { | 325 | { |
326 | QString file = ipkFile; | 326 | QString file = ipkFile; |
327 | DocLnk lnk( ipkFile ); | 327 | DocLnk lnk( ipkFile ); |
328 | if ( lnk.isValid() ) | 328 | if ( lnk.isValid() ) |
329 | file = lnk.file(); | 329 | file = lnk.file(); |
330 | 330 | ||
331 | installLocalPackage( file ); | 331 | installLocalPackage( file ); |
332 | } | 332 | } |
333 | 333 | ||
334 | void MainWindow::initPackageInfo() | 334 | void MainWindow::initPackageInfo() |
335 | { | 335 | { |
336 | m_widgetStack.raiseWidget( &m_statusWidget ); | 336 | m_widgetStack.raiseWidget( &m_statusWidget ); |
337 | 337 | ||
338 | // Load package list | 338 | // Load package list |
339 | m_packman.loadAvailablePackages(); | 339 | m_packman.loadAvailablePackages(); |
340 | m_packman.loadInstalledPackages(); | 340 | m_packman.loadInstalledPackages(); |
341 | 341 | ||
342 | OPackageList *packageList = m_packman.packages(); | 342 | OPackageList *packageList = m_packman.packages(); |
343 | if ( packageList ) | 343 | if ( packageList ) |
344 | { | 344 | { |
345 | loadPackageList( packageList, true ); | 345 | loadPackageList( packageList, true ); |
346 | delete packageList; | 346 | delete packageList; |
347 | } | 347 | } |
348 | 348 | ||
@@ -381,192 +381,182 @@ void MainWindow::slotStatusText( const QString &status ) | |||
381 | void MainWindow::slotStatusBar( int currStep ) | 381 | void MainWindow::slotStatusBar( int currStep ) |
382 | { | 382 | { |
383 | m_statusBar.setProgress( currStep ); | 383 | m_statusBar.setProgress( currStep ); |
384 | } | 384 | } |
385 | 385 | ||
386 | void MainWindow::slotUpdate() | 386 | 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" ), false, |
390 | OPackage::Update ); | 390 | OPackage::Update ); |
391 | connect( dlg, SIGNAL(closeInstallDlg()), this, SLOT(slotCloseDlg()) ); | 391 | connect( dlg, SIGNAL(closeInstallDlg()), this, SLOT(slotCloseDlg()) ); |
392 | 392 | ||
393 | // Display widget | 393 | // Display widget |
394 | m_widgetStack.addWidget( dlg, 3 ); | 394 | m_widgetStack.addWidget( dlg, 3 ); |
395 | m_widgetStack.raiseWidget( dlg ); | 395 | m_widgetStack.raiseWidget( dlg ); |
396 | } | 396 | } |
397 | 397 | ||
398 | void MainWindow::slotUpgrade() | 398 | 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" ), false, |
402 | OPackage::Upgrade ); | 402 | OPackage::Upgrade ); |
403 | connect( dlg, SIGNAL(closeInstallDlg()), this, SLOT(slotCloseDlg()) ); | 403 | connect( dlg, SIGNAL(closeInstallDlg()), this, SLOT(slotCloseDlg()) ); |
404 | 404 | ||
405 | // Display widget | 405 | // Display widget |
406 | m_widgetStack.addWidget( dlg, 3 ); | 406 | m_widgetStack.addWidget( dlg, 3 ); |
407 | m_widgetStack.raiseWidget( dlg ); | 407 | m_widgetStack.raiseWidget( dlg ); |
408 | } | 408 | } |
409 | 409 | ||
410 | void MainWindow::slotDownload() | 410 | void MainWindow::slotDownload() |
411 | { | 411 | { |
412 | // Retrieve list of packages selected for download (if any) | 412 | // Retrieve list of packages selected for download (if any) |
413 | QStringList *workingPackages = new QStringList(); | 413 | QStringList workingPackages; |
414 | 414 | ||
415 | for ( QCheckListItem *item = static_cast<QCheckListItem *>(m_packageList.firstChild()); | 415 | for ( QCheckListItem *item = static_cast<QCheckListItem *>(m_packageList.firstChild()); |
416 | item != 0 ; | 416 | item != 0 ; |
417 | item = static_cast<QCheckListItem *>(item->nextSibling()) ) | 417 | item = static_cast<QCheckListItem *>(item->nextSibling()) ) |
418 | { | 418 | { |
419 | if ( item->isOn() ) | 419 | if ( item->isOn() ) |
420 | workingPackages->append( item->text() ); | 420 | workingPackages.append( item->text() ); |
421 | } | 421 | } |
422 | 422 | ||
423 | if ( workingPackages->isEmpty() ) | 423 | if ( workingPackages.isEmpty() ) |
424 | { | 424 | { |
425 | QMessageBox::information( this, tr( "Nothing to do" ), tr( "No packages selected" ), tr( "OK" ) ); | 425 | QMessageBox::information( this, tr( "Nothing to do" ), tr( "No packages selected" ), tr( "OK" ) ); |
426 | return; | 426 | return; |
427 | } | 427 | } |
428 | else | 428 | else |
429 | { | 429 | { |
430 | // Download selected packages | 430 | // Download selected packages |
431 | m_config.setGroup( "settings" ); | 431 | m_config.setGroup( "settings" ); |
432 | QString workingDir = m_config.readEntry( "DownloadDir", "/tmp" ); | 432 | QString workingDir = m_config.readEntry( "DownloadDir", "/tmp" ); |
433 | 433 | ||
434 | bool ok = false; | 434 | bool ok = false; |
435 | QString text = EntryDlg::getText( tr( "Download" ), tr( "Enter path to download package to:" ), workingDir, &ok, this ); | 435 | QString text = EntryDlg::getText( tr( "Download" ), tr( "Enter path to download package to:" ), workingDir, &ok, this ); |
436 | if ( ok && !text.isEmpty() ) | 436 | if ( ok && !text.isEmpty() ) |
437 | workingDir = text; // user entered something and pressed ok | 437 | workingDir = text; // user entered something and pressed ok |
438 | else | 438 | else |
439 | return; // user entered nothing or pressed cancel | 439 | return; // user entered nothing or pressed cancel |
440 | 440 | ||
441 | // Store download directory in config file | 441 | // Store download directory in config file |
442 | m_config.writeEntry( "DownloadDir", workingDir ); | 442 | m_config.writeEntry( "DownloadDir", workingDir ); |
443 | 443 | ||
444 | // Get starting directory | 444 | // Get starting directory |
445 | QDir::setCurrent( workingDir ); | 445 | QDir::setCurrent( workingDir ); |
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" ), false, |
449 | OPackage::Download, workingPackages ); | 449 | OPackage::Download, workingPackages ); |
450 | connect( dlg, SIGNAL(closeInstallDlg()), this, SLOT(slotCloseDlg()) ); | 450 | connect( dlg, SIGNAL(closeInstallDlg()), this, SLOT(slotCloseDlg()) ); |
451 | 451 | ||
452 | // Display widget | 452 | // Display widget |
453 | m_widgetStack.addWidget( dlg, 3 ); | 453 | m_widgetStack.addWidget( dlg, 3 ); |
454 | m_widgetStack.raiseWidget( dlg ); | 454 | m_widgetStack.raiseWidget( dlg ); |
455 | } | 455 | } |
456 | } | 456 | } |
457 | 457 | ||
458 | void MainWindow::slotApply() | 458 | void MainWindow::slotApply() |
459 | { | 459 | { |
460 | QStringList *removeList = 0x0; | 460 | QStringList removeList; |
461 | QStringList *installList = 0x0; | 461 | QStringList installList; |
462 | QStringList *upgradeList = 0x0; | 462 | QStringList upgradeList; |
463 | 463 | ||
464 | for ( QCheckListItem *item = static_cast<QCheckListItem *>(m_packageList.firstChild()); | 464 | for ( QCheckListItem *item = static_cast<QCheckListItem *>(m_packageList.firstChild()); |
465 | item != 0 ; | 465 | item != 0 ; |
466 | item = static_cast<QCheckListItem *>(item->nextSibling()) ) | 466 | item = static_cast<QCheckListItem *>(item->nextSibling()) ) |
467 | { | 467 | { |
468 | if ( item->isOn() ) | 468 | if ( item->isOn() ) |
469 | { | 469 | { |
470 | OPackage *package = m_packman.findPackage( item->text() ); | 470 | OPackage *package = m_packman.findPackage( item->text() ); |
471 | if ( package ) | 471 | if ( package ) |
472 | { | 472 | { |
473 | if ( !package->versionInstalled().isNull() ) | 473 | if ( !package->versionInstalled().isNull() ) |
474 | { | 474 | { |
475 | if ( m_packman.compareVersions( package->version(), package->versionInstalled() ) == 1 ) | 475 | if ( m_packman.compareVersions( package->version(), package->versionInstalled() ) == 1 ) |
476 | { | 476 | { |
477 | // Remove/upgrade package | 477 | // Remove/upgrade package |
478 | int answer = PromptDlg::ask( tr( "Remove or upgrade" ), | 478 | int answer = PromptDlg::ask( tr( "Remove or upgrade" ), |
479 | tr( QString( "Do you wish to remove or upgrade\n%1?" ).arg( item->text() ) ), | 479 | tr( QString( "Do you wish to remove or upgrade\n%1?" ).arg( item->text() ) ), |
480 | tr( "Remove" ), tr( "Upgrade" ), this ); | 480 | tr( "Remove" ), tr( "Upgrade" ), this ); |
481 | if ( answer == 1 ) // Remove | 481 | if ( answer == 1 ) // Remove |
482 | { | 482 | { |
483 | if ( !removeList ) | 483 | removeList.append( item->text() ); |
484 | removeList = new QStringList(); | ||
485 | removeList->append( item->text() ); | ||
486 | } | 484 | } |
487 | else if ( answer == 2 ) // Upgrade | 485 | else if ( answer == 2 ) // Upgrade |
488 | { | 486 | { |
489 | if ( !upgradeList ) | 487 | upgradeList.append( item->text() ); |
490 | upgradeList = new QStringList(); | ||
491 | upgradeList->append( item->text() ); | ||
492 | } | 488 | } |
493 | } | 489 | } |
494 | else | 490 | else |
495 | { | 491 | { |
496 | // Remove/reinstall package | 492 | // Remove/reinstall package |
497 | int answer = PromptDlg::ask( tr( "Remove or reinstall" ), | 493 | int answer = PromptDlg::ask( tr( "Remove or reinstall" ), |
498 | tr( QString( "Do you wish to remove or reinstall\n%1?" ).arg( item->text() ) ), | 494 | tr( QString( "Do you wish to remove or reinstall\n%1?" ).arg( item->text() ) ), |
499 | tr( "Remove" ), tr( "Reinstall" ), this ); | 495 | tr( "Remove" ), tr( "Reinstall" ), this ); |
500 | if ( answer == 1 ) // Remove | 496 | if ( answer == 1 ) // Remove |
501 | { | 497 | { |
502 | if ( !removeList ) | 498 | removeList.append( item->text() ); |
503 | removeList = new QStringList(); | ||
504 | removeList->append( item->text() ); | ||
505 | } | 499 | } |
506 | else if ( answer == 2 ) // Reinstall | 500 | else if ( answer == 2 ) // Reinstall |
507 | { | 501 | { |
508 | if ( !installList ) | 502 | installList.append( item->text() ); |
509 | installList = new QStringList(); | ||
510 | installList->append( item->text() ); | ||
511 | } | 503 | } |
512 | } | 504 | } |
513 | } | 505 | } |
514 | else | 506 | else |
515 | { | 507 | { |
516 | // Install package | 508 | // Install package |
517 | if ( !installList ) | 509 | installList.append( item->text() ); |
518 | installList = new QStringList(); | ||
519 | installList->append( item->text() ); | ||
520 | } | 510 | } |
521 | } | 511 | } |
522 | } | 512 | } |
523 | } | 513 | } |
524 | 514 | ||
525 | // If nothing is selected, display message and exit | 515 | // If nothing is selected, display message and exit |
526 | if ( !removeList && !installList && !upgradeList ) | 516 | if ( removeList.isEmpty() && installList.isEmpty() && upgradeList.isEmpty() ) |
527 | { | 517 | { |
528 | QMessageBox::information( this, tr( "Nothing to do" ), tr( "No packages selected" ), tr( "OK" ) ); | 518 | QMessageBox::information( this, tr( "Nothing to do" ), tr( "No packages selected" ), tr( "OK" ) ); |
529 | return; | 519 | return; |
530 | } | 520 | } |
531 | 521 | ||
532 | // Send command only if there are packages to process | 522 | // Send command only if there are packages to process |
533 | OPackage::Command removeCmd = OPackage::NotDefined; | 523 | OPackage::Command removeCmd = OPackage::NotDefined; |
534 | if ( removeList && !removeList->isEmpty() ) | 524 | if ( !removeList.isEmpty() ) |
535 | removeCmd = OPackage::Remove; | 525 | removeCmd = OPackage::Remove; |
536 | OPackage::Command installCmd = OPackage::NotDefined; | 526 | OPackage::Command installCmd = OPackage::NotDefined; |
537 | if ( installList && !installList->isEmpty() ) | 527 | if ( !installList.isEmpty() ) |
538 | installCmd = OPackage::Install; | 528 | installCmd = OPackage::Install; |
539 | OPackage::Command upgradeCmd = OPackage::NotDefined; | 529 | OPackage::Command upgradeCmd = OPackage::NotDefined; |
540 | if ( upgradeList && !upgradeList->isEmpty() ) | 530 | if ( !upgradeList.isEmpty() ) |
541 | upgradeCmd = OPackage::Upgrade; | 531 | upgradeCmd = OPackage::Upgrade; |
542 | 532 | ||
543 | // Create package manager output widget | 533 | // Create package manager output widget |
544 | InstallDlg *dlg = new InstallDlg( this, &m_packman, tr( "Apply changes" ), true, | 534 | InstallDlg *dlg = new InstallDlg( this, &m_packman, tr( "Apply changes" ), true, |
545 | removeCmd, removeList, | 535 | removeCmd, removeList, |
546 | installCmd, installList, | 536 | installCmd, installList, |
547 | upgradeCmd, upgradeList ); | 537 | upgradeCmd, upgradeList ); |
548 | connect( dlg, SIGNAL(closeInstallDlg()), this, SLOT(slotCloseDlg()) ); | 538 | connect( dlg, SIGNAL(closeInstallDlg()), this, SLOT(slotCloseDlg()) ); |
549 | 539 | ||
550 | // Display widget | 540 | // Display widget |
551 | m_widgetStack.addWidget( dlg, 3 ); | 541 | m_widgetStack.addWidget( dlg, 3 ); |
552 | m_widgetStack.raiseWidget( dlg ); | 542 | m_widgetStack.raiseWidget( dlg ); |
553 | } | 543 | } |
554 | 544 | ||
555 | void MainWindow::slotInstallLocal() | 545 | void MainWindow::slotInstallLocal() |
556 | { | 546 | { |
557 | // Display file open dialog with only package files | 547 | // Display file open dialog with only package files |
558 | MimeTypes type; | 548 | MimeTypes type; |
559 | QStringList packages; | 549 | QStringList packages; |
560 | packages << "application/ipkg"; | 550 | packages << "application/ipkg"; |
561 | type.insert( tr( "Application Packages" ), packages ); | 551 | type.insert( tr( "Application Packages" ), packages ); |
562 | QString package = Opie::Ui::OFileDialog::getOpenFileName( Opie::Ui::OFileSelector::NORMAL, | 552 | QString package = Opie::Ui::OFileDialog::getOpenFileName( Opie::Ui::OFileSelector::NORMAL, |
563 | "/", QString::null, type ); | 553 | "/", QString::null, type ); |
564 | if ( !package.isNull() ) | 554 | if ( !package.isNull() ) |
565 | installLocalPackage( package ); | 555 | installLocalPackage( package ); |
566 | } | 556 | } |
567 | 557 | ||
568 | void MainWindow::slotCloseDlg() | 558 | void MainWindow::slotCloseDlg() |
569 | { | 559 | { |
570 | // Close install dialog | 560 | // Close install dialog |
571 | delete m_widgetStack.visibleWidget(); | 561 | delete m_widgetStack.visibleWidget(); |
572 | 562 | ||
diff --git a/noncore/settings/packagemanager/mainwindow.h b/noncore/settings/packagemanager/mainwindow.h index 103c664..f00e344 100644 --- a/noncore/settings/packagemanager/mainwindow.h +++ b/noncore/settings/packagemanager/mainwindow.h | |||
@@ -22,65 +22,65 @@ _;:, .> :=|. This file is free software; you can | |||
22 | -. .:....=;==+<; General Public License along with this file; | 22 | -. .:....=;==+<; General Public License along with this file; |
23 | -_. . . )=. = see the file COPYING. If not, write to the | 23 | -_. . . )=. = see the file COPYING. If not, write to the |
24 | -- :-=` Free Software Foundation, Inc., | 24 | -- :-=` Free Software Foundation, Inc., |
25 | 59 Temple Place - Suite 330, | 25 | 59 Temple Place - Suite 330, |
26 | Boston, MA 02111-1307, USA. | 26 | Boston, MA 02111-1307, USA. |
27 | 27 | ||
28 | */ | 28 | */ |
29 | 29 | ||
30 | #ifndef MAINWINDOW_H | 30 | #ifndef MAINWINDOW_H |
31 | #define MAINWINDOW_H | 31 | #define MAINWINDOW_H |
32 | 32 | ||
33 | #include "opackagemanager.h" | 33 | #include "opackagemanager.h" |
34 | 34 | ||
35 | #include <qpe/config.h> | 35 | #include <qpe/config.h> |
36 | 36 | ||
37 | #include <qlabel.h> | 37 | #include <qlabel.h> |
38 | #include <qlistview.h> | 38 | #include <qlistview.h> |
39 | #include <qmainwindow.h> | 39 | #include <qmainwindow.h> |
40 | #include <qpixmap.h> | 40 | #include <qpixmap.h> |
41 | #include <qprogressbar.h> | 41 | #include <qprogressbar.h> |
42 | #include <qtoolbar.h> | 42 | #include <qtoolbar.h> |
43 | #include <qwidgetstack.h> | 43 | #include <qwidgetstack.h> |
44 | 44 | ||
45 | class QAction; | 45 | class QAction; |
46 | class QLineEdit; | 46 | class QLineEdit; |
47 | 47 | ||
48 | class MainWindow :public QMainWindow | 48 | class MainWindow :public QMainWindow |
49 | { | 49 | { |
50 | Q_OBJECT | 50 | Q_OBJECT |
51 | 51 | ||
52 | public: | 52 | public: |
53 | MainWindow( QWidget *parent = 0x0, const char *name = 0x0, WFlags fl = 0 ); | 53 | MainWindow( QWidget *parent = 0x0, const char *name = 0x0, WFlags fl = 0 ); |
54 | static QString appName() { return QString::fromLatin1( "packagemanager" ); }; | 54 | static QString appName() { return QString::fromLatin1( QUICKAPP_NAME ); }; |
55 | 55 | ||
56 | protected: | 56 | protected: |
57 | void closeEvent( QCloseEvent *event ); | 57 | void closeEvent( QCloseEvent *event ); |
58 | 58 | ||
59 | private: | 59 | private: |
60 | Config m_config; // Configuration file | 60 | Config m_config; // Configuration file |
61 | 61 | ||
62 | OPackageManager m_packman; // Package manager | 62 | OPackageManager m_packman; // Package manager |
63 | 63 | ||
64 | // Toolbars | 64 | // Toolbars |
65 | QToolBar m_menuBar; // Main toolbar containing menu | 65 | QToolBar m_menuBar; // Main toolbar containing menu |
66 | QToolBar m_toolBar; // Main toolbar | 66 | QToolBar m_toolBar; // Main toolbar |
67 | QToolBar m_findBar; // Find toolbar | 67 | QToolBar m_findBar; // Find toolbar |
68 | 68 | ||
69 | QWidgetStack m_widgetStack; // Main widget stack which contains m_packageList & m_statusWidget | 69 | QWidgetStack m_widgetStack; // Main widget stack which contains m_packageList & m_statusWidget |
70 | QListView m_packageList; // Main list view of all packages | 70 | QListView m_packageList; // Main list view of all packages |
71 | 71 | ||
72 | QLineEdit *m_findEdit; // Line edit box used for find toolbar | 72 | QLineEdit *m_findEdit; // Line edit box used for find toolbar |
73 | 73 | ||
74 | // Status widget controls | 74 | // Status widget controls |
75 | QWidget m_statusWidget; // Widget to display status during long operations | 75 | QWidget m_statusWidget; // Widget to display status during long operations |
76 | QLabel m_statusText; // Text status message | 76 | QLabel m_statusText; // Text status message |
77 | QProgressBar m_statusBar; // Progress bar showing % completed | 77 | QProgressBar m_statusBar; // Progress bar showing % completed |
78 | 78 | ||
79 | // Icon pixmaps | 79 | // Icon pixmaps |
80 | QPixmap m_iconUpdated; // Cached icon which shows when package can be updated | 80 | QPixmap m_iconUpdated; // Cached icon which shows when package can be updated |
81 | QPixmap m_iconInstalled; // Cached icon which shows when package is installed | 81 | QPixmap m_iconInstalled; // Cached icon which shows when package is installed |
82 | QPixmap m_iconNull; // Cached icon which shows when package is not installed | 82 | QPixmap m_iconNull; // Cached icon which shows when package is not installed |
83 | 83 | ||
84 | // Menu/tool bar actions | 84 | // Menu/tool bar actions |
85 | QAction *m_actionShowNotInstalled; // Action to show pakages not currently installed | 85 | QAction *m_actionShowNotInstalled; // Action to show pakages not currently installed |
86 | QAction *m_actionShowInstalled; // Action to show pakages currently installed | 86 | QAction *m_actionShowInstalled; // Action to show pakages currently installed |
diff --git a/noncore/settings/packagemanager/oconfitem.h b/noncore/settings/packagemanager/oconfitem.h index db77980..7c158c9 100644 --- a/noncore/settings/packagemanager/oconfitem.h +++ b/noncore/settings/packagemanager/oconfitem.h | |||
@@ -1,76 +1,76 @@ | |||
1 | /* | 1 | /* |
2 | This file is part of the Opie Project | 2 | This file is part of the Opie Project |
3 | 3 | ||
4 | Copyright (c) 2003 Dan Williams <drw@handhelds.org> | 4 | Copyright (c) 2003 Dan Williams <drw@handhelds.org> |
5 | =. | 5 | =. |
6 | .=l. | 6 | .=l. |
7 | .>+-= | 7 | .>+-= |
8 | _;:, .> :=|. This program is free software; you can | 8 | _;:, .> :=|. This program is free software; you can |
9 | .> <`_, > . <= redistribute it and/or modify it under | 9 | .> <`_, > . <= redistribute it and/or modify it under |
10 | :`=1 )Y*s>-.-- : the terms of the GNU Library General Public | 10 | :`=1 )Y*s>-.-- : the terms of the GNU Library General Public |
11 | .="- .-=="i, .._ License as published by the Free Software | 11 | .="- .-=="i, .._ License as published by the Free Software |
12 | - . .-<_> .<> Foundation; either version 2 of the License, | 12 | - . .-<_> .<> Foundation; either version 2 of the License, |
13 | ._= =} : or (at your option) any later version. | 13 | ._= =} : or (at your option) any later version. |
14 | .%`+i> _;_. | 14 | .%`+i> _;_. |
15 | .i_,=:_. -<s. This program is distributed in the hope that | 15 | .i_,=:_. -<s. This program is distributed in the hope that |
16 | + . -:. = it will be useful, but WITHOUT ANY WARRANTY; | 16 | + . -:. = it will be useful, but WITHOUT ANY WARRANTY; |
17 | : .. .:, . . . without even the implied warranty of | 17 | : .. .:, . . . without even the implied warranty of |
18 | =_ + =;=|` MERCHANTABILITY or FITNESS FOR A | 18 | =_ + =;=|` MERCHANTABILITY or FITNESS FOR A |
19 | _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU | 19 | _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU |
20 | ..}^=.= = ; Library General Public License for more | 20 | ..}^=.= = ; Library General Public License for more |
21 | ++= -. .` .: details. | 21 | ++= -. .` .: details. |
22 | : = ...= . :.=- | 22 | : = ...= . :.=- |
23 | -. .:....=;==+<; You should have received a copy of the GNU | 23 | -. .:....=;==+<; You should have received a copy of the GNU |
24 | -_. . . )=. = Library General Public License along with | 24 | -_. . . )=. = Library General Public License along with |
25 | -- :-=` this library; see the file COPYING.LIB. | 25 | -- :-=` this library; see the file COPYING.LIB. |
26 | If not, write to the Free Software Foundation, | 26 | If not, write to the Free Software Foundation, |
27 | Inc., 59 Temple Place - Suite 330, | 27 | Inc., 59 Temple Place - Suite 330, |
28 | Boston, MA 02111-1307, USA. | 28 | Boston, MA 02111-1307, USA. |
29 | 29 | ||
30 | */ | 30 | */ |
31 | 31 | ||
32 | #ifndef OCONFITEM_H | 32 | #ifndef OCONFITEM_H |
33 | #define OCONFITEM_H | 33 | #define OCONFITEM_H |
34 | 34 | ||
35 | #include <qlist.h> | 35 | #include <qlist.h> |
36 | #include <qstring.h> | 36 | #include <qstring.h> |
37 | 37 | ||
38 | class OConfItem | 38 | class OConfItem |
39 | { | 39 | { |
40 | public: | 40 | public: |
41 | enum Type { Source, Destination, Option, Arch, NotDefined }; | 41 | enum Type { Source, Destination, Option, Arch, NotDefined }; |
42 | 42 | ||
43 | OConfItem( Type type = NotDefined, const QString &name = 0x0, const QString &value = 0x0, | 43 | OConfItem( Type type = NotDefined, const QString &name = QString::null, |
44 | bool active = true ); | 44 | const QString &value = QString::null, bool active = true ); |
45 | 45 | ||
46 | Type type() { return m_type; } | 46 | Type type() { return m_type; } |
47 | const QString &name() { return m_name; } | 47 | const QString &name() { return m_name; } |
48 | const QString &value() { return m_value; } | 48 | const QString &value() { return m_value; } |
49 | bool active() { return m_active; } | 49 | bool active() { return m_active; } |
50 | 50 | ||
51 | void setType( Type type ) { m_type = type; } | 51 | void setType( Type type ) { m_type = type; } |
52 | void setName( const QString &name ) { m_name = name; } | 52 | void setName( const QString &name ) { m_name = name; } |
53 | void setValue( const QString &value ) { m_value = value; } | 53 | void setValue( const QString &value ) { m_value = value; } |
54 | void setActive( bool active ) { m_active = active; } | 54 | void setActive( bool active ) { m_active = active; } |
55 | 55 | ||
56 | private: | 56 | private: |
57 | Type m_type; // Type of configuration item | 57 | Type m_type; // Type of configuration item |
58 | QString m_name; // Name of item | 58 | QString m_name; // Name of item |
59 | QString m_value; // Value of item | 59 | QString m_value; // Value of item |
60 | bool m_active; // Indicates whether item is currently active | 60 | bool m_active; // Indicates whether item is currently active |
61 | }; | 61 | }; |
62 | 62 | ||
63 | class OConfItemList : public QList<OConfItem> | 63 | class OConfItemList : public QList<OConfItem> |
64 | { | 64 | { |
65 | private: | 65 | private: |
66 | 66 | ||
67 | int compareItems( QCollection::Item item1, QCollection::Item item2 ) | 67 | int compareItems( QCollection::Item item1, QCollection::Item item2 ) |
68 | { | 68 | { |
69 | // Sort by OConfItem location then by type | 69 | // Sort by OConfItem location then by type |
70 | OConfItem::Type type1 = reinterpret_cast<OConfItem*>(item1)->type(); | 70 | OConfItem::Type type1 = reinterpret_cast<OConfItem*>(item1)->type(); |
71 | OConfItem::Type type2 = reinterpret_cast<OConfItem*>(item2)->type(); | 71 | OConfItem::Type type2 = reinterpret_cast<OConfItem*>(item2)->type(); |
72 | if ( type1 < type2 ) | 72 | if ( type1 < type2 ) |
73 | return -1; | 73 | return -1; |
74 | else if ( type1 == type2 ) | 74 | else if ( type1 == type2 ) |
75 | { | 75 | { |
76 | QString name1 = reinterpret_cast<OConfItem*>(item1)->name(); | 76 | QString name1 = reinterpret_cast<OConfItem*>(item1)->name(); |
diff --git a/noncore/settings/packagemanager/oipkg.cpp b/noncore/settings/packagemanager/oipkg.cpp index 1978ad5..b0cc94d 100644 --- a/noncore/settings/packagemanager/oipkg.cpp +++ b/noncore/settings/packagemanager/oipkg.cpp | |||
@@ -1,86 +1,88 @@ | |||
1 | /* | 1 | /* |
2 | This file is part of the Opie Project | 2 | This file is part of the Opie Project |
3 | 3 | ||
4 | Copyright (c) 2003 Dan Williams <drw@handhelds.org> | 4 | Copyright (c) 2003 Dan Williams <drw@handhelds.org> |
5 | =. | 5 | =. |
6 | .=l. | 6 | .=l. |
7 | .>+-= | 7 | .>+-= |
8 | _;:, .> :=|. This program is free software; you can | 8 | _;:, .> :=|. This program is free software; you can |
9 | .> <`_, > . <= redistribute it and/or modify it under | 9 | .> <`_, > . <= redistribute it and/or modify it under |
10 | :`=1 )Y*s>-.-- : the terms of the GNU Library General Public | 10 | :`=1 )Y*s>-.-- : the terms of the GNU Library General Public |
11 | .="- .-=="i, .._ License as published by the Free Software | 11 | .="- .-=="i, .._ License as published by the Free Software |
12 | - . .-<_> .<> Foundation; either version 2 of the License, | 12 | - . .-<_> .<> Foundation; either version 2 of the License, |
13 | ._= =} : or (at your option) any later version. | 13 | ._= =} : or (at your option) any later version. |
14 | .%`+i> _;_. | 14 | .%`+i> _;_. |
15 | .i_,=:_. -<s. This program is distributed in the hope that | 15 | .i_,=:_. -<s. This program is distributed in the hope that |
16 | + . -:. = it will be useful, but WITHOUT ANY WARRANTY; | 16 | + . -:. = it will be useful, but WITHOUT ANY WARRANTY; |
17 | : .. .:, . . . without even the implied warranty of | 17 | : .. .:, . . . without even the implied warranty of |
18 | =_ + =;=|` MERCHANTABILITY or FITNESS FOR A | 18 | =_ + =;=|` MERCHANTABILITY or FITNESS FOR A |
19 | _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU | 19 | _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU |
20 | ..}^=.= = ; Library General Public License for more | 20 | ..}^=.= = ; Library General Public License for more |
21 | ++= -. .` .: details. | 21 | ++= -. .` .: details. |
22 | : = ...= . :.=- | 22 | : = ...= . :.=- |
23 | -. .:....=;==+<; You should have received a copy of the GNU | 23 | -. .:....=;==+<; You should have received a copy of the GNU |
24 | -_. . . )=. = Library General Public License along with | 24 | -_. . . )=. = Library General Public License along with |
25 | -- :-=` this library; see the file COPYING.LIB. | 25 | -- :-=` this library; see the file COPYING.LIB. |
26 | If not, write to the Free Software Foundation, | 26 | If not, write to the Free Software Foundation, |
27 | Inc., 59 Temple Place - Suite 330, | 27 | Inc., 59 Temple Place - Suite 330, |
28 | Boston, MA 02111-1307, USA. | 28 | Boston, MA 02111-1307, USA. |
29 | 29 | ||
30 | */ | 30 | */ |
31 | 31 | ||
32 | #include "oipkg.h" | 32 | #include "oipkg.h" |
33 | 33 | ||
34 | #include <qdir.h> | 34 | #include <qdir.h> |
35 | #include <qfile.h> | 35 | #include <qfile.h> |
36 | #include <qtextstream.h> | 36 | #include <qtextstream.h> |
37 | 37 | ||
38 | #include <stdlib.h> | 38 | #include <stdlib.h> |
39 | 39 | ||
40 | const QString IPKG_CONF = "/etc/ipkg.conf"; // Fully-qualified name of Ipkg primary configuration file | 40 | const QString IPKG_CONF = "/etc/ipkg.conf"; // Fully-qualified name of Ipkg primary configuration file |
41 | const QString IPKG_CONF_DIR = "/etc/ipkg"; // Directory of secondary Ipkg configuration files | 41 | const QString IPKG_CONF_DIR = "/etc/ipkg"; // Directory of secondary Ipkg configuration files |
42 | const QString IPKG_PKG_PATH = "/usr/lib/ipkg/lists"; // Directory containing server package lists | 42 | const QString IPKG_PKG_PATH = "/usr/lib/ipkg/lists"; // Directory containing server package lists |
43 | const QString IPKG_STATUS_PATH = "usr/lib/ipkg/status"; // Destination status file location | 43 | const QString IPKG_STATUS_PATH = "usr/lib/ipkg/status"; // Destination status file location |
44 | 44 | ||
45 | OIpkg *oipkg; | 45 | OIpkg *oipkg; |
46 | 46 | ||
47 | // Ipkg callback functions | 47 | // Ipkg callback functions |
48 | 48 | ||
49 | int fsignalIpkgMessage( ipkg_conf_t *conf, message_level_t level, char *msg ) | 49 | int fsignalIpkgMessage( ipkg_conf_t *conf, message_level_t level, char *msg ) |
50 | { | 50 | { |
51 | if ( conf && ( conf->verbosity < level ) ) | 51 | if ( conf && ( conf->verbosity < level ) ) |
52 | return 0; | 52 | return 0; |
53 | else | 53 | else |
54 | oipkg->ipkgMessage( msg ); | 54 | oipkg->ipkgMessage( msg ); |
55 | |||
56 | return 0; | ||
55 | } | 57 | } |
56 | 58 | ||
57 | char *fIpkgResponse( char */*question*/ ) | 59 | char *fIpkgResponse( char */*question*/ ) |
58 | { | 60 | { |
59 | return 0x0; | 61 | return 0x0; |
60 | } | 62 | } |
61 | 63 | ||
62 | int fIpkgStatus( char */*name*/, int /*status*/, char *desc, void */*userdata*/ ) | 64 | int fIpkgStatus( char */*name*/, int /*status*/, char *desc, void */*userdata*/ ) |
63 | { | 65 | { |
64 | oipkg->ipkgStatus( desc ); | 66 | oipkg->ipkgStatus( desc ); |
65 | return 0; | 67 | return 0; |
66 | } | 68 | } |
67 | 69 | ||
68 | int fIpkgFiles( char */*name*/, char *desc, char */*version*/, pkg_state_status_t /*status*/, | 70 | int fIpkgFiles( char */*name*/, char *desc, char */*version*/, pkg_state_status_t /*status*/, |
69 | void */*userdata*/ ) | 71 | void */*userdata*/ ) |
70 | { | 72 | { |
71 | oipkg->ipkgList( desc ); | 73 | oipkg->ipkgList( desc ); |
72 | return 0; | 74 | return 0; |
73 | } | 75 | } |
74 | 76 | ||
75 | OIpkg::OIpkg( Config *config, QObject *parent, const char *name ) | 77 | OIpkg::OIpkg( Config *config, QObject *parent, const char *name ) |
76 | : QObject( parent, name ) | 78 | : QObject( parent, name ) |
77 | , m_config( config ) | 79 | , m_config( config ) |
78 | , m_confInfo( NULL ) | 80 | , m_confInfo( NULL ) |
79 | , m_ipkgExecOptions( 0 ) | 81 | , m_ipkgExecOptions( 0 ) |
80 | , m_ipkgExecVerbosity( 1 ) | 82 | , m_ipkgExecVerbosity( 1 ) |
81 | { | 83 | { |
82 | oipkg = this; | 84 | oipkg = this; |
83 | 85 | ||
84 | // Initialize libipkg | 86 | // Initialize libipkg |
85 | ipkg_init( &fsignalIpkgMessage, &fIpkgResponse, &m_ipkgArgs ); | 87 | ipkg_init( &fsignalIpkgMessage, &fIpkgResponse, &m_ipkgArgs ); |
86 | 88 | ||
@@ -324,144 +326,144 @@ OPackageList *OIpkg::installedPackages( const QString &destName, const QString & | |||
324 | status = QString::null; | 326 | status = QString::null; |
325 | 327 | ||
326 | newPackage = false; | 328 | newPackage = false; |
327 | } | 329 | } |
328 | } | 330 | } |
329 | 331 | ||
330 | // Update package data | 332 | // Update package data |
331 | if ( key == "Package" ) | 333 | if ( key == "Package" ) |
332 | name = value; | 334 | name = value; |
333 | else if ( key == "Version" ) | 335 | else if ( key == "Version" ) |
334 | version = value; | 336 | version = value; |
335 | else if ( key == "Status" ) | 337 | else if ( key == "Status" ) |
336 | status = value; | 338 | status = value; |
337 | else if ( key.isEmpty() && value.isEmpty() ) | 339 | else if ( key.isEmpty() && value.isEmpty() ) |
338 | newPackage = true; | 340 | newPackage = true; |
339 | 341 | ||
340 | // Skip past all description lines | 342 | // Skip past all description lines |
341 | if ( key == "Description" ) | 343 | if ( key == "Description" ) |
342 | { | 344 | { |
343 | line = t.readLine(); | 345 | line = t.readLine(); |
344 | while ( !line.isEmpty() && line.find( ':', 0 ) == -1 && !t.eof() ) | 346 | while ( !line.isEmpty() && line.find( ':', 0 ) == -1 && !t.eof() ) |
345 | line = t.readLine(); | 347 | line = t.readLine(); |
346 | } | 348 | } |
347 | else | 349 | else |
348 | line = t.readLine(); | 350 | line = t.readLine(); |
349 | } | 351 | } |
350 | 352 | ||
351 | f.close(); | 353 | f.close(); |
352 | 354 | ||
353 | return pl; | 355 | return pl; |
354 | } | 356 | } |
355 | 357 | ||
356 | bool OIpkg::executeCommand( OPackage::Command command, QStringList *parameters, const QString &destination, | 358 | bool OIpkg::executeCommand( OPackage::Command command, const QStringList ¶meters, const QString &destination, |
357 | const QObject *receiver, const char *slotOutput, bool rawOutput ) | 359 | const QObject *receiver, const char *slotOutput, bool rawOutput ) |
358 | { | 360 | { |
359 | if ( command == OPackage::NotDefined ) | 361 | if ( command == OPackage::NotDefined ) |
360 | return false; | 362 | return false; |
361 | 363 | ||
362 | // Set ipkg run-time options/arguments | 364 | // Set ipkg run-time options/arguments |
363 | m_ipkgArgs.force_depends = ( m_ipkgExecOptions & FORCE_DEPENDS ); | 365 | m_ipkgArgs.force_depends = ( m_ipkgExecOptions & FORCE_DEPENDS ); |
364 | m_ipkgArgs.force_reinstall = ( m_ipkgExecOptions & FORCE_REINSTALL ); | 366 | m_ipkgArgs.force_reinstall = ( m_ipkgExecOptions & FORCE_REINSTALL ); |
365 | // TODO m_ipkgArgs.force_remove = ( m_ipkgExecOptions & FORCE_REMOVE ); | 367 | // TODO m_ipkgArgs.force_remove = ( m_ipkgExecOptions & FORCE_REMOVE ); |
366 | m_ipkgArgs.force_overwrite = ( m_ipkgExecOptions & FORCE_OVERWRITE ); | 368 | m_ipkgArgs.force_overwrite = ( m_ipkgExecOptions & FORCE_OVERWRITE ); |
367 | m_ipkgArgs.verbosity = m_ipkgExecVerbosity; | 369 | m_ipkgArgs.verbosity = m_ipkgExecVerbosity; |
368 | if ( m_ipkgArgs.dest ) | 370 | if ( m_ipkgArgs.dest ) |
369 | free( m_ipkgArgs.dest ); | 371 | free( m_ipkgArgs.dest ); |
370 | if ( !destination.isNull() ) | 372 | if ( !destination.isNull() ) |
371 | { | 373 | { |
372 | int len = destination.length() + 1; | 374 | int len = destination.length() + 1; |
373 | m_ipkgArgs.dest = (char *)malloc( len ); | 375 | m_ipkgArgs.dest = (char *)malloc( len ); |
374 | strncpy( m_ipkgArgs.dest, destination, destination.length() ); | 376 | strncpy( m_ipkgArgs.dest, destination, destination.length() ); |
375 | m_ipkgArgs.dest[ len - 1 ] = '\0'; | 377 | m_ipkgArgs.dest[ len - 1 ] = '\0'; |
376 | } | 378 | } |
377 | else | 379 | else |
378 | m_ipkgArgs.dest = 0x0; | 380 | m_ipkgArgs.dest = 0x0; |
379 | 381 | ||
380 | // Connect output signal to widget | 382 | // Connect output signal to widget |
381 | 383 | ||
382 | if ( rawOutput ) | 384 | if ( rawOutput ) |
383 | { | 385 | { |
384 | // if ( slotOutput ) | 386 | // if ( slotOutput ) |
385 | // connect( this, SIGNAL(signalIpkgMessage(char*)), receiver, slotOutput ); | 387 | // connect( this, SIGNAL(signalIpkgMessage(char*)), receiver, slotOutput ); |
386 | } | 388 | } |
387 | else | 389 | else |
388 | { | 390 | { |
389 | // TODO - connect to local slot and parse output before emitting signalIpkgMessage | 391 | // TODO - connect to local slot and parse output before emitting signalIpkgMessage |
390 | } | 392 | } |
391 | 393 | ||
392 | switch( command ) | 394 | switch( command ) |
393 | { | 395 | { |
394 | case OPackage::Update : { | 396 | case OPackage::Update : { |
395 | connect( this, SIGNAL(signalIpkgMessage(char*)), receiver, slotOutput ); | 397 | connect( this, SIGNAL(signalIpkgMessage(char*)), receiver, slotOutput ); |
396 | ipkg_lists_update( &m_ipkgArgs ); | 398 | ipkg_lists_update( &m_ipkgArgs ); |
397 | }; | 399 | }; |
398 | break; | 400 | break; |
399 | case OPackage::Upgrade : { | 401 | case OPackage::Upgrade : { |
400 | connect( this, SIGNAL(signalIpkgMessage(char*)), receiver, slotOutput ); | 402 | connect( this, SIGNAL(signalIpkgMessage(char*)), receiver, slotOutput ); |
401 | ipkg_packages_upgrade( &m_ipkgArgs ); | 403 | ipkg_packages_upgrade( &m_ipkgArgs ); |
402 | }; | 404 | }; |
403 | break; | 405 | break; |
404 | case OPackage::Install : { | 406 | case OPackage::Install : { |
405 | connect( this, SIGNAL(signalIpkgMessage(char*)), receiver, slotOutput ); | 407 | connect( this, SIGNAL(signalIpkgMessage(char*)), receiver, slotOutput ); |
406 | for ( QStringList::Iterator it = parameters->begin(); it != parameters->end(); ++it ) | 408 | for ( QStringList::ConstIterator it = parameters.begin(); it != parameters.end(); ++it ) |
407 | { | 409 | { |
408 | ipkg_packages_install( &m_ipkgArgs, (*it) ); | 410 | ipkg_packages_install( &m_ipkgArgs, (*it) ); |
409 | } | 411 | } |
410 | }; | 412 | }; |
411 | break; | 413 | break; |
412 | case OPackage::Remove : { | 414 | case OPackage::Remove : { |
413 | connect( this, SIGNAL(signalIpkgMessage(char*)), receiver, slotOutput ); | 415 | connect( this, SIGNAL(signalIpkgMessage(char*)), receiver, slotOutput ); |
414 | for ( QStringList::Iterator it = parameters->begin(); it != parameters->end(); ++it ) | 416 | for ( QStringList::ConstIterator it = parameters.begin(); it != parameters.end(); ++it ) |
415 | { | 417 | { |
416 | ipkg_packages_remove( &m_ipkgArgs, (*it), true ); | 418 | ipkg_packages_remove( &m_ipkgArgs, (*it), true ); |
417 | } | 419 | } |
418 | }; | 420 | }; |
419 | break; | 421 | break; |
420 | case OPackage::Download : { | 422 | case OPackage::Download : { |
421 | connect( this, SIGNAL(signalIpkgMessage(char*)), receiver, slotOutput ); | 423 | connect( this, SIGNAL(signalIpkgMessage(char*)), receiver, slotOutput ); |
422 | for ( QStringList::Iterator it = parameters->begin(); it != parameters->end(); ++it ) | 424 | for ( QStringList::ConstIterator it = parameters.begin(); it != parameters.end(); ++it ) |
423 | { | 425 | { |
424 | ipkg_packages_download( &m_ipkgArgs, (*it) ); | 426 | ipkg_packages_download( &m_ipkgArgs, (*it) ); |
425 | } | 427 | } |
426 | }; | 428 | }; |
427 | break; | 429 | break; |
428 | case OPackage::Info : { | 430 | case OPackage::Info : { |
429 | connect( this, SIGNAL(signalIpkgStatus(char*)), receiver, slotOutput ); | 431 | connect( this, SIGNAL(signalIpkgStatus(char*)), receiver, slotOutput ); |
430 | ipkg_packages_info( &m_ipkgArgs, (*parameters->begin()), &fIpkgStatus, 0x0 ); | 432 | ipkg_packages_info( &m_ipkgArgs, (*parameters.begin()), &fIpkgStatus, 0x0 ); |
431 | }; | 433 | }; |
432 | break; | 434 | break; |
433 | case OPackage::Files : { | 435 | case OPackage::Files : { |
434 | connect( this, SIGNAL(signalIpkgList(char*)), receiver, slotOutput ); | 436 | connect( this, SIGNAL(signalIpkgList(char*)), receiver, slotOutput ); |
435 | ipkg_package_files( &m_ipkgArgs, (*parameters->begin()), &fIpkgFiles, 0x0 ); | 437 | ipkg_package_files( &m_ipkgArgs, (*parameters.begin()), &fIpkgFiles, 0x0 ); |
436 | }; | 438 | }; |
437 | break; | 439 | break; |
438 | default : break; | 440 | default : break; |
439 | }; | 441 | }; |
440 | 442 | ||
441 | return true; | 443 | return true; |
442 | } | 444 | } |
443 | 445 | ||
444 | void OIpkg::ipkgMessage( char *msg ) | 446 | void OIpkg::ipkgMessage( char *msg ) |
445 | { | 447 | { |
446 | emit signalIpkgMessage( msg ); | 448 | emit signalIpkgMessage( msg ); |
447 | } | 449 | } |
448 | 450 | ||
449 | void OIpkg::ipkgStatus( char *status ) | 451 | void OIpkg::ipkgStatus( char *status ) |
450 | { | 452 | { |
451 | emit signalIpkgStatus( status ); | 453 | emit signalIpkgStatus( status ); |
452 | } | 454 | } |
453 | 455 | ||
454 | void OIpkg::ipkgList( char *filelist ) | 456 | void OIpkg::ipkgList( char *filelist ) |
455 | { | 457 | { |
456 | emit signalIpkgList( filelist ); | 458 | emit signalIpkgList( filelist ); |
457 | } | 459 | } |
458 | 460 | ||
459 | void OIpkg::loadConfiguration() | 461 | void OIpkg::loadConfiguration() |
460 | { | 462 | { |
461 | if ( m_confInfo ) | 463 | if ( m_confInfo ) |
462 | delete m_confInfo; | 464 | delete m_confInfo; |
463 | 465 | ||
464 | // Load configuration item list | 466 | // Load configuration item list |
465 | m_confInfo = new OConfItemList(); | 467 | m_confInfo = new OConfItemList(); |
466 | 468 | ||
467 | QStringList confFiles; | 469 | QStringList confFiles; |
diff --git a/noncore/settings/packagemanager/oipkg.h b/noncore/settings/packagemanager/oipkg.h index b8a859a..3c96200 100644 --- a/noncore/settings/packagemanager/oipkg.h +++ b/noncore/settings/packagemanager/oipkg.h | |||
@@ -1,105 +1,108 @@ | |||
1 | /* | 1 | /* |
2 | This file is part of the Opie Project | 2 | This file is part of the Opie Project |
3 | 3 | ||
4 | Copyright (c) 2003 Dan Williams <drw@handhelds.org> | 4 | Copyright (c) 2003 Dan Williams <drw@handhelds.org> |
5 | =. | 5 | =. |
6 | .=l. | 6 | .=l. |
7 | .>+-= | 7 | .>+-= |
8 | _;:, .> :=|. This program is free software; you can | 8 | _;:, .> :=|. This program is free software; you can |
9 | .> <`_, > . <= redistribute it and/or modify it under | 9 | .> <`_, > . <= redistribute it and/or modify it under |
10 | :`=1 )Y*s>-.-- : the terms of the GNU Library General Public | 10 | :`=1 )Y*s>-.-- : the terms of the GNU Library General Public |
11 | .="- .-=="i, .._ License as published by the Free Software | 11 | .="- .-=="i, .._ License as published by the Free Software |
12 | - . .-<_> .<> Foundation; either version 2 of the License, | 12 | - . .-<_> .<> Foundation; either version 2 of the License, |
13 | ._= =} : or (at your option) any later version. | 13 | ._= =} : or (at your option) any later version. |
14 | .%`+i> _;_. | 14 | .%`+i> _;_. |
15 | .i_,=:_. -<s. This program is distributed in the hope that | 15 | .i_,=:_. -<s. This program is distributed in the hope that |
16 | + . -:. = it will be useful, but WITHOUT ANY WARRANTY; | 16 | + . -:. = it will be useful, but WITHOUT ANY WARRANTY; |
17 | : .. .:, . . . without even the implied warranty of | 17 | : .. .:, . . . without even the implied warranty of |
18 | =_ + =;=|` MERCHANTABILITY or FITNESS FOR A | 18 | =_ + =;=|` MERCHANTABILITY or FITNESS FOR A |
19 | _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU | 19 | _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU |
20 | ..}^=.= = ; Library General Public License for more | 20 | ..}^=.= = ; Library General Public License for more |
21 | ++= -. .` .: details. | 21 | ++= -. .` .: details. |
22 | : = ...= . :.=- | 22 | : = ...= . :.=- |
23 | -. .:....=;==+<; You should have received a copy of the GNU | 23 | -. .:....=;==+<; You should have received a copy of the GNU |
24 | -_. . . )=. = Library General Public License along with | 24 | -_. . . )=. = Library General Public License along with |
25 | -- :-=` this library; see the file COPYING.LIB. | 25 | -- :-=` this library; see the file COPYING.LIB. |
26 | If not, write to the Free Software Foundation, | 26 | If not, write to the Free Software Foundation, |
27 | Inc., 59 Temple Place - Suite 330, | 27 | Inc., 59 Temple Place - Suite 330, |
28 | Boston, MA 02111-1307, USA. | 28 | Boston, MA 02111-1307, USA. |
29 | 29 | ||
30 | */ | 30 | */ |
31 | 31 | ||
32 | #ifndef OIPKG_H | 32 | #ifndef OIPKG_H |
33 | #define OIPKG_H | 33 | #define OIPKG_H |
34 | 34 | ||
35 | #include "oconfitem.h" | 35 | #include "oconfitem.h" |
36 | #include "opackage.h" | 36 | #include "opackage.h" |
37 | 37 | ||
38 | #include <qpe/config.h> | 38 | #include <qpe/config.h> |
39 | 39 | ||
40 | #include <qobject.h> | 40 | #include <qobject.h> |
41 | 41 | ||
42 | extern "C" { | 42 | extern "C" { |
43 | #include <libipkg.h> | 43 | #include <libipkg.h> |
44 | }; | 44 | }; |
45 | 45 | ||
46 | // Ipkg execution options (m_ipkgExecOptions) | 46 | // Ipkg execution options (m_ipkgExecOptions) |
47 | #define FORCE_DEPENDS 0x0001 | 47 | #define FORCE_DEPENDS 0x0001 |
48 | #define FORCE_REMOVE 0x0002 | 48 | #define FORCE_REMOVE 0x0002 |
49 | #define FORCE_REINSTALL 0x0004 | 49 | #define FORCE_REINSTALL 0x0004 |
50 | #define FORCE_OVERWRITE 0x0008 | 50 | #define FORCE_OVERWRITE 0x0008 |
51 | 51 | ||
52 | class OConfItemList; | 52 | class OConfItemList; |
53 | 53 | ||
54 | class OIpkg : public QObject | 54 | class OIpkg : public QObject |
55 | { | 55 | { |
56 | Q_OBJECT | 56 | Q_OBJECT |
57 | 57 | ||
58 | public: | 58 | public: |
59 | OIpkg( Config *config = 0x0, QObject *parent = 0x0, const char *name = 0x0 ); | 59 | OIpkg( Config *config = 0x0, QObject *parent = 0x0, const char *name = 0x0 ); |
60 | ~OIpkg(); | 60 | ~OIpkg(); |
61 | 61 | ||
62 | OConfItemList *configItems(); | 62 | OConfItemList *configItems(); |
63 | OConfItemList *servers(); | 63 | OConfItemList *servers(); |
64 | OConfItemList *destinations(); | 64 | OConfItemList *destinations(); |
65 | OConfItemList *options(); | 65 | OConfItemList *options(); |
66 | 66 | ||
67 | int ipkgExecOptions() { return m_ipkgExecOptions; } | 67 | int ipkgExecOptions() { return m_ipkgExecOptions; } |
68 | int ipkgExecVerbosity() { return m_ipkgExecVerbosity; } | 68 | int ipkgExecVerbosity() { return m_ipkgExecVerbosity; } |
69 | 69 | ||
70 | void setConfigItems( OConfItemList *configList ); | 70 | void setConfigItems( OConfItemList *configList ); |
71 | void setIpkgExecOptions( int options ) { m_ipkgExecOptions = options; } | 71 | void setIpkgExecOptions( int options ) { m_ipkgExecOptions = options; } |
72 | void setIpkgExecVerbosity( int verbosity ) { m_ipkgExecVerbosity = verbosity; } | 72 | void setIpkgExecVerbosity( int verbosity ) { m_ipkgExecVerbosity = verbosity; } |
73 | 73 | ||
74 | void saveSettings(); | 74 | void saveSettings(); |
75 | 75 | ||
76 | OPackageList *availablePackages( const QString &server = QString::null ); | 76 | OPackageList *availablePackages( const QString &server = QString::null ); |
77 | OPackageList *installedPackages( const QString &destName = QString::null, | 77 | OPackageList *installedPackages( const QString &destName = QString::null, |
78 | const QString &destPath = QString::null ); | 78 | const QString &destPath = QString::null ); |
79 | 79 | ||
80 | bool executeCommand( OPackage::Command command = OPackage::NotDefined, QStringList *parameters = 0x0, | 80 | bool executeCommand( OPackage::Command command = OPackage::NotDefined, |
81 | const QString &destination = QString::null, const QObject *receiver = 0x0, | 81 | const QStringList ¶meters = QStringList(), |
82 | const char *slotOutput = 0x0, bool rawOutput = true ); | 82 | const QString &destination = QString::null, |
83 | const QObject *receiver = 0x0, | ||
84 | const char *slotOutput = 0x0, | ||
85 | bool rawOutput = true ); | ||
83 | void abortCommand(); | 86 | void abortCommand(); |
84 | 87 | ||
85 | void ipkgMessage( char *msg ); | 88 | void ipkgMessage( char *msg ); |
86 | void ipkgStatus( char *status ); | 89 | void ipkgStatus( char *status ); |
87 | void ipkgList( char *filelist ); | 90 | void ipkgList( char *filelist ); |
88 | 91 | ||
89 | private: | 92 | private: |
90 | Config *m_config; // Pointer to application configuration file | 93 | Config *m_config; // Pointer to application configuration file |
91 | args_t m_ipkgArgs; // libipkg configuration arguments | 94 | args_t m_ipkgArgs; // libipkg configuration arguments |
92 | OConfItemList *m_confInfo; // Contains info from all Ipkg configuration files | 95 | OConfItemList *m_confInfo; // Contains info from all Ipkg configuration files |
93 | int m_ipkgExecOptions; // Bit-mapped flags for Ipkg execution options | 96 | int m_ipkgExecOptions; // Bit-mapped flags for Ipkg execution options |
94 | int m_ipkgExecVerbosity; // Ipkg execution verbosity level | 97 | int m_ipkgExecVerbosity; // Ipkg execution verbosity level |
95 | 98 | ||
96 | void loadConfiguration(); | 99 | void loadConfiguration(); |
97 | OConfItemList *filterConfItems( OConfItem::Type typefilter = OConfItem::NotDefined ); | 100 | OConfItemList *filterConfItems( OConfItem::Type typefilter = OConfItem::NotDefined ); |
98 | 101 | ||
99 | signals: | 102 | signals: |
100 | void signalIpkgMessage( char *msg ); | 103 | void signalIpkgMessage( char *msg ); |
101 | void signalIpkgStatus( char *status ); | 104 | void signalIpkgStatus( char *status ); |
102 | void signalIpkgList( char *filelist ); | 105 | void signalIpkgList( char *filelist ); |
103 | }; | 106 | }; |
104 | 107 | ||
105 | #endif | 108 | #endif |
diff --git a/noncore/settings/packagemanager/opackagemanager.cpp b/noncore/settings/packagemanager/opackagemanager.cpp index f75d3b3..cbddfe7 100644 --- a/noncore/settings/packagemanager/opackagemanager.cpp +++ b/noncore/settings/packagemanager/opackagemanager.cpp | |||
@@ -1,57 +1,57 @@ | |||
1 | /* | 1 | /* |
2 | This file is part of the Opie Project | 2 | This file is part of the Opie Project |
3 | 3 | ||
4 | Copyright (c) 2003 Dan Williams <drw@handhelds.org> | 4 | Copyright (c) 2003 Dan Williams <drw@handhelds.org> |
5 | =. | 5 | =. |
6 | .=l. | 6 | .=l. |
7 | .>+-= | 7 | .>+-= |
8 | _;:, .> :=|. This program is free software; you can | 8 | _;:, .> :=|. This program is free software; you can |
9 | .> <`_, > . <= redistribute it and/or modify it under | 9 | .> <`_, > . <= redistribute it and/or modify it under |
10 | :`=1 )Y*s>-.-- : the terms of the GNU Library General Public | 10 | :`=1 )Y*s>-.-- : the terms of the GNU Library General Public |
11 | .="- .-=="i, .._ License as published by the Free Software | 11 | .="- .-=="i, .._ License as published by the Free Software |
12 | - . .-<_> .<> Foundation; either version 2 of the License, | 12 | - . .-<_> .<> Foundation; either version 2 of the License, |
13 | ._= =} : or (at your option) any later version. | 13 | ._= =} : or (at your option) any later version. |
14 | .%`+i> _;_. | 14 | .%`+i> _;_. |
15 | .i_,=:_. -<s. This program is distributed in the hope that | 15 | .i_,=:_. -<s. This program is distributed in the hope that |
16 | + . -:. = it will be useful, but WITHOUT ANY WARRANTY; | 16 | + . -:. = it will be useful, but WITHOUT ANY WARRANTY; |
17 | : .. .:, . . . without even the implied warranty of | 17 | : .. .:, . . . without even the implied warranty of |
18 | =_ + =;=|` MERCHANTABILITY or FITNESS FOR A | 18 | =_ + =;=|` MERCHANTABILITY or FITNESS FOR A |
19 | _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU | 19 | _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU |
20 | ..}^=.= = ; Library General Public License for more | 20 | ..}^=.= = ; Library General Public License for more |
21 | ++= -. .` .: details. | 21 | ++= -. .` .: details. |
22 | : = ...= . :.=- | 22 | : = ...= . :.=- |
23 | -. .:....=;==+<; You should have received a copy of the GNU | 23 | -. .:....=;==+<; You should have received a copy of the GNU |
24 | -_. . . )=. = Library General Public License along with | 24 | -_. . . )=. = Library General Public License along with |
25 | -- :-=` this library; see the file COPYING.LIB. | 25 | -- :-=` this library; see the file COPYING.LIB. |
26 | If not, write to the Free Software Foundation, | 26 | If not, write to the Free Software Foundation, |
27 | Inc., 59 Temple Place - Suite 330, | 27 | Inc., 59 Temple Place - Suite 330, |
28 | Boston, MA 02111-1307, USA. | 28 | Boston, MA 02111-1307, USA. |
29 | 29 | ||
30 | */ | 30 | */ |
31 | 31 | ||
32 | #include "opackagemanager.h" | 32 | #include "opackagemanager.h" |
33 | #include "oipkgconfigdlg.h" | 33 | #include "oipkgconfigdlg.h" |
34 | 34 | ||
35 | #include <qpe/qpeapplication.h> | 35 | #include <qpe/qpeapplication.h> |
36 | 36 | ||
37 | #include <ctype.h> | 37 | #include <ctype.h> |
38 | 38 | ||
39 | OPackageManager::OPackageManager( Config *config, QObject *parent, const char *name ) | 39 | OPackageManager::OPackageManager( Config *config, QObject *parent, const char *name ) |
40 | : QObject( parent, name ) | 40 | : QObject( parent, name ) |
41 | , m_config( config ) | 41 | , m_config( config ) |
42 | , m_ipkg( m_config, this ) | 42 | , m_ipkg( m_config, this ) |
43 | , m_packages( 9973 ) | 43 | , m_packages( 9973 ) |
44 | , m_categories() | 44 | , m_categories() |
45 | { | 45 | { |
46 | m_packages.setAutoDelete( true ); | 46 | m_packages.setAutoDelete( true ); |
47 | } | 47 | } |
48 | 48 | ||
49 | void OPackageManager::loadAvailablePackages() | 49 | void OPackageManager::loadAvailablePackages() |
50 | { | 50 | { |
51 | m_packages.clear(); | 51 | m_packages.clear(); |
52 | 52 | ||
53 | OConfItemList *serverList = m_ipkg.servers(); | 53 | OConfItemList *serverList = m_ipkg.servers(); |
54 | 54 | ||
55 | if ( serverList ) | 55 | if ( serverList ) |
56 | { | 56 | { |
57 | // Initialize status messaging | 57 | // Initialize status messaging |
@@ -198,98 +198,98 @@ OPackageList *OPackageManager::filterPackages( const QString &name,const QString | |||
198 | OPackageList *pl = new OPackageList; | 198 | OPackageList *pl = new OPackageList; |
199 | for ( QDictIterator<OPackage> packageIt( m_packages ); packageIt.current(); ++packageIt ) | 199 | for ( QDictIterator<OPackage> packageIt( m_packages ); packageIt.current(); ++packageIt ) |
200 | { | 200 | { |
201 | OPackage *package = packageIt.current(); | 201 | OPackage *package = packageIt.current(); |
202 | 202 | ||
203 | bool nameMatch = ( name.isNull() || package->name().contains( name ) ); | 203 | bool nameMatch = ( name.isNull() || package->name().contains( name ) ); |
204 | bool serverMatch = ( server.isNull() || package->source() == server ); | 204 | bool serverMatch = ( server.isNull() || package->source() == server ); |
205 | bool destinationMatch = ( destination.isNull() || package->destination() == destination ); | 205 | bool destinationMatch = ( destination.isNull() || package->destination() == destination ); |
206 | bool statusMatch; | 206 | bool statusMatch; |
207 | switch ( status ) | 207 | switch ( status ) |
208 | { | 208 | { |
209 | case All : statusMatch = true; | 209 | case All : statusMatch = true; |
210 | break; | 210 | break; |
211 | case NotInstalled : statusMatch = package->versionInstalled().isNull(); | 211 | case NotInstalled : statusMatch = package->versionInstalled().isNull(); |
212 | break; | 212 | break; |
213 | case Installed : statusMatch = !package->versionInstalled().isNull(); | 213 | case Installed : statusMatch = !package->versionInstalled().isNull(); |
214 | break; | 214 | break; |
215 | case Updated : statusMatch = ( !package->versionInstalled().isNull() && | 215 | case Updated : statusMatch = ( !package->versionInstalled().isNull() && |
216 | compareVersions( package->version(), package->versionInstalled() ) == 1 ); | 216 | compareVersions( package->version(), package->versionInstalled() ) == 1 ); |
217 | break; | 217 | break; |
218 | default : statusMatch = true; | 218 | default : statusMatch = true; |
219 | break; | 219 | break; |
220 | }; | 220 | }; |
221 | bool categoryMatch = ( category.isNull() || package->category() == category ); | 221 | bool categoryMatch = ( category.isNull() || package->category() == category ); |
222 | 222 | ||
223 | if ( nameMatch && serverMatch && destinationMatch && statusMatch && categoryMatch ) | 223 | if ( nameMatch && serverMatch && destinationMatch && statusMatch && categoryMatch ) |
224 | pl->append( packageIt.current() ); | 224 | pl->append( packageIt.current() ); |
225 | } | 225 | } |
226 | 226 | ||
227 | return pl; | 227 | return pl; |
228 | } | 228 | } |
229 | 229 | ||
230 | QStringList *OPackageManager::servers() | 230 | QStringList OPackageManager::servers() |
231 | { | 231 | { |
232 | QStringList *sl = new QStringList(); | 232 | QStringList sl; |
233 | 233 | ||
234 | OConfItemList *serverList = m_ipkg.servers(); | 234 | OConfItemList *serverList = m_ipkg.servers(); |
235 | if ( serverList ) | 235 | if ( serverList ) |
236 | { | 236 | { |
237 | for ( OConfItemListIterator serverIt( *serverList ); serverIt.current(); ++serverIt ) | 237 | for ( OConfItemListIterator serverIt( *serverList ); serverIt.current(); ++serverIt ) |
238 | { | 238 | { |
239 | OConfItem *server = serverIt.current(); | 239 | OConfItem *server = serverIt.current(); |
240 | 240 | ||
241 | // Add only active servers | 241 | // Add only active servers |
242 | if ( server->active() ) | 242 | if ( server->active() ) |
243 | *sl << server->name(); | 243 | sl << server->name(); |
244 | } | 244 | } |
245 | } | 245 | } |
246 | 246 | ||
247 | return sl; | 247 | return sl; |
248 | } | 248 | } |
249 | 249 | ||
250 | QStringList *OPackageManager::destinations() | 250 | QStringList OPackageManager::destinations() |
251 | { | 251 | { |
252 | QStringList *dl = new QStringList(); | 252 | QStringList dl; |
253 | 253 | ||
254 | OConfItemList *destList = m_ipkg.destinations(); | 254 | OConfItemList *destList = m_ipkg.destinations(); |
255 | if ( destList ) | 255 | if ( destList ) |
256 | { | 256 | { |
257 | for ( OConfItemListIterator destIt( *destList ); destIt.current(); ++destIt ) | 257 | for ( OConfItemListIterator destIt( *destList ); destIt.current(); ++destIt ) |
258 | { | 258 | { |
259 | OConfItem *destination = destIt.current(); | 259 | OConfItem *destination = destIt.current(); |
260 | 260 | ||
261 | // Add only active destinations | 261 | // Add only active destinations |
262 | if ( destination->active() ) | 262 | if ( destination->active() ) |
263 | *dl << destination->name(); | 263 | dl << destination->name(); |
264 | } | 264 | } |
265 | } | 265 | } |
266 | 266 | ||
267 | return dl; | 267 | return dl; |
268 | } | 268 | } |
269 | 269 | ||
270 | OConfItem *OPackageManager::findConfItem( OConfItem::Type type, const QString &name ) | 270 | OConfItem *OPackageManager::findConfItem( OConfItem::Type type, const QString &name ) |
271 | { | 271 | { |
272 | OConfItem *confItem = 0x0; | 272 | OConfItem *confItem = 0x0; |
273 | OConfItemList *confList = m_ipkg.configItems(); | 273 | OConfItemList *confList = m_ipkg.configItems(); |
274 | if ( confList ) | 274 | if ( confList ) |
275 | { | 275 | { |
276 | for ( OConfItemListIterator confIt( *confList ); confIt.current(); ++confIt ) | 276 | for ( OConfItemListIterator confIt( *confList ); confIt.current(); ++confIt ) |
277 | { | 277 | { |
278 | OConfItem *conf = confIt.current(); | 278 | OConfItem *conf = confIt.current(); |
279 | 279 | ||
280 | // Add only active confinations | 280 | // Add only active confinations |
281 | if ( conf->type() == type && conf->name() == name ) | 281 | if ( conf->type() == type && conf->name() == name ) |
282 | { | 282 | { |
283 | confItem = conf; | 283 | confItem = conf; |
284 | break; | 284 | break; |
285 | } | 285 | } |
286 | } | 286 | } |
287 | } | 287 | } |
288 | 288 | ||
289 | return confItem; | 289 | return confItem; |
290 | 290 | ||
291 | } | 291 | } |
292 | 292 | ||
293 | OPackage *OPackageManager::findPackage( const QString &name ) | 293 | OPackage *OPackageManager::findPackage( const QString &name ) |
294 | { | 294 | { |
295 | return m_packages[ name ]; | 295 | return m_packages[ name ]; |
@@ -301,65 +301,65 @@ int OPackageManager::compareVersions( const QString &ver1, const QString &ver2 ) | |||
301 | 301 | ||
302 | int epoch1, epoch2; | 302 | int epoch1, epoch2; |
303 | QString version1, revision1; | 303 | QString version1, revision1; |
304 | QString version2, revision2; | 304 | QString version2, revision2; |
305 | 305 | ||
306 | parseVersion( ver1, &epoch1, &version1, &revision1 ); | 306 | parseVersion( ver1, &epoch1, &version1, &revision1 ); |
307 | parseVersion( ver2, &epoch2, &version2, &revision2 ); | 307 | parseVersion( ver2, &epoch2, &version2, &revision2 ); |
308 | 308 | ||
309 | if ( epoch1 > epoch2 ) | 309 | if ( epoch1 > epoch2 ) |
310 | return 1; | 310 | return 1; |
311 | else if ( epoch1 < epoch2 ) | 311 | else if ( epoch1 < epoch2 ) |
312 | return -1; | 312 | return -1; |
313 | 313 | ||
314 | int r = verrevcmp( version1.latin1(), version2.latin1() ); | 314 | int r = verrevcmp( version1.latin1(), version2.latin1() ); |
315 | if (r) | 315 | if (r) |
316 | return r; | 316 | return r; |
317 | 317 | ||
318 | r = verrevcmp( revision1.latin1(), revision2.latin1() ); | 318 | r = verrevcmp( revision1.latin1(), revision2.latin1() ); |
319 | return r; | 319 | return r; |
320 | } | 320 | } |
321 | 321 | ||
322 | bool OPackageManager::configureDlg( bool installOptions ) | 322 | bool OPackageManager::configureDlg( bool installOptions ) |
323 | { | 323 | { |
324 | OIpkgConfigDlg dlg( &m_ipkg, installOptions, static_cast<QWidget *>(parent()) ); | 324 | OIpkgConfigDlg dlg( &m_ipkg, installOptions, static_cast<QWidget *>(parent()) ); |
325 | return ( QPEApplication::execDialog( &dlg ) == QDialog::Accepted ); | 325 | return ( QPEApplication::execDialog( &dlg ) == QDialog::Accepted ); |
326 | } | 326 | } |
327 | 327 | ||
328 | void OPackageManager::saveSettings() | 328 | void OPackageManager::saveSettings() |
329 | { | 329 | { |
330 | m_ipkg.saveSettings(); | 330 | m_ipkg.saveSettings(); |
331 | } | 331 | } |
332 | 332 | ||
333 | bool OPackageManager::executeCommand( OPackage::Command command, QStringList *packages, | 333 | bool OPackageManager::executeCommand( OPackage::Command command, const QStringList &packages, |
334 | const QString &destination, const QObject *receiver, | 334 | const QString &destination, const QObject *receiver, |
335 | const char *slotOutput, bool rawOutput ) | 335 | const char *slotOutput, bool rawOutput ) |
336 | { | 336 | { |
337 | return m_ipkg.executeCommand( command, packages, destination, receiver, slotOutput, rawOutput ); | 337 | return m_ipkg.executeCommand( command, packages, destination, receiver, slotOutput, rawOutput ); |
338 | } | 338 | } |
339 | 339 | ||
340 | void OPackageManager::parseVersion( const QString &verstr, int *epoch, QString *version, | 340 | void OPackageManager::parseVersion( const QString &verstr, int *epoch, QString *version, |
341 | QString *revision ) | 341 | QString *revision ) |
342 | { | 342 | { |
343 | *epoch = 0; | 343 | *epoch = 0; |
344 | *revision = QString::null; | 344 | *revision = QString::null; |
345 | 345 | ||
346 | // Version string is in the format "ee:vv-rv", where ee=epoch, vv=version, rv=revision | 346 | // Version string is in the format "ee:vv-rv", where ee=epoch, vv=version, rv=revision |
347 | 347 | ||
348 | // Get epoch | 348 | // Get epoch |
349 | int colonpos = verstr.find( ':' ); | 349 | int colonpos = verstr.find( ':' ); |
350 | if ( colonpos > -1 ) | 350 | if ( colonpos > -1 ) |
351 | { | 351 | { |
352 | *epoch = verstr.left( colonpos ).toInt(); | 352 | *epoch = verstr.left( colonpos ).toInt(); |
353 | } | 353 | } |
354 | 354 | ||
355 | // Get version and revision | 355 | // Get version and revision |
356 | int hyphenpos = verstr.find( '-', colonpos + 1 ); | 356 | int hyphenpos = verstr.find( '-', colonpos + 1 ); |
357 | int verlen = verstr.length(); | 357 | int verlen = verstr.length(); |
358 | if ( hyphenpos > -1 ) | 358 | if ( hyphenpos > -1 ) |
359 | { | 359 | { |
360 | *version = verstr.mid( colonpos + 1, hyphenpos - colonpos - 1 ); | 360 | *version = verstr.mid( colonpos + 1, hyphenpos - colonpos - 1 ); |
361 | *revision = verstr.right( verlen - hyphenpos - 1 ); | 361 | *revision = verstr.right( verlen - hyphenpos - 1 ); |
362 | } | 362 | } |
363 | else | 363 | else |
364 | { | 364 | { |
365 | *version = verstr.right( verlen - colonpos ); | 365 | *version = verstr.right( verlen - colonpos ); |
diff --git a/noncore/settings/packagemanager/opackagemanager.h b/noncore/settings/packagemanager/opackagemanager.h index 58e597b..bc394e8 100644 --- a/noncore/settings/packagemanager/opackagemanager.h +++ b/noncore/settings/packagemanager/opackagemanager.h | |||
@@ -1,92 +1,95 @@ | |||
1 | /* | 1 | /* |
2 | This file is part of the Opie Project | 2 | This file is part of the Opie Project |
3 | 3 | ||
4 | Copyright (c) 2003 Dan Williams <drw@handhelds.org> | 4 | Copyright (c) 2003 Dan Williams <drw@handhelds.org> |
5 | =. | 5 | =. |
6 | .=l. | 6 | .=l. |
7 | .>+-= | 7 | .>+-= |
8 | _;:, .> :=|. This program is free software; you can | 8 | _;:, .> :=|. This program is free software; you can |
9 | .> <`_, > . <= redistribute it and/or modify it under | 9 | .> <`_, > . <= redistribute it and/or modify it under |
10 | :`=1 )Y*s>-.-- : the terms of the GNU Library General Public | 10 | :`=1 )Y*s>-.-- : the terms of the GNU Library General Public |
11 | .="- .-=="i, .._ License as published by the Free Software | 11 | .="- .-=="i, .._ License as published by the Free Software |
12 | - . .-<_> .<> Foundation; either version 2 of the License, | 12 | - . .-<_> .<> Foundation; either version 2 of the License, |
13 | ._= =} : or (at your option) any later version. | 13 | ._= =} : or (at your option) any later version. |
14 | .%`+i> _;_. | 14 | .%`+i> _;_. |
15 | .i_,=:_. -<s. This program is distributed in the hope that | 15 | .i_,=:_. -<s. This program is distributed in the hope that |
16 | + . -:. = it will be useful, but WITHOUT ANY WARRANTY; | 16 | + . -:. = it will be useful, but WITHOUT ANY WARRANTY; |
17 | : .. .:, . . . without even the implied warranty of | 17 | : .. .:, . . . without even the implied warranty of |
18 | =_ + =;=|` MERCHANTABILITY or FITNESS FOR A | 18 | =_ + =;=|` MERCHANTABILITY or FITNESS FOR A |
19 | _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU | 19 | _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU |
20 | ..}^=.= = ; Library General Public License for more | 20 | ..}^=.= = ; Library General Public License for more |
21 | ++= -. .` .: details. | 21 | ++= -. .` .: details. |
22 | : = ...= . :.=- | 22 | : = ...= . :.=- |
23 | -. .:....=;==+<; You should have received a copy of the GNU | 23 | -. .:....=;==+<; You should have received a copy of the GNU |
24 | -_. . . )=. = Library General Public License along with | 24 | -_. . . )=. = Library General Public License along with |
25 | -- :-=` this library; see the file COPYING.LIB. | 25 | -- :-=` this library; see the file COPYING.LIB. |
26 | If not, write to the Free Software Foundation, | 26 | If not, write to the Free Software Foundation, |
27 | Inc., 59 Temple Place - Suite 330, | 27 | Inc., 59 Temple Place - Suite 330, |
28 | Boston, MA 02111-1307, USA. | 28 | Boston, MA 02111-1307, USA. |
29 | 29 | ||
30 | */ | 30 | */ |
31 | 31 | ||
32 | #ifndef OPACKAGEMANAGER_H | 32 | #ifndef OPACKAGEMANAGER_H |
33 | #define OPACKAGEMANAGER_H | 33 | #define OPACKAGEMANAGER_H |
34 | 34 | ||
35 | #include "oipkg.h" | 35 | #include "oipkg.h" |
36 | 36 | ||
37 | #include <qpe/config.h> | 37 | #include <qpe/config.h> |
38 | 38 | ||
39 | #include <qdict.h> | 39 | #include <qdict.h> |
40 | #include <qobject.h> | 40 | #include <qobject.h> |
41 | #include <qstringlist.h> | 41 | #include <qstringlist.h> |
42 | 42 | ||
43 | class OPackageManager : public QObject | 43 | class OPackageManager : public QObject |
44 | { | 44 | { |
45 | Q_OBJECT | 45 | Q_OBJECT |
46 | 46 | ||
47 | public: | 47 | public: |
48 | OPackageManager( Config *config = 0x0, QObject *parent = 0x0, const char *name = 0x0 ); | 48 | OPackageManager( Config *config = 0x0, QObject *parent = 0x0, const char *name = 0x0 ); |
49 | 49 | ||
50 | void loadAvailablePackages(); | 50 | void loadAvailablePackages(); |
51 | void loadInstalledPackages(); | 51 | void loadInstalledPackages(); |
52 | 52 | ||
53 | enum Status { All, NotInstalled, Installed, Updated, NotDefined }; | 53 | enum Status { All, NotInstalled, Installed, Updated, NotDefined }; |
54 | 54 | ||
55 | OPackageList *packages(); | 55 | OPackageList *packages(); |
56 | OPackageList *filterPackages( const QString &name = 0x0,const QString &server = 0x0, | 56 | OPackageList *filterPackages( const QString &name = QString::null, |
57 | const QString &destination = 0x0, Status status = NotDefined, | 57 | const QString &server = QString::null, |
58 | const QString &category = 0x0 ); | 58 | const QString &destination = QString::null, |
59 | Status status = NotDefined, | ||
60 | const QString &category = QString::null ); | ||
59 | 61 | ||
60 | const QStringList &categories() { return m_categories; } | 62 | const QStringList &categories() { return m_categories; } |
61 | QStringList *servers(); | 63 | QStringList servers(); |
62 | QStringList *destinations(); | 64 | QStringList destinations(); |
63 | 65 | ||
64 | int compareVersions( const QString &version1, const QString &version2 ); | 66 | int compareVersions( const QString &version1, const QString &version2 ); |
65 | 67 | ||
66 | OConfItem *findConfItem( OConfItem::Type type = OConfItem::NotDefined, | 68 | OConfItem *findConfItem( OConfItem::Type type = OConfItem::NotDefined, |
67 | const QString &name = QString::null ); | 69 | const QString &name = QString::null ); |
68 | OPackage *findPackage( const QString &name = QString::null ); | 70 | OPackage *findPackage( const QString &name = QString::null ); |
69 | 71 | ||
70 | bool configureDlg( bool installOptions = false ); | 72 | bool configureDlg( bool installOptions = false ); |
71 | void saveSettings(); | 73 | void saveSettings(); |
72 | 74 | ||
73 | bool executeCommand( OPackage::Command command = OPackage::NotDefined, QStringList *parameters = 0x0, | 75 | bool executeCommand( OPackage::Command command = OPackage::NotDefined, |
76 | const QStringList ¶meters = QStringList(), | ||
74 | const QString &destination = QString::null, const QObject *receiver = 0x0, | 77 | const QString &destination = QString::null, const QObject *receiver = 0x0, |
75 | const char *slotOutput = 0x0, bool rawOutput = true ); | 78 | const char *slotOutput = 0x0, bool rawOutput = true ); |
76 | 79 | ||
77 | private: | 80 | private: |
78 | Config *m_config; // Pointer to application configuration file | 81 | Config *m_config; // Pointer to application configuration file |
79 | OIpkg m_ipkg; // OIpkg object to retrieve package/configuration information | 82 | OIpkg m_ipkg; // OIpkg object to retrieve package/configuration information |
80 | QDict<OPackage> m_packages; // Global list of available packages | 83 | QDict<OPackage> m_packages; // Global list of available packages |
81 | QStringList m_categories; // List of all categories | 84 | QStringList m_categories; // List of all categories |
82 | 85 | ||
83 | void parseVersion( const QString &verstr, int *epoch, QString *version, QString *revision ); | 86 | void parseVersion( const QString &verstr, int *epoch, QString *version, QString *revision ); |
84 | int verrevcmp( const char *val, const char *ref ); | 87 | int verrevcmp( const char *val, const char *ref ); |
85 | 88 | ||
86 | signals: | 89 | signals: |
87 | void initStatus( int numSteps ); | 90 | void initStatus( int numSteps ); |
88 | void statusText( const QString &status ); | 91 | void statusText( const QString &status ); |
89 | void statusBar( int currStep ); | 92 | void statusBar( int currStep ); |
90 | }; | 93 | }; |
91 | 94 | ||
92 | #endif | 95 | #endif |
diff --git a/noncore/settings/packagemanager/packageinfodlg.cpp b/noncore/settings/packagemanager/packageinfodlg.cpp index d27eacb..c5924fd 100644 --- a/noncore/settings/packagemanager/packageinfodlg.cpp +++ b/noncore/settings/packagemanager/packageinfodlg.cpp | |||
@@ -1,144 +1,144 @@ | |||
1 | /* | 1 | /* |
2 | This file is part of the OPIE Project | 2 | This file is part of the OPIE Project |
3 | 3 | ||
4 | =. Copyright (c) 2003 Dan Williams <drw@handhelds.org> | 4 | =. Copyright (c) 2003 Dan Williams <drw@handhelds.org> |
5 | .=l. | 5 | .=l. |
6 | .>+-= | 6 | .>+-= |
7 | _;:, .> :=|. This file is free software; you can | 7 | _;:, .> :=|. This file is free software; you can |
8 | .> <`_, > . <= redistribute it and/or modify it under | 8 | .> <`_, > . <= redistribute it and/or modify it under |
9 | :`=1 )Y*s>-.-- : the terms of the GNU General Public | 9 | :`=1 )Y*s>-.-- : the terms of the GNU General Public |
10 | .="- .-=="i, .._ License as published by the Free Software | 10 | .="- .-=="i, .._ License as published by the Free Software |
11 | - . .-<_> .<> Foundation; either version 2 of the License, | 11 | - . .-<_> .<> Foundation; either version 2 of the License, |
12 | ._= =} : or (at your option) any later version. | 12 | ._= =} : or (at your option) any later version. |
13 | .%`+i> _;_. | 13 | .%`+i> _;_. |
14 | .i_,=:_. -<s. This file is distributed in the hope that | 14 | .i_,=:_. -<s. This file is distributed in the hope that |
15 | + . -:. = it will be useful, but WITHOUT ANY WARRANTY; | 15 | + . -:. = it will be useful, but WITHOUT ANY WARRANTY; |
16 | : .. .:, . . . without even the implied warranty of | 16 | : .. .:, . . . without even the implied warranty of |
17 | =_ + =;=|` MERCHANTABILITY or FITNESS FOR A | 17 | =_ + =;=|` MERCHANTABILITY or FITNESS FOR A |
18 | _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU General | 18 | _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU General |
19 | ..}^=.= = ; Public License for more details. | 19 | ..}^=.= = ; Public License for more details. |
20 | ++= -. .` .: | 20 | ++= -. .` .: |
21 | : = ...= . :.=- You should have received a copy of the GNU | 21 | : = ...= . :.=- You should have received a copy of the GNU |
22 | -. .:....=;==+<; General Public License along with this file; | 22 | -. .:....=;==+<; General Public License along with this file; |
23 | -_. . . )=. = see the file COPYING. If not, write to the | 23 | -_. . . )=. = see the file COPYING. If not, write to the |
24 | -- :-=` Free Software Foundation, Inc., | 24 | -- :-=` Free Software Foundation, Inc., |
25 | 59 Temple Place - Suite 330, | 25 | 59 Temple Place - Suite 330, |
26 | Boston, MA 02111-1307, USA. | 26 | Boston, MA 02111-1307, USA. |
27 | 27 | ||
28 | */ | 28 | */ |
29 | 29 | ||
30 | #include "packageinfodlg.h" | 30 | #include "packageinfodlg.h" |
31 | #include "opackage.h" | 31 | #include "opackage.h" |
32 | #include "opackagemanager.h" | 32 | #include "opackagemanager.h" |
33 | 33 | ||
34 | #include <opie2/otabwidget.h> | 34 | #include <opie2/otabwidget.h> |
35 | 35 | ||
36 | #include <qpe/resource.h> | 36 | #include <qpe/resource.h> |
37 | 37 | ||
38 | #include <qlayout.h> | 38 | #include <qlayout.h> |
39 | #include <qpushbutton.h> | 39 | #include <qpushbutton.h> |
40 | #include <qwhatsthis.h> | 40 | #include <qwhatsthis.h> |
41 | 41 | ||
42 | PackageInfoDlg::PackageInfoDlg( QWidget *parent, OPackageManager *pm, const QString &package ) | 42 | PackageInfoDlg::PackageInfoDlg( QWidget *parent, OPackageManager *pm, const QString &package ) |
43 | : QWidget( 0x0 ) | 43 | : QWidget( 0x0 ) |
44 | , m_packman( pm ) | 44 | , m_packman( pm ) |
45 | , m_information( this ) | 45 | , m_information( this ) |
46 | , m_files( this ) | 46 | , m_files( this ) |
47 | { | 47 | { |
48 | // Initialize UI | 48 | // Initialize UI |
49 | if ( parent ) | 49 | if ( parent ) |
50 | parent->setCaption( package ); | 50 | parent->setCaption( package ); |
51 | 51 | ||
52 | QVBoxLayout *layout = new QVBoxLayout( this, 4, 2 ); | 52 | QVBoxLayout *layout = new QVBoxLayout( this, 4, 2 ); |
53 | 53 | ||
54 | Opie::Ui::OTabWidget *tabWidget = new Opie::Ui::OTabWidget( this ); | 54 | Opie::Ui::OTabWidget *tabWidget = new Opie::Ui::OTabWidget( this ); |
55 | layout->addWidget( tabWidget ); | 55 | layout->addWidget( tabWidget ); |
56 | 56 | ||
57 | // Information tab | 57 | // Information tab |
58 | QWhatsThis::add( &m_information, tr( "This area contains information about the package." ) ); | 58 | QWhatsThis::add( &m_information, tr( "This area contains information about the package." ) ); |
59 | m_information.reparent( tabWidget, QPoint( 0, 0 ) ); | 59 | m_information.reparent( tabWidget, QPoint( 0, 0 ) ); |
60 | m_information.setReadOnly( true ); | 60 | m_information.setReadOnly( true ); |
61 | tabWidget->addTab( &m_information, "UtilsIcon", tr( "Information" ) ); | 61 | tabWidget->addTab( &m_information, "UtilsIcon", tr( "Information" ) ); |
62 | 62 | ||
63 | // Retrive package information | 63 | // Retrive package information |
64 | m_package = m_packman->findPackage( package ); | 64 | m_package = m_packman->findPackage( package ); |
65 | if ( !m_package ) | 65 | if ( !m_package ) |
66 | { | 66 | { |
67 | m_information.setText( tr( "Unable to retrieve package information." ) ); | 67 | m_information.setText( tr( "Unable to retrieve package information." ) ); |
68 | return; | 68 | return; |
69 | } | 69 | } |
70 | 70 | ||
71 | // Display package information | 71 | // Display package information |
72 | if ( !m_package->information().isNull() ) | 72 | if ( !m_package->information().isNull() ) |
73 | m_information.setText( m_package->information() ); | 73 | m_information.setText( m_package->information() ); |
74 | else | 74 | else |
75 | { | 75 | { |
76 | // Package information is not cached, retrieve it | 76 | // Package information is not cached, retrieve it |
77 | QStringList list( package ); | 77 | QStringList list( package ); |
78 | m_packman->executeCommand( OPackage::Info, &list, QString::null, this, SLOT(slotInfo(char*)), true ); | 78 | m_packman->executeCommand( OPackage::Info, list, QString::null, this, SLOT(slotInfo(char*)), true ); |
79 | } | 79 | } |
80 | 80 | ||
81 | // Files tab (display only if package is installed) | 81 | // Files tab (display only if package is installed) |
82 | if ( !m_package->versionInstalled().isNull() ) | 82 | if ( !m_package->versionInstalled().isNull() ) |
83 | { | 83 | { |
84 | QWidget *filesWidget = new QWidget( tabWidget ); | 84 | QWidget *filesWidget = new QWidget( tabWidget ); |
85 | QVBoxLayout *filesLayout = new QVBoxLayout( filesWidget, 2, 2 ); | 85 | QVBoxLayout *filesLayout = new QVBoxLayout( filesWidget, 2, 2 ); |
86 | QWhatsThis::add( &m_files, tr( "This area contains a list of files contained in this package." ) ); | 86 | QWhatsThis::add( &m_files, tr( "This area contains a list of files contained in this package." ) ); |
87 | m_files.reparent( filesWidget, QPoint( 0, 0 ) ); | 87 | m_files.reparent( filesWidget, QPoint( 0, 0 ) ); |
88 | m_files.setReadOnly( true ); | 88 | m_files.setReadOnly( true ); |
89 | filesLayout->addWidget( &m_files ); | 89 | filesLayout->addWidget( &m_files ); |
90 | 90 | ||
91 | QPushButton *btn = new QPushButton( Resource::loadPixmap( "packagemanager/apply" ), | 91 | QPushButton *btn = new QPushButton( Resource::loadPixmap( "packagemanager/apply" ), |
92 | tr( "Retrieve file list" ), filesWidget ); | 92 | tr( "Retrieve file list" ), filesWidget ); |
93 | QWhatsThis::add( btn, tr( "Tap here to retrieve list of files contained in this package." ) ); | 93 | QWhatsThis::add( btn, tr( "Tap here to retrieve list of files contained in this package." ) ); |
94 | filesLayout->addWidget( btn ); | 94 | filesLayout->addWidget( btn ); |
95 | connect( btn, SIGNAL(clicked()), this, SLOT(slotBtnFileScan()) ); | 95 | connect( btn, SIGNAL(clicked()), this, SLOT(slotBtnFileScan()) ); |
96 | tabWidget->addTab( filesWidget, "binary", tr( "File list" ) ); | 96 | tabWidget->addTab( filesWidget, "binary", tr( "File list" ) ); |
97 | 97 | ||
98 | tabWidget->setCurrentTab( tr( "Information" ) ); | 98 | tabWidget->setCurrentTab( tr( "Information" ) ); |
99 | 99 | ||
100 | // If file list is already cached, display | 100 | // If file list is already cached, display |
101 | if ( !m_package->files().isNull() ) | 101 | if ( !m_package->files().isNull() ) |
102 | m_files.setText( m_package->files() ); | 102 | m_files.setText( m_package->files() ); |
103 | } | 103 | } |
104 | else | 104 | else |
105 | m_files.hide(); | 105 | m_files.hide(); |
106 | } | 106 | } |
107 | 107 | ||
108 | PackageInfoDlg::~PackageInfoDlg() | 108 | PackageInfoDlg::~PackageInfoDlg() |
109 | { | 109 | { |
110 | if ( !m_package ) | 110 | if ( !m_package ) |
111 | return; | 111 | return; |
112 | 112 | ||
113 | // Cache package information | 113 | // Cache package information |
114 | if ( !m_information.text().isNull() ) | 114 | if ( !m_information.text().isNull() ) |
115 | m_package->setInformation( m_information.text() ); | 115 | m_package->setInformation( m_information.text() ); |
116 | 116 | ||
117 | // Cache package file list | 117 | // Cache package file list |
118 | if ( !m_files.text().isNull() ) | 118 | if ( !m_files.text().isNull() ) |
119 | m_package->setFiles( m_files.text() ); | 119 | m_package->setFiles( m_files.text() ); |
120 | } | 120 | } |
121 | 121 | ||
122 | void PackageInfoDlg::slotBtnFileScan() | 122 | void PackageInfoDlg::slotBtnFileScan() |
123 | { | 123 | { |
124 | m_files.clear(); | 124 | m_files.clear(); |
125 | 125 | ||
126 | QStringList list( m_package->name() ); | 126 | QStringList list( m_package->name() ); |
127 | m_packman->executeCommand( OPackage::Files, &list, QString::null, this, SLOT(slotFiles(char*)), true ); | 127 | m_packman->executeCommand( OPackage::Files, list, QString::null, this, SLOT(slotFiles(char*)), true ); |
128 | } | 128 | } |
129 | 129 | ||
130 | void PackageInfoDlg::slotInfo( char *info ) | 130 | void PackageInfoDlg::slotInfo( char *info ) |
131 | { | 131 | { |
132 | m_information.append( info ); | 132 | m_information.append( info ); |
133 | } | 133 | } |
134 | 134 | ||
135 | void PackageInfoDlg::slotFiles( char *filelist ) | 135 | void PackageInfoDlg::slotFiles( char *filelist ) |
136 | { | 136 | { |
137 | QString str = filelist; | 137 | QString str = filelist; |
138 | 138 | ||
139 | // Skip first line of output ("Package xxx is installed...") | 139 | // Skip first line of output ("Package xxx is installed...") |
140 | if ( str.startsWith( "Package " ) ) | 140 | if ( str.startsWith( "Package " ) ) |
141 | str = str.right( str.length() - str.find( '\n' ) - 1 ); | 141 | str = str.right( str.length() - str.find( '\n' ) - 1 ); |
142 | 142 | ||
143 | m_files.append( str ); | 143 | m_files.append( str ); |
144 | } | 144 | } |
diff --git a/noncore/settings/packagemanager/promptdlg.h b/noncore/settings/packagemanager/promptdlg.h index 790ff4d..f7bc0c0 100644 --- a/noncore/settings/packagemanager/promptdlg.h +++ b/noncore/settings/packagemanager/promptdlg.h | |||
@@ -1,57 +1,59 @@ | |||
1 | /* | 1 | /* |
2 | This file is part of the OPIE Project | 2 | This file is part of the OPIE Project |
3 | 3 | ||
4 | =. Copyright (c) 2003 Dan Williams <drw@handhelds.org> | 4 | =. Copyright (c) 2003 Dan Williams <drw@handhelds.org> |
5 | .=l. | 5 | .=l. |
6 | .>+-= | 6 | .>+-= |
7 | _;:, .> :=|. This file is free software; you can | 7 | _;:, .> :=|. This file is free software; you can |
8 | .> <`_, > . <= redistribute it and/or modify it under | 8 | .> <`_, > . <= redistribute it and/or modify it under |
9 | :`=1 )Y*s>-.-- : the terms of the GNU General Public | 9 | :`=1 )Y*s>-.-- : the terms of the GNU General Public |
10 | .="- .-=="i, .._ License as published by the Free Software | 10 | .="- .-=="i, .._ License as published by the Free Software |
11 | - . .-<_> .<> Foundation; either version 2 of the License, | 11 | - . .-<_> .<> Foundation; either version 2 of the License, |
12 | ._= =} : or (at your option) any later version. | 12 | ._= =} : or (at your option) any later version. |
13 | .%`+i> _;_. | 13 | .%`+i> _;_. |
14 | .i_,=:_. -<s. This file is distributed in the hope that | 14 | .i_,=:_. -<s. This file is distributed in the hope that |
15 | + . -:. = it will be useful, but WITHOUT ANY WARRANTY; | 15 | + . -:. = it will be useful, but WITHOUT ANY WARRANTY; |
16 | : .. .:, . . . without even the implied warranty of | 16 | : .. .:, . . . without even the implied warranty of |
17 | =_ + =;=|` MERCHANTABILITY or FITNESS FOR A | 17 | =_ + =;=|` MERCHANTABILITY or FITNESS FOR A |
18 | _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU General | 18 | _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU General |
19 | ..}^=.= = ; Public License for more details. | 19 | ..}^=.= = ; Public License for more details. |
20 | ++= -. .` .: | 20 | ++= -. .` .: |
21 | : = ...= . :.=- You should have received a copy of the GNU | 21 | : = ...= . :.=- You should have received a copy of the GNU |
22 | -. .:....=;==+<; General Public License along with this file; | 22 | -. .:....=;==+<; General Public License along with this file; |
23 | -_. . . )=. = see the file COPYING. If not, write to the | 23 | -_. . . )=. = see the file COPYING. If not, write to the |
24 | -- :-=` Free Software Foundation, Inc., | 24 | -- :-=` Free Software Foundation, Inc., |
25 | 59 Temple Place - Suite 330, | 25 | 59 Temple Place - Suite 330, |
26 | Boston, MA 02111-1307, USA. | 26 | Boston, MA 02111-1307, USA. |
27 | 27 | ||
28 | */ | 28 | */ |
29 | 29 | ||
30 | #ifndef PROMPTDLG_H | 30 | #ifndef PROMPTDLG_H |
31 | #define PROMPTDLG_H | 31 | #define PROMPTDLG_H |
32 | 32 | ||
33 | #include <qwidget.h> | 33 | #include <qwidget.h> |
34 | 34 | ||
35 | class PromptDlg : public QWidget | 35 | class PromptDlg : public QWidget |
36 | { | 36 | { |
37 | Q_OBJECT | 37 | Q_OBJECT |
38 | 38 | ||
39 | public: | 39 | public: |
40 | PromptDlg( const QString &caption = 0x0, const QString &text = 0x0, const QString &btn1 = 0x0, | 40 | PromptDlg( const QString &caption = QString::null, const QString &text = QString::null, |
41 | const QString &btn2 = 0x0, QWidget *parent = 0x0 ); | 41 | const QString &btn1 = QString::null, const QString &btn2 = QString::null, |
42 | QWidget *parent = 0x0 ); | ||
42 | 43 | ||
43 | int display(); | 44 | int display(); |
44 | int btnPressed() { return m_btnClicked; } | 45 | int btnPressed() { return m_btnClicked; } |
45 | 46 | ||
46 | static int ask( const QString &caption = 0x0, const QString &text = 0x0, const QString &btn1 = 0x0, | 47 | static int ask( const QString &caption = QString::null, const QString &text = QString::null, |
47 | const QString &btn2 = 0x0, QWidget *parent = 0x0 ); | 48 | const QString &btn1 = QString::null, const QString &btn2 = QString::null, |
49 | QWidget *parent = 0x0 ); | ||
48 | 50 | ||
49 | private: | 51 | private: |
50 | int m_btnClicked; // Indicator for which button was pressed | 52 | int m_btnClicked; // Indicator for which button was pressed |
51 | 53 | ||
52 | private slots: | 54 | private slots: |
53 | void slotBtn1Clicked(); | 55 | void slotBtn1Clicked(); |
54 | void slotBtn2Clicked(); | 56 | void slotBtn2Clicked(); |
55 | }; | 57 | }; |
56 | 58 | ||
57 | #endif | 59 | #endif |