[Kst] [Bug 134514] view object dialog menu actions are shown when zero objects exist

Adam Treat treat at kde.org
Fri Oct 6 18:29:39 CEST 2006


------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.
         
http://bugs.kde.org/show_bug.cgi?id=134514         
treat kde org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
         Resolution|                            |FIXED



------- Additional Comments From treat kde org  2006-10-06 18:29 -------
SVN commit 593050 by treat:

* Don't enable the 'view object' dialogs when they
contain no content.

BUG: 134514


 M  +6 -0      kst.cpp  
 M  +14 -0     kstviewfitsdialog_i.cpp  
 M  +2 -0      kstviewfitsdialog_i.h  
 M  +5 -0      kstviewmatricesdialog_i.cpp  
 M  +2 -0      kstviewmatricesdialog_i.h  
 M  +4 -0      kstviewscalarsdialog_i.cpp  
 M  +2 -0      kstviewscalarsdialog_i.h  
 M  +5 -0      kstviewvectorsdialog_i.cpp  
 M  +2 -0      kstviewvectorsdialog_i.h  


--- trunk/extragear/graphics/kst/src/libkstapp/kst.cpp #593049:593050
 @ -2074,6 +2074,12  @
 
 
 void KstApp::updateDataDialogs(bool dm, bool vm) {
+
+  ViewScalarsDialogAction->setEnabled(viewScalarsDialog->hasContent());
+  ViewVectorsDialogAction->setEnabled(viewVectorsDialog->hasContent());
+  ViewMatricesDialogAction->setEnabled(viewMatricesDialog->hasContent());
+  ViewFitsDialogAction->setEnabled(viewFitsDialog->hasContent());
+
   if (!viewScalarsDialog->isHidden()) {
     viewScalarsDialog->updateViewScalarsDialog();
   }
--- trunk/extragear/graphics/kst/src/libkstapp/kstviewfitsdialog_i.cpp #593049:593050
 @ -53,6 +53,20  @
 KstViewFitsDialogI::~KstViewFitsDialogI() {
 }
 
+
+bool KstViewFitsDialogI::hasContent() const {
+  bool content = false;
+  KstPluginList fits = kstObjectSubList<KstDataObject,KstPlugin>(KST::dataObjectList);
+  KstPluginList::ConstIterator it = fits.begin();
+  for (; it != fits.end(); ++it) {
+    (*it)->readLock();
+    content = (*it)->plugin()->data()._isFit ? true : content;
+    (*it)->unlock();
+  }
+  return content;
+}
+
+
 void KstViewFitsDialogI::fillComboBox(const QString& str) {
   QString fitName = str;
 
--- trunk/extragear/graphics/kst/src/libkstapp/kstviewfitsdialog_i.h #593049:593050
 @ -30,6 +30,8  @
     virtual ~KstViewFitsDialogI();
     KstFitTable* tableFits;
 
+    bool hasContent() const;
+
   public slots:
     void updateViewFitsDialog();
     void showViewFitsDialog();
--- trunk/extragear/graphics/kst/src/libkstapp/kstviewmatricesdialog_i.cpp #593049:593050
 @ -53,6 +53,11  @
 }
 
 
+bool KstViewMatricesDialogI::hasContent() const {
+  return !KST::matrixList.isEmpty();
+}
+
+
 void KstViewMatricesDialogI::updateViewMatricesDialog() {
   matrixSelector->update();
   QString matrix = matrixSelector->selectedMatrix();
--- trunk/extragear/graphics/kst/src/libkstapp/kstviewmatricesdialog_i.h #593049:593050
 @ -30,6 +30,8  @
     virtual ~KstViewMatricesDialogI();
     KstMatrixTable* _tableMatrices;
 
+    bool hasContent() const;
+
   public slots:
     void updateViewMatricesDialog();
     void updateViewMatricesDialog(const QString& strVector);
--- trunk/extragear/graphics/kst/src/libkstapp/kstviewscalarsdialog_i.cpp #593049:593050
 @ -56,6 +56,10  @
 }
 
 
+bool KstViewScalarsDialogI::hasContent() const {
+  return !KST::scalarList.isEmpty();
+}
+
 void KstViewScalarsDialogI::updateViewScalarsDialog() {
   KST::scalarList.lock().readLock();
   int needed = KST::scalarList.count();
--- trunk/extragear/graphics/kst/src/libkstapp/kstviewscalarsdialog_i.h #593049:593050
 @ -30,6 +30,8  @
     virtual ~KstViewScalarsDialogI();
     KstScalarTable* tableScalars;
 
+    bool hasContent() const;
+
   protected slots:
     virtual void languageChange();
 
--- trunk/extragear/graphics/kst/src/libkstapp/kstviewvectorsdialog_i.cpp #593049:593050
 @ -57,6 +57,11  @
 }
 
 
+bool KstViewVectorsDialogI::hasContent() const {
+  return !KST::vectorList.isEmpty();
+}
+
+
 void KstViewVectorsDialogI::updateViewVectorsDialog() {
   vectorSelector->update();
   QString vector = vectorSelector->selectedVector();
--- trunk/extragear/graphics/kst/src/libkstapp/kstviewvectorsdialog_i.h #593049:593050
 @ -30,6 +30,8  @
     virtual ~KstViewVectorsDialogI();
     KstVectorTable* tableVectors;
 
+    bool hasContent() const;
+
   public slots:
     void updateViewVectorsDialog();
     void updateViewVectorsDialog(const QString& strVector);


More information about the Kst mailing list