author | drw <drw> | 2003-05-17 15:34:26 (UTC) |
---|---|---|
committer | drw <drw> | 2003-05-17 15:34:26 (UTC) |
commit | 325096fb28d129429b17a781c4c1e8d6ca9aa585 (patch) (side-by-side diff) | |
tree | 1e241dcf42a2eb1caf146282c3a20e9716ebc1e2 | |
parent | c48833d1d58c3d691c39df5326c6daff811a6d07 (diff) | |
download | opie-325096fb28d129429b17a781c4c1e8d6ca9aa585.zip opie-325096fb28d129429b17a781c4c1e8d6ca9aa585.tar.gz opie-325096fb28d129429b17a781c4c1e8d6ca9aa585.tar.bz2 |
Fix for bug #913 - added periodic qApp->processEvents() while updating ipkg status file to improve UI responsiveness
-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 @@ -218,24 +218,25 @@ void Ipkg :: removeStatusEntry() tempstr = "Couldn't create tempory status file - "; tempstr.append( outStatusFile ); emit outputText( tempstr ); return; } char line[1001]; char k[21]; char v[1001]; QString key; QString value; vector<QString> lines; + int i = 0; do { in.getline( line, 1000 ); if ( in.eof() ) continue; k[0] = '\0'; v[0] = '\0'; sscanf( line, "%[^:]: %[^\n]", k, v ); key = k; value = v; @@ -245,31 +246,41 @@ void Ipkg :: removeStatusEntry() { // Ignore all lines up to next empty do { in.getline( line, 1000 ); if ( in.eof() || QString( line ).stripWhiteSpace() == "" ) continue; } while ( !in.eof() && QString( line ).stripWhiteSpace() != "" ); } lines.push_back( QString( line ) ); out << line << endl; + + // Improve UI responsiveness + i++; + if ( ( i % 50 ) == 0 ) + qApp->processEvents(); } while ( !in.eof() ); // Write lines out vector<QString>::iterator it; for ( it = lines.begin() ; it != lines.end() ; ++it ) { out << (const char *)(*it) << endl; + + // Improve UI responsiveness + i++; + if ( ( i % 50 ) == 0 ) + qApp->processEvents(); } in.close(); out.close(); // Remove old status file and put tmp stats file in its place remove( statusFile ); rename( outStatusFile, statusFile ); } int Ipkg :: executeIpkgCommand( QStringList &cmd, const QString /*option*/ ) { |