-rw-r--r-- | noncore/settings/aqpkg/ipkg.cpp | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/noncore/settings/aqpkg/ipkg.cpp b/noncore/settings/aqpkg/ipkg.cpp index 08ae386..3df569b 100644 --- a/noncore/settings/aqpkg/ipkg.cpp +++ b/noncore/settings/aqpkg/ipkg.cpp | |||
@@ -198,98 +198,109 @@ void Ipkg :: removeStatusEntry() | |||
198 | emit outputText( "Removing status entry..." ); | 198 | emit outputText( "Removing status entry..." ); |
199 | QString tempstr = "status file - "; | 199 | QString tempstr = "status file - "; |
200 | tempstr.append( statusFile ); | 200 | tempstr.append( statusFile ); |
201 | emit outputText( tempstr ); | 201 | emit outputText( tempstr ); |
202 | tempstr = "package - "; | 202 | tempstr = "package - "; |
203 | tempstr.append( package ); | 203 | tempstr.append( package ); |
204 | emit outputText( tempstr ); | 204 | emit outputText( tempstr ); |
205 | 205 | ||
206 | ifstream in( statusFile ); | 206 | ifstream in( statusFile ); |
207 | ofstream out( outStatusFile ); | 207 | ofstream out( outStatusFile ); |
208 | if ( !in.is_open() ) | 208 | if ( !in.is_open() ) |
209 | { | 209 | { |
210 | tempstr = "Couldn't open status file - "; | 210 | tempstr = "Couldn't open status file - "; |
211 | tempstr.append( statusFile ); | 211 | tempstr.append( statusFile ); |
212 | emit outputText( tempstr ); | 212 | emit outputText( tempstr ); |
213 | return; | 213 | return; |
214 | } | 214 | } |
215 | 215 | ||
216 | if ( !out.is_open() ) | 216 | if ( !out.is_open() ) |
217 | { | 217 | { |
218 | tempstr = "Couldn't create tempory status file - "; | 218 | tempstr = "Couldn't create tempory status file - "; |
219 | tempstr.append( outStatusFile ); | 219 | tempstr.append( outStatusFile ); |
220 | emit outputText( tempstr ); | 220 | emit outputText( tempstr ); |
221 | return; | 221 | return; |
222 | } | 222 | } |
223 | 223 | ||
224 | char line[1001]; | 224 | char line[1001]; |
225 | char k[21]; | 225 | char k[21]; |
226 | char v[1001]; | 226 | char v[1001]; |
227 | QString key; | 227 | QString key; |
228 | QString value; | 228 | QString value; |
229 | vector<QString> lines; | 229 | vector<QString> lines; |
230 | int i = 0; | ||
230 | do | 231 | do |
231 | { | 232 | { |
232 | in.getline( line, 1000 ); | 233 | in.getline( line, 1000 ); |
233 | if ( in.eof() ) | 234 | if ( in.eof() ) |
234 | continue; | 235 | continue; |
235 | 236 | ||
236 | k[0] = '\0'; | 237 | k[0] = '\0'; |
237 | v[0] = '\0'; | 238 | v[0] = '\0'; |
238 | 239 | ||
239 | sscanf( line, "%[^:]: %[^\n]", k, v ); | 240 | sscanf( line, "%[^:]: %[^\n]", k, v ); |
240 | key = k; | 241 | key = k; |
241 | value = v; | 242 | value = v; |
242 | key = key.stripWhiteSpace(); | 243 | key = key.stripWhiteSpace(); |
243 | value = value.stripWhiteSpace(); | 244 | value = value.stripWhiteSpace(); |
244 | if ( key == "Package" && value == package ) | 245 | if ( key == "Package" && value == package ) |
245 | { | 246 | { |
246 | // Ignore all lines up to next empty | 247 | // Ignore all lines up to next empty |
247 | do | 248 | do |
248 | { | 249 | { |
249 | in.getline( line, 1000 ); | 250 | in.getline( line, 1000 ); |
250 | if ( in.eof() || QString( line ).stripWhiteSpace() == "" ) | 251 | if ( in.eof() || QString( line ).stripWhiteSpace() == "" ) |
251 | continue; | 252 | continue; |
252 | } while ( !in.eof() && QString( line ).stripWhiteSpace() != "" ); | 253 | } while ( !in.eof() && QString( line ).stripWhiteSpace() != "" ); |
253 | } | 254 | } |
254 | 255 | ||
255 | lines.push_back( QString( line ) ); | 256 | lines.push_back( QString( line ) ); |
256 | out << line << endl; | 257 | out << line << endl; |
258 | |||
259 | // Improve UI responsiveness | ||
260 | i++; | ||
261 | if ( ( i % 50 ) == 0 ) | ||
262 | qApp->processEvents(); | ||
257 | } while ( !in.eof() ); | 263 | } while ( !in.eof() ); |
258 | 264 | ||
259 | // Write lines out | 265 | // Write lines out |
260 | vector<QString>::iterator it; | 266 | vector<QString>::iterator it; |
261 | for ( it = lines.begin() ; it != lines.end() ; ++it ) | 267 | for ( it = lines.begin() ; it != lines.end() ; ++it ) |
262 | { | 268 | { |
263 | out << (const char *)(*it) << endl; | 269 | out << (const char *)(*it) << endl; |
270 | |||
271 | // Improve UI responsiveness | ||
272 | i++; | ||
273 | if ( ( i % 50 ) == 0 ) | ||
274 | qApp->processEvents(); | ||
264 | } | 275 | } |
265 | 276 | ||
266 | in.close(); | 277 | in.close(); |
267 | out.close(); | 278 | out.close(); |
268 | 279 | ||
269 | // Remove old status file and put tmp stats file in its place | 280 | // Remove old status file and put tmp stats file in its place |
270 | remove( statusFile ); | 281 | remove( statusFile ); |
271 | rename( outStatusFile, statusFile ); | 282 | rename( outStatusFile, statusFile ); |
272 | } | 283 | } |
273 | 284 | ||
274 | int Ipkg :: executeIpkgCommand( QStringList &cmd, const QString /*option*/ ) | 285 | int Ipkg :: executeIpkgCommand( QStringList &cmd, const QString /*option*/ ) |
275 | { | 286 | { |
276 | // If one is already running - should never be but just to be safe | 287 | // If one is already running - should never be but just to be safe |
277 | if ( proc ) | 288 | if ( proc ) |
278 | { | 289 | { |
279 | delete proc; | 290 | delete proc; |
280 | proc = 0; | 291 | proc = 0; |
281 | } | 292 | } |
282 | 293 | ||
283 | // OK we're gonna use OProcess to run this thing | 294 | // OK we're gonna use OProcess to run this thing |
284 | proc = new OProcess(); | 295 | proc = new OProcess(); |
285 | aborted = false; | 296 | aborted = false; |
286 | 297 | ||
287 | 298 | ||
288 | // Connect up our slots | 299 | // Connect up our slots |
289 | connect(proc, SIGNAL(processExited(OProcess *)), | 300 | connect(proc, SIGNAL(processExited(OProcess *)), |
290 | this, SLOT( processFinished())); | 301 | this, SLOT( processFinished())); |
291 | 302 | ||
292 | connect(proc, SIGNAL(receivedStdout(OProcess *, char *, int)), | 303 | connect(proc, SIGNAL(receivedStdout(OProcess *, char *, int)), |
293 | this, SLOT(commandStdout(OProcess *, char *, int))); | 304 | this, SLOT(commandStdout(OProcess *, char *, int))); |
294 | 305 | ||
295 | connect(proc, SIGNAL(receivedStderr(OProcess *, char *, int)), | 306 | connect(proc, SIGNAL(receivedStderr(OProcess *, char *, int)), |