summaryrefslogtreecommitdiff
path: root/noncore/settings
Unidiff
Diffstat (limited to 'noncore/settings') (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/settings/aqpkg/installdlgimpl.cpp86
1 files changed, 54 insertions, 32 deletions
diff --git a/noncore/settings/aqpkg/installdlgimpl.cpp b/noncore/settings/aqpkg/installdlgimpl.cpp
index d4f751c..b92a245 100644
--- a/noncore/settings/aqpkg/installdlgimpl.cpp
+++ b/noncore/settings/aqpkg/installdlgimpl.cpp
@@ -26,24 +26,25 @@
26#include <qpushbutton.h> 26#include <qpushbutton.h>
27 27
28 28
29#include "datamgr.h" 29#include "datamgr.h"
30#include "instoptionsimpl.h" 30#include "instoptionsimpl.h"
31#include "destination.h" 31#include "destination.h"
32#include "installdlgimpl.h" 32#include "installdlgimpl.h"
33#include "global.h" 33#include "global.h"
34 34
35InstallDlgImpl::InstallDlgImpl( vector<QString> &packageList, DataManager *dataManager, QWidget * parent, const char* name, bool modal, WFlags fl ) 35InstallDlgImpl::InstallDlgImpl( vector<QString> &packageList, DataManager *dataManager, QWidget * parent, const char* name, bool modal, WFlags fl )
36 : InstallDlg( parent, name, modal, fl ) 36 : InstallDlg( parent, name, modal, fl )
37{ 37{
38 upgradePackages = false;
38 dataMgr = dataManager; 39 dataMgr = dataManager;
39 vector<Destination>::iterator dit; 40 vector<Destination>::iterator dit;
40 41
41 QString defaultDest = "root"; 42 QString defaultDest = "root";
42#ifdef QWS 43#ifdef QWS
43 Config cfg( "aqpkg" ); 44 Config cfg( "aqpkg" );
44 cfg.setGroup( "settings" ); 45 cfg.setGroup( "settings" );
45 defaultDest = cfg.readEntry( "dest", "root" ); 46 defaultDest = cfg.readEntry( "dest", "root" );
46 47
47 // Grab flags - Turn MAKE_LINKS on by default (if no flags found) 48 // Grab flags - Turn MAKE_LINKS on by default (if no flags found)
48 flags = cfg.readNumEntry( "installFlags", MAKE_LINKS ); 49 flags = cfg.readNumEntry( "installFlags", MAKE_LINKS );
49#else 50#else
@@ -90,24 +91,33 @@ InstallDlgImpl::InstallDlgImpl( vector<QString> &packageList, DataManager *dataM
90 else if ( name.startsWith( "U" ) ) 91 else if ( name.startsWith( "U" ) )
91 { 92 {
92 updateList.push_back( name.mid(1) ); 93 updateList.push_back( name.mid(1) );
93 upgrade += " " + name.mid(1) + "\n"; 94 upgrade += " " + name.mid(1) + "\n";
94 } 95 }
95 } 96 }
96 97
97 output->setText( remove + install + upgrade ); 98 output->setText( remove + install + upgrade );
98 99
99 connect( &ipkg, SIGNAL(outputText(const QString &)), this, SLOT(displayText(const QString &))); 100 connect( &ipkg, SIGNAL(outputText(const QString &)), this, SLOT(displayText(const QString &)));
100} 101}
101 102
103InstallDlgImpl::InstallDlgImpl( QWidget *parent, const char *name, bool modal, WFlags fl )
104 : InstallDlg( parent, name, modal, fl )
105{
106 upgradePackages = true;
107 output->setText( "Upgrading installed packages" );
108 connect( &ipkg, SIGNAL(outputText(const QString &)), this, SLOT(displayText(const QString &)));
109}
110
111
102InstallDlgImpl::~InstallDlgImpl() 112InstallDlgImpl::~InstallDlgImpl()
103{ 113{
104} 114}
105 115
106bool InstallDlgImpl :: showDlg() 116bool InstallDlgImpl :: showDlg()
107{ 117{
108 showMaximized(); 118 showMaximized();
109 bool ret = exec(); 119 bool ret = exec();
110 120
111 return ret; 121 return ret;
112} 122}
113 123
@@ -137,61 +147,73 @@ void InstallDlgImpl :: optionsSelected()
137} 147}
138 148
139void InstallDlgImpl :: installSelected() 149void InstallDlgImpl :: installSelected()
140{ 150{
141 if ( btnInstall->text() == "Close" ) 151 if ( btnInstall->text() == "Close" )
142 { 152 {
143 done( 1 ); 153 done( 1 );
144 return; 154 return;
145 } 155 }
146 156
147 btnInstall->setEnabled( false ); 157 btnInstall->setEnabled( false );
148 158
149 output->setText( "" ); 159 if ( upgradePackages )
150 Destination *d = dataMgr->getDestination( destination->currentText() );
151 QString dest = d->getDestinationName();
152 QString destDir = d->getDestinationPath();
153
154#ifdef QWS
155 // Save settings
156 Config cfg( "aqpkg" );
157 cfg.setGroup( "settings" );
158 cfg.writeEntry( "dest", dest );
159#endif
160
161 // First run through the remove list, then the install list then the upgrade list
162 vector<QString>::iterator it;
163 ipkg.setOption( "remove" );
164 ipkg.setDestination( dest );
165 ipkg.setDestinationDir( destDir );
166 ipkg.setFlags( flags );
167 for ( it = removeList.begin() ; it != removeList.end() ; ++it )
168 { 160 {
169 ipkg.setPackage( *it ); 161 output->setText( "" );
162
163 Ipkg ipkg;
164 connect( &ipkg, SIGNAL(outputText(const QString &)), this, SLOT(displayText(const QString &)));
165 ipkg.setOption( "upgrade" );
170 ipkg.runIpkg(); 166 ipkg.runIpkg();
171 } 167 }
172 168 else
173 ipkg.setOption( "install" );
174 for ( it = installList.begin() ; it != installList.end() ; ++it )
175 { 169 {
176 ipkg.setPackage( *it ); 170 output->setText( "" );
177 ipkg.runIpkg(); 171 Destination *d = dataMgr->getDestination( destination->currentText() );
178 } 172 QString dest = d->getDestinationName();
173 QString destDir = d->getDestinationPath();
179 174
180 flags |= FORCE_REINSTALL; 175#ifdef QWS
181 ipkg.setFlags( flags ); 176 // Save settings
182 for ( it = updateList.begin() ; it != updateList.end() ; ++it ) 177 Config cfg( "aqpkg" );
183 { 178 cfg.setGroup( "settings" );
184 ipkg.setPackage( *it ); 179 cfg.writeEntry( "dest", dest );
185 ipkg.runIpkg(); 180#endif
181
182 // First run through the remove list, then the install list then the upgrade list
183 vector<QString>::iterator it;
184 ipkg.setOption( "remove" );
185 ipkg.setDestination( dest );
186 ipkg.setDestinationDir( destDir );
187 ipkg.setFlags( flags );
188 for ( it = removeList.begin() ; it != removeList.end() ; ++it )
189 {
190 ipkg.setPackage( *it );
191 ipkg.runIpkg();
192 }
193
194 ipkg.setOption( "install" );
195 for ( it = installList.begin() ; it != installList.end() ; ++it )
196 {
197 ipkg.setPackage( *it );
198 ipkg.runIpkg();
199 }
200
201 flags |= FORCE_REINSTALL;
202 ipkg.setFlags( flags );
203 for ( it = updateList.begin() ; it != updateList.end() ; ++it )
204 {
205 ipkg.setPackage( *it );
206 ipkg.runIpkg();
207 }
186 } 208 }
187 209
188 btnInstall->setEnabled( true ); 210 btnInstall->setEnabled( true );
189 btnInstall->setText( tr( "Close" ) ); 211 btnInstall->setText( tr( "Close" ) );
190} 212}
191 213
192void InstallDlgImpl :: displayText(const QString &text ) 214void InstallDlgImpl :: displayText(const QString &text )
193{ 215{
194 QString t = output->text() + "\n" + text; 216 QString t = output->text() + "\n" + text;
195 output->setText( t ); 217 output->setText( t );
196 output->setCursorPosition( output->numLines(), 0 ); 218 output->setCursorPosition( output->numLines(), 0 );
197} 219}