summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/settings/packagemanager/installdlg.cpp34
-rw-r--r--noncore/settings/packagemanager/oipkgconfigdlg.cpp24
2 files changed, 39 insertions, 19 deletions
diff --git a/noncore/settings/packagemanager/installdlg.cpp b/noncore/settings/packagemanager/installdlg.cpp
index 7dea591..36851b0 100644
--- a/noncore/settings/packagemanager/installdlg.cpp
+++ b/noncore/settings/packagemanager/installdlg.cpp
@@ -37,132 +37,135 @@ _;:, .> :=|. This file is free software; you can
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
52InstallDlg::InstallDlg( QWidget *parent, OPackageManager *pm, const QString &caption, 52InstallDlg::InstallDlg( QWidget *parent, OPackageManager *pm, const QString &caption,
53 OPackage::Command command1, const QStringList &packages1, 53 OPackage::Command command1, const QStringList &packages1,
54 OPackage::Command command2, const QStringList &packages2, 54 OPackage::Command command2, const QStringList &packages2,
55 OPackage::Command command3, const QStringList &packages3 ) 55 OPackage::Command command3, const QStringList &packages3 )
56 : QWidget( 0l ) 56 : QWidget( 0l )
57 , m_packman( pm ) 57 , m_packman( pm )
58 , m_installFound( false ) 58 , m_installFound( false )
59 , m_numCommands( 0 ) 59 , m_numCommands( 0 )
60 , m_currCommand( 0 ) 60 , m_currCommand( 0 )
61 , m_destItem( 0l ) 61 , m_destItem( 0l )
62{ 62{
63 // Save command/package list information 63 // Save command/package list information
64 if ( command1 != OPackage::NotDefined ) 64 if ( command1 != OPackage::NotDefined )
65 { 65 {
66 m_command[ m_numCommands ] = command1; 66 m_command[ m_numCommands ] = command1;
67 m_packages[ m_numCommands ] = packages1; 67 m_packages[ m_numCommands ] = packages1;
68 ++m_numCommands; 68 ++m_numCommands;
69 69
70 if ( command1 == OPackage::Install ) 70 if ( command1 == OPackage::Install )
71 m_installFound = true; 71 m_installFound = true;
72 } 72 }
73 if ( command2 != OPackage::NotDefined ) 73 if ( command2 != OPackage::NotDefined )
74 { 74 {
75 m_command[ m_numCommands ] = command2; 75 m_command[ m_numCommands ] = command2;
76 m_packages[ m_numCommands ] = packages2; 76 m_packages[ m_numCommands ] = packages2;
77 ++m_numCommands; 77 ++m_numCommands;
78 78
79 if ( command2 == OPackage::Install ) 79 if ( command2 == OPackage::Install )
80 m_installFound = true; 80 m_installFound = true;
81 } 81 }
82 if ( command3 != OPackage::NotDefined ) 82 if ( command3 != OPackage::NotDefined )
83 { 83 {
84 m_command[ m_numCommands ] = command3; 84 m_command[ m_numCommands ] = command3;
85 m_packages[ m_numCommands ] = packages3; 85 m_packages[ m_numCommands ] = packages3;
86 ++m_numCommands; 86 ++m_numCommands;
87 87
88 if ( command3 == OPackage::Install ) 88 if ( command3 == OPackage::Install )
89 m_installFound = true; 89 m_installFound = true;
90 } 90 }
91 91
92 // Initialize UI 92 // Initialize UI
93 if ( parent ) 93 if ( parent )
94 parent->setCaption( caption ); 94 parent->setCaption( caption );
95 95
96 QGridLayout *layout = new QGridLayout( this, 4, 2, 2, 4 ); 96 QGridLayout *layout = new QGridLayout( this, 4, 2, 2, 4 );
97 97
98 if ( m_installFound ) 98 if ( m_installFound )
99 { 99 {
100 QLabel *label = new QLabel( tr( "Destination" ), this ); 100 QLabel *label = new QLabel( tr( "Destination" ), this );
101 layout->addWidget( label, 0, 0 ); 101 layout->addWidget( label, 0, 0 );
102 m_destination = new QComboBox( this ); 102 m_destination = new QComboBox( this );
103 m_destination->insertStringList( m_packman->destinations() ); 103 m_destination->insertStringList( m_packman->destinations() );
104 layout->addWidget( m_destination, 0, 1 ); 104 layout->addWidget( m_destination, 0, 1 );
105 connect( m_destination, SIGNAL(highlighted(const QString&)), 105 connect( m_destination, SIGNAL(highlighted(const QString&)),
106 this, SLOT(slotDisplayAvailSpace(const QString&)) ); 106 this, SLOT(slotDisplayAvailSpace(const QString&)) );
107 107
108 label = new QLabel( tr( "Space Avail" ), this ); 108 label = new QLabel( tr( "Space Avail" ), this );
109 layout->addWidget( label, 1, 0 ); 109 layout->addWidget( label, 1, 0 );
110 m_availSpace = new QLabel( this ); 110 m_availSpace = new QLabel( this );
111 layout->addWidget( m_availSpace, 1, 1 ); 111 layout->addWidget( m_availSpace, 1, 1 );
112 112
113 // TODO - select correct destination 113 // TODO - select correct destination
114 slotDisplayAvailSpace( m_destination->currentText() ); 114 slotDisplayAvailSpace( m_destination->currentText() );
115 } 115 }
116 else 116 else
117 { 117 {
118 m_destination = 0l; 118 m_destination = 0l;
119 m_availSpace = 0l; 119 m_availSpace = 0l;
120 } 120 }
121 121
122 QGroupBox *groupBox = new QGroupBox( 0, Qt::Vertical, tr( "Output" ), this ); 122 QGroupBox *groupBox = new QGroupBox( 0, Qt::Vertical, tr( "Output" ), this );
123 groupBox->layout()->setSpacing( 0 ); 123 groupBox->layout()->setSpacing( 0 );
124 groupBox->layout()->setMargin( 4 ); 124 groupBox->layout()->setMargin( 4 );
125 125
126 QVBoxLayout *groupBoxLayout = new QVBoxLayout( groupBox->layout() ); 126 QVBoxLayout *groupBoxLayout = new QVBoxLayout( groupBox->layout() );
127 m_output = new QMultiLineEdit( groupBox ); 127 m_output = new QMultiLineEdit( groupBox );
128 m_output->setReadOnly( true ); 128 m_output->setReadOnly( true );
129 groupBoxLayout->addWidget( m_output ); 129 groupBoxLayout->addWidget( m_output );
130 layout->addMultiCellWidget( groupBox, 2, 2, 0, 1 ); 130 layout->addMultiCellWidget( groupBox, 2, 2, 0, 1 );
131 131
132 m_btnStart = new QPushButton( Resource::loadPixmap( "packagemanager/apply" ), tr( "Start" ), this ); 132 QPixmap pic;
133 pic.convertFromImage( Resource::loadImage( "packagemanager/apply" ).smoothScale( AppLnk::smallIconSize(), AppLnk::smallIconSize() ) );
134 m_btnStart = new QPushButton( pic, tr( "Start" ), this );
133 layout->addWidget( m_btnStart, 3, 0 ); 135 layout->addWidget( m_btnStart, 3, 0 );
134 connect( m_btnStart, SIGNAL(clicked()), this, SLOT(slotBtnStart()) ); 136 connect( m_btnStart, SIGNAL(clicked()), this, SLOT(slotBtnStart()) );
135 137
136 m_btnOptions = new QPushButton( Resource::loadPixmap( "SettingsIcon" ), tr( "Options" ), this ); 138 pic.convertFromImage( Resource::loadImage( "SettingsIcon" ).smoothScale( AppLnk::smallIconSize(), AppLnk::smallIconSize() ) );
139 m_btnOptions = new QPushButton( pic, tr( "Options" ), this );
137 layout->addWidget( m_btnOptions, 3, 1 ); 140 layout->addWidget( m_btnOptions, 3, 1 );
138 connect( m_btnOptions, SIGNAL( clicked() ), this, SLOT(slotBtnOptions()) ); 141 connect( m_btnOptions, SIGNAL( clicked() ), this, SLOT(slotBtnOptions()) );
139 142
140 // Display packages being acted upon in output widget 143 // Display packages being acted upon in output widget
141 for( int i = 0; i < m_numCommands; i++ ) 144 for( int i = 0; i < m_numCommands; i++ )
142 { 145 {
143 if ( !m_packages[ i ].isEmpty() ) 146 if ( !m_packages[ i ].isEmpty() )
144 { 147 {
145 QString lineStr = tr( "Packages to " ); 148 QString lineStr = tr( "Packages to " );
146 149
147 switch( m_command[ i ] ) 150 switch( m_command[ i ] )
148 { 151 {
149 case OPackage::Install : lineStr.append( tr( "install" ) ); 152 case OPackage::Install : lineStr.append( tr( "install" ) );
150 break; 153 break;
151 case OPackage::Remove : lineStr.append( tr( "remove" ) ); 154 case OPackage::Remove : lineStr.append( tr( "remove" ) );
152 break; 155 break;
153 case OPackage::Upgrade : lineStr.append( tr( "upgrade" ) ); 156 case OPackage::Upgrade : lineStr.append( tr( "upgrade" ) );
154 break; 157 break;
155 case OPackage::Download : lineStr.append( tr( "download" ) ); 158 case OPackage::Download : lineStr.append( tr( "download" ) );
156 break; 159 break;
157 default : 160 default :
158 break; 161 break;
159 }; 162 };
160 lineStr.append( ":\n" ); 163 lineStr.append( ":\n" );
161 164
162 QStringList tmpPackage = m_packages[ i ]; 165 QStringList tmpPackage = m_packages[ i ];
163 for ( QStringList::Iterator it = tmpPackage.begin(); it != tmpPackage.end(); ++it ) 166 for ( QStringList::Iterator it = tmpPackage.begin(); it != tmpPackage.end(); ++it )
164 { 167 {
165 lineStr.append( QString( "\t%1\n" ).arg( ( *it ) ) ); 168 lineStr.append( QString( "\t%1\n" ).arg( ( *it ) ) );
166 } 169 }
167 170
168 m_output->append( lineStr ); 171 m_output->append( lineStr );
@@ -188,124 +191,131 @@ void InstallDlg::slotDisplayAvailSpace( const QString &destination )
188 191
189 if ( m_destItem ) 192 if ( m_destItem )
190 { 193 {
191 // Calculate available space 194 // Calculate available space
192 struct statfs fs; 195 struct statfs fs;
193 if ( !statfs( m_destItem->value(), &fs ) ) 196 if ( !statfs( m_destItem->value(), &fs ) )
194 { 197 {
195 long mult = fs.f_bsize / 1024; 198 long mult = fs.f_bsize / 1024;
196 long div = 1024 / fs.f_bsize; 199 long div = 1024 / fs.f_bsize;
197 200
198 if ( !mult ) mult = 1; 201 if ( !mult ) mult = 1;
199 if ( !div ) div = 1; 202 if ( !div ) div = 1;
200 long avail = fs.f_bavail * mult / div; 203 long avail = fs.f_bavail * mult / div;
201 204
202 space = tr( "%1 Kb" ).arg( avail ); 205 space = tr( "%1 Kb" ).arg( avail );
203 } 206 }
204 } 207 }
205 208
206 // Display available space 209 // Display available space
207 m_availSpace->setText( space ); 210 m_availSpace->setText( space );
208} 211}
209 212
210void InstallDlg::slotBtnStart() 213void InstallDlg::slotBtnStart()
211{ 214{
212 QString btnText = m_btnStart->text(); 215 QString btnText = m_btnStart->text();
213 if ( btnText == tr( "Abort" ) ) 216 if ( btnText == tr( "Abort" ) )
214 { 217 {
215 // Prevent unexecuted commands from executing 218 // Prevent unexecuted commands from executing
216 m_currCommand = 999; 219 m_currCommand = 999;
217 220
218 // Allow user to close dialog 221 // Allow user to close dialog
219 m_btnStart->setText( tr( "Close" ) ); 222 m_btnStart->setText( tr( "Close" ) );
220 m_btnStart->setIconSet( Resource::loadPixmap( "enter" ) ); 223 QPixmap pic;
224 pic.convertFromImage( Resource::loadImage( "enter" ).smoothScale( AppLnk::smallIconSize(), AppLnk::smallIconSize() ) );
225 m_btnStart->setIconSet( pic );
221 return; 226 return;
222 } 227 }
223 else if ( btnText == tr( "Close" ) ) 228 else if ( btnText == tr( "Close" ) )
224 { 229 {
225 // TODO - force reload of package data 230 // TODO - force reload of package data
226 emit closeInstallDlg(); 231 emit closeInstallDlg();
227 return; 232 return;
228 } 233 }
229 234
230 // Start was clicked, start executing 235 // Start was clicked, start executing
231 QString dest; 236 QString dest;
232 if ( m_installFound ) 237 if ( m_installFound )
233 { 238 {
234 dest = m_destination->currentText(); 239 dest = m_destination->currentText();
235 m_destination->setEnabled( false ); 240 m_destination->setEnabled( false );
236 } 241 }
237 242
238 m_btnOptions->setEnabled( false ); 243 m_btnOptions->setEnabled( false );
239 if ( m_numCommands > 1 ) 244 if ( m_numCommands > 1 )
240 { 245 {
241 m_btnStart->setText( tr( "Abort" ) ); 246 m_btnStart->setText( tr( "Abort" ) );
242 m_btnStart->setIconSet( Resource::loadPixmap( "close" ) ); 247 QPixmap pic;
248 pic.convertFromImage( Resource::loadImage( "close" ).smoothScale( AppLnk::smallIconSize(), AppLnk::smallIconSize() ) );
249 m_btnStart->setIconSet( pic );
243 } 250 }
244 else 251 else
245 { 252 {
246 m_btnStart->setEnabled( false ); 253 m_btnStart->setEnabled( false );
247 } 254 }
248 255
249 for ( m_currCommand = 0; m_currCommand < m_numCommands; m_currCommand++ ) 256 for ( m_currCommand = 0; m_currCommand < m_numCommands; m_currCommand++ )
250 { 257 {
251 // Execute next command 258 // Execute next command
252 m_packman->executeCommand( m_command[ m_currCommand ], m_packages[ m_currCommand ], dest, 259 m_packman->executeCommand( m_command[ m_currCommand ], m_packages[ m_currCommand ], dest,
253 this, SLOT(slotOutput(const QString &)), true ); 260 this, SLOT(slotOutput(const QString &)), true );
254 } 261 }
255 262
256 // All commands executed, allow user to close dialog 263 // All commands executed, allow user to close dialog
257 m_btnStart->setEnabled( true ); 264 m_btnStart->setEnabled( true );
258 m_btnStart->setText( tr( "Close" ) ); 265 m_btnStart->setText( tr( "Close" ) );
259 m_btnStart->setIconSet( Resource::loadPixmap( "enter" ) ); 266 QPixmap pic;
267 pic.convertFromImage( Resource::loadImage( "enter" ).smoothScale( AppLnk::smallIconSize(), AppLnk::smallIconSize() ) );
268 m_btnStart->setIconSet( pic );
260 269
261 m_btnOptions->setEnabled( true ); 270 m_btnOptions->setEnabled( true );
262 m_btnOptions->setText( tr( "Save output" ) ); 271 m_btnOptions->setText( tr( "Save output" ) );
263 m_btnOptions->setIconSet( Resource::loadPixmap( "save" ) ); 272 pic.convertFromImage( Resource::loadImage( "save" ).smoothScale( AppLnk::smallIconSize(), AppLnk::smallIconSize() ) );
273 m_btnOptions->setIconSet( pic );
264} 274}
265 275
266void InstallDlg::slotBtnOptions() 276void InstallDlg::slotBtnOptions()
267{ 277{
268 QString btnText = m_btnOptions->text(); 278 QString btnText = m_btnOptions->text();
269 if ( btnText == tr( "Options" ) ) 279 if ( btnText == tr( "Options" ) )
270 { 280 {
271 // Display configuration dialog (only options tab is enabled) 281 // Display configuration dialog (only options tab is enabled)
272 m_packman->configureDlg( true ); 282 m_packman->configureDlg( true );
273 return; 283 return;
274 } 284 }
275 285
276 // Save output was clicked 286 // Save output was clicked
277 QMap<QString, QStringList> map; 287 QMap<QString, QStringList> map;
278 map.insert( tr( "All" ), QStringList() ); 288 map.insert( tr( "All" ), QStringList() );
279 QStringList text; 289 QStringList text;
280 text << "text/*"; 290 text << "text/*";
281 map.insert(tr( "Text" ), text ); 291 map.insert(tr( "Text" ), text );
282 text << "*"; 292 text << "*";
283 map.insert( tr( "All" ), text ); 293 map.insert( tr( "All" ), text );
284 294
285 QString filename = Opie::Ui::OFileDialog::getSaveFileName( 2, "/", "ipkg-output", map ); 295 QString filename = Opie::Ui::OFileDialog::getSaveFileName( 2, "/", "ipkg-output", map );
286 if( !filename.isEmpty() ) 296 if( !filename.isEmpty() )
287 { 297 {
288 QString currentFileName = QFileInfo( filename ).fileName(); 298 QString currentFileName = QFileInfo( filename ).fileName();
289 DocLnk doc; 299 DocLnk doc;
290 doc.setType( "text/plain" ); 300 doc.setType( "text/plain" );
291 doc.setFile( filename ); 301 doc.setFile( filename );
292 doc.setName( currentFileName ); 302 doc.setName( currentFileName );
293 FileManager fm; 303 FileManager fm;
294 fm.saveFile( doc, m_output->text() ); 304 fm.saveFile( doc, m_output->text() );
295 } 305 }
296} 306}
297 307
298void InstallDlg::slotOutput( const QString &msg ) 308void InstallDlg::slotOutput( const QString &msg )
299{ 309{
300 // Allow processing of other events 310 // Allow processing of other events
301 qApp->processEvents(); 311 qApp->processEvents();
302 312
303 QString lineStr = msg; 313 QString lineStr = msg;
304 if ( lineStr[lineStr.length()-1] == '\n' ) 314 if ( lineStr[lineStr.length()-1] == '\n' )
305 lineStr.truncate( lineStr.length() - 1 ); 315 lineStr.truncate( lineStr.length() - 1 );
306 m_output->append( lineStr ); 316 m_output->append( lineStr );
307 m_output->setCursorPosition( m_output->numLines(), 0 ); 317 m_output->setCursorPosition( m_output->numLines(), 0 );
308 318
309 // Update available space 319 // Update available space
310 slotDisplayAvailSpace( QString::null ); 320 slotDisplayAvailSpace( QString::null );
311} 321}
diff --git a/noncore/settings/packagemanager/oipkgconfigdlg.cpp b/noncore/settings/packagemanager/oipkgconfigdlg.cpp
index 7ee2d74..5f60990 100644
--- a/noncore/settings/packagemanager/oipkgconfigdlg.cpp
+++ b/noncore/settings/packagemanager/oipkgconfigdlg.cpp
@@ -151,114 +151,122 @@ void OIpkgConfigDlg::accept()
151 m_ipkg->setIpkgExecOptions( options ); 151 m_ipkg->setIpkgExecOptions( options );
152 m_ipkg->setIpkgExecVerbosity( m_optVerboseIpkg->currentItem() ); 152 m_ipkg->setIpkgExecVerbosity( m_optVerboseIpkg->currentItem() );
153 153
154 QDialog::accept(); 154 QDialog::accept();
155} 155}
156 156
157void OIpkgConfigDlg::reject() 157void OIpkgConfigDlg::reject()
158{ 158{
159 if ( m_configs ) 159 if ( m_configs )
160 delete m_configs; 160 delete m_configs;
161} 161}
162 162
163void OIpkgConfigDlg::initServerWidget() 163void OIpkgConfigDlg::initServerWidget()
164{ 164{
165 m_serverWidget = new QWidget( this ); 165 m_serverWidget = new QWidget( this );
166 166
167 // Initialize UI 167 // Initialize UI
168 QVBoxLayout *vb = new QVBoxLayout( m_serverWidget ); 168 QVBoxLayout *vb = new QVBoxLayout( m_serverWidget );
169 QScrollView *sv = new QScrollView( m_serverWidget ); 169 QScrollView *sv = new QScrollView( m_serverWidget );
170 vb->addWidget( sv, 0, 0 ); 170 vb->addWidget( sv, 0, 0 );
171 sv->setResizePolicy( QScrollView::AutoOneFit ); 171 sv->setResizePolicy( QScrollView::AutoOneFit );
172 sv->setFrameStyle( QFrame::NoFrame ); 172 sv->setFrameStyle( QFrame::NoFrame );
173 QWidget *container = new QWidget( sv->viewport() ); 173 QWidget *container = new QWidget( sv->viewport() );
174 sv->addChild( container ); 174 sv->addChild( container );
175 QGridLayout *layout = new QGridLayout( container, 2, 3, 2, 4 ); 175 QGridLayout *layout = new QGridLayout( container, 2, 3, 2, 4 );
176 176
177 m_serverList = new QListBox( container ); 177 m_serverList = new QListBox( container );
178 QWhatsThis::add( m_serverList, tr( "This is a list of all servers configured. Select one here to edit or delete, or add a new one below." ) ); 178 QWhatsThis::add( m_serverList, tr( "This is a list of all servers configured. Select one here to edit or delete, or add a new one below." ) );
179 m_serverList->setSizePolicy( QSizePolicy( QSizePolicy::Preferred, QSizePolicy::Preferred ) ); 179 m_serverList->setSizePolicy( QSizePolicy( QSizePolicy::Preferred, QSizePolicy::Preferred ) );
180 connect( m_serverList, SIGNAL(highlighted(int)), this, SLOT(slotServerSelected(int)) ); 180 connect( m_serverList, SIGNAL(highlighted(int)), this, SLOT(slotServerSelected(int)) );
181 layout->addMultiCellWidget( m_serverList, 0, 0, 0, 2 ); 181 layout->addMultiCellWidget( m_serverList, 0, 0, 0, 2 );
182 182
183 QPushButton *btn = new QPushButton( Resource::loadPixmap( "new" ), tr( "New" ), container ); 183 QPixmap pic;
184 pic.convertFromImage( Resource::loadImage( "new" ).smoothScale( AppLnk::smallIconSize(), AppLnk::smallIconSize() ) );
185 QPushButton *btn = new QPushButton( pic, tr( "New" ), container );
184 QWhatsThis::add( btn, tr( "Tap here to create a new entry. Fill in the fields below and then tap on Update." ) ); 186 QWhatsThis::add( btn, tr( "Tap here to create a new entry. Fill in the fields below and then tap on Update." ) );
185 connect( btn, SIGNAL(clicked()), this, SLOT(slotServerNew()) ); 187 connect( btn, SIGNAL(clicked()), this, SLOT(slotServerNew()) );
186 layout->addWidget( btn, 1, 0 ); 188 layout->addWidget( btn, 1, 0 );
187 189
188 m_serverEditBtn = new QPushButton( Resource::loadPixmap( "edit" ), tr( "Edit" ), container ); 190 pic.convertFromImage( Resource::loadImage( "edit" ).smoothScale( AppLnk::smallIconSize(), AppLnk::smallIconSize() ) );
191 m_serverEditBtn = new QPushButton( pic, tr( "Edit" ), container );
189 m_serverEditBtn->setEnabled( false ); 192 m_serverEditBtn->setEnabled( false );
190 QWhatsThis::add( m_serverEditBtn, tr( "Tap here to edit the entry selected above." ) ); 193 QWhatsThis::add( m_serverEditBtn, tr( "Tap here to edit the entry selected above." ) );
191 connect( m_serverEditBtn, SIGNAL(clicked()), this, SLOT(slotServerEdit()) ); 194 connect( m_serverEditBtn, SIGNAL(clicked()), this, SLOT(slotServerEdit()) );
192 layout->addWidget( m_serverEditBtn, 1, 1 ); 195 layout->addWidget( m_serverEditBtn, 1, 1 );
193 196
194 m_serverDeleteBtn = new QPushButton( Resource::loadPixmap( "trash" ), tr( "Delete" ), container ); 197 pic.convertFromImage( Resource::loadImage( "trash" ).smoothScale( AppLnk::smallIconSize(), AppLnk::smallIconSize() ) );
198 m_serverDeleteBtn = new QPushButton( pic, tr( "Delete" ), container );
195 m_serverDeleteBtn->setEnabled( false ); 199 m_serverDeleteBtn->setEnabled( false );
196 QWhatsThis::add( m_serverDeleteBtn, tr( "Tap here to delete the entry selected above." ) ); 200 QWhatsThis::add( m_serverDeleteBtn, tr( "Tap here to delete the entry selected above." ) );
197 connect( m_serverDeleteBtn, SIGNAL(clicked()), this, SLOT(slotServerDelete()) ); 201 connect( m_serverDeleteBtn, SIGNAL(clicked()), this, SLOT(slotServerDelete()) );
198 layout->addWidget( m_serverDeleteBtn, 1, 2 ); 202 layout->addWidget( m_serverDeleteBtn, 1, 2 );
199} 203}
200 204
201void OIpkgConfigDlg::initDestinationWidget() 205void OIpkgConfigDlg::initDestinationWidget()
202{ 206{
203 m_destWidget = new QWidget( this ); 207 m_destWidget = new QWidget( this );
204 208
205 // Initialize UI 209 // Initialize UI
206 QVBoxLayout *vb = new QVBoxLayout( m_destWidget ); 210 QVBoxLayout *vb = new QVBoxLayout( m_destWidget );
207 QScrollView *sv = new QScrollView( m_destWidget ); 211 QScrollView *sv = new QScrollView( m_destWidget );
208 vb->addWidget( sv, 0, 0 ); 212 vb->addWidget( sv, 0, 0 );
209 sv->setResizePolicy( QScrollView::AutoOneFit ); 213 sv->setResizePolicy( QScrollView::AutoOneFit );
210 sv->setFrameStyle( QFrame::NoFrame ); 214 sv->setFrameStyle( QFrame::NoFrame );
211 QWidget *container = new QWidget( sv->viewport() ); 215 QWidget *container = new QWidget( sv->viewport() );
212 sv->addChild( container ); 216 sv->addChild( container );
213 QGridLayout *layout = new QGridLayout( container, 2, 3, 2, 4 ); 217 QGridLayout *layout = new QGridLayout( container, 2, 3, 2, 4 );
214 218
215 m_destList = new QListBox( container ); 219 m_destList = new QListBox( container );
216 QWhatsThis::add( m_destList, tr( "This is a list of all destinations configured for this device. Select one here to edit or delete, or add a new one below." ) ); 220 QWhatsThis::add( m_destList, tr( "This is a list of all destinations configured for this device. Select one here to edit or delete, or add a new one below." ) );
217 m_destList->setSizePolicy( QSizePolicy( QSizePolicy::Preferred, QSizePolicy::Preferred ) ); 221 m_destList->setSizePolicy( QSizePolicy( QSizePolicy::Preferred, QSizePolicy::Preferred ) );
218 connect( m_destList, SIGNAL(highlighted(int)), this, SLOT(slotDestSelected(int)) ); 222 connect( m_destList, SIGNAL(highlighted(int)), this, SLOT(slotDestSelected(int)) );
219 layout->addMultiCellWidget( m_destList, 0, 0, 0, 2 ); 223 layout->addMultiCellWidget( m_destList, 0, 0, 0, 2 );
220 224
221 QPushButton *btn = new QPushButton( Resource::loadPixmap( "new" ), tr( "New" ), container ); 225 QPixmap pic;
226 pic.convertFromImage( Resource::loadImage( "new" ).smoothScale( AppLnk::smallIconSize(), AppLnk::smallIconSize() ) );
227 QPushButton *btn = new QPushButton( pic, tr( "New" ), container );
222 QWhatsThis::add( btn, tr( "Tap here to create a new entry. Fill in the fields below and then tap on Update." ) ); 228 QWhatsThis::add( btn, tr( "Tap here to create a new entry. Fill in the fields below and then tap on Update." ) );
223 connect( btn, SIGNAL(clicked()), this, SLOT(slotDestNew()) ); 229 connect( btn, SIGNAL(clicked()), this, SLOT(slotDestNew()) );
224 layout->addWidget( btn, 1, 0 ); 230 layout->addWidget( btn, 1, 0 );
225 231
226 m_destEditBtn = new QPushButton( Resource::loadPixmap( "edit" ), tr( "Edit" ), container ); 232 pic.convertFromImage( Resource::loadImage( "edit" ).smoothScale( AppLnk::smallIconSize(), AppLnk::smallIconSize() ) );
233 m_destEditBtn = new QPushButton( pic, tr( "Edit" ), container );
227 m_destEditBtn->setEnabled( false ); 234 m_destEditBtn->setEnabled( false );
228 QWhatsThis::add( m_destEditBtn, tr( "Tap here to edit the entry selected above." ) ); 235 QWhatsThis::add( m_destEditBtn, tr( "Tap here to edit the entry selected above." ) );
229 connect( m_destEditBtn, SIGNAL(clicked()), this, SLOT(slotDestEdit()) ); 236 connect( m_destEditBtn, SIGNAL(clicked()), this, SLOT(slotDestEdit()) );
230 layout->addWidget( m_destEditBtn, 1, 1 ); 237 layout->addWidget( m_destEditBtn, 1, 1 );
231 238
232 m_destDeleteBtn = new QPushButton( Resource::loadPixmap( "trash" ), tr( "Delete" ), container ); 239 pic.convertFromImage( Resource::loadImage( "trash" ).smoothScale( AppLnk::smallIconSize(), AppLnk::smallIconSize() ) );
240 m_destDeleteBtn = new QPushButton( pic, tr( "Delete" ), container );
233 m_destDeleteBtn->setEnabled( false ); 241 m_destDeleteBtn->setEnabled( false );
234 QWhatsThis::add( m_destDeleteBtn, tr( "Tap here to delete the entry selected above." ) ); 242 QWhatsThis::add( m_destDeleteBtn, tr( "Tap here to delete the entry selected above." ) );
235 connect( m_destDeleteBtn, SIGNAL(clicked()), this, SLOT(slotDestDelete()) ); 243 connect( m_destDeleteBtn, SIGNAL(clicked()), this, SLOT(slotDestDelete()) );
236 layout->addWidget( m_destDeleteBtn, 1, 2 ); 244 layout->addWidget( m_destDeleteBtn, 1, 2 );
237} 245}
238 246
239void OIpkgConfigDlg::initProxyWidget() 247void OIpkgConfigDlg::initProxyWidget()
240{ 248{
241 m_proxyWidget = new QWidget( this ); 249 m_proxyWidget = new QWidget( this );
242 250
243 // Initialize UI 251 // Initialize UI
244 QVBoxLayout *vb = new QVBoxLayout( m_proxyWidget ); 252 QVBoxLayout *vb = new QVBoxLayout( m_proxyWidget );
245 QScrollView *sv = new QScrollView( m_proxyWidget ); 253 QScrollView *sv = new QScrollView( m_proxyWidget );
246 vb->addWidget( sv, 0, 0 ); 254 vb->addWidget( sv, 0, 0 );
247 sv->setResizePolicy( QScrollView::AutoOneFit ); 255 sv->setResizePolicy( QScrollView::AutoOneFit );
248 sv->setFrameStyle( QFrame::NoFrame ); 256 sv->setFrameStyle( QFrame::NoFrame );
249 QWidget *container = new QWidget( sv->viewport() ); 257 QWidget *container = new QWidget( sv->viewport() );
250 sv->addChild( container ); 258 sv->addChild( container );
251 QGridLayout *layout = new QGridLayout( container, 4, 2, 2, 4 ); 259 QGridLayout *layout = new QGridLayout( container, 4, 2, 2, 4 );
252 260
253 // HTTP proxy server configuration 261 // HTTP proxy server configuration
254 QGroupBox *grpbox = new QGroupBox( 0, Qt::Vertical, tr( "HTTP Proxy" ), container ); 262 QGroupBox *grpbox = new QGroupBox( 0, Qt::Vertical, tr( "HTTP Proxy" ), container );
255 grpbox->layout()->setSpacing( 2 ); 263 grpbox->layout()->setSpacing( 2 );
256 grpbox->layout()->setMargin( 4 ); 264 grpbox->layout()->setMargin( 4 );
257 layout->addMultiCellWidget( grpbox, 0, 0, 0, 1 ); 265 layout->addMultiCellWidget( grpbox, 0, 0, 0, 1 );
258 QVBoxLayout *grplayout = new QVBoxLayout( grpbox->layout() ); 266 QVBoxLayout *grplayout = new QVBoxLayout( grpbox->layout() );
259 m_proxyHttpServer = new QLineEdit( grpbox ); 267 m_proxyHttpServer = new QLineEdit( grpbox );
260 QWhatsThis::add( m_proxyHttpServer, tr( "Enter the URL address of the HTTP proxy server here." ) ); 268 QWhatsThis::add( m_proxyHttpServer, tr( "Enter the URL address of the HTTP proxy server here." ) );
261 grplayout->addWidget( m_proxyHttpServer ); 269 grplayout->addWidget( m_proxyHttpServer );
262 m_proxyHttpActive = new QCheckBox( tr( "Enabled" ), grpbox ); 270 m_proxyHttpActive = new QCheckBox( tr( "Enabled" ), grpbox );
263 QWhatsThis::add( m_proxyHttpActive, tr( "Tap here to enable or disable the HTTP proxy server." ) ); 271 QWhatsThis::add( m_proxyHttpActive, tr( "Tap here to enable or disable the HTTP proxy server." ) );
264 grplayout->addWidget( m_proxyHttpActive ); 272 grplayout->addWidget( m_proxyHttpActive );
@@ -312,65 +320,67 @@ void OIpkgConfigDlg::initOptionsWidget()
312 320
313 m_optForceReinstall = new QCheckBox( tr( "Force Reinstall" ), container ); 321 m_optForceReinstall = new QCheckBox( tr( "Force Reinstall" ), container );
314 QWhatsThis::add( m_optForceReinstall, tr( "Tap here to enable or disable the '-force-reinstall' option for Ipkg." ) ); 322 QWhatsThis::add( m_optForceReinstall, tr( "Tap here to enable or disable the '-force-reinstall' option for Ipkg." ) );
315 layout->addMultiCellWidget( m_optForceReinstall, 1, 1, 0, 1 ); 323 layout->addMultiCellWidget( m_optForceReinstall, 1, 1, 0, 1 );
316 324
317 m_optForceRemove = new QCheckBox( tr( "Force Remove" ), container ); 325 m_optForceRemove = new QCheckBox( tr( "Force Remove" ), container );
318 QWhatsThis::add( m_optForceRemove, tr( "Tap here to enable or disable the '-force-removal-of-dependent-packages' option for Ipkg." ) ); 326 QWhatsThis::add( m_optForceRemove, tr( "Tap here to enable or disable the '-force-removal-of-dependent-packages' option for Ipkg." ) );
319 layout->addMultiCellWidget( m_optForceRemove, 2, 2, 0, 1 ); 327 layout->addMultiCellWidget( m_optForceRemove, 2, 2, 0, 1 );
320 328
321 m_optForceOverwrite = new QCheckBox( tr( "Force Overwrite" ), container ); 329 m_optForceOverwrite = new QCheckBox( tr( "Force Overwrite" ), container );
322 QWhatsThis::add( m_optForceOverwrite, tr( "Tap here to enable or disable the '-force-overwrite' option for Ipkg." ) ); 330 QWhatsThis::add( m_optForceOverwrite, tr( "Tap here to enable or disable the '-force-overwrite' option for Ipkg." ) );
323 layout->addMultiCellWidget( m_optForceOverwrite, 3, 3, 0, 1 ); 331 layout->addMultiCellWidget( m_optForceOverwrite, 3, 3, 0, 1 );
324 332
325 QLabel *l = new QLabel( tr( "Information level:" ), container ); 333 QLabel *l = new QLabel( tr( "Information level:" ), container );
326 QWhatsThis::add( l, tr( "Select information level for Ipkg." ) ); 334 QWhatsThis::add( l, tr( "Select information level for Ipkg." ) );
327 layout->addMultiCellWidget( l, 4, 4, 0, 1 ); 335 layout->addMultiCellWidget( l, 4, 4, 0, 1 );
328 336
329 m_optVerboseIpkg = new QComboBox( container ); 337 m_optVerboseIpkg = new QComboBox( container );
330 QWhatsThis::add( m_optVerboseIpkg, tr( "Select information level for Ipkg." ) ); 338 QWhatsThis::add( m_optVerboseIpkg, tr( "Select information level for Ipkg." ) );
331 m_optVerboseIpkg->insertItem( tr( "Errors only" ) ); 339 m_optVerboseIpkg->insertItem( tr( "Errors only" ) );
332 m_optVerboseIpkg->insertItem( tr( "Normal messages" ) ); 340 m_optVerboseIpkg->insertItem( tr( "Normal messages" ) );
333 m_optVerboseIpkg->insertItem( tr( "Informative messages" ) ); 341 m_optVerboseIpkg->insertItem( tr( "Informative messages" ) );
334 m_optVerboseIpkg->insertItem( tr( "Troubleshooting output" ) ); 342 m_optVerboseIpkg->insertItem( tr( "Troubleshooting output" ) );
335 layout->addMultiCellWidget( m_optVerboseIpkg, 5, 5, 0, 1 ); 343 layout->addMultiCellWidget( m_optVerboseIpkg, 5, 5, 0, 1 );
336 344
337 l = new QLabel( tr( "Package source lists directory:" ), container ); 345 l = new QLabel( tr( "Package source lists directory:" ), container );
338 QWhatsThis::add( l, tr( "Enter the directory where package source feed information is stored." ) ); 346 QWhatsThis::add( l, tr( "Enter the directory where package source feed information is stored." ) );
339 layout->addMultiCellWidget( l, 6, 6, 0, 1 ); 347 layout->addMultiCellWidget( l, 6, 6, 0, 1 );
340 348
341 m_optSourceLists = new QLineEdit( container ); 349 m_optSourceLists = new QLineEdit( container );
342 QWhatsThis::add( m_optSourceLists, tr( "Enter the directory where package source feed information is stored." ) ); 350 QWhatsThis::add( m_optSourceLists, tr( "Enter the directory where package source feed information is stored." ) );
343 layout->addWidget( m_optSourceLists, 7, 0 ); 351 layout->addWidget( m_optSourceLists, 7, 0 );
344 QPushButton *btn = new QPushButton( Resource::loadPixmap( "folder" ), QString::null, container ); 352 QPixmap pic;
353 pic.convertFromImage( Resource::loadImage( "folder" ).smoothScale( AppLnk::smallIconSize(), AppLnk::smallIconSize() ) );
354 QPushButton *btn = new QPushButton( pic, QString::null, container );
345 btn->setMaximumWidth( btn->height() ); 355 btn->setMaximumWidth( btn->height() );
346 QWhatsThis::add( btn, tr( "Tap here to select the directory where package source feed information is stored." ) ); 356 QWhatsThis::add( btn, tr( "Tap here to select the directory where package source feed information is stored." ) );
347 connect( btn, SIGNAL(clicked()), this, SLOT(slotOptSelectSourceListsPath()) ); 357 connect( btn, SIGNAL(clicked()), this, SLOT(slotOptSelectSourceListsPath()) );
348 layout->addWidget( btn, 7, 1 ); 358 layout->addWidget( btn, 7, 1 );
349 359
350 layout->addItem( new QSpacerItem( 1, 1, QSizePolicy::Minimum, QSizePolicy::Expanding ) ); 360 layout->addItem( new QSpacerItem( 1, 1, QSizePolicy::Minimum, QSizePolicy::Expanding ) );
351} 361}
352 362
353void OIpkgConfigDlg::initData() 363void OIpkgConfigDlg::initData()
354{ 364{
355 // Read ipkg configuration (server/destination/proxy) information 365 // Read ipkg configuration (server/destination/proxy) information
356 if ( m_ipkg && !m_installOptions ) 366 if ( m_ipkg && !m_installOptions )
357 { 367 {
358 m_configs = m_ipkg->configItems(); 368 m_configs = m_ipkg->configItems();
359 if ( m_configs ) 369 if ( m_configs )
360 { 370 {
361 for ( OConfItemListIterator configIt( *m_configs ); configIt.current(); ++configIt ) 371 for ( OConfItemListIterator configIt( *m_configs ); configIt.current(); ++configIt )
362 { 372 {
363 OConfItem *config = configIt.current(); 373 OConfItem *config = configIt.current();
364 374
365 // Add configuration item to the appropriate dialog controls 375 // Add configuration item to the appropriate dialog controls
366 if ( config ) 376 if ( config )
367 { 377 {
368 switch ( config->type() ) 378 switch ( config->type() )
369 { 379 {
370 case OConfItem::Source : m_serverList->insertItem( config->name() ); break; 380 case OConfItem::Source : m_serverList->insertItem( config->name() ); break;
371 case OConfItem::Destination : m_destList->insertItem( config->name() ); break; 381 case OConfItem::Destination : m_destList->insertItem( config->name() ); break;
372 case OConfItem::Option : 382 case OConfItem::Option :
373 { 383 {
374 if ( config->name() == "http_proxy" ) 384 if ( config->name() == "http_proxy" )
375 { 385 {
376 m_proxyHttpServer->setText( config->value() ); 386 m_proxyHttpServer->setText( config->value() );