Version: 0.98-devel (using KDE KDE 3.2.1) Installed from: RedHat RPMs Compiler: gcc (GCC) 3.3.2 20031022 OS: Linux Right after loading a KST file, the vector selector of data object dialogs does not show the updated list of vectors. How to reproduce: - Start KST - load any KST file - open the New or Edit dialog of any data object (besides vectors) No vectors are available in the vector selector(s). If previous vectors existed before loading the KST file, the vector selectors will show the old list of vectors. Expected behaviour: The list of vectors in the vector selector is correct after loading a KST file.
CVS commit by staikos: - realtime updates for the vector dialog now work - update dialogs on loading new Kst file CCMAIL: 84834-done@bugs.kde.org M +4 -2 devel-docs/RELEASE_PLAN-0.98 1.25 M +1 -0 kst/kstdoc.cpp 1.98 M +4 -9 kst/kstviewvectorsdialog_i.cpp 1.11 M +2 -0 kst/scalarselector.ui 1.6 M +5 -0 kst/scalarselector.ui.h 1.6 M +2 -0 kst/vectorselector.ui 1.7 M +5 -0 kst/vectorselector.ui.h 1.6 --- kdeextragear-2/kst/devel-docs/RELEASE_PLAN-0.98 #1.24:1.25 @@ -6,13 +6,12 @@ - Kst Settings don't work - do events work? -- deleting a piolib database crashes kst (George) - "overwrite all" doesn't work in plugin manager <-- KIO related? - updates are calling plugins too often without need <-- major problem (George) - using QWaitCondition in update thread is bad - it's broken in all but the most recent Qt releases -- data display dialogs are unusable in realtime mode - fits should store the stat variables as scalars, not as a vector - locking is missing in places - especially dialogs (plugin, etc) - data manager update doesn't work (ex if vector grows) +- open new kst file, then cancel, it still kills your old file @@ -32,4 +31,7 @@ o the common implemented functionality for data dialogs may need a rethink - it's impossible to override behaviour of functions +o using the negative in the debug dialog log tab is contrary to most + applications - check them all by default and let the user deselect instead +o deleting a piolib database crashes kst (George - on hold until piolib works) --- kdeextragear-2/kst/kst/kstdoc.cpp #1.97:1.98 @@ -386,4 +386,5 @@ bool KstDoc::openDocument(const KURL& ur KstApp::inst()->deleteIterator(it); + emit updateDialogs(); _modified = false; --- kdeextragear-2/kst/kst/kstviewvectorsdialog_i.cpp #1.10:1.11 @@ -67,9 +67,7 @@ KstViewVectorsDialogI::~KstViewVectorsDi void KstViewVectorsDialogI::updateViewVectorsDialog() { - QString strVector; - vectorSelector->update(); - strVector = vectorSelector->selectedVector(); + QString strVector = vectorSelector->selectedVector(); tableVectors->setVector(strVector); @@ -78,15 +76,12 @@ void KstViewVectorsDialogI::updateViewVe void KstViewVectorsDialogI::updateViewVectorsDialog(const QString& strVector) { - QRect rect; int needed = 0; - KstVectorPtr vector; - - vector = *KST::vectorList.findTag(strVector); - if( vector ) { + KstVectorPtr vector = *KST::vectorList.findTag(strVector); + if (vector) { needed = vector->length(); } tableVectors->setNumRows(needed); - rect = tableVectors->horizontalHeader()->rect(); + QRect rect = tableVectors->horizontalHeader()->rect(); tableVectors->setColumnWidth( 0, rect.width() ); } --- kdeextragear-2/kst/kst/scalarselector.ui #1.5:1.6 @@ -77,4 +77,6 @@ <include location="global" impldecl="in implementation">qvalidator.h</include> <include location="global" impldecl="in implementation">qmessagebox.h</include> + <include location="global" impldecl="in implementation">qlistbox.h</include> + <include location="global" impldecl="in implementation">qtimer.h</include> <include location="local" impldecl="in implementation">scalarselector.ui.h</include> </includes> --- kdeextragear-2/kst/kst/scalarselector.ui.h #1.5:1.6 @@ -16,4 +16,9 @@ void ScalarSelector::allowNewScalars( bo void ScalarSelector::update() { + if (_scalar->listBox()->isVisible()) { + QTimer::singleShot(250, this, SLOT(update())); + return; + } + blockSignals(true); QString prev = _scalar->currentText(); --- kdeextragear-2/kst/kst/vectorselector.ui #1.6:1.7 @@ -75,4 +75,6 @@ <include location="local" impldecl="in implementation">kstvectordialog_i.h</include> <include location="local" impldecl="in implementation">vectorselector.ui.h</include> + <include location="global" impldecl="in implementation">qlistbox.h</include> + <include location="global" impldecl="in implementation">qtimer.h</include> </includes> <variables> --- kdeextragear-2/kst/kst/vectorselector.ui.h #1.5:1.6 @@ -26,4 +26,9 @@ QString VectorSelector::selectedVector() void VectorSelector::update() { + if (_vector->listBox()->isVisible()) { + QTimer::singleShot(250, this, SLOT(update())); + return; + } + blockSignals(true); QString prev = _vector->currentText();