Bug 84834 - No vectors available in vector selector right after loading KST file
Summary: No vectors available in vector selector right after loading KST file
Status: RESOLVED FIXED
Alias: None
Product: kst
Classification: Applications
Component: general (show other bugs)
Version: 1.x
Platform: RedHat Enterprise Linux Linux
: NOR normal
Target Milestone: ---
Assignee: kst
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2004-07-09 22:04 UTC by Rick Chern
Modified: 2004-07-09 22:20 UTC (History)
0 users

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Rick Chern 2004-07-09 22:04:15 UTC
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.
Comment 1 George Staikos 2004-07-09 22:20:38 UTC
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();