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) (ignore 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
@@ -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*/ )
{