[QGIS Commit] r14425 - in trunk/qgis/src: app plugins/georeferencer ui

svn_qgis at osgeo.org svn_qgis at osgeo.org
Thu Oct 21 08:38:18 EDT 2010


Author: timlinux
Date: 2010-10-21 05:38:18 -0700 (Thu, 21 Oct 2010)
New Revision: 14425

Modified:
   trunk/qgis/src/app/CMakeLists.txt
   trunk/qgis/src/app/qgsrasterlayerproperties.cpp
   trunk/qgis/src/app/qgsrasterlayerproperties.h
   trunk/qgis/src/plugins/georeferencer/CMakeLists.txt
   trunk/qgis/src/ui/qgsrasterlayerpropertiesbase.ui
Log:
Fix crash in raster props when histogram tab is last used and props dialog is opened.

Modified: trunk/qgis/src/app/CMakeLists.txt
===================================================================
--- trunk/qgis/src/app/CMakeLists.txt	2010-10-21 08:29:22 UTC (rev 14424)
+++ trunk/qgis/src/app/CMakeLists.txt	2010-10-21 12:38:18 UTC (rev 14425)
@@ -323,6 +323,7 @@
   ${CMAKE_CURRENT_SOURCE_DIR} composer legend attributetable
   ${CMAKE_CURRENT_BINARY_DIR}
   ${CMAKE_CURRENT_BINARY_DIR}/../ui
+  ${QWT_INCLUDE_DIR}
   ${QT_QTUITOOLS_INCLUDE_DIR}
   ../core
   ../core/gps ../core/gps/qextserialport

Modified: trunk/qgis/src/app/qgsrasterlayerproperties.cpp
===================================================================
--- trunk/qgis/src/app/qgsrasterlayerproperties.cpp	2010-10-21 08:29:22 UTC (rev 14424)
+++ trunk/qgis/src/app/qgsrasterlayerproperties.cpp	2010-10-21 12:38:18 UTC (rev 14425)
@@ -66,8 +66,7 @@
     : QDialog( parent, fl ),
     // Constant that signals property not used.
     TRSTRING_NOT_SET( tr( "Not Set" ) ),
-    mRasterLayer( qobject_cast<QgsRasterLayer *>( lyr ) ),
-    mpPlot( 0 )
+    mRasterLayer( qobject_cast<QgsRasterLayer *>( lyr ) )
 {
   ignoreSpinBoxEvent = false; //Short circuit signal loop between min max field and stdDev spin box
   mGrayMinimumMaximumEstimated = true;
@@ -276,9 +275,11 @@
   listWidget->setCurrentRow( settings.value( "/Windows/RasterLayerProperties/row" ).toInt() );
 
   setWindowTitle( tr( "Layer Properties - %1" ).arg( lyr->name() ) );
-  mpHistogramLayout = new QVBoxLayout( mChartWidget );
-  mpHistogramLayout->setContentsMargins( 0, 0, 0, 0 );
-  mChartWidget->setLayout( mpHistogramLayout );
+  int myHistogramTab = 6;
+  if ( tabBar->currentIndex() == myHistogramTab )
+  {
+    refreshHistogram();
+  }
 } // QgsRasterLayerProperties ctor
 
 
@@ -1855,18 +1856,13 @@
 
 void QgsRasterLayerProperties::refreshHistogram()
 {
-  if ( mpPlot != 0 )
-  {
-    delete mpPlot;
-  }
+  mpPlot->clear();
   mHistogramProgress->show();
   connect( mRasterLayer, SIGNAL( progressUpdate( int ) ), mHistogramProgress, SLOT( setValue( int ) ) );
   QApplication::setOverrideCursor( Qt::WaitCursor );
   QgsDebugMsg( "entered." );
-  mpPlot = new QwtPlot( mChartWidget );
   //ensure all children get removed
   mpPlot->setAutoDelete( true );
-  mpHistogramLayout->addWidget( mpPlot );
   mpPlot->setTitle( QObject::tr( "Raster Histogram") );
   mpPlot->insertLegend( new QwtLegend(), QwtPlot::BottomLegend );
   // Set axis titles

Modified: trunk/qgis/src/app/qgsrasterlayerproperties.h
===================================================================
--- trunk/qgis/src/app/qgsrasterlayerproperties.h	2010-10-21 08:29:22 UTC (rev 14424)
+++ trunk/qgis/src/app/qgsrasterlayerproperties.h	2010-10-21 12:38:18 UTC (rev 14425)
@@ -26,12 +26,10 @@
 #include "qgscolorrampshader.h"
 #include "qgscontexthelp.h"
 
-class QVBoxLayout;
 class QgsMapLayer;
 class QgsMapCanvas;
 class QgsRasterLayer;
 class QgsPixelSelectorTool;
-class QwtPlot;
 
 /**Property sheet for a raster map layer
   *@author Tim Sutton
@@ -221,8 +219,6 @@
 
     QgsMapCanvas* mMapCanvas;
     QgsPixelSelectorTool* mPixelSelectorTool;
-    QwtPlot * mpPlot;
-    QVBoxLayout *mpHistogramLayout;
 };
 
 /**

Modified: trunk/qgis/src/plugins/georeferencer/CMakeLists.txt
===================================================================
--- trunk/qgis/src/plugins/georeferencer/CMakeLists.txt	2010-10-21 08:29:22 UTC (rev 14424)
+++ trunk/qgis/src/plugins/georeferencer/CMakeLists.txt	2010-10-21 12:38:18 UTC (rev 14425)
@@ -76,6 +76,7 @@
      ${GDAL_INCLUDE_DIR}
      ${GEOS_INCLUDE_DIR}
      ${QT_QTXML_INCLUDE_DIR}
+     ${QWT_INCLUDE_DIR}
 )
 
 TARGET_LINK_LIBRARIES(georefplugin

Modified: trunk/qgis/src/ui/qgsrasterlayerpropertiesbase.ui
===================================================================
--- trunk/qgis/src/ui/qgsrasterlayerpropertiesbase.ui	2010-10-21 08:29:22 UTC (rev 14424)
+++ trunk/qgis/src/ui/qgsrasterlayerpropertiesbase.ui	2010-10-21 12:38:18 UTC (rev 14425)
@@ -7,7 +7,7 @@
     <x>0</x>
     <y>0</y>
     <width>755</width>
-    <height>618</height>
+    <height>605</height>
    </rect>
   </property>
   <property name="windowTitle">
@@ -66,7 +66,7 @@
    <item row="0" column="1" colspan="4">
     <widget class="QStackedWidget" name="tabBar">
      <property name="currentIndex">
-      <number>0</number>
+      <number>6</number>
      </property>
      <widget class="QWidget" name="tabPageSymbology">
       <layout class="QGridLayout">
@@ -1765,6 +1765,7 @@
 &lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;/p&gt;
 &lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;/p&gt;
 &lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;/p&gt;
+&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;/p&gt;
 &lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Sans Serif'; font-size:9pt;&quot;&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/body&gt;&lt;/html&gt;</string>
          </property>
         </widget>
@@ -1834,30 +1835,17 @@
      </widget>
      <widget class="QWidget" name="tabPageHistogram">
       <layout class="QGridLayout" name="gridLayout_4">
-       <item row="0" column="0" colspan="3">
-        <widget class="QWidget" name="mChartWidget" native="true">
-         <property name="sizePolicy">
-          <sizepolicy hsizetype="MinimumExpanding" vsizetype="MinimumExpanding">
-           <horstretch>0</horstretch>
-           <verstretch>0</verstretch>
-          </sizepolicy>
-         </property>
-         <property name="maximumSize">
-          <size>
-           <width>16777215</width>
-           <height>16777215</height>
-          </size>
-         </property>
-        </widget>
+       <item row="0" column="0" colspan="2">
+        <widget class="QwtPlot" name="mpPlot"/>
        </item>
-       <item row="1" column="1">
+       <item row="1" column="0">
         <widget class="QProgressBar" name="mHistogramProgress">
          <property name="value">
           <number>0</number>
          </property>
         </widget>
        </item>
-       <item row="1" column="2">
+       <item row="1" column="1">
         <widget class="QToolButton" name="mSaveAsImageButton">
          <property name="text">
           <string>Save as image...</string>
@@ -2046,6 +2034,13 @@
   </layout>
  </widget>
  <layoutdefault spacing="6" margin="11"/>
+ <customwidgets>
+  <customwidget>
+   <class>QwtPlot</class>
+   <extends>QFrame</extends>
+   <header>qwt_plot.h</header>
+  </customwidget>
+ </customwidgets>
  <tabstops>
   <tabstop>tabBar</tabstop>
   <tabstop>cboRed</tabstop>



More information about the QGIS-commit mailing list