[Kst] branches/work/kst/portto4/kst/src/libkstapp

Barth Netterfield netterfield at astro.utoronto.ca
Fri Nov 16 01:15:04 UTC 2012


SVN commit 1325235 by netterfield:

BUG:
Fix regression in which re-scaling font sizes when adding plots didn't
work.


 M  +2 -1      csddialog.cpp  
 M  +2 -1      curvedialog.cpp  
 M  +11 -7     datawizard.cpp  
 M  +2 -1      equationdialog.cpp  
 M  +2 -1      filterfitdialog.cpp  
 M  +2 -1      histogramdialog.cpp  
 M  +2 -1      imagedialog.cpp  
 M  +2 -1      powerspectrumdialog.cpp  
 M  +6 -6      view.cpp  
 M  +1 -1      view.h  


--- branches/work/kst/portto4/kst/src/libkstapp/csddialog.cpp #1325234:1325235
@@ -259,7 +259,8 @@
 
           plotItem = static_cast<PlotItem*>(cmd->item());
           if (_CSDTab->curvePlacement()->scaleFonts()) {
-              plotItem->view()->resetPlotFontSizes();
+              plotItem->view()->resetPlotFontSizes(1);
+              plotItem->view()->configurePlotFontDefaults(plotItem); // copy plots already in window
           }
           break;
       }
--- branches/work/kst/portto4/kst/src/libkstapp/curvedialog.cpp #1325234:1325235
@@ -452,7 +452,8 @@
 
           plotItem = static_cast<PlotItem*>(cmd->item());
           if (_curveTab->curvePlacement()->scaleFonts()) {
-              plotItem->view()->resetPlotFontSizes();
+              plotItem->view()->resetPlotFontSizes(1);
+              plotItem->view()->configurePlotFontDefaults(plotItem); // copy plots already in window
           }
           break;
       }
--- branches/work/kst/portto4/kst/src/libkstapp/datawizard.cpp #1325234:1325235
@@ -1188,17 +1188,21 @@
   if (relayout) {
     if (plotsInPage==0 || _pagePlot->rescaleFonts()) {
       int np = plotList.count();
-      if (np > 0) {
-        plotList.at(0)->view()->resetPlotFontSizes(); // set font sizes on first page.
-        if (plotList.at(np-1)->view() != plotList.at(0)->view()) { // and second, if there is one.
-          plotList.at(np-1)->view()->resetPlotFontSizes();
+      int n_add = np;
+      bool two_pages = (plotList.at(np-1)->view() != plotList.at(0)->view());
+      if (two_pages) {
+        n_add/=2;
         }
+      if (np > 0) { // don't crash if there are no plots
+        plotList.at(0)->view()->resetPlotFontSizes(n_add); // set font sizes on first page.
+        if (two_pages) { // and second, if there is one.
+          plotList.at(np-1)->view()->resetPlotFontSizes(n_add);
       }
-    } else {
+      }
+    }
       foreach (PlotItem* plot, plotList) {
-        _document->currentView()->configurePlotFontDefaults(plot); // copy plots already in window
+      plot->view()->configurePlotFontDefaults(plot); // copy plots already in window
       }
-    }
 
     CurvePlacement::Layout layout_type = _pagePlot->layout();
     int num_columns = _pagePlot->gridColumns();
--- branches/work/kst/portto4/kst/src/libkstapp/equationdialog.cpp #1325234:1325235
@@ -361,7 +361,8 @@
 
           plotItem = static_cast<PlotItem*>(cmd->item());
           if (_equationTab->curvePlacement()->scaleFonts()) {
-              plotItem->view()->resetPlotFontSizes();
+              plotItem->view()->resetPlotFontSizes(1);
+              plotItem->view()->configurePlotFontDefaults(plotItem); // copy plots already in window
           }
           break;
       }
--- branches/work/kst/portto4/kst/src/libkstapp/filterfitdialog.cpp #1325234:1325235
@@ -236,7 +236,8 @@
 
           plotItem = static_cast<PlotItem*>(cmd->item());
           if (_filterFitTab->curvePlacement()->scaleFonts()) {
-              plotItem->view()->resetPlotFontSizes();
+              plotItem->view()->resetPlotFontSizes(1);
+              plotItem->view()->configurePlotFontDefaults(plotItem); // copy plots already in window
           }
           plotItem->view()->appendToLayout(_filterFitTab->curvePlacement()->layout(), plotItem,
                                            _filterFitTab->curvePlacement()->gridColumns());
--- branches/work/kst/portto4/kst/src/libkstapp/histogramdialog.cpp #1325234:1325235
@@ -424,7 +424,8 @@
 
           plotItem = static_cast<PlotItem*>(cmd->item());
           if (_histogramTab->curvePlacement()->scaleFonts()) {
-              plotItem->view()->resetPlotFontSizes();
+            plotItem->view()->resetPlotFontSizes(1);
+            plotItem->view()->configurePlotFontDefaults(plotItem); // copy plots already in window
           }
           break;
       }
--- branches/work/kst/portto4/kst/src/libkstapp/imagedialog.cpp #1325234:1325235
@@ -492,7 +492,8 @@
 
           plotItem = static_cast<PlotItem*>(cmd->item());
           if (_imageTab->curvePlacement()->scaleFonts()) {
-              plotItem->view()->resetPlotFontSizes();
+            plotItem->view()->resetPlotFontSizes(1);
+            plotItem->view()->configurePlotFontDefaults(plotItem); // copy plots already in window
           }
           break;
       }
--- branches/work/kst/portto4/kst/src/libkstapp/powerspectrumdialog.cpp #1325234:1325235
@@ -273,7 +273,8 @@
 
           plotItem = static_cast<PlotItem*>(cmd->item());
           if (_powerSpectrumTab->curvePlacement()->scaleFonts()) {
-              plotItem->view()->resetPlotFontSizes();
+            plotItem->view()->resetPlotFontSizes(1);
+            plotItem->view()->configurePlotFontDefaults(plotItem); // copy plots already in window
           }
           break;
       }
--- branches/work/kst/portto4/kst/src/libkstapp/view.cpp #1325234:1325235
@@ -603,17 +603,16 @@
 
 // Set the font sizes of all plots in the view to a default size, scaled
 // by the default global font scale, and the application minimum font scale.
-void View::resetPlotFontSizes(qreal pointSize) {
-  if (pointSize < 0.1) {
-    pointSize = _dialogDefaults->value("plot/globalFontScale",16.0).toDouble();
-  }
-  qreal count = PlotItemManager::self()->plotsForView(this).count();
+double View::resetPlotFontSizes(int num_adding) {
+  qreal pointSize = _dialogDefaults->value("plot/globalFontScale",16.0).toDouble();
+
+  qreal count = PlotItemManager::self()->plotsForView(this).count() + num_adding;
   qreal newPointSize = pointSize/sqrt(count) + ApplicationSettings::self()->minimumFontSize();
   if (newPointSize<pointSize) {
     pointSize = newPointSize;
   }
   qreal legendPointSize = qMax(pointSize*qreal(0.6), ApplicationSettings::self()->minimumFontSize());
-
+  qDebug() << "reset plot font size to" << pointSize << " for " << PlotItemManager::self()->plotsForView(this).size();
   foreach(PlotItem* plotItem, PlotItemManager::self()->plotsForView(this)) {
     plotItem->setGlobalFontScale(pointSize);
     plotItem->rightLabelDetails()->setFontScale(pointSize);
@@ -625,6 +624,7 @@
       plotItem->legend()->setFontScale(legendPointSize);
     }
   }
+  return pointSize;
 }
 
 // copy the font settings of the first plotItem in the view into
--- branches/work/kst/portto4/kst/src/libkstapp/view.h #1325234:1325235
@@ -111,7 +111,7 @@
 
     void configurePlotFontDefaults(PlotItem *plot);
 
-    void resetPlotFontSizes(qreal pointSize = 0);
+    double resetPlotFontSizes(int num_adding=0);
 
     void setFontRescale(qreal rescale) {_fontRescale = rescale;}
     qreal fontRescale() const {return _fontRescale;}


More information about the Kst mailing list