summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/settings/packagemanager/entrydlg.cpp8
-rw-r--r--noncore/settings/packagemanager/installdlg.cpp26
-rw-r--r--noncore/settings/packagemanager/mainwindow.cpp38
-rw-r--r--noncore/settings/packagemanager/oipkgconfigdlg.cpp52
-rw-r--r--noncore/settings/packagemanager/packageinfodlg.cpp8
5 files changed, 65 insertions, 67 deletions
diff --git a/noncore/settings/packagemanager/entrydlg.cpp b/noncore/settings/packagemanager/entrydlg.cpp
index 5d61342..1e87e64 100644
--- a/noncore/settings/packagemanager/entrydlg.cpp
+++ b/noncore/settings/packagemanager/entrydlg.cpp
@@ -1,108 +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)2004, 2005 Dan Williams <drw@handhelds.org> 4 Copyright (C)2004, 2005 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#include "entrydlg.h" 31#include "entrydlg.h"
32 32
33#include <opie2/ofiledialog.h> 33#include <opie2/ofiledialog.h>
34#include <opie2/oresource.h>
34 35
35#include <qpe/qpeapplication.h> 36#include <qpe/qpeapplication.h>
36#include <qpe/resource.h>
37 37
38#include <qlabel.h> 38#include <qlabel.h>
39#include <qlayout.h> 39#include <qlayout.h>
40#include <qlineedit.h> 40#include <qlineedit.h>
41#include <qpushbutton.h> 41#include <qpushbutton.h>
42 42
43EntryDlg::EntryDlg( const QString &label, QWidget* parent, const char* name, bool modal ) 43EntryDlg::EntryDlg( const QString &label, QWidget* parent, const char* name, bool modal )
44 : QDialog( parent, name, modal ) 44 : QDialog( parent, name, modal )
45{ 45{
46 QGridLayout *layout = new QGridLayout( this, 3, 2, 2, 4 ); 46 QGridLayout *layout = new QGridLayout( this, 3, 2, 2, 4 );
47 47
48 QLabel *l = new QLabel( label, this ); 48 QLabel *l = new QLabel( label, this );
49 l->setAlignment( AlignLeft | AlignTop | WordBreak ); 49 l->setAlignment( AlignLeft | AlignTop | WordBreak );
50 layout->addMultiCellWidget( l, 0, 0, 0, 1 ); 50 layout->addMultiCellWidget( l, 0, 0, 0, 1 );
51 51
52 m_entry = new QLineEdit( this ); 52 m_entry = new QLineEdit( this );
53 layout->addWidget( m_entry, 1, 0 ); 53 layout->addWidget( m_entry, 1, 0 );
54 connect( m_entry, SIGNAL(returnPressed()), this, SLOT(slotTryAccept()) ); 54 connect( m_entry, SIGNAL(returnPressed()), this, SLOT(slotTryAccept()) );
55 55
56 QPixmap pic; 56 QPushButton *btn = new QPushButton( Opie::Core::OResource::loadPixmap( "folder", Opie::Core::OResource::SmallIcon ),
57 pic.convertFromImage( Resource::loadImage( "folder" ).smoothScale( AppLnk::smallIconSize(), AppLnk::smallIconSize() ) ); 57 QString::null, this );
58 QPushButton *btn = new QPushButton( pic, QString::null, this ); 58 btn->setMinimumHeight( AppLnk::smallIconSize()+4 );
59 btn->setMaximumWidth( btn->height() ); 59 btn->setMaximumWidth( btn->height() );
60 connect( btn, SIGNAL(clicked()), this, SLOT(slotSelectPath()) ); 60 connect( btn, SIGNAL(clicked()), this, SLOT(slotSelectPath()) );
61 layout->addWidget( btn, 1, 1 ); 61 layout->addWidget( btn, 1, 1 );
62 62
63 layout->setRowStretch( 2, 10 ); 63 layout->setRowStretch( 2, 10 );
64 64
65 resize( width(), l->height() + btn->height() + 8 ); 65 resize( width(), l->height() + btn->height() + 8 );
66} 66}
67 67
68void EntryDlg::setText( const QString &text ) 68void EntryDlg::setText( const QString &text )
69{ 69{
70 m_entry->setText( text ); 70 m_entry->setText( text );
71 m_entry->selectAll(); 71 m_entry->selectAll();
72} 72}
73 73
74QString EntryDlg::getText() 74QString EntryDlg::getText()
75{ 75{
76 return m_entry->text(); 76 return m_entry->text();
77} 77}
78 78
79QString EntryDlg::getText( const QString &caption, const QString &label, const QString &text, bool *ok, 79QString EntryDlg::getText( const QString &caption, const QString &label, const QString &text, bool *ok,
80 QWidget *parent, const char *name ) 80 QWidget *parent, const char *name )
81{ 81{
82 EntryDlg *dlg = new EntryDlg( label, parent, name, true ); 82 EntryDlg *dlg = new EntryDlg( label, parent, name, true );
83 dlg->setCaption( caption ); 83 dlg->setCaption( caption );
84 dlg->setText( text ); 84 dlg->setText( text );
85 85
86 QString result; 86 QString result;
87 87
88 *ok = ( QPEApplication::execDialog( dlg ) == QDialog::Accepted ); 88 *ok = ( QPEApplication::execDialog( dlg ) == QDialog::Accepted );
89 if ( *ok ) 89 if ( *ok )
90 result = dlg->getText(); 90 result = dlg->getText();
91 91
92 delete dlg; 92 delete dlg;
93 return result; 93 return result;
94} 94}
95void EntryDlg::slotTryAccept() 95void EntryDlg::slotTryAccept()
96{ 96{
97 if ( !m_entry->text().isEmpty() ) 97 if ( !m_entry->text().isEmpty() )
98 accept(); 98 accept();
99} 99}
100 100
101void EntryDlg::slotSelectPath() 101void EntryDlg::slotSelectPath()
102{ 102{
103 QString path = Opie::Ui::OFileDialog::getDirectory( 0, m_entry->text() ); 103 QString path = Opie::Ui::OFileDialog::getDirectory( 0, m_entry->text() );
104 if ( path.at( path.length() - 1 ) == '/' ) 104 if ( path.at( path.length() - 1 ) == '/' )
105 path.truncate( path.length() - 1 ); 105 path.truncate( path.length() - 1 );
106 if ( !path.isNull() ) 106 if ( !path.isNull() )
107 m_entry->setText( path ); 107 m_entry->setText( path );
108} 108}
diff --git a/noncore/settings/packagemanager/installdlg.cpp b/noncore/settings/packagemanager/installdlg.cpp
index 205d7ed..15d88ad 100644
--- a/noncore/settings/packagemanager/installdlg.cpp
+++ b/noncore/settings/packagemanager/installdlg.cpp
@@ -1,324 +1,316 @@
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)2004, 2005 Dan Williams <drw@handhelds.org> 4 Copyright (C)2004, 2005 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#include "installdlg.h" 31#include "installdlg.h"
32 32
33#include <opie2/ofiledialog.h> 33#include <opie2/ofiledialog.h>
34#include <opie2/oresource.h>
34 35
35#include <qpe/fileselector.h> 36#include <qpe/fileselector.h>
36#include <qpe/resource.h>
37#include <qpe/storage.h> 37#include <qpe/storage.h>
38 38
39#include <qapplication.h> 39#include <qapplication.h>
40#include <qcombobox.h> 40#include <qcombobox.h>
41#include <qfileinfo.h> 41#include <qfileinfo.h>
42#include <qgroupbox.h> 42#include <qgroupbox.h>
43#include <qlabel.h> 43#include <qlabel.h>
44#include <qlayout.h> 44#include <qlayout.h>
45#include <qmap.h> 45#include <qmap.h>
46#include <qmultilineedit.h> 46#include <qmultilineedit.h>
47#include <qpushbutton.h> 47#include <qpushbutton.h>
48 48
49#include <sys/vfs.h> 49#include <sys/vfs.h>
50 50
51#include "opackagemanager.h" 51#include "opackagemanager.h"
52 52
53InstallDlg::InstallDlg( QWidget *parent, OPackageManager *pm, const QString &caption, 53InstallDlg::InstallDlg( QWidget *parent, OPackageManager *pm, const QString &caption,
54 OPackage::Command command1, const QStringList &packages1, 54 OPackage::Command command1, const QStringList &packages1,
55 OPackage::Command command2, const QStringList &packages2, 55 OPackage::Command command2, const QStringList &packages2,
56 OPackage::Command command3, const QStringList &packages3 ) 56 OPackage::Command command3, const QStringList &packages3 )
57 : QWidget( 0l ) 57 : QWidget( 0l )
58 , m_packman( pm ) 58 , m_packman( pm )
59 , m_installFound( false ) 59 , m_installFound( false )
60 , m_numCommands( 0 ) 60 , m_numCommands( 0 )
61 , m_currCommand( 0 ) 61 , m_currCommand( 0 )
62 , m_destItem( 0l ) 62 , m_destItem( 0l )
63{ 63{
64 // Save command/package list information 64 // Save command/package list information
65 if ( command1 != OPackage::NotDefined ) 65 if ( command1 != OPackage::NotDefined )
66 { 66 {
67 m_command[ m_numCommands ] = command1; 67 m_command[ m_numCommands ] = command1;
68 m_packages[ m_numCommands ] = packages1; 68 m_packages[ m_numCommands ] = packages1;
69 ++m_numCommands; 69 ++m_numCommands;
70 70
71 if ( command1 == OPackage::Install ) 71 if ( command1 == OPackage::Install )
72 m_installFound = true; 72 m_installFound = true;
73 } 73 }
74 if ( command2 != OPackage::NotDefined ) 74 if ( command2 != OPackage::NotDefined )
75 { 75 {
76 m_command[ m_numCommands ] = command2; 76 m_command[ m_numCommands ] = command2;
77 m_packages[ m_numCommands ] = packages2; 77 m_packages[ m_numCommands ] = packages2;
78 ++m_numCommands; 78 ++m_numCommands;
79 79
80 if ( command2 == OPackage::Install ) 80 if ( command2 == OPackage::Install )
81 m_installFound = true; 81 m_installFound = true;
82 } 82 }
83 if ( command3 != OPackage::NotDefined ) 83 if ( command3 != OPackage::NotDefined )
84 { 84 {
85 m_command[ m_numCommands ] = command3; 85 m_command[ m_numCommands ] = command3;
86 m_packages[ m_numCommands ] = packages3; 86 m_packages[ m_numCommands ] = packages3;
87 ++m_numCommands; 87 ++m_numCommands;
88 88
89 if ( command3 == OPackage::Install ) 89 if ( command3 == OPackage::Install )
90 m_installFound = true; 90 m_installFound = true;
91 } 91 }
92 92
93 // Initialize UI 93 // Initialize UI
94 if ( parent ) 94 if ( parent )
95 parent->setCaption( caption ); 95 parent->setCaption( caption );
96 96
97 QGridLayout *layout = new QGridLayout( this, 4, 2, 2, 4 ); 97 QGridLayout *layout = new QGridLayout( this, 4, 2, 2, 4 );
98 98
99 if ( m_installFound ) 99 if ( m_installFound )
100 { 100 {
101 QLabel *label = new QLabel( tr( "Destination" ), this ); 101 QLabel *label = new QLabel( tr( "Destination" ), this );
102 layout->addWidget( label, 0, 0 ); 102 layout->addWidget( label, 0, 0 );
103 m_destination = new QComboBox( this ); 103 m_destination = new QComboBox( this );
104 m_destination->insertStringList( m_packman->destinations() ); 104 m_destination->insertStringList( m_packman->destinations() );
105 layout->addWidget( m_destination, 0, 1 ); 105 layout->addWidget( m_destination, 0, 1 );
106 connect( m_destination, SIGNAL(highlighted(const QString&)), 106 connect( m_destination, SIGNAL(highlighted(const QString&)),
107 this, SLOT(slotDisplayAvailSpace(const QString&)) ); 107 this, SLOT(slotDisplayAvailSpace(const QString&)) );
108 108
109 label = new QLabel( tr( "Space Avail" ), this ); 109 label = new QLabel( tr( "Space Avail" ), this );
110 layout->addWidget( label, 1, 0 ); 110 layout->addWidget( label, 1, 0 );
111 m_availSpace = new QLabel( this ); 111 m_availSpace = new QLabel( this );
112 layout->addWidget( m_availSpace, 1, 1 ); 112 layout->addWidget( m_availSpace, 1, 1 );
113 113
114 // TODO - select correct destination 114 // TODO - select correct destination
115 slotDisplayAvailSpace( m_destination->currentText() ); 115 slotDisplayAvailSpace( m_destination->currentText() );
116 } 116 }
117 else 117 else
118 { 118 {
119 m_destination = 0l; 119 m_destination = 0l;
120 m_availSpace = 0l; 120 m_availSpace = 0l;
121 } 121 }
122 122
123 QGroupBox *groupBox = new QGroupBox( 0, Qt::Vertical, tr( "Output" ), this ); 123 QGroupBox *groupBox = new QGroupBox( 0, Qt::Vertical, tr( "Output" ), this );
124 groupBox->layout()->setSpacing( 0 ); 124 groupBox->layout()->setSpacing( 0 );
125 groupBox->layout()->setMargin( 4 ); 125 groupBox->layout()->setMargin( 4 );
126 126
127 QVBoxLayout *groupBoxLayout = new QVBoxLayout( groupBox->layout() ); 127 QVBoxLayout *groupBoxLayout = new QVBoxLayout( groupBox->layout() );
128 m_output = new QMultiLineEdit( groupBox ); 128 m_output = new QMultiLineEdit( groupBox );
129 m_output->setReadOnly( true ); 129 m_output->setReadOnly( true );
130 groupBoxLayout->addWidget( m_output ); 130 groupBoxLayout->addWidget( m_output );
131 layout->addMultiCellWidget( groupBox, 2, 2, 0, 1 ); 131 layout->addMultiCellWidget( groupBox, 2, 2, 0, 1 );
132 132
133 QPixmap pic; 133 m_btnStart = new QPushButton( Opie::Core::OResource::loadPixmap( "packagemanager/apply",
134 pic.convertFromImage( Resource::loadImage( "packagemanager/apply" ).smoothScale( AppLnk::smallIconSize(), AppLnk::smallIconSize() ) ); 134 Opie::Core::OResource::SmallIcon ), tr( "Start" ), this );
135 m_btnStart = new QPushButton( pic, tr( "Start" ), this );
136 m_btnStart->setMinimumHeight( AppLnk::smallIconSize() ); 135 m_btnStart->setMinimumHeight( AppLnk::smallIconSize() );
137 layout->addWidget( m_btnStart, 3, 0 ); 136 layout->addWidget( m_btnStart, 3, 0 );
138 connect( m_btnStart, SIGNAL(clicked()), this, SLOT(slotBtnStart()) ); 137 connect( m_btnStart, SIGNAL(clicked()), this, SLOT(slotBtnStart()) );
139 138
140 pic.convertFromImage( Resource::loadImage( "SettingsIcon" ).smoothScale( AppLnk::smallIconSize(), AppLnk::smallIconSize() ) ); 139 m_btnOptions = new QPushButton( Opie::Core::OResource::loadPixmap( "SettingsIcon", Opie::Core::OResource::SmallIcon ),
141 m_btnOptions = new QPushButton( pic, tr( "Options" ), this ); 140 tr( "Options" ), this );
142 m_btnOptions->setMinimumHeight( AppLnk::smallIconSize() ); 141 m_btnOptions->setMinimumHeight( AppLnk::smallIconSize() );
143 layout->addWidget( m_btnOptions, 3, 1 ); 142 layout->addWidget( m_btnOptions, 3, 1 );
144 connect( m_btnOptions, SIGNAL( clicked() ), this, SLOT(slotBtnOptions()) ); 143 connect( m_btnOptions, SIGNAL( clicked() ), this, SLOT(slotBtnOptions()) );
145 144
146 // Display packages being acted upon in output widget 145 // Display packages being acted upon in output widget
147 for( int i = 0; i < m_numCommands; i++ ) 146 for( int i = 0; i < m_numCommands; i++ )
148 { 147 {
149 if ( !m_packages[ i ].isEmpty() ) 148 if ( !m_packages[ i ].isEmpty() )
150 { 149 {
151 QString lineStr = tr( "Packages to " ); 150 QString lineStr = tr( "Packages to " );
152 151
153 switch( m_command[ i ] ) 152 switch( m_command[ i ] )
154 { 153 {
155 case OPackage::Install : lineStr.append( tr( "install" ) ); 154 case OPackage::Install : lineStr.append( tr( "install" ) );
156 break; 155 break;
157 case OPackage::Remove : lineStr.append( tr( "remove" ) ); 156 case OPackage::Remove : lineStr.append( tr( "remove" ) );
158 break; 157 break;
159 case OPackage::Upgrade : lineStr.append( tr( "upgrade" ) ); 158 case OPackage::Upgrade : lineStr.append( tr( "upgrade" ) );
160 break; 159 break;
161 case OPackage::Download : lineStr.append( tr( "download" ) ); 160 case OPackage::Download : lineStr.append( tr( "download" ) );
162 break; 161 break;
163 default : 162 default :
164 break; 163 break;
165 }; 164 };
166 lineStr.append( ":\n" ); 165 lineStr.append( ":\n" );
167 166
168 QStringList tmpPackage = m_packages[ i ]; 167 QStringList tmpPackage = m_packages[ i ];
169 for ( QStringList::Iterator it = tmpPackage.begin(); it != tmpPackage.end(); ++it ) 168 for ( QStringList::Iterator it = tmpPackage.begin(); it != tmpPackage.end(); ++it )
170 { 169 {
171 lineStr.append( QString( "\t%1\n" ).arg( ( *it ) ) ); 170 lineStr.append( QString( "\t%1\n" ).arg( ( *it ) ) );
172 } 171 }
173 172
174 m_output->append( lineStr ); 173 m_output->append( lineStr );
175 } 174 }
176 } 175 }
177 176
178 m_output->append( tr( "Press the start button to begin.\n" ) ); 177 m_output->append( tr( "Press the start button to begin.\n" ) );
179 m_output->setCursorPosition( m_output->numLines(), 0 ); 178 m_output->setCursorPosition( m_output->numLines(), 0 );
180 179
181} 180}
182 181
183void InstallDlg::slotDisplayAvailSpace( const QString &destination ) 182void InstallDlg::slotDisplayAvailSpace( const QString &destination )
184{ 183{
185 // If available space is not displayed, exit 184 // If available space is not displayed, exit
186 if ( !m_availSpace ) 185 if ( !m_availSpace )
187 return; 186 return;
188 187
189 QString space = tr( "Unknown" ); 188 QString space = tr( "Unknown" );
190 189
191 // Get destination 190 // Get destination
192 if ( !destination.isNull() ) 191 if ( !destination.isNull() )
193 m_destItem = m_packman->findConfItem( OConfItem::Destination, destination ); 192 m_destItem = m_packman->findConfItem( OConfItem::Destination, destination );
194 193
195 if ( m_destItem ) 194 if ( m_destItem )
196 { 195 {
197 // Calculate available space 196 // Calculate available space
198 struct statfs fs; 197 struct statfs fs;
199 if ( !statfs( m_destItem->value(), &fs ) ) 198 if ( !statfs( m_destItem->value(), &fs ) )
200 { 199 {
201 long mult = fs.f_bsize / 1024; 200 long mult = fs.f_bsize / 1024;
202 long div = 1024 / fs.f_bsize; 201 long div = 1024 / fs.f_bsize;
203 202
204 if ( !mult ) mult = 1; 203 if ( !mult ) mult = 1;
205 if ( !div ) div = 1; 204 if ( !div ) div = 1;
206 long avail = fs.f_bavail * mult / div; 205 long avail = fs.f_bavail * mult / div;
207 206
208 space = tr( "%1 Kb" ).arg( avail ); 207 space = tr( "%1 Kb" ).arg( avail );
209 } 208 }
210 } 209 }
211 210
212 // Display available space 211 // Display available space
213 m_availSpace->setText( space ); 212 m_availSpace->setText( space );
214} 213}
215 214
216void InstallDlg::slotBtnStart() 215void InstallDlg::slotBtnStart()
217{ 216{
218 QString btnText = m_btnStart->text(); 217 QString btnText = m_btnStart->text();
219 if ( btnText == tr( "Abort" ) ) 218 if ( btnText == tr( "Abort" ) )
220 { 219 {
221 // Prevent unexecuted commands from executing 220 // Prevent unexecuted commands from executing
222 m_currCommand = 999; 221 m_currCommand = 999;
223 222
224 // Allow user to close dialog 223 // Allow user to close dialog
225 m_btnStart->setText( tr( "Close" ) ); 224 m_btnStart->setText( tr( "Close" ) );
226 QPixmap pic; 225 m_btnStart->setIconSet( Opie::Core::OResource::loadPixmap( "close", Opie::Core::OResource::SmallIcon ) );
227 pic.convertFromImage( Resource::loadImage( "close" ).smoothScale( AppLnk::smallIconSize(), AppLnk::smallIconSize() ) );
228 m_btnStart->setIconSet( pic );
229 return; 226 return;
230 } 227 }
231 else if ( btnText == tr( "Close" ) ) 228 else if ( btnText == tr( "Close" ) )
232 { 229 {
233 // TODO - force reload of package data 230 // TODO - force reload of package data
234 emit closeInstallDlg(); 231 emit closeInstallDlg();
235 return; 232 return;
236 } 233 }
237 234
238 // Start was clicked, start executing 235 // Start was clicked, start executing
239 QString dest; 236 QString dest;
240 if ( m_installFound ) 237 if ( m_installFound )
241 { 238 {
242 dest = m_destination->currentText(); 239 dest = m_destination->currentText();
243 m_destination->setEnabled( false ); 240 m_destination->setEnabled( false );
244 } 241 }
245 242
246 m_btnOptions->setEnabled( false ); 243 m_btnOptions->setEnabled( false );
247 if ( m_numCommands > 1 ) 244 if ( m_numCommands > 1 )
248 { 245 {
249 m_btnStart->setText( tr( "Abort" ) ); 246 m_btnStart->setText( tr( "Abort" ) );
250 QPixmap pic; 247 m_btnStart->setIconSet( Opie::Core::OResource::loadPixmap( "reset", Opie::Core::OResource::SmallIcon ) );
251 pic.convertFromImage( Resource::loadImage( "reset" ).smoothScale( AppLnk::smallIconSize(), AppLnk::smallIconSize() ) );
252 m_btnStart->setIconSet( pic );
253 } 248 }
254 else 249 else
255 { 250 {
256 m_btnStart->setEnabled( false ); 251 m_btnStart->setEnabled( false );
257 } 252 }
258 253
259 for ( m_currCommand = 0; m_currCommand < m_numCommands; m_currCommand++ ) 254 for ( m_currCommand = 0; m_currCommand < m_numCommands; m_currCommand++ )
260 { 255 {
261 // Execute next command 256 // Execute next command
262 m_packman->executeCommand( m_command[ m_currCommand ], m_packages[ m_currCommand ], dest, 257 m_packman->executeCommand( m_command[ m_currCommand ], m_packages[ m_currCommand ], dest,
263 this, SLOT(slotOutput(const QString &)), true ); 258 this, SLOT(slotOutput(const QString &)), true );
264 } 259 }
265 260
266 // All commands executed, allow user to close dialog 261 // All commands executed, allow user to close dialog
267 m_btnStart->setEnabled( true ); 262 m_btnStart->setEnabled( true );
268 m_btnStart->setText( tr( "Close" ) ); 263 m_btnStart->setText( tr( "Close" ) );
269 QPixmap pic; 264 m_btnStart->setIconSet( Opie::Core::OResource::loadPixmap( "close", Opie::Core::OResource::SmallIcon ) );
270 pic.convertFromImage( Resource::loadImage( "close" ).smoothScale( AppLnk::smallIconSize(), AppLnk::smallIconSize() ) );
271 m_btnStart->setIconSet( pic );
272 265
273 m_btnOptions->setEnabled( true ); 266 m_btnOptions->setEnabled( true );
274 m_btnOptions->setText( tr( "Save output" ) ); 267 m_btnOptions->setText( tr( "Save output" ) );
275 pic.convertFromImage( Resource::loadImage( "save" ).smoothScale( AppLnk::smallIconSize(), AppLnk::smallIconSize() ) ); 268 m_btnOptions->setIconSet( Opie::Core::OResource::loadPixmap( "save", Opie::Core::OResource::SmallIcon ) );
276 m_btnOptions->setIconSet( pic );
277} 269}
278 270
279void InstallDlg::slotBtnOptions() 271void InstallDlg::slotBtnOptions()
280{ 272{
281 QString btnText = m_btnOptions->text(); 273 QString btnText = m_btnOptions->text();
282 if ( btnText == tr( "Options" ) ) 274 if ( btnText == tr( "Options" ) )
283 { 275 {
284 // Display configuration dialog (only options tab is enabled) 276 // Display configuration dialog (only options tab is enabled)
285 m_packman->configureDlg( true ); 277 m_packman->configureDlg( true );
286 return; 278 return;
287 } 279 }
288 280
289 // Save output was clicked 281 // Save output was clicked
290 QMap<QString, QStringList> map; 282 QMap<QString, QStringList> map;
291 map.insert( tr( "All" ), QStringList() ); 283 map.insert( tr( "All" ), QStringList() );
292 QStringList text; 284 QStringList text;
293 text << "text/*"; 285 text << "text/*";
294 map.insert(tr( "Text" ), text ); 286 map.insert(tr( "Text" ), text );
295 text << "*"; 287 text << "*";
296 map.insert( tr( "All" ), text ); 288 map.insert( tr( "All" ), text );
297 289
298 QString filename = Opie::Ui::OFileDialog::getSaveFileName( 2, "/", "ipkg-output", map ); 290 QString filename = Opie::Ui::OFileDialog::getSaveFileName( 2, "/", "ipkg-output", map );
299 if( !filename.isEmpty() ) 291 if( !filename.isEmpty() )
300 { 292 {
301 QString currentFileName = QFileInfo( filename ).fileName(); 293 QString currentFileName = QFileInfo( filename ).fileName();
302 DocLnk doc; 294 DocLnk doc;
303 doc.setType( "text/plain" ); 295 doc.setType( "text/plain" );
304 doc.setFile( filename ); 296 doc.setFile( filename );
305 doc.setName( currentFileName ); 297 doc.setName( currentFileName );
306 FileManager fm; 298 FileManager fm;
307 fm.saveFile( doc, m_output->text() ); 299 fm.saveFile( doc, m_output->text() );
308 } 300 }
309} 301}
310 302
311void InstallDlg::slotOutput( const QString &msg ) 303void InstallDlg::slotOutput( const QString &msg )
312{ 304{
313 // Allow processing of other events 305 // Allow processing of other events
314 qApp->processEvents(); 306 qApp->processEvents();
315 307
316 QString lineStr = msg; 308 QString lineStr = msg;
317 if ( lineStr[lineStr.length()-1] == '\n' ) 309 if ( lineStr[lineStr.length()-1] == '\n' )
318 lineStr.truncate( lineStr.length() - 1 ); 310 lineStr.truncate( lineStr.length() - 1 );
319 m_output->append( lineStr ); 311 m_output->append( lineStr );
320 m_output->setCursorPosition( m_output->numLines(), 0 ); 312 m_output->setCursorPosition( m_output->numLines(), 0 );
321 313
322 // Update available space 314 // Update available space
323 slotDisplayAvailSpace( QString::null ); 315 slotDisplayAvailSpace( QString::null );
324} 316}
diff --git a/noncore/settings/packagemanager/mainwindow.cpp b/noncore/settings/packagemanager/mainwindow.cpp
index 0e40c01..e0e5e04 100644
--- a/noncore/settings/packagemanager/mainwindow.cpp
+++ b/noncore/settings/packagemanager/mainwindow.cpp
@@ -1,350 +1,358 @@
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)2004, 2005 Dan Williams <drw@handhelds.org> 4 Copyright (C)2004, 2005 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#include "mainwindow.h" 31#include "mainwindow.h"
32#include "installdlg.h" 32#include "installdlg.h"
33#include "filterdlg.h" 33#include "filterdlg.h"
34#include "promptdlg.h" 34#include "promptdlg.h"
35#include "entrydlg.h" 35#include "entrydlg.h"
36#include "packageinfodlg.h" 36#include "packageinfodlg.h"
37 37
38#include <opie2/ofiledialog.h> 38#include <opie2/ofiledialog.h>
39#include <opie2/oresource.h>
39 40
40#include <qpe/qcopenvelope_qws.h> 41#include <qpe/qcopenvelope_qws.h>
41#include <qpe/qpeapplication.h> 42#include <qpe/qpeapplication.h>
42#include <qpe/resource.h>
43 43
44#include <qaction.h> 44#include <qaction.h>
45#include <qdir.h> 45#include <qdir.h>
46#include <qlayout.h> 46#include <qlayout.h>
47#include <qlineedit.h> 47#include <qlineedit.h>
48#include <qmenubar.h> 48#include <qmenubar.h>
49#include <qmessagebox.h> 49#include <qmessagebox.h>
50#include <qpopupmenu.h> 50#include <qpopupmenu.h>
51#include <qtimer.h> 51#include <qtimer.h>
52#include <qtoolbar.h> 52#include <qtoolbar.h>
53#include <qwhatsthis.h> 53#include <qwhatsthis.h>
54 54
55MainWindow::MainWindow( QWidget *parent, const char *name, WFlags /*fl*/ ) 55MainWindow::MainWindow( QWidget *parent, const char *name, WFlags /*fl*/ )
56 : QMainWindow( parent, name, WStyle_ContextHelp ) 56 : QMainWindow( parent, name, WStyle_ContextHelp )
57 , m_config( "packman" ) 57 , m_config( "packman" )
58 , m_packman( &m_config, this ) 58 , m_packman( &m_config, this )
59 , m_menuBar( this ) 59 , m_menuBar( this )
60 , m_toolBar( this ) 60 , m_toolBar( this )
61 , m_findBar( this ) 61 , m_findBar( this )
62 , m_widgetStack( this ) 62 , m_widgetStack( this )
63 , m_packageList( this ) 63 , m_packageList( this )
64 , m_statusWidget( this ) 64 , m_statusWidget( this )
65 , m_statusText( &m_statusWidget ) 65 , m_statusText( &m_statusWidget )
66 , m_statusBar( &m_statusWidget ) 66 , m_statusBar( &m_statusWidget )
67 , m_iconUpdated( Resource::loadPixmap( "packagemanager/updated" ) ) 67 , m_iconUpdated( Opie::Core::OResource::loadPixmap( "packagemanager/updated" ) )
68 , m_iconInstalled( Resource::loadPixmap( "installed" ) ) 68 , m_iconInstalled( Opie::Core::OResource::loadPixmap( "installed" ) )
69 , m_iconNull( m_iconUpdated.size() ) 69 , m_iconNull( m_iconUpdated.size() )
70 , m_filterName( QString::null ) 70 , m_filterName( QString::null )
71 , m_filterServer( QString::null ) 71 , m_filterServer( QString::null )
72 , m_filterDest( QString::null ) 72 , m_filterDest( QString::null )
73 , m_filterStatus( OPackageManager::NotDefined ) 73 , m_filterStatus( OPackageManager::NotDefined )
74 , m_filterCategory( QString::null ) 74 , m_filterCategory( QString::null )
75 75
76{ 76{
77// setCaption( tr( "Package Manager" ) ); 77// setCaption( tr( "Package Manager" ) );
78 78
79 m_iconNull.fill( colorGroup().base() ); 79 m_iconNull.fill( colorGroup().base() );
80 80
81 connect( &m_widgetStack, SIGNAL(aboutToShow(QWidget*)), this, SLOT(slotWidgetStackShow(QWidget*)) ); 81 connect( &m_widgetStack, SIGNAL(aboutToShow(QWidget*)), this, SLOT(slotWidgetStackShow(QWidget*)) );
82 82
83 // Initialize widget stack, package list and status widget 83 // Initialize widget stack, package list and status widget
84 initStatusWidget(); 84 initStatusWidget();
85 initPackageList(); 85 initPackageList();
86 86
87 m_widgetStack.addWidget( &m_statusWidget, 2 ); 87 m_widgetStack.addWidget( &m_statusWidget, 2 );
88 m_widgetStack.addWidget( &m_packageList, 1 ); 88 m_widgetStack.addWidget( &m_packageList, 1 );
89 setCentralWidget( &m_widgetStack ); 89 setCentralWidget( &m_widgetStack );
90 90
91 // Initialize remaining user interface items 91 // Initialize remaining user interface items
92 initUI(); 92 initUI();
93 93
94 // Initialize package information 94 // Initialize package information
95 QTimer::singleShot( -1, this, SLOT( initPackageInfo() ) ); 95 QTimer::singleShot( -1, this, SLOT( initPackageInfo() ) );
96} 96}
97 97
98void MainWindow::closeEvent( QCloseEvent *event ) 98void MainWindow::closeEvent( QCloseEvent *event )
99{ 99{
100 // Close app only if either the package or status widgets are currently active 100 // Close app only if either the package or status widgets are currently active
101 bool close = m_widgetStack.visibleWidget() == &m_packageList || 101 bool close = m_widgetStack.visibleWidget() == &m_packageList ||
102 m_widgetStack.visibleWidget() == &m_statusWidget; 102 m_widgetStack.visibleWidget() == &m_statusWidget;
103 if ( close ) 103 if ( close )
104 { 104 {
105 // TODO - write out application configuration settings 105 // TODO - write out application configuration settings
106 106
107 // Write out package manager configuration settings 107 // Write out package manager configuration settings
108 m_packman.saveSettings(); 108 m_packman.saveSettings();
109 event->accept(); 109 event->accept();
110 } 110 }
111 else 111 else
112 { 112 {
113 delete m_widgetStack.visibleWidget(); 113 delete m_widgetStack.visibleWidget();
114 m_widgetStack.raiseWidget( &m_packageList ); 114 m_widgetStack.raiseWidget( &m_packageList );
115 event->ignore(); 115 event->ignore();
116 } 116 }
117} 117}
118 118
119void MainWindow::initPackageList() 119void MainWindow::initPackageList()
120{ 120{
121 m_packageList.addColumn( tr( "Packages" ) ); 121 m_packageList.addColumn( tr( "Packages" ) );
122 QWhatsThis::add( &m_packageList, tr( "This is a listing of all packages.\n\nA blue dot next to the package name indicates that the package is currently installed.\n\nA blue dot with a star indicates that a newer version of the package is available from the server feed.\n\nTap inside the box at the left to select a package. Tap and hold to view package details." ) ); 122 QWhatsThis::add( &m_packageList, tr( "This is a listing of all packages.\n\nA blue dot next to the package name indicates that the package is currently installed.\n\nA blue dot with a star indicates that a newer version of the package is available from the server feed.\n\nTap inside the box at the left to select a package. Tap and hold to view package details." ) );
123 QPEApplication::setStylusOperation( m_packageList.viewport(), QPEApplication::RightOnHold ); 123 QPEApplication::setStylusOperation( m_packageList.viewport(), QPEApplication::RightOnHold );
124 connect( &m_packageList, SIGNAL(rightButtonPressed(QListViewItem*,const QPoint&,int)), 124 connect( &m_packageList, SIGNAL(rightButtonPressed(QListViewItem*,const QPoint&,int)),
125 this, SLOT(slotDisplayPackageInfo(QListViewItem*)) ); 125 this, SLOT(slotDisplayPackageInfo(QListViewItem*)) );
126} 126}
127 127
128void MainWindow::initStatusWidget() 128void MainWindow::initStatusWidget()
129{ 129{
130 QVBoxLayout *layout = new QVBoxLayout( &m_statusWidget, 4, 4 ); 130 QVBoxLayout *layout = new QVBoxLayout( &m_statusWidget, 4, 4 );
131 131
132 m_statusText.setSizePolicy( QSizePolicy( QSizePolicy::Expanding, QSizePolicy::Fixed ) ); 132 m_statusText.setSizePolicy( QSizePolicy( QSizePolicy::Expanding, QSizePolicy::Fixed ) );
133 layout->addWidget( &m_statusText ); 133 layout->addWidget( &m_statusText );
134 134
135 connect( &m_packman, SIGNAL(initStatus(int)), this, SLOT(slotInitStatusBar(int)) ); 135 connect( &m_packman, SIGNAL(initStatus(int)), this, SLOT(slotInitStatusBar(int)) );
136 connect( &m_packman, SIGNAL(statusText(const QString&)), this, SLOT(slotStatusText(const QString&)) ); 136 connect( &m_packman, SIGNAL(statusText(const QString&)), this, SLOT(slotStatusText(const QString&)) );
137 connect( &m_packman, SIGNAL(statusBar(int)), this, SLOT(slotStatusBar(int)) ); 137 connect( &m_packman, SIGNAL(statusBar(int)), this, SLOT(slotStatusBar(int)) );
138 138
139 layout->addWidget( &m_statusBar ); 139 layout->addWidget( &m_statusBar );
140} 140}
141 141
142void MainWindow::initUI() 142void MainWindow::initUI()
143{ 143{
144 // Build menu and tool bars 144 // Build menu and tool bars
145 setToolBarsMovable( false ); 145 setToolBarsMovable( false );
146 146
147 m_menuBar.setHorizontalStretchable( true ); 147 m_menuBar.setHorizontalStretchable( true );
148 QMenuBar *mb = new QMenuBar( &m_menuBar ); 148 QMenuBar *mb = new QMenuBar( &m_menuBar );
149 mb->setMargin( 0 ); 149 mb->setMargin( 0 );
150 150
151 // Find toolbar 151 // Find toolbar
152 addToolBar( &m_findBar, QMainWindow::Top, true ); 152 addToolBar( &m_findBar, QMainWindow::Top, true );
153 m_findBar.setHorizontalStretchable( true ); 153 m_findBar.setHorizontalStretchable( true );
154 m_findEdit = new QLineEdit( &m_findBar ); 154 m_findEdit = new QLineEdit( &m_findBar );
155 QWhatsThis::add( m_findEdit, tr( "Type the text to search for here." ) ); 155 QWhatsThis::add( m_findEdit, tr( "Type the text to search for here." ) );
156 m_findBar.setStretchableWidget( m_findEdit ); 156 m_findBar.setStretchableWidget( m_findEdit );
157 connect( m_findEdit, SIGNAL(textChanged(const QString&)), this, SLOT(slotFindChanged(const QString&)) ); 157 connect( m_findEdit, SIGNAL(textChanged(const QString&)), this, SLOT(slotFindChanged(const QString&)) );
158 158
159 // Packages menu 159 // Packages menu
160 QPopupMenu *popup = new QPopupMenu( this ); 160 QPopupMenu *popup = new QPopupMenu( this );
161 161
162 QAction *a = new QAction( tr( "Update lists" ), Resource::loadPixmap( "packagemanager/update" ), QString::null, 0, this, 0 ); 162 QAction *a = new QAction( tr( "Update lists" ), Opie::Core::OResource::loadPixmap( "packagemanager/update",
163 Opie::Core::OResource::SmallIcon ), QString::null, 0, this, 0 );
163 a->setWhatsThis( tr( "Tap here to update package lists from servers." ) ); 164 a->setWhatsThis( tr( "Tap here to update package lists from servers." ) );
164 connect( a, SIGNAL(activated()), this, SLOT(slotUpdate()) ); 165 connect( a, SIGNAL(activated()), this, SLOT(slotUpdate()) );
165 a->addTo( popup ); 166 a->addTo( popup );
166 a->addTo( &m_toolBar ); 167 a->addTo( &m_toolBar );
167 168
168 QAction *actionUpgrade = new QAction( tr( "Upgrade" ), Resource::loadPixmap( "packagemanager/upgrade" ), QString::null, 0, this, 0 ); 169 QAction *actionUpgrade = new QAction( tr( "Upgrade" ), Opie::Core::OResource::loadPixmap( "packagemanager/upgrade",
170 Opie::Core::OResource::SmallIcon ), QString::null, 0, this, 0 );
169 actionUpgrade->setWhatsThis( tr( "Tap here to upgrade all installed packages if a newer version is available." ) ); 171 actionUpgrade->setWhatsThis( tr( "Tap here to upgrade all installed packages if a newer version is available." ) );
170 connect( actionUpgrade, SIGNAL(activated()), this, SLOT(slotUpgrade()) ); 172 connect( actionUpgrade, SIGNAL(activated()), this, SLOT(slotUpgrade()) );
171 actionUpgrade->addTo( popup ); 173 actionUpgrade->addTo( popup );
172 actionUpgrade->addTo( &m_toolBar ); 174 actionUpgrade->addTo( &m_toolBar );
173 175
174 QPixmap iconDownload = Resource::loadPixmap( "packagemanager/download" ); 176 QPixmap iconDownload = Opie::Core::OResource::loadPixmap( "packagemanager/download", Opie::Core::OResource::SmallIcon );
175 QPixmap iconRemove = Resource::loadPixmap( "packagemanager/remove" ); 177 QPixmap iconRemove = Opie::Core::OResource::loadPixmap( "packagemanager/remove", Opie::Core::OResource::SmallIcon );
176 QAction *actionDownload = new QAction( tr( "Download" ), iconDownload, QString::null, 0, this, 0 ); 178 QAction *actionDownload = new QAction( tr( "Download" ), iconDownload, QString::null, 0, this, 0 );
177 actionDownload->setWhatsThis( tr( "Tap here to download the currently selected package(s)." ) ); 179 actionDownload->setWhatsThis( tr( "Tap here to download the currently selected package(s)." ) );
178 connect( actionDownload, SIGNAL(activated()), this, SLOT(slotDownload()) ); 180 connect( actionDownload, SIGNAL(activated()), this, SLOT(slotDownload()) );
179 actionDownload->addTo( popup ); 181 actionDownload->addTo( popup );
180 actionDownload->addTo( &m_toolBar ); 182 actionDownload->addTo( &m_toolBar );
181 183
182 a = new QAction( tr( "Apply changes" ), Resource::loadPixmap( "packagemanager/apply" ), QString::null, 0, this, 0 ); 184 a = new QAction( tr( "Apply changes" ), Opie::Core::OResource::loadPixmap( "packagemanager/apply",
185 Opie::Core::OResource::SmallIcon ), QString::null, 0, this, 0 );
183 a->setWhatsThis( tr( "Tap here to install, remove or upgrade currently selected package(s)." ) ); 186 a->setWhatsThis( tr( "Tap here to install, remove or upgrade currently selected package(s)." ) );
184 connect( a, SIGNAL(activated()), this, SLOT(slotApply()) ); 187 connect( a, SIGNAL(activated()), this, SLOT(slotApply()) );
185 a->addTo( popup ); 188 a->addTo( popup );
186 a->addTo( &m_toolBar ); 189 a->addTo( &m_toolBar );
187 190
188 a = new QAction( tr( "Install local package" ), Resource::loadPixmap( "folder" ), QString::null, 0, this, 0 ); 191 a = new QAction( tr( "Install local package" ), Opie::Core::OResource::loadPixmap( "folder",
192 Opie::Core::OResource::SmallIcon ), QString::null, 0, this, 0 );
189 a->setWhatsThis( tr( "Tap here to install a package file located on device." ) ); 193 a->setWhatsThis( tr( "Tap here to install a package file located on device." ) );
190 connect( a, SIGNAL(activated()), this, SLOT(slotInstallLocal()) ); 194 connect( a, SIGNAL(activated()), this, SLOT(slotInstallLocal()) );
191 a->addTo( popup ); 195 a->addTo( popup );
192 //a->addTo( &m_toolBar ); 196 //a->addTo( &m_toolBar );
193 197
194 popup->insertSeparator(); 198 popup->insertSeparator();
195 199
196 a = new QAction( tr( "Configure" ), Resource::loadPixmap( "SettingsIcon" ), QString::null, 0, this, 0 ); 200 a = new QAction( tr( "Configure" ), Opie::Core::OResource::loadPixmap( "SettingsIcon",
201 Opie::Core::OResource::SmallIcon ), QString::null, 0, this, 0 );
197 a->setWhatsThis( tr( "Tap here to configure this application." ) ); 202 a->setWhatsThis( tr( "Tap here to configure this application." ) );
198 connect( a, SIGNAL(activated()), this, SLOT(slotConfigure()) ); 203 connect( a, SIGNAL(activated()), this, SLOT(slotConfigure()) );
199 a->addTo( popup ); 204 a->addTo( popup );
200 mb->insertItem( tr( "Actions" ), popup ); 205 mb->insertItem( tr( "Actions" ), popup );
201 206
202 // View menu 207 // View menu
203 popup = new QPopupMenu( this ); 208 popup = new QPopupMenu( this );
204 209
205 m_actionShowNotInstalled = new QAction( tr( "Show packages not installed" ), QString::null, 0, this, 0 ); 210 m_actionShowNotInstalled = new QAction( tr( "Show packages not installed" ), QString::null, 0, this, 0 );
206 m_actionShowNotInstalled->setToggleAction( true ); 211 m_actionShowNotInstalled->setToggleAction( true );
207 m_actionShowNotInstalled->setWhatsThis( tr( "Tap here to show packages available which have not been installed." ) ); 212 m_actionShowNotInstalled->setWhatsThis( tr( "Tap here to show packages available which have not been installed." ) );
208 connect( m_actionShowNotInstalled, SIGNAL(activated()), this, SLOT(slotShowNotInstalled()) ); 213 connect( m_actionShowNotInstalled, SIGNAL(activated()), this, SLOT(slotShowNotInstalled()) );
209 m_actionShowNotInstalled->addTo( popup ); 214 m_actionShowNotInstalled->addTo( popup );
210 215
211 m_actionShowInstalled = new QAction( tr( "Show installed packages" ), QString::null, 0, this, 0 ); 216 m_actionShowInstalled = new QAction( tr( "Show installed packages" ), QString::null, 0, this, 0 );
212 m_actionShowInstalled->setToggleAction( true ); 217 m_actionShowInstalled->setToggleAction( true );
213 m_actionShowInstalled->setWhatsThis( tr( "Tap here to show packages currently installed on this device." ) ); 218 m_actionShowInstalled->setWhatsThis( tr( "Tap here to show packages currently installed on this device." ) );
214 connect( m_actionShowInstalled, SIGNAL(activated()), this, SLOT(slotShowInstalled()) ); 219 connect( m_actionShowInstalled, SIGNAL(activated()), this, SLOT(slotShowInstalled()) );
215 m_actionShowInstalled->addTo( popup ); 220 m_actionShowInstalled->addTo( popup );
216 221
217 m_actionShowUpdated = new QAction( tr( "Show updated packages" ), QString::null, 0, this, 0 ); 222 m_actionShowUpdated = new QAction( tr( "Show updated packages" ), QString::null, 0, this, 0 );
218 m_actionShowUpdated->setToggleAction( true ); 223 m_actionShowUpdated->setToggleAction( true );
219 m_actionShowUpdated->setWhatsThis( tr( "Tap here to show packages currently installed on this device which have a newer version available." ) ); 224 m_actionShowUpdated->setWhatsThis( tr( "Tap here to show packages currently installed on this device which have a newer version available." ) );
220 connect( m_actionShowUpdated, SIGNAL(activated()), this, SLOT(slotShowUpdated()) ); 225 connect( m_actionShowUpdated, SIGNAL(activated()), this, SLOT(slotShowUpdated()) );
221 m_actionShowUpdated->addTo( popup ); 226 m_actionShowUpdated->addTo( popup );
222 227
223 popup->insertSeparator(); 228 popup->insertSeparator();
224 229
225 m_actionFilter = new QAction( tr( "Filter" ), Resource::loadPixmap( "packagemanager/filter" ), 230 m_actionFilter = new QAction( tr( "Filter" ), Opie::Core::OResource::loadPixmap( "packagemanager/filter",
226 QString::null, 0, this, 0 ); 231 Opie::Core::OResource::SmallIcon ), QString::null, 0, this, 0 );
227 m_actionFilter->setToggleAction( true ); 232 m_actionFilter->setToggleAction( true );
228 m_actionFilter->setWhatsThis( tr( "Tap here to apply current filter." ) ); 233 m_actionFilter->setWhatsThis( tr( "Tap here to apply current filter." ) );
229 connect( m_actionFilter, SIGNAL(toggled(bool)), this, SLOT(slotFilter(bool)) ); 234 connect( m_actionFilter, SIGNAL(toggled(bool)), this, SLOT(slotFilter(bool)) );
230 m_actionFilter->addTo( popup ); 235 m_actionFilter->addTo( popup );
231 236
232 a = new QAction( tr( "Filter settings" ), QString::null, 0, this, 0 ); 237 a = new QAction( tr( "Filter settings" ), QString::null, 0, this, 0 );
233 a->setWhatsThis( tr( "Tap here to change the package filter criteria." ) ); 238 a->setWhatsThis( tr( "Tap here to change the package filter criteria." ) );
234 connect( a, SIGNAL(activated()), this, SLOT(slotFilterChange()) ); 239 connect( a, SIGNAL(activated()), this, SLOT(slotFilterChange()) );
235 a->addTo( popup ); 240 a->addTo( popup );
236 241
237 popup->insertSeparator(); 242 popup->insertSeparator();
238 243
239 a = new QAction( tr( "Find" ), Resource::loadPixmap( "find" ), QString::null, 0, this, 0 ); 244 a = new QAction( tr( "Find" ), Opie::Core::OResource::loadPixmap( "find", Opie::Core::OResource::SmallIcon ),
245 QString::null, 0, this, 0 );
240 a->setWhatsThis( tr( "Tap here to search for text in package names." ) ); 246 a->setWhatsThis( tr( "Tap here to search for text in package names." ) );
241 connect( a, SIGNAL(activated()), this, SLOT(slotFindShowToolbar()) ); 247 connect( a, SIGNAL(activated()), this, SLOT(slotFindShowToolbar()) );
242 a->addTo( popup ); 248 a->addTo( popup );
243 249
244 m_actionFindNext = new QAction( tr( "Find next" ), Resource::loadIconSet( "next" ), QString::null, 0, this, 0 ); 250 m_actionFindNext = new QAction( tr( "Find next" ), Opie::Core::OResource::loadPixmap( "next",
251 Opie::Core::OResource::SmallIcon ), QString::null, 0, this, 0 );
245 m_actionFindNext->setEnabled( false ); 252 m_actionFindNext->setEnabled( false );
246 m_actionFindNext->setWhatsThis( tr( "Tap here to find the next package name containing the text you are searching for." ) ); 253 m_actionFindNext->setWhatsThis( tr( "Tap here to find the next package name containing the text you are searching for." ) );
247 connect( m_actionFindNext, SIGNAL(activated()), this, SLOT(slotFindNext()) ); 254 connect( m_actionFindNext, SIGNAL(activated()), this, SLOT(slotFindNext()) );
248 m_actionFindNext->addTo( popup ); 255 m_actionFindNext->addTo( popup );
249 m_actionFindNext->addTo( &m_findBar ); 256 m_actionFindNext->addTo( &m_findBar );
250 257
251 mb->insertItem( tr( "View" ), popup ); 258 mb->insertItem( tr( "View" ), popup );
252 259
253 // Finish find toolbar creation 260 // Finish find toolbar creation
254 a = new QAction( QString::null, Resource::loadPixmap( "close" ), QString::null, 0, this, 0 ); 261 a = new QAction( QString::null, Opie::Core::OResource::loadPixmap( "close", Opie::Core::OResource::SmallIcon ),
262 QString::null, 0, this, 0 );
255 a->setWhatsThis( tr( "Tap here to hide the find toolbar." ) ); 263 a->setWhatsThis( tr( "Tap here to hide the find toolbar." ) );
256 connect( a, SIGNAL(activated()), this, SLOT(slotFindHideToolbar()) ); 264 connect( a, SIGNAL(activated()), this, SLOT(slotFindHideToolbar()) );
257 a->addTo( &m_findBar ); 265 a->addTo( &m_findBar );
258 m_findBar.hide(); 266 m_findBar.hide();
259} 267}
260 268
261void MainWindow::loadPackageList( OPackageList *packages, bool clearList ) 269void MainWindow::loadPackageList( OPackageList *packages, bool clearList )
262{ 270{
263 if ( clearList ) 271 if ( clearList )
264 m_packageList.clear(); 272 m_packageList.clear();
265 273
266 if ( packages ) 274 if ( packages )
267 { 275 {
268 for ( OPackageListIterator packageIt( *packages ); packageIt.current(); ++packageIt ) 276 for ( OPackageListIterator packageIt( *packages ); packageIt.current(); ++packageIt )
269 { 277 {
270 OPackage *package = packageIt.current(); 278 OPackage *package = packageIt.current();
271 QCheckListItem *item = new QCheckListItem( &m_packageList, package->name(), 279 QCheckListItem *item = new QCheckListItem( &m_packageList, package->name(),
272 QCheckListItem::CheckBox ); 280 QCheckListItem::CheckBox );
273 m_packageList.insertItem( item ); 281 m_packageList.insertItem( item );
274 282
275 // If a different version of package is available, show update available icon 283 // If a different version of package is available, show update available icon
276 // Otherwise, show installed icon 284 // Otherwise, show installed icon
277 if ( !package->versionInstalled().isNull() ) 285 if ( !package->versionInstalled().isNull() )
278 { 286 {
279 if ( m_packman.compareVersions( package->version(), package->versionInstalled() ) == 1 ) 287 if ( m_packman.compareVersions( package->version(), package->versionInstalled() ) == 1 )
280 item->setPixmap( 0, m_iconUpdated ); 288 item->setPixmap( 0, m_iconUpdated );
281 else 289 else
282 item->setPixmap( 0, m_iconInstalled ); 290 item->setPixmap( 0, m_iconInstalled );
283 } 291 }
284 else 292 else
285 item->setPixmap( 0, m_iconNull ); 293 item->setPixmap( 0, m_iconNull );
286 } 294 }
287 } 295 }
288} 296}
289 297
290void MainWindow::searchForPackage( const QString &text ) 298void MainWindow::searchForPackage( const QString &text )
291{ 299{
292 if ( !text.isEmpty() ) 300 if ( !text.isEmpty() )
293 { 301 {
294 // look through package list for text startng at current position 302 // look through package list for text startng at current position
295 QCheckListItem *start = static_cast<QCheckListItem *>(m_packageList.currentItem()); 303 QCheckListItem *start = static_cast<QCheckListItem *>(m_packageList.currentItem());
296 if ( start == 0 ) 304 if ( start == 0 )
297 start = static_cast<QCheckListItem *>(m_packageList.firstChild()); 305 start = static_cast<QCheckListItem *>(m_packageList.firstChild());
298 306
299// for ( QCheckListItem *item = static_cast<QCheckListItem *>(start->nextSibling()); item != 0 ; 307// for ( QCheckListItem *item = static_cast<QCheckListItem *>(start->nextSibling()); item != 0 ;
300 for ( QCheckListItem *item = static_cast<QCheckListItem *>(start); item != 0 ; 308 for ( QCheckListItem *item = static_cast<QCheckListItem *>(start); item != 0 ;
301 item = static_cast<QCheckListItem *>(item->nextSibling()) ) 309 item = static_cast<QCheckListItem *>(item->nextSibling()) )
302 { 310 {
303 if ( item->text().lower().find( text ) != -1 ) 311 if ( item->text().lower().find( text ) != -1 )
304 { 312 {
305 m_packageList.ensureItemVisible( item ); 313 m_packageList.ensureItemVisible( item );
306 m_packageList.setCurrentItem( item ); 314 m_packageList.setCurrentItem( item );
307 break; 315 break;
308 } 316 }
309 } 317 }
310 } 318 }
311} 319}
312 320
313void MainWindow::installLocalPackage( const QString &ipkFile ) 321void MainWindow::installLocalPackage( const QString &ipkFile )
314{ 322{
315 // Install selected file 323 // Install selected file
316 InstallDlg *dlg = new InstallDlg( this, &m_packman, tr( "Install local package" ), 324 InstallDlg *dlg = new InstallDlg( this, &m_packman, tr( "Install local package" ),
317 OPackage::Install, ipkFile ); 325 OPackage::Install, ipkFile );
318 connect( dlg, SIGNAL(closeInstallDlg()), this, SLOT(slotCloseDlg()) ); 326 connect( dlg, SIGNAL(closeInstallDlg()), this, SLOT(slotCloseDlg()) );
319 327
320 // Display widget 328 // Display widget
321 m_widgetStack.addWidget( dlg, 3 ); 329 m_widgetStack.addWidget( dlg, 3 );
322 m_widgetStack.raiseWidget( dlg ); 330 m_widgetStack.raiseWidget( dlg );
323} 331}
324 332
325void MainWindow::setDocument( const QString &ipkFile ) 333void MainWindow::setDocument( const QString &ipkFile )
326{ 334{
327 QString file = ipkFile; 335 QString file = ipkFile;
328 DocLnk lnk( ipkFile ); 336 DocLnk lnk( ipkFile );
329 if ( lnk.isValid() ) 337 if ( lnk.isValid() )
330 file = lnk.file(); 338 file = lnk.file();
331 339
332 installLocalPackage( file ); 340 installLocalPackage( file );
333} 341}
334 342
335void MainWindow::initPackageInfo() 343void MainWindow::initPackageInfo()
336{ 344{
337 m_widgetStack.raiseWidget( &m_statusWidget ); 345 m_widgetStack.raiseWidget( &m_statusWidget );
338 346
339 // Load package list 347 // Load package list
340 m_packman.loadAvailablePackages(); 348 m_packman.loadAvailablePackages();
341 m_packman.loadInstalledPackages(); 349 m_packman.loadInstalledPackages();
342 350
343 OPackageList *packageList = m_packman.packages(); 351 OPackageList *packageList = m_packman.packages();
344 if ( packageList ) 352 if ( packageList )
345 { 353 {
346 loadPackageList( packageList, true ); 354 loadPackageList( packageList, true );
347 delete packageList; 355 delete packageList;
348 } 356 }
349 357
350 QWidget *widget = m_widgetStack.widget( 3 ); 358 QWidget *widget = m_widgetStack.widget( 3 );
diff --git a/noncore/settings/packagemanager/oipkgconfigdlg.cpp b/noncore/settings/packagemanager/oipkgconfigdlg.cpp
index 945571f..58c572b 100644
--- a/noncore/settings/packagemanager/oipkgconfigdlg.cpp
+++ b/noncore/settings/packagemanager/oipkgconfigdlg.cpp
@@ -1,458 +1,457 @@
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)2004, 2005 Dan Williams <drw@handhelds.org> 4 Copyright (C)2004, 2005 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#include "oipkgconfigdlg.h" 31#include "oipkgconfigdlg.h"
32 32
33#include <opie2/ofiledialog.h> 33#include <opie2/ofiledialog.h>
34#include <opie2/oresource.h>
34 35
35#include <qpe/qpeapplication.h> 36#include <qpe/qpeapplication.h>
36#include <qpe/resource.h>
37 37
38#include <qcheckbox.h> 38#include <qcheckbox.h>
39#include <qcombobox.h> 39#include <qcombobox.h>
40#include <qgroupbox.h> 40#include <qgroupbox.h>
41#include <qlabel.h> 41#include <qlabel.h>
42#include <qlineedit.h> 42#include <qlineedit.h>
43#include <qlistbox.h> 43#include <qlistbox.h>
44#include <qpushbutton.h> 44#include <qpushbutton.h>
45#include <qscrollview.h> 45#include <qscrollview.h>
46#include <qwhatsthis.h> 46#include <qwhatsthis.h>
47 47
48OIpkgConfigDlg::OIpkgConfigDlg( OIpkg *ipkg, bool installOptions, QWidget *parent ) 48OIpkgConfigDlg::OIpkgConfigDlg( OIpkg *ipkg, bool installOptions, QWidget *parent )
49 : QDialog( parent, QString::null, true, WStyle_ContextHelp ) 49 : QDialog( parent, QString::null, true, WStyle_ContextHelp )
50 , m_ipkg( ipkg ) 50 , m_ipkg( ipkg )
51 , m_configs( 0l ) 51 , m_configs( 0l )
52 , m_installOptions( installOptions ) 52 , m_installOptions( installOptions )
53 , m_serverCurrent( -1 ) 53 , m_serverCurrent( -1 )
54 , m_destCurrent( -1 ) 54 , m_destCurrent( -1 )
55 , m_layout( this, 2, 4 ) 55 , m_layout( this, 2, 4 )
56 , m_tabWidget( this ) 56 , m_tabWidget( this )
57{ 57{
58 setCaption( tr( "Configuration" ) ); 58 setCaption( tr( "Configuration" ) );
59 59
60 // Initialize configuration widgets 60 // Initialize configuration widgets
61 if ( !installOptions ) 61 if ( !installOptions )
62 { 62 {
63 initServerWidget(); 63 initServerWidget();
64 initDestinationWidget(); 64 initDestinationWidget();
65 initProxyWidget(); 65 initProxyWidget();
66 } 66 }
67 initOptionsWidget(); 67 initOptionsWidget();
68 68
69 // Load configuration information 69 // Load configuration information
70 initData(); 70 initData();
71 71
72 // Setup tabs for all info 72 // Setup tabs for all info
73 m_layout.addWidget( &m_tabWidget ); 73 m_layout.addWidget( &m_tabWidget );
74 if ( !m_installOptions ) 74 if ( !m_installOptions )
75 { 75 {
76 m_tabWidget.addTab( m_serverWidget, "packagemanager/servertab", tr( "Servers" ) ); 76 m_tabWidget.addTab( m_serverWidget, "packagemanager/servertab", tr( "Servers" ) );
77 m_tabWidget.addTab( m_destWidget, "packagemanager/desttab", tr( "Destinations" ) ); 77 m_tabWidget.addTab( m_destWidget, "packagemanager/desttab", tr( "Destinations" ) );
78 m_tabWidget.addTab( m_proxyWidget, "packagemanager/proxytab", tr( "Proxies" ) ); 78 m_tabWidget.addTab( m_proxyWidget, "packagemanager/proxytab", tr( "Proxies" ) );
79 m_tabWidget.addTab( m_optionsWidget, "exec", tr( "Options" ) ); 79 m_tabWidget.addTab( m_optionsWidget, "exec", tr( "Options" ) );
80 m_tabWidget.setCurrentTab( tr( "Servers" ) ); 80 m_tabWidget.setCurrentTab( tr( "Servers" ) );
81 } 81 }
82 else 82 else
83 { 83 {
84 m_tabWidget.addTab( m_optionsWidget, "exec", tr( "Options" ) ); 84 m_tabWidget.addTab( m_optionsWidget, "exec", tr( "Options" ) );
85 } 85 }
86} 86}
87 87
88void OIpkgConfigDlg::accept() 88void OIpkgConfigDlg::accept()
89{ 89{
90 // Save server, destination and proxy configuration 90 // Save server, destination and proxy configuration
91 if ( !m_installOptions ) 91 if ( !m_installOptions )
92 { 92 {
93 // Update proxy information before saving settings 93 // Update proxy information before saving settings
94 OConfItem *confItem = m_ipkg->findConfItem( OConfItem::Option, "http_proxy" ); 94 OConfItem *confItem = m_ipkg->findConfItem( OConfItem::Option, "http_proxy" );
95 if ( confItem ) 95 if ( confItem )
96 { 96 {
97 confItem->setValue( m_proxyHttpServer->text() ); 97 confItem->setValue( m_proxyHttpServer->text() );
98 confItem->setActive( m_proxyHttpActive->isChecked() ); 98 confItem->setActive( m_proxyHttpActive->isChecked() );
99 } 99 }
100 else 100 else
101 m_configs->append( new OConfItem( OConfItem::Option, "http_proxy", 101 m_configs->append( new OConfItem( OConfItem::Option, "http_proxy",
102 m_proxyHttpServer->text(), QString::null, 102 m_proxyHttpServer->text(), QString::null,
103 m_proxyHttpActive->isChecked() ) ); 103 m_proxyHttpActive->isChecked() ) );
104 104
105 confItem = m_ipkg->findConfItem( OConfItem::Option, "ftp_proxy" ); 105 confItem = m_ipkg->findConfItem( OConfItem::Option, "ftp_proxy" );
106 if ( confItem ) 106 if ( confItem )
107 { 107 {
108 confItem->setValue( m_proxyFtpServer->text() ); 108 confItem->setValue( m_proxyFtpServer->text() );
109 confItem->setActive( m_proxyFtpActive->isChecked() ); 109 confItem->setActive( m_proxyFtpActive->isChecked() );
110 } 110 }
111 else 111 else
112 m_configs->append( new OConfItem( OConfItem::Option, "ftp_proxy", 112 m_configs->append( new OConfItem( OConfItem::Option, "ftp_proxy",
113 m_proxyFtpServer->text(), QString::null, 113 m_proxyFtpServer->text(), QString::null,
114 m_proxyFtpActive->isChecked() ) ); 114 m_proxyFtpActive->isChecked() ) );
115 115
116 confItem = m_ipkg->findConfItem( OConfItem::Option, "proxy_username" ); 116 confItem = m_ipkg->findConfItem( OConfItem::Option, "proxy_username" );
117 if ( confItem ) 117 if ( confItem )
118 confItem->setValue( m_proxyUsername->text() ); 118 confItem->setValue( m_proxyUsername->text() );
119 else 119 else
120 m_configs->append( new OConfItem( OConfItem::Option, "proxy_username", 120 m_configs->append( new OConfItem( OConfItem::Option, "proxy_username",
121 m_proxyUsername->text() ) ); 121 m_proxyUsername->text() ) );
122 122
123 confItem = m_ipkg->findConfItem( OConfItem::Option, "proxy_password" ); 123 confItem = m_ipkg->findConfItem( OConfItem::Option, "proxy_password" );
124 if ( confItem ) 124 if ( confItem )
125 confItem->setValue( m_proxyPassword->text() ); 125 confItem->setValue( m_proxyPassword->text() );
126 else 126 else
127 m_configs->append( new OConfItem( OConfItem::Option, "proxy_password", 127 m_configs->append( new OConfItem( OConfItem::Option, "proxy_password",
128 m_proxyPassword->text() ) ); 128 m_proxyPassword->text() ) );
129 129
130 QString listsDir = m_optSourceLists->text(); 130 QString listsDir = m_optSourceLists->text();
131 if ( listsDir == QString::null || listsDir == "" ) 131 if ( listsDir == QString::null || listsDir == "" )
132 listsDir = "/usr/lib/ipkg/lists"; // TODO - use proper libipkg define 132 listsDir = "/usr/lib/ipkg/lists"; // TODO - use proper libipkg define
133 confItem = m_ipkg->findConfItem( OConfItem::Other, "lists_dir" ); 133 confItem = m_ipkg->findConfItem( OConfItem::Other, "lists_dir" );
134 if ( confItem ) 134 if ( confItem )
135 confItem->setValue( listsDir ); 135 confItem->setValue( listsDir );
136 else 136 else
137 m_configs->append( new OConfItem( OConfItem::Other, "lists_dir", 137 m_configs->append( new OConfItem( OConfItem::Other, "lists_dir",
138 listsDir, "name" ) ); 138 listsDir, "name" ) );
139 139
140 m_ipkg->setConfigItems( m_configs ); 140 m_ipkg->setConfigItems( m_configs );
141 } 141 }
142 142
143 // Save options configuration 143 // Save options configuration
144 int options = 0; 144 int options = 0;
145 if ( m_optForceDepends->isChecked() ) 145 if ( m_optForceDepends->isChecked() )
146 options |= FORCE_DEPENDS; 146 options |= FORCE_DEPENDS;
147 if ( m_optForceReinstall->isChecked() ) 147 if ( m_optForceReinstall->isChecked() )
148 options |= FORCE_REINSTALL; 148 options |= FORCE_REINSTALL;
149 if ( m_optForceRemove->isChecked() ) 149 if ( m_optForceRemove->isChecked() )
150 options |= FORCE_REMOVE; 150 options |= FORCE_REMOVE;
151 if ( m_optForceOverwrite->isChecked() ) 151 if ( m_optForceOverwrite->isChecked() )
152 options |= FORCE_OVERWRITE; 152 options |= FORCE_OVERWRITE;
153 m_ipkg->setIpkgExecOptions( options ); 153 m_ipkg->setIpkgExecOptions( options );
154 m_ipkg->setIpkgExecVerbosity( m_optVerboseIpkg->currentItem() ); 154 m_ipkg->setIpkgExecVerbosity( m_optVerboseIpkg->currentItem() );
155 155
156 QDialog::accept(); 156 QDialog::accept();
157} 157}
158 158
159void OIpkgConfigDlg::reject() 159void OIpkgConfigDlg::reject()
160{ 160{
161 if ( m_configs ) 161 if ( m_configs )
162 delete m_configs; 162 delete m_configs;
163} 163}
164 164
165void OIpkgConfigDlg::initServerWidget() 165void OIpkgConfigDlg::initServerWidget()
166{ 166{
167 m_serverWidget = new QWidget( this ); 167 m_serverWidget = new QWidget( this );
168 168
169 // Initialize UI 169 // Initialize UI
170 QVBoxLayout *vb = new QVBoxLayout( m_serverWidget ); 170 QVBoxLayout *vb = new QVBoxLayout( m_serverWidget );
171 QScrollView *sv = new QScrollView( m_serverWidget ); 171 QScrollView *sv = new QScrollView( m_serverWidget );
172 vb->addWidget( sv, 0, 0 ); 172 vb->addWidget( sv, 0, 0 );
173 sv->setResizePolicy( QScrollView::AutoOneFit ); 173 sv->setResizePolicy( QScrollView::AutoOneFit );
174 sv->setFrameStyle( QFrame::NoFrame ); 174 sv->setFrameStyle( QFrame::NoFrame );
175 QWidget *container = new QWidget( sv->viewport() ); 175 QWidget *container = new QWidget( sv->viewport() );
176 sv->addChild( container ); 176 sv->addChild( container );
177 QGridLayout *layout = new QGridLayout( container, 2, 3, 2, 4 ); 177 QGridLayout *layout = new QGridLayout( container, 2, 3, 2, 4 );
178 178
179 m_serverList = new QListBox( container ); 179 m_serverList = new QListBox( container );
180 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." ) ); 180 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." ) );
181 m_serverList->setSizePolicy( QSizePolicy( QSizePolicy::Preferred, QSizePolicy::Preferred ) ); 181 m_serverList->setSizePolicy( QSizePolicy( QSizePolicy::Preferred, QSizePolicy::Preferred ) );
182 connect( m_serverList, SIGNAL(highlighted(int)), this, SLOT(slotServerSelected(int)) ); 182 connect( m_serverList, SIGNAL(highlighted(int)), this, SLOT(slotServerSelected(int)) );
183 layout->addMultiCellWidget( m_serverList, 0, 0, 0, 2 ); 183 layout->addMultiCellWidget( m_serverList, 0, 0, 0, 2 );
184 184
185 QPixmap pic; 185 QPushButton *btn = new QPushButton( Opie::Core::OResource::loadPixmap( "new", Opie::Core::OResource::SmallIcon ),
186 pic.convertFromImage( Resource::loadImage( "new" ).smoothScale( AppLnk::smallIconSize(), AppLnk::smallIconSize() ) ); 186 tr( "New" ), container );
187 QPushButton *btn = new QPushButton( pic, tr( "New" ), container ); 187 btn->setMinimumHeight( AppLnk::smallIconSize()+4 );
188 btn->setMinimumHeight( AppLnk::smallIconSize() );
189 QWhatsThis::add( btn, tr( "Tap here to create a new entry. Fill in the fields below and then tap on Update." ) ); 188 QWhatsThis::add( btn, tr( "Tap here to create a new entry. Fill in the fields below and then tap on Update." ) );
190 connect( btn, SIGNAL(clicked()), this, SLOT(slotServerNew()) ); 189 connect( btn, SIGNAL(clicked()), this, SLOT(slotServerNew()) );
191 layout->addWidget( btn, 1, 0 ); 190 layout->addWidget( btn, 1, 0 );
192 191
193 pic.convertFromImage( Resource::loadImage( "edit" ).smoothScale( AppLnk::smallIconSize(), AppLnk::smallIconSize() ) ); 192 m_serverEditBtn = new QPushButton( Opie::Core::OResource::loadPixmap( "edit", Opie::Core::OResource::SmallIcon ),
194 m_serverEditBtn = new QPushButton( pic, tr( "Edit" ), container ); 193 tr( "Edit" ), container );
195 m_serverEditBtn->setMinimumHeight( AppLnk::smallIconSize() ); 194 m_serverEditBtn->setMinimumHeight( AppLnk::smallIconSize()+4 );
196 m_serverEditBtn->setEnabled( false ); 195 m_serverEditBtn->setEnabled( false );
197 QWhatsThis::add( m_serverEditBtn, tr( "Tap here to edit the entry selected above." ) ); 196 QWhatsThis::add( m_serverEditBtn, tr( "Tap here to edit the entry selected above." ) );
198 connect( m_serverEditBtn, SIGNAL(clicked()), this, SLOT(slotServerEdit()) ); 197 connect( m_serverEditBtn, SIGNAL(clicked()), this, SLOT(slotServerEdit()) );
199 layout->addWidget( m_serverEditBtn, 1, 1 ); 198 layout->addWidget( m_serverEditBtn, 1, 1 );
200 199
201 pic.convertFromImage( Resource::loadImage( "trash" ).smoothScale( AppLnk::smallIconSize(), AppLnk::smallIconSize() ) ); 200 m_serverDeleteBtn = new QPushButton( Opie::Core::OResource::loadPixmap( "trash", Opie::Core::OResource::SmallIcon ),
202 m_serverDeleteBtn = new QPushButton( pic, tr( "Delete" ), container ); 201 tr( "Delete" ), container );
203 m_serverDeleteBtn->setMinimumHeight( AppLnk::smallIconSize() ); 202 m_serverDeleteBtn->setMinimumHeight( AppLnk::smallIconSize()+4 );
204 m_serverDeleteBtn->setEnabled( false ); 203 m_serverDeleteBtn->setEnabled( false );
205 QWhatsThis::add( m_serverDeleteBtn, tr( "Tap here to delete the entry selected above." ) ); 204 QWhatsThis::add( m_serverDeleteBtn, tr( "Tap here to delete the entry selected above." ) );
206 connect( m_serverDeleteBtn, SIGNAL(clicked()), this, SLOT(slotServerDelete()) ); 205 connect( m_serverDeleteBtn, SIGNAL(clicked()), this, SLOT(slotServerDelete()) );
207 layout->addWidget( m_serverDeleteBtn, 1, 2 ); 206 layout->addWidget( m_serverDeleteBtn, 1, 2 );
208} 207}
209 208
210void OIpkgConfigDlg::initDestinationWidget() 209void OIpkgConfigDlg::initDestinationWidget()
211{ 210{
212 m_destWidget = new QWidget( this ); 211 m_destWidget = new QWidget( this );
213 212
214 // Initialize UI 213 // Initialize UI
215 QVBoxLayout *vb = new QVBoxLayout( m_destWidget ); 214 QVBoxLayout *vb = new QVBoxLayout( m_destWidget );
216 QScrollView *sv = new QScrollView( m_destWidget ); 215 QScrollView *sv = new QScrollView( m_destWidget );
217 vb->addWidget( sv, 0, 0 ); 216 vb->addWidget( sv, 0, 0 );
218 sv->setResizePolicy( QScrollView::AutoOneFit ); 217 sv->setResizePolicy( QScrollView::AutoOneFit );
219 sv->setFrameStyle( QFrame::NoFrame ); 218 sv->setFrameStyle( QFrame::NoFrame );
220 QWidget *container = new QWidget( sv->viewport() ); 219 QWidget *container = new QWidget( sv->viewport() );
221 sv->addChild( container ); 220 sv->addChild( container );
222 QGridLayout *layout = new QGridLayout( container, 2, 3, 2, 4 ); 221 QGridLayout *layout = new QGridLayout( container, 2, 3, 2, 4 );
223 222
224 m_destList = new QListBox( container ); 223 m_destList = new QListBox( container );
225 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." ) ); 224 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." ) );
226 m_destList->setSizePolicy( QSizePolicy( QSizePolicy::Preferred, QSizePolicy::Preferred ) ); 225 m_destList->setSizePolicy( QSizePolicy( QSizePolicy::Preferred, QSizePolicy::Preferred ) );
227 connect( m_destList, SIGNAL(highlighted(int)), this, SLOT(slotDestSelected(int)) ); 226 connect( m_destList, SIGNAL(highlighted(int)), this, SLOT(slotDestSelected(int)) );
228 layout->addMultiCellWidget( m_destList, 0, 0, 0, 2 ); 227 layout->addMultiCellWidget( m_destList, 0, 0, 0, 2 );
229 228
230 QPixmap pic; 229 QPushButton *btn = new QPushButton( Opie::Core::OResource::loadPixmap( "new", Opie::Core::OResource::SmallIcon ),
231 pic.convertFromImage( Resource::loadImage( "new" ).smoothScale( AppLnk::smallIconSize(), AppLnk::smallIconSize() ) ); 230 tr( "New" ), container );
232 QPushButton *btn = new QPushButton( pic, tr( "New" ), container ); 231 btn->setMinimumHeight( AppLnk::smallIconSize()+4 );
233 btn->setMinimumHeight( AppLnk::smallIconSize() );
234 QWhatsThis::add( btn, tr( "Tap here to create a new entry. Fill in the fields below and then tap on Update." ) ); 232 QWhatsThis::add( btn, tr( "Tap here to create a new entry. Fill in the fields below and then tap on Update." ) );
235 connect( btn, SIGNAL(clicked()), this, SLOT(slotDestNew()) ); 233 connect( btn, SIGNAL(clicked()), this, SLOT(slotDestNew()) );
236 layout->addWidget( btn, 1, 0 ); 234 layout->addWidget( btn, 1, 0 );
237 235
238 pic.convertFromImage( Resource::loadImage( "edit" ).smoothScale( AppLnk::smallIconSize(), AppLnk::smallIconSize() ) ); 236 m_destEditBtn = new QPushButton( Opie::Core::OResource::loadPixmap( "edit", Opie::Core::OResource::SmallIcon ),
239 m_destEditBtn = new QPushButton( pic, tr( "Edit" ), container ); 237 tr( "Edit" ), container );
240 m_destEditBtn->setMinimumHeight( AppLnk::smallIconSize() ); 238 m_destEditBtn->setMinimumHeight( AppLnk::smallIconSize()+4 );
241 m_destEditBtn->setEnabled( false ); 239 m_destEditBtn->setEnabled( false );
242 QWhatsThis::add( m_destEditBtn, tr( "Tap here to edit the entry selected above." ) ); 240 QWhatsThis::add( m_destEditBtn, tr( "Tap here to edit the entry selected above." ) );
243 connect( m_destEditBtn, SIGNAL(clicked()), this, SLOT(slotDestEdit()) ); 241 connect( m_destEditBtn, SIGNAL(clicked()), this, SLOT(slotDestEdit()) );
244 layout->addWidget( m_destEditBtn, 1, 1 ); 242 layout->addWidget( m_destEditBtn, 1, 1 );
245 243
246 pic.convertFromImage( Resource::loadImage( "trash" ).smoothScale( AppLnk::smallIconSize(), AppLnk::smallIconSize() ) ); 244 m_destDeleteBtn = new QPushButton( Opie::Core::OResource::loadPixmap( "trash", Opie::Core::OResource::SmallIcon ),
247 m_destDeleteBtn = new QPushButton( pic, tr( "Delete" ), container ); 245 tr( "Delete" ), container );
248 m_destDeleteBtn->setMinimumHeight( AppLnk::smallIconSize() ); 246 m_destDeleteBtn->setMinimumHeight( AppLnk::smallIconSize()+4 );
249 m_destDeleteBtn->setEnabled( false ); 247 m_destDeleteBtn->setEnabled( false );
250 QWhatsThis::add( m_destDeleteBtn, tr( "Tap here to delete the entry selected above." ) ); 248 QWhatsThis::add( m_destDeleteBtn, tr( "Tap here to delete the entry selected above." ) );
251 connect( m_destDeleteBtn, SIGNAL(clicked()), this, SLOT(slotDestDelete()) ); 249 connect( m_destDeleteBtn, SIGNAL(clicked()), this, SLOT(slotDestDelete()) );
252 layout->addWidget( m_destDeleteBtn, 1, 2 ); 250 layout->addWidget( m_destDeleteBtn, 1, 2 );
253} 251}
254 252
255void OIpkgConfigDlg::initProxyWidget() 253void OIpkgConfigDlg::initProxyWidget()
256{ 254{
257 m_proxyWidget = new QWidget( this ); 255 m_proxyWidget = new QWidget( this );
258 256
259 // Initialize UI 257 // Initialize UI
260 QVBoxLayout *vb = new QVBoxLayout( m_proxyWidget ); 258 QVBoxLayout *vb = new QVBoxLayout( m_proxyWidget );
261 QScrollView *sv = new QScrollView( m_proxyWidget ); 259 QScrollView *sv = new QScrollView( m_proxyWidget );
262 vb->addWidget( sv, 0, 0 ); 260 vb->addWidget( sv, 0, 0 );
263 sv->setResizePolicy( QScrollView::AutoOneFit ); 261 sv->setResizePolicy( QScrollView::AutoOneFit );
264 sv->setFrameStyle( QFrame::NoFrame ); 262 sv->setFrameStyle( QFrame::NoFrame );
265 QWidget *container = new QWidget( sv->viewport() ); 263 QWidget *container = new QWidget( sv->viewport() );
266 sv->addChild( container ); 264 sv->addChild( container );
267 QGridLayout *layout = new QGridLayout( container, 4, 2, 2, 4 ); 265 QGridLayout *layout = new QGridLayout( container, 4, 2, 2, 4 );
268 266
269 // HTTP proxy server configuration 267 // HTTP proxy server configuration
270 QGroupBox *grpbox = new QGroupBox( 0, Qt::Vertical, tr( "HTTP Proxy" ), container ); 268 QGroupBox *grpbox = new QGroupBox( 0, Qt::Vertical, tr( "HTTP Proxy" ), container );
271 grpbox->layout()->setSpacing( 2 ); 269 grpbox->layout()->setSpacing( 2 );
272 grpbox->layout()->setMargin( 4 ); 270 grpbox->layout()->setMargin( 4 );
273 layout->addMultiCellWidget( grpbox, 0, 0, 0, 1 ); 271 layout->addMultiCellWidget( grpbox, 0, 0, 0, 1 );
274 QVBoxLayout *grplayout = new QVBoxLayout( grpbox->layout() ); 272 QVBoxLayout *grplayout = new QVBoxLayout( grpbox->layout() );
275 m_proxyHttpServer = new QLineEdit( grpbox ); 273 m_proxyHttpServer = new QLineEdit( grpbox );
276 QWhatsThis::add( m_proxyHttpServer, tr( "Enter the URL address of the HTTP proxy server here." ) ); 274 QWhatsThis::add( m_proxyHttpServer, tr( "Enter the URL address of the HTTP proxy server here." ) );
277 grplayout->addWidget( m_proxyHttpServer ); 275 grplayout->addWidget( m_proxyHttpServer );
278 m_proxyHttpActive = new QCheckBox( tr( "Enabled" ), grpbox ); 276 m_proxyHttpActive = new QCheckBox( tr( "Enabled" ), grpbox );
279 QWhatsThis::add( m_proxyHttpActive, tr( "Tap here to enable or disable the HTTP proxy server." ) ); 277 QWhatsThis::add( m_proxyHttpActive, tr( "Tap here to enable or disable the HTTP proxy server." ) );
280 grplayout->addWidget( m_proxyHttpActive ); 278 grplayout->addWidget( m_proxyHttpActive );
281 279
282 // FTP proxy server configuration 280 // FTP proxy server configuration
283 grpbox = new QGroupBox( 0, Qt::Vertical, tr( "FTP Proxy" ), container ); 281 grpbox = new QGroupBox( 0, Qt::Vertical, tr( "FTP Proxy" ), container );
284 grpbox->layout()->setSpacing( 2 ); 282 grpbox->layout()->setSpacing( 2 );
285 grpbox->layout()->setMargin( 4 ); 283 grpbox->layout()->setMargin( 4 );
286 layout->addMultiCellWidget( grpbox, 1, 1, 0, 1 ); 284 layout->addMultiCellWidget( grpbox, 1, 1, 0, 1 );
287 grplayout = new QVBoxLayout( grpbox->layout() ); 285 grplayout = new QVBoxLayout( grpbox->layout() );
288 m_proxyFtpServer = new QLineEdit( grpbox ); 286 m_proxyFtpServer = new QLineEdit( grpbox );
289 QWhatsThis::add( m_proxyFtpServer, tr( "Enter the URL address of the FTP proxy server here." ) ); 287 QWhatsThis::add( m_proxyFtpServer, tr( "Enter the URL address of the FTP proxy server here." ) );
290 grplayout->addWidget( m_proxyFtpServer ); 288 grplayout->addWidget( m_proxyFtpServer );
291 m_proxyFtpActive = new QCheckBox( tr( "Enabled" ), grpbox ); 289 m_proxyFtpActive = new QCheckBox( tr( "Enabled" ), grpbox );
292 QWhatsThis::add( m_proxyFtpActive, tr( "Tap here to enable or disable the FTP proxy server." ) ); 290 QWhatsThis::add( m_proxyFtpActive, tr( "Tap here to enable or disable the FTP proxy server." ) );
293 grplayout->addWidget( m_proxyFtpActive ); 291 grplayout->addWidget( m_proxyFtpActive );
294 292
295 // Proxy server username and password configuration 293 // Proxy server username and password configuration
296 QLabel *label = new QLabel( tr( "Username:" ), container ); 294 QLabel *label = new QLabel( tr( "Username:" ), container );
297 QWhatsThis::add( label, tr( "Enter the username for the proxy servers here." ) ); 295 QWhatsThis::add( label, tr( "Enter the username for the proxy servers here." ) );
298 layout->addWidget( label, 2, 0 ); 296 layout->addWidget( label, 2, 0 );
299 m_proxyUsername = new QLineEdit( container ); 297 m_proxyUsername = new QLineEdit( container );
300 QWhatsThis::add( m_proxyUsername, tr( "Enter the username for the proxy servers here." ) ); 298 QWhatsThis::add( m_proxyUsername, tr( "Enter the username for the proxy servers here." ) );
301 layout->addWidget( m_proxyUsername, 2, 1 ); 299 layout->addWidget( m_proxyUsername, 2, 1 );
302 300
303 label = new QLabel( tr( "Password:" ), container ); 301 label = new QLabel( tr( "Password:" ), container );
304 QWhatsThis::add( label, tr( "Enter the password for the proxy servers here." ) ); 302 QWhatsThis::add( label, tr( "Enter the password for the proxy servers here." ) );
305 layout->addWidget( label, 3, 0 ); 303 layout->addWidget( label, 3, 0 );
306 m_proxyPassword = new QLineEdit( container ); 304 m_proxyPassword = new QLineEdit( container );
307 QWhatsThis::add( m_proxyPassword, tr( "Enter the password for the proxy servers here." ) ); 305 QWhatsThis::add( m_proxyPassword, tr( "Enter the password for the proxy servers here." ) );
308 layout->addWidget( m_proxyPassword, 3, 1 ); 306 layout->addWidget( m_proxyPassword, 3, 1 );
309} 307}
310 308
311void OIpkgConfigDlg::initOptionsWidget() 309void OIpkgConfigDlg::initOptionsWidget()
312{ 310{
313 m_optionsWidget = new QWidget( this ); 311 m_optionsWidget = new QWidget( this );
314 312
315 // Initialize UI 313 // Initialize UI
316 QVBoxLayout *vb = new QVBoxLayout( m_optionsWidget ); 314 QVBoxLayout *vb = new QVBoxLayout( m_optionsWidget );
317 QScrollView *sv = new QScrollView( m_optionsWidget ); 315 QScrollView *sv = new QScrollView( m_optionsWidget );
318 vb->addWidget( sv, 0, 0 ); 316 vb->addWidget( sv, 0, 0 );
319 sv->setResizePolicy( QScrollView::AutoOneFit ); 317 sv->setResizePolicy( QScrollView::AutoOneFit );
320 sv->setFrameStyle( QFrame::NoFrame ); 318 sv->setFrameStyle( QFrame::NoFrame );
321 QWidget *container = new QWidget( sv->viewport() ); 319 QWidget *container = new QWidget( sv->viewport() );
322 sv->addChild( container ); 320 sv->addChild( container );
323 QGridLayout *layout = new QGridLayout( container, 8, 2, 2, 4 ); 321 QGridLayout *layout = new QGridLayout( container, 8, 2, 2, 4 );
324 322
325 m_optForceDepends = new QCheckBox( tr( "Force Depends" ), container ); 323 m_optForceDepends = new QCheckBox( tr( "Force Depends" ), container );
326 QWhatsThis::add( m_optForceDepends, tr( "Tap here to enable or disable the '-force-depends' option for Ipkg." ) ); 324 QWhatsThis::add( m_optForceDepends, tr( "Tap here to enable or disable the '-force-depends' option for Ipkg." ) );
327 layout->addMultiCellWidget( m_optForceDepends, 0, 0, 0, 1 ); 325 layout->addMultiCellWidget( m_optForceDepends, 0, 0, 0, 1 );
328 326
329 m_optForceReinstall = new QCheckBox( tr( "Force Reinstall" ), container ); 327 m_optForceReinstall = new QCheckBox( tr( "Force Reinstall" ), container );
330 QWhatsThis::add( m_optForceReinstall, tr( "Tap here to enable or disable the '-force-reinstall' option for Ipkg." ) ); 328 QWhatsThis::add( m_optForceReinstall, tr( "Tap here to enable or disable the '-force-reinstall' option for Ipkg." ) );
331 layout->addMultiCellWidget( m_optForceReinstall, 1, 1, 0, 1 ); 329 layout->addMultiCellWidget( m_optForceReinstall, 1, 1, 0, 1 );
332 330
333 m_optForceRemove = new QCheckBox( tr( "Force Remove" ), container ); 331 m_optForceRemove = new QCheckBox( tr( "Force Remove" ), container );
334 QWhatsThis::add( m_optForceRemove, tr( "Tap here to enable or disable the '-force-removal-of-dependent-packages' option for Ipkg." ) ); 332 QWhatsThis::add( m_optForceRemove, tr( "Tap here to enable or disable the '-force-removal-of-dependent-packages' option for Ipkg." ) );
335 layout->addMultiCellWidget( m_optForceRemove, 2, 2, 0, 1 ); 333 layout->addMultiCellWidget( m_optForceRemove, 2, 2, 0, 1 );
336 334
337 m_optForceOverwrite = new QCheckBox( tr( "Force Overwrite" ), container ); 335 m_optForceOverwrite = new QCheckBox( tr( "Force Overwrite" ), container );
338 QWhatsThis::add( m_optForceOverwrite, tr( "Tap here to enable or disable the '-force-overwrite' option for Ipkg." ) ); 336 QWhatsThis::add( m_optForceOverwrite, tr( "Tap here to enable or disable the '-force-overwrite' option for Ipkg." ) );
339 layout->addMultiCellWidget( m_optForceOverwrite, 3, 3, 0, 1 ); 337 layout->addMultiCellWidget( m_optForceOverwrite, 3, 3, 0, 1 );
340 338
341 QLabel *l = new QLabel( tr( "Information level:" ), container ); 339 QLabel *l = new QLabel( tr( "Information level:" ), container );
342 QWhatsThis::add( l, tr( "Select information level for Ipkg." ) ); 340 QWhatsThis::add( l, tr( "Select information level for Ipkg." ) );
343 layout->addMultiCellWidget( l, 4, 4, 0, 1 ); 341 layout->addMultiCellWidget( l, 4, 4, 0, 1 );
344 342
345 m_optVerboseIpkg = new QComboBox( container ); 343 m_optVerboseIpkg = new QComboBox( container );
346 QWhatsThis::add( m_optVerboseIpkg, tr( "Select information level for Ipkg." ) ); 344 QWhatsThis::add( m_optVerboseIpkg, tr( "Select information level for Ipkg." ) );
347 m_optVerboseIpkg->insertItem( tr( "Errors only" ) ); 345 m_optVerboseIpkg->insertItem( tr( "Errors only" ) );
348 m_optVerboseIpkg->insertItem( tr( "Normal messages" ) ); 346 m_optVerboseIpkg->insertItem( tr( "Normal messages" ) );
349 m_optVerboseIpkg->insertItem( tr( "Informative messages" ) ); 347 m_optVerboseIpkg->insertItem( tr( "Informative messages" ) );
350 m_optVerboseIpkg->insertItem( tr( "Troubleshooting output" ) ); 348 m_optVerboseIpkg->insertItem( tr( "Troubleshooting output" ) );
351 layout->addMultiCellWidget( m_optVerboseIpkg, 5, 5, 0, 1 ); 349 layout->addMultiCellWidget( m_optVerboseIpkg, 5, 5, 0, 1 );
352 350
353 l = new QLabel( tr( "Package source lists directory:" ), container ); 351 l = new QLabel( tr( "Package source lists directory:" ), container );
354 QWhatsThis::add( l, tr( "Enter the directory where package source feed information is stored." ) ); 352 QWhatsThis::add( l, tr( "Enter the directory where package source feed information is stored." ) );
355 layout->addMultiCellWidget( l, 6, 6, 0, 1 ); 353 layout->addMultiCellWidget( l, 6, 6, 0, 1 );
356 354
357 m_optSourceLists = new QLineEdit( container ); 355 m_optSourceLists = new QLineEdit( container );
358 QWhatsThis::add( m_optSourceLists, tr( "Enter the directory where package source feed information is stored." ) ); 356 QWhatsThis::add( m_optSourceLists, tr( "Enter the directory where package source feed information is stored." ) );
359 layout->addWidget( m_optSourceLists, 7, 0 ); 357 layout->addWidget( m_optSourceLists, 7, 0 );
360 QPixmap pic; 358
361 pic.convertFromImage( Resource::loadImage( "folder" ).smoothScale( AppLnk::smallIconSize(), AppLnk::smallIconSize() ) ); 359 QPushButton *btn = new QPushButton( Opie::Core::OResource::loadPixmap( "folder", Opie::Core::OResource::SmallIcon ),
362 QPushButton *btn = new QPushButton( pic, QString::null, container ); 360 QString::null, container );
361 btn->setMinimumHeight( AppLnk::smallIconSize()+4 );
363 btn->setMaximumWidth( btn->height() ); 362 btn->setMaximumWidth( btn->height() );
364 QWhatsThis::add( btn, tr( "Tap here to select the directory where package source feed information is stored." ) ); 363 QWhatsThis::add( btn, tr( "Tap here to select the directory where package source feed information is stored." ) );
365 connect( btn, SIGNAL(clicked()), this, SLOT(slotOptSelectSourceListsPath()) ); 364 connect( btn, SIGNAL(clicked()), this, SLOT(slotOptSelectSourceListsPath()) );
366 layout->addWidget( btn, 7, 1 ); 365 layout->addWidget( btn, 7, 1 );
367 366
368 layout->addItem( new QSpacerItem( 1, 1, QSizePolicy::Minimum, QSizePolicy::Expanding ) ); 367 layout->addItem( new QSpacerItem( 1, 1, QSizePolicy::Minimum, QSizePolicy::Expanding ) );
369} 368}
370 369
371void OIpkgConfigDlg::initData() 370void OIpkgConfigDlg::initData()
372{ 371{
373 // Read ipkg configuration (server/destination/proxy) information 372 // Read ipkg configuration (server/destination/proxy) information
374 if ( m_ipkg && !m_installOptions ) 373 if ( m_ipkg && !m_installOptions )
375 { 374 {
376 m_configs = m_ipkg->configItems(); 375 m_configs = m_ipkg->configItems();
377 if ( m_configs ) 376 if ( m_configs )
378 { 377 {
379 for ( OConfItemListIterator configIt( *m_configs ); configIt.current(); ++configIt ) 378 for ( OConfItemListIterator configIt( *m_configs ); configIt.current(); ++configIt )
380 { 379 {
381 OConfItem *config = configIt.current(); 380 OConfItem *config = configIt.current();
382 381
383 // Add configuration item to the appropriate dialog controls 382 // Add configuration item to the appropriate dialog controls
384 if ( config ) 383 if ( config )
385 { 384 {
386 switch ( config->type() ) 385 switch ( config->type() )
387 { 386 {
388 case OConfItem::Source : m_serverList->insertItem( config->name() ); break; 387 case OConfItem::Source : m_serverList->insertItem( config->name() ); break;
389 case OConfItem::Destination : m_destList->insertItem( config->name() ); break; 388 case OConfItem::Destination : m_destList->insertItem( config->name() ); break;
390 case OConfItem::Option : 389 case OConfItem::Option :
391 { 390 {
392 if ( config->name() == "http_proxy" ) 391 if ( config->name() == "http_proxy" )
393 { 392 {
394 m_proxyHttpServer->setText( config->value() ); 393 m_proxyHttpServer->setText( config->value() );
395 m_proxyHttpActive->setChecked( config->active() ); 394 m_proxyHttpActive->setChecked( config->active() );
396 } 395 }
397 else if ( config->name() == "ftp_proxy" ) 396 else if ( config->name() == "ftp_proxy" )
398 { 397 {
399 m_proxyFtpServer->setText( config->value() ); 398 m_proxyFtpServer->setText( config->value() );
400 m_proxyFtpActive->setChecked( config->active() ); 399 m_proxyFtpActive->setChecked( config->active() );
401 } 400 }
402 else if ( config->name() == "proxy_username" ) 401 else if ( config->name() == "proxy_username" )
403 { 402 {
404 m_proxyUsername->setText( config->value() ); 403 m_proxyUsername->setText( config->value() );
405 } 404 }
406 else if ( config->name() == "proxy_password" ) 405 else if ( config->name() == "proxy_password" )
407 { 406 {
408 m_proxyPassword->setText( config->value() ); 407 m_proxyPassword->setText( config->value() );
409 } 408 }
410 } 409 }
411 break; 410 break;
412 case OConfItem::Other : 411 case OConfItem::Other :
413 { 412 {
414 if ( config->name() == "lists_dir" ) 413 if ( config->name() == "lists_dir" )
415 m_optSourceLists->setText( config->value() ); 414 m_optSourceLists->setText( config->value() );
416 else // TODO - use proper libipkg define 415 else // TODO - use proper libipkg define
417 m_optSourceLists->setText( "/usr/lib/ipkg/lists" ); 416 m_optSourceLists->setText( "/usr/lib/ipkg/lists" );
418 } 417 }
419 break; 418 break;
420 default : break; 419 default : break;
421 }; 420 };
422 } 421 }
423 } 422 }
424 } 423 }
425 } 424 }
426 425
427 // Get Ipkg execution options 426 // Get Ipkg execution options
428 int options = m_ipkg->ipkgExecOptions(); 427 int options = m_ipkg->ipkgExecOptions();
429 if ( options & FORCE_DEPENDS ) 428 if ( options & FORCE_DEPENDS )
430 m_optForceDepends->setChecked( true ); 429 m_optForceDepends->setChecked( true );
431 if ( options & FORCE_REINSTALL ) 430 if ( options & FORCE_REINSTALL )
432 m_optForceReinstall->setChecked( true ); 431 m_optForceReinstall->setChecked( true );
433 if ( options & FORCE_REMOVE ) 432 if ( options & FORCE_REMOVE )
434 m_optForceRemove->setChecked( true ); 433 m_optForceRemove->setChecked( true );
435 if ( options & FORCE_OVERWRITE ) 434 if ( options & FORCE_OVERWRITE )
436 m_optForceOverwrite->setChecked( true ); 435 m_optForceOverwrite->setChecked( true );
437 436
438 m_optVerboseIpkg->setCurrentItem( m_ipkg->ipkgExecVerbosity() ); 437 m_optVerboseIpkg->setCurrentItem( m_ipkg->ipkgExecVerbosity() );
439} 438}
440 439
441void OIpkgConfigDlg::slotServerSelected( int index ) 440void OIpkgConfigDlg::slotServerSelected( int index )
442{ 441{
443 m_serverCurrent = index; 442 m_serverCurrent = index;
444 443
445 // Enable Edit and Delete buttons 444 // Enable Edit and Delete buttons
446 m_serverEditBtn->setEnabled( true ); 445 m_serverEditBtn->setEnabled( true );
447 m_serverDeleteBtn->setEnabled( true ); 446 m_serverDeleteBtn->setEnabled( true );
448} 447}
449 448
450void OIpkgConfigDlg::slotServerNew() 449void OIpkgConfigDlg::slotServerNew()
451{ 450{
452 OConfItem *server = new OConfItem( OConfItem::Source ); 451 OConfItem *server = new OConfItem( OConfItem::Source );
453 452
454 OIpkgServerDlg dlg( server, this ); 453 OIpkgServerDlg dlg( server, this );
455 if ( QPEApplication::execDialog( &dlg ) == QDialog::Accepted ) 454 if ( QPEApplication::execDialog( &dlg ) == QDialog::Accepted )
456 { 455 {
457 // Add to configuration option list 456 // Add to configuration option list
458 m_configs->append( server ); 457 m_configs->append( server );
@@ -569,134 +568,133 @@ void OIpkgConfigDlg::slotOptSelectSourceListsPath()
569 568
570OIpkgServerDlg::OIpkgServerDlg( OConfItem *server, QWidget *parent ) 569OIpkgServerDlg::OIpkgServerDlg( OConfItem *server, QWidget *parent )
571 : QDialog( parent, QString::null, true, WStyle_ContextHelp ) 570 : QDialog( parent, QString::null, true, WStyle_ContextHelp )
572 , m_server( server ) 571 , m_server( server )
573{ 572{
574 setCaption( tr( "Edit Server" ) ); 573 setCaption( tr( "Edit Server" ) );
575 574
576 // Initialize UI 575 // Initialize UI
577 QVBoxLayout *layout = new QVBoxLayout( this, 2, 4 ); 576 QVBoxLayout *layout = new QVBoxLayout( this, 2, 4 );
578 577
579 m_active = new QCheckBox( tr( "Active" ), this ); 578 m_active = new QCheckBox( tr( "Active" ), this );
580 QWhatsThis::add( m_active, tr( "Tap here to indicate whether this entry is active or not." ) ); 579 QWhatsThis::add( m_active, tr( "Tap here to indicate whether this entry is active or not." ) );
581 layout->addWidget( m_active ); 580 layout->addWidget( m_active );
582 581
583 layout->addStretch(); 582 layout->addStretch();
584 583
585 QLabel *label = new QLabel( tr( "Name:" ), this ); 584 QLabel *label = new QLabel( tr( "Name:" ), this );
586 QWhatsThis::add( label, tr( "Enter the name of this entry here." ) ); 585 QWhatsThis::add( label, tr( "Enter the name of this entry here." ) );
587 layout->addWidget( label ); 586 layout->addWidget( label );
588 m_name = new QLineEdit( this ); 587 m_name = new QLineEdit( this );
589 QWhatsThis::add( m_name, tr( "Enter the name of this entry here." ) ); 588 QWhatsThis::add( m_name, tr( "Enter the name of this entry here." ) );
590 layout->addWidget( m_name ); 589 layout->addWidget( m_name );
591 590
592 layout->addStretch(); 591 layout->addStretch();
593 592
594 label = new QLabel( tr( "Address:" ), this ); 593 label = new QLabel( tr( "Address:" ), this );
595 QWhatsThis::add( label, tr( "Enter the URL address of this entry here." ) ); 594 QWhatsThis::add( label, tr( "Enter the URL address of this entry here." ) );
596 layout->addWidget( label ); 595 layout->addWidget( label );
597 m_location = new QLineEdit( this ); 596 m_location = new QLineEdit( this );
598 QWhatsThis::add( m_location, tr( "Enter the URL address of this entry here." ) ); 597 QWhatsThis::add( m_location, tr( "Enter the URL address of this entry here." ) );
599 layout->addWidget( m_location ); 598 layout->addWidget( m_location );
600 599
601 layout->addStretch(); 600 layout->addStretch();
602 601
603 m_compressed = new QCheckBox( tr( "Compressed server feed" ), this ); 602 m_compressed = new QCheckBox( tr( "Compressed server feed" ), this );
604 QWhatsThis::add( m_compressed, tr( "Tap here to indicate whether the server support compressed archives or not." ) ); 603 QWhatsThis::add( m_compressed, tr( "Tap here to indicate whether the server support compressed archives or not." ) );
605 layout->addWidget( m_compressed ); 604 layout->addWidget( m_compressed );
606 605
607 // Populate initial information 606 // Populate initial information
608 if ( m_server ) 607 if ( m_server )
609 { 608 {
610 m_name->setText( m_server->name() ); 609 m_name->setText( m_server->name() );
611 m_location->setText( m_server->value() ); 610 m_location->setText( m_server->value() );
612 m_compressed->setChecked( m_server->features().contains( "Compressed" ) ); 611 m_compressed->setChecked( m_server->features().contains( "Compressed" ) );
613 m_active->setChecked( m_server->active() ); 612 m_active->setChecked( m_server->active() );
614 } 613 }
615} 614}
616 615
617void OIpkgServerDlg::accept() 616void OIpkgServerDlg::accept()
618{ 617{
619 // Save information entered 618 // Save information entered
620 QString name = m_name->text(); 619 QString name = m_name->text();
621 name.replace( QRegExp( " " ), "_" ); 620 name.replace( QRegExp( " " ), "_" );
622 m_server->setName( name ); 621 m_server->setName( name );
623 m_server->setValue( m_location->text() ); 622 m_server->setValue( m_location->text() );
624 m_compressed->isChecked() ? m_server->setFeatures( "Compressed" ) 623 m_compressed->isChecked() ? m_server->setFeatures( "Compressed" )
625 : m_server->setFeatures( QString::null ); 624 : m_server->setFeatures( QString::null );
626 m_server->setActive( m_active->isChecked() ); 625 m_server->setActive( m_active->isChecked() );
627 626
628 QDialog::accept(); 627 QDialog::accept();
629} 628}
630 629
631OIpkgDestDlg::OIpkgDestDlg( OConfItem *dest, QWidget *parent ) 630OIpkgDestDlg::OIpkgDestDlg( OConfItem *dest, QWidget *parent )
632 : QDialog( parent, QString::null, true, WStyle_ContextHelp ) 631 : QDialog( parent, QString::null, true, WStyle_ContextHelp )
633 , m_dest( dest ) 632 , m_dest( dest )
634{ 633{
635 setCaption( tr( "Edit Destination" ) ); 634 setCaption( tr( "Edit Destination" ) );
636 635
637 // Initialize UI 636 // Initialize UI
638 QVBoxLayout *layout = new QVBoxLayout( this, 2, 4 ); 637 QVBoxLayout *layout = new QVBoxLayout( this, 2, 4 );
639 638
640 m_active = new QCheckBox( tr( "Active" ), this ); 639 m_active = new QCheckBox( tr( "Active" ), this );
641 QWhatsThis::add( m_active, tr( "Tap here to indicate whether this entry is active or not." ) ); 640 QWhatsThis::add( m_active, tr( "Tap here to indicate whether this entry is active or not." ) );
642 layout->addWidget( m_active ); 641 layout->addWidget( m_active );
643 642
644 layout->addStretch(); 643 layout->addStretch();
645 644
646 QLabel *label = new QLabel( tr( "Name:" ), this ); 645 QLabel *label = new QLabel( tr( "Name:" ), this );
647 QWhatsThis::add( label, tr( "Enter the name of this entry here." ) ); 646 QWhatsThis::add( label, tr( "Enter the name of this entry here." ) );
648 layout->addWidget( label ); 647 layout->addWidget( label );
649 m_name = new QLineEdit( this ); 648 m_name = new QLineEdit( this );
650 QWhatsThis::add( m_name, tr( "Enter the name of this entry here." ) ); 649 QWhatsThis::add( m_name, tr( "Enter the name of this entry here." ) );
651 layout->addWidget( m_name ); 650 layout->addWidget( m_name );
652 651
653 layout->addStretch(); 652 layout->addStretch();
654 653
655 label = new QLabel( tr( "Location:" ), this ); 654 label = new QLabel( tr( "Location:" ), this );
656 QWhatsThis::add( label, tr( "Enter the absolute directory path of this entry here." ) ); 655 QWhatsThis::add( label, tr( "Enter the absolute directory path of this entry here." ) );
657 layout->addWidget( label ); 656 layout->addWidget( label );
658 657
659 QHBoxLayout *layout2 = new QHBoxLayout( this, 2, 4 ); 658 QHBoxLayout *layout2 = new QHBoxLayout( this, 2, 4 );
660 layout->addLayout( layout2 ); 659 layout->addLayout( layout2 );
661 660
662 m_location = new QLineEdit( this ); 661 m_location = new QLineEdit( this );
663 QWhatsThis::add( m_location, tr( "Enter the absolute directory path of this entry here." ) ); 662 QWhatsThis::add( m_location, tr( "Enter the absolute directory path of this entry here." ) );
664 layout2->addWidget( m_location ); 663 layout2->addWidget( m_location );
665 QPixmap pic; 664 QPushButton *btn = new QPushButton( Opie::Core::OResource::loadPixmap( "folder", Opie::Core::OResource::SmallIcon ),
666 pic.convertFromImage( Resource::loadImage( "folder" ).smoothScale( AppLnk::smallIconSize(), AppLnk::smallIconSize() ) ); 665 QString::null, this );
667 QPushButton *btn = new QPushButton( pic, QString::null, this );
668 btn->setMaximumWidth( btn->height() ); 666 btn->setMaximumWidth( btn->height() );
669 QWhatsThis::add( btn, tr( "Tap here to select the desired location." ) ); 667 QWhatsThis::add( btn, tr( "Tap here to select the desired location." ) );
670 connect( btn, SIGNAL(clicked()), this, SLOT(slotSelectPath()) ); 668 connect( btn, SIGNAL(clicked()), this, SLOT(slotSelectPath()) );
671 layout2->addWidget( btn ); 669 layout2->addWidget( btn );
672 670
673 // Populate initial information 671 // Populate initial information
674 if ( m_dest ) 672 if ( m_dest )
675 { 673 {
676 m_name->setText( m_dest->name() ); 674 m_name->setText( m_dest->name() );
677 m_location->setText( m_dest->value() ); 675 m_location->setText( m_dest->value() );
678 m_active->setChecked( m_dest->active() ); 676 m_active->setChecked( m_dest->active() );
679 } 677 }
680} 678}
681 679
682void OIpkgDestDlg::accept() 680void OIpkgDestDlg::accept()
683{ 681{
684 // Save information entered 682 // Save information entered
685 QString name = m_name->text(); 683 QString name = m_name->text();
686 name.replace( QRegExp( " " ), "_" ); 684 name.replace( QRegExp( " " ), "_" );
687 m_dest->setName( name ); 685 m_dest->setName( name );
688 m_dest->setValue( m_location->text() ); 686 m_dest->setValue( m_location->text() );
689 m_dest->setActive( m_active->isChecked() ); 687 m_dest->setActive( m_active->isChecked() );
690 688
691 QDialog::accept(); 689 QDialog::accept();
692} 690}
693 691
694void OIpkgDestDlg::slotSelectPath() 692void OIpkgDestDlg::slotSelectPath()
695{ 693{
696 QString path = Opie::Ui::OFileDialog::getDirectory( 0, m_location->text() ); 694 QString path = Opie::Ui::OFileDialog::getDirectory( 0, m_location->text() );
697 if ( path.at( path.length() - 1 ) == '/' ) 695 if ( path.at( path.length() - 1 ) == '/' )
698 path.truncate( path.length() - 1 ); 696 path.truncate( path.length() - 1 );
699 if ( !path.isNull() ) 697 if ( !path.isNull() )
700 m_location->setText( path ); 698 m_location->setText( path );
701} 699}
702 700
diff --git a/noncore/settings/packagemanager/packageinfodlg.cpp b/noncore/settings/packagemanager/packageinfodlg.cpp
index e034f34..8b1b203 100644
--- a/noncore/settings/packagemanager/packageinfodlg.cpp
+++ b/noncore/settings/packagemanager/packageinfodlg.cpp
@@ -1,154 +1,154 @@
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)2004, 2005 Dan Williams <drw@handhelds.org> 4 Copyright (C)2004, 2005 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#include "packageinfodlg.h" 31#include "packageinfodlg.h"
32#include "opackage.h" 32#include "opackage.h"
33#include "opackagemanager.h" 33#include "opackagemanager.h"
34 34
35#include <opie2/oresource.h>
35#include <opie2/otabwidget.h> 36#include <opie2/otabwidget.h>
36 37
37#include <qpe/resource.h>
38
39#include <qlayout.h> 38#include <qlayout.h>
40#include <qpushbutton.h> 39#include <qpushbutton.h>
41#include <qwhatsthis.h> 40#include <qwhatsthis.h>
42 41
43PackageInfoDlg::PackageInfoDlg( QWidget *parent, OPackageManager *pm, const QString &package ) 42PackageInfoDlg::PackageInfoDlg( QWidget *parent, OPackageManager *pm, const QString &package )
44 : QWidget( 0l ) 43 : QWidget( 0l )
45 , m_packman( pm ) 44 , m_packman( pm )
46 , m_information( this ) 45 , m_information( this )
47 , m_files( this ) 46 , m_files( this )
48 , m_retrieveFiles( 0l ) 47 , m_retrieveFiles( 0l )
49{ 48{
50 // Initialize UI 49 // Initialize UI
51 if ( parent ) 50 if ( parent )
52 parent->setCaption( package ); 51 parent->setCaption( package );
53 52
54 QVBoxLayout *layout = new QVBoxLayout( this, 4, 2 ); 53 QVBoxLayout *layout = new QVBoxLayout( this, 4, 2 );
55 54
56 Opie::Ui::OTabWidget *tabWidget = new Opie::Ui::OTabWidget( this ); 55 Opie::Ui::OTabWidget *tabWidget = new Opie::Ui::OTabWidget( this );
57 layout->addWidget( tabWidget ); 56 layout->addWidget( tabWidget );
58 57
59 // Information tab 58 // Information tab
60 QWhatsThis::add( &m_information, tr( "This area contains information about the package." ) ); 59 QWhatsThis::add( &m_information, tr( "This area contains information about the package." ) );
61 m_information.reparent( tabWidget, QPoint( 0, 0 ) ); 60 m_information.reparent( tabWidget, QPoint( 0, 0 ) );
62 m_information.setReadOnly( true ); 61 m_information.setReadOnly( true );
63 tabWidget->addTab( &m_information, "UtilsIcon", tr( "Information" ) ); 62 tabWidget->addTab( &m_information, "UtilsIcon", tr( "Information" ) );
64 63
65 // Retrive package information 64 // Retrive package information
66 m_package = m_packman->findPackage( package ); 65 m_package = m_packman->findPackage( package );
67 if ( !m_package ) 66 if ( !m_package )
68 { 67 {
69 m_information.setText( tr( "Unable to retrieve package information." ) ); 68 m_information.setText( tr( "Unable to retrieve package information." ) );
70 return; 69 return;
71 } 70 }
72 71
73 // Display package information 72 // Display package information
74 if ( !m_package->information().isNull() ) 73 if ( !m_package->information().isNull() )
75 m_information.setText( m_package->information() ); 74 m_information.setText( m_package->information() );
76 else 75 else
77 { 76 {
78 // Package information is not cached, retrieve it 77 // Package information is not cached, retrieve it
79 QStringList list( package ); 78 QStringList list( package );
80 m_packman->executeCommand( OPackage::Info, list, QString::null, 79 m_packman->executeCommand( OPackage::Info, list, QString::null,
81 this, SLOT(slotInfo(const QString &)), true ); 80 this, SLOT(slotInfo(const QString &)), true );
82 } 81 }
83 82
84 // Files tab (display only if package is installed) 83 // Files tab (display only if package is installed)
85 if ( !m_package->versionInstalled().isNull() ) 84 if ( !m_package->versionInstalled().isNull() )
86 { 85 {
87 QWidget *filesWidget = new QWidget( tabWidget ); 86 QWidget *filesWidget = new QWidget( tabWidget );
88 QVBoxLayout *filesLayout = new QVBoxLayout( filesWidget, 2, 2 ); 87 QVBoxLayout *filesLayout = new QVBoxLayout( filesWidget, 2, 2 );
89 QWhatsThis::add( &m_files, tr( "This area contains a list of files contained in this package." ) ); 88 QWhatsThis::add( &m_files, tr( "This area contains a list of files contained in this package." ) );
90 m_files.reparent( filesWidget, QPoint( 0, 0 ) ); 89 m_files.reparent( filesWidget, QPoint( 0, 0 ) );
91 m_files.setReadOnly( true ); 90 m_files.setReadOnly( true );
92 filesLayout->addWidget( &m_files ); 91 filesLayout->addWidget( &m_files );
93 92
94 // If file list is already cached, display 93 // If file list is already cached, display
95 if ( !m_package->files().isNull() ) 94 if ( !m_package->files().isNull() )
96 m_files.setText( m_package->files() ); 95 m_files.setText( m_package->files() );
97 else 96 else
98 { 97 {
99 m_retrieveFiles = new QPushButton( Resource::loadPixmap( "packagemanager/apply" ), 98 m_retrieveFiles = new QPushButton( Opie::Core::OResource::loadPixmap( "packagemanager/apply",
100 tr( "Retrieve file list" ), filesWidget ); 99 Opie::Core::OResource::SmallIcon ), tr( "Retrieve file list" ),
100 filesWidget );
101 QWhatsThis::add( m_retrieveFiles, tr( "Tap here to retrieve list of files contained in this package." ) ); 101 QWhatsThis::add( m_retrieveFiles, tr( "Tap here to retrieve list of files contained in this package." ) );
102 filesLayout->addWidget( m_retrieveFiles ); 102 filesLayout->addWidget( m_retrieveFiles );
103 connect( m_retrieveFiles, SIGNAL(clicked()), this, SLOT(slotBtnFileScan()) ); 103 connect( m_retrieveFiles, SIGNAL(clicked()), this, SLOT(slotBtnFileScan()) );
104 } 104 }
105 105
106 tabWidget->addTab( filesWidget, "binary", tr( "File list" ) ); 106 tabWidget->addTab( filesWidget, "binary", tr( "File list" ) );
107 tabWidget->setCurrentTab( tr( "Information" ) ); 107 tabWidget->setCurrentTab( tr( "Information" ) );
108 108
109 } 109 }
110 else 110 else
111 m_files.hide(); 111 m_files.hide();
112} 112}
113 113
114PackageInfoDlg::~PackageInfoDlg() 114PackageInfoDlg::~PackageInfoDlg()
115{ 115{
116 if ( !m_package ) 116 if ( !m_package )
117 return; 117 return;
118 118
119 // Cache package information 119 // Cache package information
120 if ( !m_information.text().isNull() ) 120 if ( !m_information.text().isNull() )
121 m_package->setInformation( m_information.text() ); 121 m_package->setInformation( m_information.text() );
122 122
123 // Cache package file list 123 // Cache package file list
124 if ( !m_files.text().isEmpty() ) 124 if ( !m_files.text().isEmpty() )
125 m_package->setFiles( m_files.text() ); 125 m_package->setFiles( m_files.text() );
126} 126}
127 127
128void PackageInfoDlg::slotBtnFileScan() 128void PackageInfoDlg::slotBtnFileScan()
129{ 129{
130 m_files.clear(); 130 m_files.clear();
131 131
132 QStringList list( m_package->name() ); 132 QStringList list( m_package->name() );
133 m_packman->executeCommand( OPackage::Files, list, QString::null, 133 m_packman->executeCommand( OPackage::Files, list, QString::null,
134 this, SLOT(slotFiles(const QString &)), true ); 134 this, SLOT(slotFiles(const QString &)), true );
135 135
136 if ( m_retrieveFiles ) 136 if ( m_retrieveFiles )
137 m_retrieveFiles->hide(); 137 m_retrieveFiles->hide();
138} 138}
139 139
140void PackageInfoDlg::slotInfo( const QString &info ) 140void PackageInfoDlg::slotInfo( const QString &info )
141{ 141{
142 m_information.append( info ); 142 m_information.append( info );
143} 143}
144 144
145void PackageInfoDlg::slotFiles( const QString &filelist ) 145void PackageInfoDlg::slotFiles( const QString &filelist )
146{ 146{
147 QString str = filelist; 147 QString str = filelist;
148 148
149 // Skip first line of output ("Package xxx is installed...") 149 // Skip first line of output ("Package xxx is installed...")
150 if ( str.startsWith( "Package " ) ) 150 if ( str.startsWith( "Package " ) )
151 str = str.right( str.length() - str.find( '\n' ) - 1 ); 151 str = str.right( str.length() - str.find( '\n' ) - 1 );
152 152
153 m_files.append( str ); 153 m_files.append( str );
154} 154}