summaryrefslogtreecommitdiff
path: root/noncore/settings/aqpkg/ipkg.cpp
Unidiff
Diffstat (limited to 'noncore/settings/aqpkg/ipkg.cpp') (more/less context) (show whitespace changes)
-rw-r--r--noncore/settings/aqpkg/ipkg.cpp22
1 files changed, 22 insertions, 0 deletions
diff --git a/noncore/settings/aqpkg/ipkg.cpp b/noncore/settings/aqpkg/ipkg.cpp
index 407abe9..7afe04f 100644
--- a/noncore/settings/aqpkg/ipkg.cpp
+++ b/noncore/settings/aqpkg/ipkg.cpp
@@ -39,6 +39,7 @@ using namespace std;
39 39
40Ipkg :: Ipkg() 40Ipkg :: Ipkg()
41{ 41{
42 proc = 0;
42} 43}
43 44
44Ipkg :: ~Ipkg() 45Ipkg :: ~Ipkg()
@@ -137,6 +138,9 @@ bool Ipkg :: runIpkg( )
137 138
138 ret = executeIpkgCommand( commands, option ); 139 ret = executeIpkgCommand( commands, option );
139 140
141 if ( aborted )
142 return false;
143
140 if ( option == "install" || option == "reinstall" ) 144 if ( option == "install" || option == "reinstall" )
141 { 145 {
142 // If we are not removing packages and make links option is selected 146 // If we are not removing packages and make links option is selected
@@ -256,8 +260,17 @@ void Ipkg :: removeStatusEntry()
256 260
257int Ipkg :: executeIpkgCommand( QStringList &cmd, const QString option ) 261int Ipkg :: executeIpkgCommand( QStringList &cmd, const QString option )
258{ 262{
263 // If one is already running - should never be but just to be safe
264 if ( proc )
265 {
266 delete proc;
267 proc = 0;
268 }
269
259 // OK we're gonna use OProcess to run this thing 270 // OK we're gonna use OProcess to run this thing
260 proc = new OProcess(); 271 proc = new OProcess();
272 aborted = false;
273
261 274
262 // Connect up our slots 275 // Connect up our slots
263 connect(proc, SIGNAL(processExited(OProcess *)), 276 connect(proc, SIGNAL(processExited(OProcess *)),
@@ -317,10 +330,19 @@ void Ipkg::commandStderr(OProcess*, char *buffer, int buflen)
317void Ipkg::processFinished() 330void Ipkg::processFinished()
318{ 331{
319 delete proc; 332 delete proc;
333 proc = 0;
320 finished = true; 334 finished = true;
321} 335}
322 336
323 337
338void Ipkg :: abort()
339{
340 if ( proc )
341 {
342 proc->kill();
343 aborted = true;
344 }
345}
324 346
325/* 347/*
326int Ipkg :: executeIpkgCommand( QString &cmd, const QString option ) 348int Ipkg :: executeIpkgCommand( QString &cmd, const QString option )