summaryrefslogtreecommitdiff
authordrw <drw>2003-05-17 15:34:26 (UTC)
committer drw <drw>2003-05-17 15:34:26 (UTC)
commit325096fb28d129429b17a781c4c1e8d6ca9aa585 (patch) (side-by-side diff)
tree1e241dcf42a2eb1caf146282c3a20e9716ebc1e2
parentc48833d1d58c3d691c39df5326c6daff811a6d07 (diff)
downloadopie-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
Diffstat (more/less context) (show whitespace changes)
-rw-r--r--noncore/settings/aqpkg/ipkg.cpp11
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
@@ -222,16 +222,17 @@ void Ipkg :: removeStatusEntry()
}
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';
@@ -249,23 +250,33 @@ void Ipkg :: removeStatusEntry()
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 );