Version: 1.0.0_devel (using KDE 3.3.0, compiled sources) Compiler: gcc version 3.3.2 OS: SunOS (sun4u) release 5.8 Now that kst has a nice status bar, it should be used more often. The following operations are particularly slow and lack feedback (forgive me for putting all this into the same report, but I am getting tired of bugzilla today !): - initial loading of a kst file from the command line (e.g. "kst plot.kst" with lots of data): the main window appears only when it's done, which can take quite some time during which you wonder what's going on (and some users might kill kst before it has had time to load !) - when changing data files - probably other cases I forgot ! The datawizard gives much more feedback, which is nice :-)
CVS commit by arwalker: Provide progress bar feedback when changing a data file. CCMAIL: 91693@bugs.kde.org M +28 -5 kstchangefiledialog_i.cpp 1.27 --- kdeextragear-2/kst/kst/kstchangefiledialog_i.cpp #1.26:1.27 @@ -63,5 +63,8 @@ void KstChangeFileDialogI::updateChangeF KstRVectorList rvl = kstObjectSubList<KstVector,KstRVector>(KST::vectorList); - /* insert vectors into ChangeFileCurveList */ + + // + // insert vectors into ChangeFileCurveList + // for (int i = 0; i < (int)rvl.count(); i++) { rvl[i]->readLock(); @@ -115,6 +118,19 @@ void KstChangeFileDialogI::applyFileChan file->writeLock(); + KstApp *app = KstApp::inst(); KstRVectorList rvl = kstObjectSubList<KstVector,KstRVector>(KST::vectorList); - for (int i = 0; i < (int)ChangeFileCurveList->count(); i++) { + int selected = 0; + int handled = 0; + int count; + int i; + + count = (int)ChangeFileCurveList->count(); + for (i = 0; i < count; i++) { + if (ChangeFileCurveList->isSelected(i)) { + selected++; + } + } + + for (i = 0; i < count; i++) { if (ChangeFileCurveList->isSelected(i)) { KstRVectorPtr vector = rvl[i]; @@ -122,7 +138,8 @@ void KstChangeFileDialogI::applyFileChan if (!file->isValidField(vector->field())) { if (invalid > 0) { - invalidSources += ", "; + invalidSources = i18n("%1, %2").arg(invalidSources).arg(vector->field()); + } else { + invalidSources = vector->field(); } - invalidSources += vector->field(); invalid++; } else { @@ -130,7 +147,10 @@ void KstChangeFileDialogI::applyFileChan } vector->writeUnlock(); + app->slotUpdateProgress(selected, ++handled, i18n("Updating vectors...")); } } + app->slotUpdateProgress(0, 0, QString::null); + if (!invalidSources.isEmpty()) { if (invalid == 1) { @@ -144,5 +164,8 @@ void KstChangeFileDialogI::applyFileChan file = 0L; emit docChanged(); - // Force an update in case we're in paused mode + + // + // force an update in case we're in paused mode + // KstApp::inst()->forceUpdate(); }
CVS commit by arwalker: Provide progress bar feedback when opeing a kst file. CCMAIL: 91693@bugs.kde.org M +22 -3 kstdoc.cpp 1.132 M +57 -36 main.cpp 1.86
CVS commit by arwalker: Show progress update when loading data from the command line. I think this addresses most, if not all, cases of long periods of an inactive user-interface. Please submit a new bug report, or re-open this one, if there are others. CCMAIL: 91693-done@bugs.kde.org M +56 -11 main.cpp 1.87