[QGIS Commit] r14296 - in trunk/qgis/src: app ui

svn_qgis at osgeo.org svn_qgis at osgeo.org
Mon Sep 27 05:31:45 EDT 2010


Author: timlinux
Date: 2010-09-27 09:31:45 +0000 (Mon, 27 Sep 2010)
New Revision: 14296

Modified:
   trunk/qgis/src/app/qgsrasterlayerproperties.cpp
   trunk/qgis/src/app/qgsrasterlayerproperties.h
   trunk/qgis/src/ui/qgsrasterlayerpropertiesbase.ui
Log:
Zen minimalism for raster graphing page

Modified: trunk/qgis/src/app/qgsrasterlayerproperties.cpp
===================================================================
--- trunk/qgis/src/app/qgsrasterlayerproperties.cpp	2010-09-26 18:26:57 UTC (rev 14295)
+++ trunk/qgis/src/app/qgsrasterlayerproperties.cpp	2010-09-27 09:31:45 UTC (rev 14296)
@@ -52,6 +52,7 @@
 #include "qgslogger.h"
 
 // QWT Charting widget
+#include <qwt_plot_canvas.h>
 #include <qwt_array.h>
 #include <qwt_legend.h>
 #include <qwt_plot.h> 
@@ -167,97 +168,23 @@
 
   QgsDebugMsg( "Populating band combo boxes" );
 
-  //
-  // Get a list of band names
-  //
-  QStringList myBandNameList;
-
   int myBandCountInt = mRasterLayer->bandCount();
-
-  QgsDebugMsg( QString( "Looping though %1 image layers to get their names " ).arg( myBandCountInt ) );
-
   for ( int myIteratorInt = 1;
         myIteratorInt <= myBandCountInt;
         ++myIteratorInt )
   {
-    //find out the name of this band
-    QString myRasterBandNameQString = mRasterLayer->bandName( myIteratorInt ) ;
-
-    //add the band to the histogram tab
-    //
-    QPixmap myPixmap( 10, 10 );
-
-    if ( myBandCountInt == 1 ) //draw single band images with black
-    {
-      myPixmap.fill( Qt::black );
-    }
-    else if ( myIteratorInt == 1 )
-    {
-      myPixmap.fill( Qt::red );
-    }
-    else if ( myIteratorInt == 2 )
-    {
-      myPixmap.fill( Qt::green );
-    }
-    else if ( myIteratorInt == 3 )
-    {
-      myPixmap.fill( Qt::blue );
-    }
-    else if ( myIteratorInt == 4 )
-    {
-      myPixmap.fill( Qt::magenta );
-    }
-    else if ( myIteratorInt == 5 )
-    {
-      myPixmap.fill( Qt::darkRed );
-    }
-    else if ( myIteratorInt == 6 )
-    {
-      myPixmap.fill( Qt::darkGreen );
-    }
-    else if ( myIteratorInt == 7 )
-    {
-      myPixmap.fill( Qt::darkBlue );
-    }
-    else
-    {
-      myPixmap.fill( Qt::gray );
-    }
-    lstHistogramLabels->addItem( new QListWidgetItem( myPixmap, myRasterBandNameQString ) );
-    //keep a list of band names for later use
-    //! @note band names should not be translated!
-    myBandNameList.append( myRasterBandNameQString );
+    QString myRasterBandName = mRasterLayer->bandName( myIteratorInt ) ;
+    cboGray->addItem( myRasterBandName );
+    cboRed->addItem( myRasterBandName );
+    cboGreen->addItem( myRasterBandName );
+    cboBlue->addItem( myRasterBandName );
+    cboxColorMapBand->addItem( myRasterBandName );
   }
 
-  //select all histogram layers list items by default
-  for ( int myIteratorInt = 1;
-        myIteratorInt <= myBandCountInt;
-        ++myIteratorInt )
-  {
-    QListWidgetItem *myItem = lstHistogramLabels->item( myIteratorInt - 1 );
-    myItem->setSelected( true );
-  }
-
-  for ( QStringList::Iterator myIterator = myBandNameList.begin();
-        myIterator != myBandNameList.end();
-        ++myIterator )
-  {
-    QString myQString = *myIterator;
-
-    QgsDebugMsg( QString( "Inserting : %1" ).arg( myQString ) );
-
-    cboGray->addItem( myQString );
-    cboRed->addItem( myQString );
-    cboGreen->addItem( myQString );
-    cboBlue->addItem( myQString );
-    cboxColorMapBand->addItem( myQString );
-  }
-
   cboRed->addItem( TRSTRING_NOT_SET );
   cboGreen->addItem( TRSTRING_NOT_SET );
   cboBlue->addItem( TRSTRING_NOT_SET );
   cboGray->addItem( TRSTRING_NOT_SET );
-
   cboxTransparencyBand->addItem( TRSTRING_NOT_SET );
 
   QIcon myPyramidPixmap( QgisApp::getThemeIcon( "/mIconPyramid.png" ) );
@@ -1911,13 +1838,40 @@
   }
 }
 
-void QgsRasterLayerProperties::on_pbnHistRefresh_clicked()
+void QgsRasterLayerProperties::on_tabBar_currentChanged( int theTab )
 {
+  int myHistogramTab = 6;
+  if ( theTab == myHistogramTab )
+  {
+    refreshHistogram();
+  }
+}
+
+void QgsRasterLayerProperties::refreshHistogram()
+{
+  mHistogramProgress->show();
   connect( mRasterLayer, SIGNAL( progressUpdate( int ) ), mHistogramProgress, SLOT( setValue( int ) ) );
   QApplication::setOverrideCursor( Qt::WaitCursor );
   QgsDebugMsg( "entered." );
-  int myBandCountInt = mRasterLayer->bandCount();
 
+  QwtPlot * mypPlot = new QwtPlot( mChartWidget );
+  mypPlot->canvas()->setCursor(Qt::ArrowCursor);
+  //ensure all children get removed
+  mypPlot->setAutoDelete( true );
+  QVBoxLayout *mpHistogramLayout = new QVBoxLayout( mChartWidget );
+  mpHistogramLayout->setContentsMargins( 0, 0, 0, 0 );
+  mpHistogramLayout->addWidget( mypPlot );
+  mChartWidget->setLayout( mpHistogramLayout );
+  mypPlot->setTitle( QObject::tr( "Raster Histogram") );
+  mypPlot->insertLegend( new QwtLegend(), QwtPlot::BottomLegend );
+  // Set axis titles
+  mypPlot->setAxisTitle( QwtPlot::xBottom, QObject::tr("Pixel Value") );
+  mypPlot->setAxisTitle( QwtPlot::yLeft, QObject::tr("Frequency") );
+  mypPlot->setAxisAutoScale( QwtPlot::xBottom );
+  mypPlot->setAxisAutoScale( QwtPlot::yLeft );
+  // add a grid
+  QwtPlotGrid * myGrid = new QwtPlotGrid();
+  myGrid->attach(mypPlot);
   // Explanation:
   // We use the gdal histogram creation routine is called for each selected
   // layer. Currently the hist is hardcoded
@@ -1928,125 +1882,48 @@
   // bin in all selected layers, and the min. It then draws a scaled line between min
   // and max - scaled to image height. 1 line drawn per selected band
   //
-  const int BINCOUNT = spinHistBinCount->value();
+  const int BINCOUNT = 255;
   enum GRAPH_TYPE { BAR_CHART, LINE_CHART } myGraphType;
-  if ( radHistTypeBar->isChecked() ) myGraphType = BAR_CHART; else myGraphType = LINE_CHART;
-  bool myIgnoreOutOfRangeFlag = chkHistIgnoreOutOfRange->isChecked();
-  bool myThoroughBandScanFlag = chkHistAllowApproximation->isChecked();
-
-#ifdef QGISDEBUG
-  long myCellCount = mRasterLayer->width() * mRasterLayer->height();
-#endif
-
-  QgsDebugMsg( "Computing histogram minima and maxima" );
-  //somtimes there are more bins than needed
-  //we find out the last on that actually has data in it
-  //so we can discard the rest adn the x-axis scales correctly
+  myGraphType = BAR_CHART;
+  bool myIgnoreOutOfRangeFlag = true;
+  bool myThoroughBandScanFlag = false;
   int myLastBinWithData = 0;
+  int myBandCountInt = mRasterLayer->bandCount();
+  QList<QColor> myColors;
+  myColors << Qt::black << Qt::red << Qt::green << Qt::blue << Qt::magenta << Qt::darkRed << Qt::darkGreen << Qt::darkBlue;
   //
-  // First scan through to get max and min cell counts from among selected layers' histograms
+  //now draw actual graphs
   //
-  double myYAxisMax = 0;
-  double myYAxisMin = 0;
-  int myXAxisMin = 0;
-  int myXAxisMax = 0;
-  bool myFirstItemFlag = true;
-  for ( int myIteratorInt = 1;
-      myIteratorInt <= myBandCountInt;
-      ++myIteratorInt )
-  {
-    QgsRasterBandStats myRasterBandStats = mRasterLayer->bandStatistics( myIteratorInt );
-    //calculate the x axis min max
-    if ( myRasterBandStats.minimumValue < myXAxisMin || myIteratorInt == 1 )
-    {
-      myXAxisMin = static_cast < unsigned int >( myRasterBandStats.minimumValue );
-    }
-    if ( myRasterBandStats.maximumValue < myXAxisMax || myIteratorInt == 1 )
-    {
-      myXAxisMax = static_cast < unsigned int >( myRasterBandStats.maximumValue );
-    }
-    QListWidgetItem *myItem = lstHistogramLabels->item( myIteratorInt - 1 );
-    if ( myItem->isSelected() )
-    {
-      QgsDebugMsg( "Ensuring hist is populated for this layer" );
-      mRasterLayer->populateHistogram( myIteratorInt, BINCOUNT, myIgnoreOutOfRangeFlag, myThoroughBandScanFlag );
 
-      QgsDebugMsg( QString( "...done...%1 bins filled" ).arg( myRasterBandStats.histogramVector->size() ) );
-      for ( int myBin = 0; myBin < BINCOUNT; myBin++ )
-      {
-        int myBinValue = myRasterBandStats.histogramVector->at( myBin );
-        if ( myBinValue > 0 && myBin > myLastBinWithData )
-        {
-          myLastBinWithData = myBin;
-        }
-        QgsDebugMsg( QString( "Testing if %1 is less than %2or greater then %3" ).arg( myBinValue ).arg( myYAxisMin ).arg( myYAxisMax ) );
-        if ( myBin == 0 && myFirstItemFlag )
-        {
-          myYAxisMin = myBinValue;
-          myYAxisMax = myBinValue;
-        }
-
-        if ( myBinValue  > myYAxisMax )
-        {
-          myYAxisMax = myBinValue;
-        }
-        if ( myBinValue < myYAxisMin )
-        {
-          myYAxisMin = myBinValue;
-        }
-      }
-      myFirstItemFlag = false;
-    }
-  }
-  disconnect( mRasterLayer, SIGNAL( progressUpdate( int ) ), mHistogramProgress, SLOT( setValue( int ) ) );
-  QgsDebugMsg( QString( "max %1" ).arg( myYAxisMax ) );
-  QgsDebugMsg( QString( "min %1" ).arg( myYAxisMin ) );
-
-  QwtPlot * mypPlot = new QwtPlot( mChartWidget );
-  //ensure all children get removed
-  mypPlot->setAutoDelete( true );
-  QVBoxLayout *mpHistogramLayout = new QVBoxLayout( mChartWidget );
-  mpHistogramLayout->setContentsMargins( 0, 0, 0, 0 );
-  mpHistogramLayout->addWidget( mypPlot );
-  mChartWidget->setLayout( mpHistogramLayout );
-  mypPlot->setTitle(QObject::tr("Raster Histogram"));
-  mypPlot->insertLegend(new QwtLegend(), QwtPlot::BottomLegend);
-  // Set axis titles
-  mypPlot->setAxisTitle(QwtPlot::xBottom, QObject::tr("Pixel Value"));
-  mypPlot->setAxisTitle(QwtPlot::yLeft, QObject::tr("Frequency"));
+  //somtimes there are more bins than needed
+  //we find out the last one that actually has data in it
+  //so we can discard the rest and set the x-axis scales correctly
   //
-  // add a grid
+  // scan through to get counts from layers' histograms
   //
-  QwtPlotGrid * myGrid = new QwtPlotGrid();
-  myGrid->attach(mypPlot);
-  //
-  //now draw actual graphs
-  //
-  QList<QColor> myColors;
-  myColors << Qt::black << Qt::red << Qt::green << Qt::blue << Qt::magenta << Qt::darkRed << Qt::darkGreen << Qt::darkBlue;
   for ( int myIteratorInt = 1;
       myIteratorInt <= myBandCountInt;
       ++myIteratorInt )
   {
     QgsRasterBandStats myRasterBandStats = mRasterLayer->bandStatistics( myIteratorInt );
-    QListWidgetItem *myItem = lstHistogramLabels->item( myIteratorInt - 1 );
-    if ( myItem->isSelected() )
+    mRasterLayer->populateHistogram( myIteratorInt, BINCOUNT, myIgnoreOutOfRangeFlag, myThoroughBandScanFlag );
+    QwtPlotCurve * mypCurve = new QwtPlotCurve( tr( "Band %1" ).arg( myIteratorInt ) );
+    mypCurve->setRenderHint( QwtPlotItem::RenderAntialiased );
+    mypCurve->setPen(QPen( myColors.at( myIteratorInt ) ) );
+    QwtArray<double> myX2Data;//qwtarray is just a wrapped qvector
+    QwtArray<double> myY2Data;//qwtarray is just a wrapped qvector
+    for ( int myBin = 0; myBin < BINCOUNT; myBin++ )
     {
-      QwtPlotCurve * mypCurve = new QwtPlotCurve( tr( "Band %i" ).arg( myIteratorInt ) );
-      mypCurve->setRenderHint( QwtPlotItem::RenderAntialiased );
-      mypCurve->setPen(QPen( myColors.at( myIteratorInt ) ) );
-      QwtArray<double> myX2Data;//qwtarray is just a wrapped qvector
-      QwtArray<double> myY2Data;//qwtarray is just a wrapped qvector
-      for ( int myBin = 0; myBin < myLastBinWithData; myBin++ )
-      {
-        double myBinValue = myRasterBandStats.histogramVector->at( myBin );
-        myX2Data.append(myBin);
-        myY2Data.append(myBinValue);
-      }
-      mypCurve->setData(myX2Data,myY2Data);
-      mypCurve->attach(mypPlot);
+      int myBinValue = myRasterBandStats.histogramVector->at( myBin );
+      myX2Data.append( double( myBin) );
+      myY2Data.append( double( myBinValue) );
     }
+    mypCurve->setData(myX2Data,myY2Data);
+    mypCurve->attach(mypPlot);
   }
+  mypPlot->replot();
+  disconnect( mRasterLayer, SIGNAL( progressUpdate( int ) ), mHistogramProgress, SLOT( setValue( int ) ) );
+  mHistogramProgress->hide();
   QApplication::restoreOverrideCursor();
 }
 

Modified: trunk/qgis/src/app/qgsrasterlayerproperties.h
===================================================================
--- trunk/qgis/src/app/qgsrasterlayerproperties.h	2010-09-26 18:26:57 UTC (rev 14295)
+++ trunk/qgis/src/app/qgsrasterlayerproperties.h	2010-09-27 09:31:45 UTC (rev 14296)
@@ -68,8 +68,10 @@
     void on_pbnDefaultValues_clicked();
     /** \brief slot executed when user wishes to export transparency values */
     void on_pbnExportTransparentPixelValues_clicked();
+    /** \brief auto slot executed when the active page in the main widget stack is changed */
+    void on_tabBar_currentChanged( int theTab );
     /** \brief slot executed when user wishes to refresh raster histogram */
-    void on_pbnHistRefresh_clicked();
+    void refreshHistogram();
     /** \brief slow executed when user wishes to import transparency values */
     void on_pbnImportTransparentPixelValues_clicked();
     /** \brief slot executed when user presses "Remove Selected Row" button on the transparency page */

Modified: trunk/qgis/src/ui/qgsrasterlayerpropertiesbase.ui
===================================================================
--- trunk/qgis/src/ui/qgsrasterlayerpropertiesbase.ui	2010-09-26 18:26:57 UTC (rev 14295)
+++ trunk/qgis/src/ui/qgsrasterlayerpropertiesbase.ui	2010-09-27 09:31:45 UTC (rev 14296)
@@ -6,8 +6,8 @@
    <rect>
     <x>0</x>
     <y>0</y>
-    <width>757</width>
-    <height>638</height>
+    <width>755</width>
+    <height>618</height>
    </rect>
   </property>
   <property name="windowTitle">
@@ -25,175 +25,42 @@
    <bool>true</bool>
   </property>
   <layout class="QGridLayout" name="gridLayout">
-   <item row="0" column="0">
-    <widget class="QListWidget" name="listWidget">
-     <property name="minimumSize">
-      <size>
-       <width>110</width>
-       <height>0</height>
-      </size>
+   <item row="1" column="0" colspan="2">
+    <widget class="QPushButton" name="pbnLoadDefaultStyle">
+     <property name="text">
+      <string>Restore Default Style</string>
      </property>
-     <property name="maximumSize">
-      <size>
-       <width>110</width>
-       <height>16777215</height>
-      </size>
+    </widget>
+   </item>
+   <item row="1" column="2">
+    <widget class="QPushButton" name="pbnSaveDefaultStyle">
+     <property name="text">
+      <string>Save As Default</string>
      </property>
-     <property name="frameShape">
-      <enum>QFrame::NoFrame</enum>
+    </widget>
+   </item>
+   <item row="1" column="3">
+    <widget class="QPushButton" name="pbnLoadStyle">
+     <property name="text">
+      <string>Load Style ...</string>
      </property>
-     <property name="frameShadow">
-      <enum>QFrame::Plain</enum>
+    </widget>
+   </item>
+   <item row="1" column="4">
+    <widget class="QPushButton" name="pbnSaveStyleAs">
+     <property name="text">
+      <string>Save Style ...</string>
      </property>
-     <property name="horizontalScrollBarPolicy">
-      <enum>Qt::ScrollBarAlwaysOff</enum>
+    </widget>
+   </item>
+   <item row="2" column="0" colspan="5">
+    <widget class="QDialogButtonBox" name="buttonBox">
+     <property name="orientation">
+      <enum>Qt::Horizontal</enum>
      </property>
-     <property name="editTriggers">
-      <set>QAbstractItemView::NoEditTriggers</set>
+     <property name="standardButtons">
+      <set>QDialogButtonBox::Apply|QDialogButtonBox::Cancel|QDialogButtonBox::Help|QDialogButtonBox::Ok</set>
      </property>
-     <property name="showDropIndicator" stdset="0">
-      <bool>false</bool>
-     </property>
-     <property name="iconSize">
-      <size>
-       <width>64</width>
-       <height>64</height>
-      </size>
-     </property>
-     <property name="textElideMode">
-      <enum>Qt::ElideNone</enum>
-     </property>
-     <property name="flow">
-      <enum>QListView::TopToBottom</enum>
-     </property>
-     <property name="isWrapping" stdset="0">
-      <bool>false</bool>
-     </property>
-     <property name="resizeMode">
-      <enum>QListView::Adjust</enum>
-     </property>
-     <property name="spacing">
-      <number>9</number>
-     </property>
-     <property name="viewMode">
-      <enum>QListView::IconMode</enum>
-     </property>
-     <property name="wordWrap">
-      <bool>true</bool>
-     </property>
-     <item>
-      <property name="text">
-       <string>Symbology</string>
-      </property>
-      <property name="textAlignment">
-       <set>AlignHCenter|AlignVCenter|AlignCenter</set>
-      </property>
-      <property name="icon">
-       <iconset resource="../../images/images.qrc">
-        <normaloff>:/images/themes/default/propertyicons/symbology.png</normaloff>:/images/themes/default/propertyicons/symbology.png</iconset>
-      </property>
-      <property name="flags">
-       <set>ItemIsSelectable|ItemIsUserCheckable|ItemIsEnabled</set>
-      </property>
-     </item>
-     <item>
-      <property name="text">
-       <string>Transparency</string>
-      </property>
-      <property name="textAlignment">
-       <set>AlignHCenter|AlignVCenter|AlignCenter</set>
-      </property>
-      <property name="icon">
-       <iconset resource="../../images/images.qrc">
-        <normaloff>:/images/themes/default/propertyicons/transparency.png</normaloff>:/images/themes/default/propertyicons/transparency.png</iconset>
-      </property>
-      <property name="flags">
-       <set>ItemIsSelectable|ItemIsUserCheckable|ItemIsEnabled</set>
-      </property>
-     </item>
-     <item>
-      <property name="text">
-       <string>Colormap</string>
-      </property>
-      <property name="textAlignment">
-       <set>AlignHCenter|AlignVCenter|AlignCenter</set>
-      </property>
-      <property name="icon">
-       <iconset resource="../../images/images.qrc">
-        <normaloff>:/images/themes/default/propertyicons/colormap.png</normaloff>:/images/themes/default/propertyicons/colormap.png</iconset>
-      </property>
-      <property name="flags">
-       <set>ItemIsSelectable|ItemIsUserCheckable|ItemIsEnabled</set>
-      </property>
-     </item>
-     <item>
-      <property name="text">
-       <string>General</string>
-      </property>
-      <property name="textAlignment">
-       <set>AlignHCenter|AlignVCenter|AlignCenter</set>
-      </property>
-      <property name="icon">
-       <iconset resource="../../images/images.qrc">
-        <normaloff>:/images/themes/default/propertyicons/general.png</normaloff>:/images/themes/default/propertyicons/general.png</iconset>
-      </property>
-      <property name="flags">
-       <set>ItemIsSelectable|ItemIsUserCheckable|ItemIsEnabled</set>
-      </property>
-     </item>
-     <item>
-      <property name="text">
-       <string>Metadata</string>
-      </property>
-      <property name="textAlignment">
-       <set>AlignHCenter|AlignVCenter|AlignCenter</set>
-      </property>
-      <property name="icon">
-       <iconset resource="../../images/images.qrc">
-        <normaloff>:/images/themes/default/propertyicons/metadata.png</normaloff>:/images/themes/default/propertyicons/metadata.png</iconset>
-      </property>
-      <property name="flags">
-       <set>ItemIsSelectable|ItemIsUserCheckable|ItemIsEnabled</set>
-      </property>
-     </item>
-     <item>
-      <property name="text">
-       <string>Pyramids</string>
-      </property>
-      <property name="textAlignment">
-       <set>AlignHCenter|AlignVCenter|AlignCenter</set>
-      </property>
-      <property name="icon">
-       <iconset resource="../../images/images.qrc">
-        <normaloff>:/images/themes/default/propertyicons/pyramids.png</normaloff>:/images/themes/default/propertyicons/pyramids.png</iconset>
-      </property>
-      <property name="flags">
-       <set>ItemIsSelectable|ItemIsUserCheckable|ItemIsEnabled</set>
-      </property>
-     </item>
-     <item>
-      <property name="text">
-       <string>Histogram</string>
-      </property>
-      <property name="textAlignment">
-       <set>AlignHCenter|AlignVCenter|AlignCenter</set>
-      </property>
-      <property name="icon">
-       <iconset resource="../../images/images.qrc">
-        <normaloff>:/images/themes/default/propertyicons/histogram.png</normaloff>:/images/themes/default/propertyicons/histogram.png</iconset>
-      </property>
-      <property name="flags">
-       <set>ItemIsSelectable|ItemIsUserCheckable|ItemIsEnabled</set>
-      </property>
-     </item>
-     <item>
-      <property name="text">
-       <string notr="true"/>
-      </property>
-      <property name="flags">
-       <set>NoItemFlags</set>
-      </property>
-     </item>
     </widget>
    </item>
    <item row="0" column="1" colspan="4">
@@ -1893,6 +1760,8 @@
 &lt;td style=&quot;border: none;&quot;&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;&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>
@@ -1963,159 +1832,201 @@
      <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"/>
-       </item>
-       <item row="1" column="0" rowspan="3">
-        <widget class="QListWidget" name="lstHistogramLabels">
-         <property name="maximumSize">
-          <size>
-           <width>99999</width>
-           <height>32767</height>
-          </size>
-         </property>
-         <property name="selectionMode">
-          <enum>QAbstractItemView::MultiSelection</enum>
-         </property>
-        </widget>
-       </item>
-       <item row="1" column="1" colspan="2">
-        <widget class="QGroupBox" name="grpHistCharType">
+        <widget class="QWidget" name="mChartWidget" native="true">
          <property name="sizePolicy">
-          <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
+          <sizepolicy hsizetype="MinimumExpanding" vsizetype="MinimumExpanding">
            <horstretch>0</horstretch>
            <verstretch>0</verstretch>
           </sizepolicy>
          </property>
-         <property name="title">
-          <string>Chart Type</string>
+         <property name="maximumSize">
+          <size>
+           <width>16777215</width>
+           <height>16777215</height>
+          </size>
          </property>
-         <layout class="QGridLayout">
-          <property name="margin">
-           <number>11</number>
-          </property>
-          <item row="0" column="1">
-           <widget class="QRadioButton" name="radHistTypeLine">
-            <property name="text">
-             <string>Line graph</string>
-            </property>
-            <property name="checked">
-             <bool>true</bool>
-            </property>
-           </widget>
-          </item>
-          <item row="0" column="0">
-           <widget class="QRadioButton" name="radHistTypeBar">
-            <property name="text">
-             <string>Bar chart</string>
-            </property>
-           </widget>
-          </item>
-         </layout>
         </widget>
        </item>
-       <item row="2" column="1" colspan="2">
-        <widget class="QGroupBox" name="groupBox">
-         <property name="title">
-          <string>Options</string>
-         </property>
-         <layout class="QGridLayout">
-          <item row="0" column="0">
-           <widget class="QLabel" name="textLabel1_2">
-            <property name="text">
-             <string>Column count</string>
-            </property>
-           </widget>
-          </item>
-          <item row="0" column="1">
-           <widget class="QSpinBox" name="spinHistBinCount">
-            <property name="minimum">
-             <number>8</number>
-            </property>
-            <property name="maximum">
-             <number>1024</number>
-            </property>
-            <property name="singleStep">
-             <number>8</number>
-            </property>
-            <property name="value">
-             <number>64</number>
-            </property>
-           </widget>
-          </item>
-          <item row="1" column="0" colspan="2">
-           <widget class="QCheckBox" name="chkHistIgnoreOutOfRange">
-            <property name="text">
-             <string>Out of range OK?</string>
-            </property>
-           </widget>
-          </item>
-          <item row="2" column="0" colspan="2">
-           <widget class="QCheckBox" name="chkHistAllowApproximation">
-            <property name="text">
-             <string>Allow approximation</string>
-            </property>
-            <property name="checked">
-             <bool>true</bool>
-            </property>
-           </widget>
-          </item>
-         </layout>
-        </widget>
-       </item>
-       <item row="3" column="1">
+       <item row="1" column="1">
         <widget class="QProgressBar" name="mHistogramProgress">
          <property name="value">
           <number>0</number>
          </property>
         </widget>
        </item>
-       <item row="3" column="2">
-        <widget class="QPushButton" name="pbnHistRefresh">
-         <property name="text">
-          <string>Refresh</string>
-         </property>
-        </widget>
-       </item>
       </layout>
      </widget>
     </widget>
    </item>
-   <item row="1" column="0" colspan="2">
-    <widget class="QPushButton" name="pbnLoadDefaultStyle">
-     <property name="text">
-      <string>Restore Default Style</string>
+   <item row="0" column="0">
+    <widget class="QListWidget" name="listWidget">
+     <property name="minimumSize">
+      <size>
+       <width>110</width>
+       <height>0</height>
+      </size>
      </property>
-    </widget>
-   </item>
-   <item row="1" column="2">
-    <widget class="QPushButton" name="pbnSaveDefaultStyle">
-     <property name="text">
-      <string>Save As Default</string>
+     <property name="maximumSize">
+      <size>
+       <width>110</width>
+       <height>16777215</height>
+      </size>
      </property>
-    </widget>
-   </item>
-   <item row="1" column="3">
-    <widget class="QPushButton" name="pbnLoadStyle">
-     <property name="text">
-      <string>Load Style ...</string>
+     <property name="frameShape">
+      <enum>QFrame::NoFrame</enum>
      </property>
-    </widget>
-   </item>
-   <item row="1" column="4">
-    <widget class="QPushButton" name="pbnSaveStyleAs">
-     <property name="text">
-      <string>Save Style ...</string>
+     <property name="frameShadow">
+      <enum>QFrame::Plain</enum>
      </property>
-    </widget>
-   </item>
-   <item row="2" column="0" colspan="5">
-    <widget class="QDialogButtonBox" name="buttonBox">
-     <property name="orientation">
-      <enum>Qt::Horizontal</enum>
+     <property name="horizontalScrollBarPolicy">
+      <enum>Qt::ScrollBarAlwaysOff</enum>
      </property>
-     <property name="standardButtons">
-      <set>QDialogButtonBox::Apply|QDialogButtonBox::Cancel|QDialogButtonBox::Help|QDialogButtonBox::Ok</set>
+     <property name="editTriggers">
+      <set>QAbstractItemView::NoEditTriggers</set>
      </property>
+     <property name="showDropIndicator" stdset="0">
+      <bool>false</bool>
+     </property>
+     <property name="iconSize">
+      <size>
+       <width>64</width>
+       <height>64</height>
+      </size>
+     </property>
+     <property name="textElideMode">
+      <enum>Qt::ElideNone</enum>
+     </property>
+     <property name="flow">
+      <enum>QListView::TopToBottom</enum>
+     </property>
+     <property name="isWrapping" stdset="0">
+      <bool>false</bool>
+     </property>
+     <property name="resizeMode">
+      <enum>QListView::Adjust</enum>
+     </property>
+     <property name="spacing">
+      <number>9</number>
+     </property>
+     <property name="viewMode">
+      <enum>QListView::IconMode</enum>
+     </property>
+     <property name="wordWrap">
+      <bool>true</bool>
+     </property>
+     <item>
+      <property name="text">
+       <string>Symbology</string>
+      </property>
+      <property name="textAlignment">
+       <set>AlignHCenter|AlignVCenter|AlignCenter</set>
+      </property>
+      <property name="icon">
+       <iconset resource="../../images/images.qrc">
+        <normaloff>:/images/themes/default/propertyicons/symbology.png</normaloff>:/images/themes/default/propertyicons/symbology.png</iconset>
+      </property>
+      <property name="flags">
+       <set>ItemIsSelectable|ItemIsUserCheckable|ItemIsEnabled</set>
+      </property>
+     </item>
+     <item>
+      <property name="text">
+       <string>Transparency</string>
+      </property>
+      <property name="textAlignment">
+       <set>AlignHCenter|AlignVCenter|AlignCenter</set>
+      </property>
+      <property name="icon">
+       <iconset resource="../../images/images.qrc">
+        <normaloff>:/images/themes/default/propertyicons/transparency.png</normaloff>:/images/themes/default/propertyicons/transparency.png</iconset>
+      </property>
+      <property name="flags">
+       <set>ItemIsSelectable|ItemIsUserCheckable|ItemIsEnabled</set>
+      </property>
+     </item>
+     <item>
+      <property name="text">
+       <string>Colormap</string>
+      </property>
+      <property name="textAlignment">
+       <set>AlignHCenter|AlignVCenter|AlignCenter</set>
+      </property>
+      <property name="icon">
+       <iconset resource="../../images/images.qrc">
+        <normaloff>:/images/themes/default/propertyicons/colormap.png</normaloff>:/images/themes/default/propertyicons/colormap.png</iconset>
+      </property>
+      <property name="flags">
+       <set>ItemIsSelectable|ItemIsUserCheckable|ItemIsEnabled</set>
+      </property>
+     </item>
+     <item>
+      <property name="text">
+       <string>General</string>
+      </property>
+      <property name="textAlignment">
+       <set>AlignHCenter|AlignVCenter|AlignCenter</set>
+      </property>
+      <property name="icon">
+       <iconset resource="../../images/images.qrc">
+        <normaloff>:/images/themes/default/propertyicons/general.png</normaloff>:/images/themes/default/propertyicons/general.png</iconset>
+      </property>
+      <property name="flags">
+       <set>ItemIsSelectable|ItemIsUserCheckable|ItemIsEnabled</set>
+      </property>
+     </item>
+     <item>
+      <property name="text">
+       <string>Metadata</string>
+      </property>
+      <property name="textAlignment">
+       <set>AlignHCenter|AlignVCenter|AlignCenter</set>
+      </property>
+      <property name="icon">
+       <iconset resource="../../images/images.qrc">
+        <normaloff>:/images/themes/default/propertyicons/metadata.png</normaloff>:/images/themes/default/propertyicons/metadata.png</iconset>
+      </property>
+      <property name="flags">
+       <set>ItemIsSelectable|ItemIsUserCheckable|ItemIsEnabled</set>
+      </property>
+     </item>
+     <item>
+      <property name="text">
+       <string>Pyramids</string>
+      </property>
+      <property name="textAlignment">
+       <set>AlignHCenter|AlignVCenter|AlignCenter</set>
+      </property>
+      <property name="icon">
+       <iconset resource="../../images/images.qrc">
+        <normaloff>:/images/themes/default/propertyicons/pyramids.png</normaloff>:/images/themes/default/propertyicons/pyramids.png</iconset>
+      </property>
+      <property name="flags">
+       <set>ItemIsSelectable|ItemIsUserCheckable|ItemIsEnabled</set>
+      </property>
+     </item>
+     <item>
+      <property name="text">
+       <string>Histogram</string>
+      </property>
+      <property name="textAlignment">
+       <set>AlignHCenter|AlignVCenter|AlignCenter</set>
+      </property>
+      <property name="icon">
+       <iconset resource="../../images/images.qrc">
+        <normaloff>:/images/themes/default/propertyicons/histogram.png</normaloff>:/images/themes/default/propertyicons/histogram.png</iconset>
+      </property>
+      <property name="flags">
+       <set>ItemIsSelectable|ItemIsUserCheckable|ItemIsEnabled</set>
+      </property>
+     </item>
+     <item>
+      <property name="text">
+       <string notr="true"/>
+      </property>
+      <property name="flags">
+       <set>NoItemFlags</set>
+      </property>
+     </item>
     </widget>
    </item>
   </layout>
@@ -2145,18 +2056,11 @@
   <tabstop>tePyramidDescription</tabstop>
   <tabstop>cboResamplingMethod</tabstop>
   <tabstop>buttonBuildPyramids</tabstop>
-  <tabstop>radHistTypeBar</tabstop>
-  <tabstop>radHistTypeLine</tabstop>
-  <tabstop>spinHistBinCount</tabstop>
-  <tabstop>chkHistIgnoreOutOfRange</tabstop>
-  <tabstop>chkHistAllowApproximation</tabstop>
-  <tabstop>pbnHistRefresh</tabstop>
   <tabstop>leGrayMin</tabstop>
   <tabstop>cboGray</tabstop>
   <tabstop>lbxPyramidResolutions</tabstop>
   <tabstop>leGrayMax</tabstop>
   <tabstop>cboxColorMap</tabstop>
-  <tabstop>lstHistogramLabels</tabstop>
   <tabstop>sboxSingleBandStdDev</tabstop>
  </tabstops>
  <resources>
@@ -2170,8 +2074,8 @@
    <slot>reject()</slot>
    <hints>
     <hint type="sourcelabel">
-     <x>476</x>
-     <y>620</y>
+     <x>485</x>
+     <y>608</y>
     </hint>
     <hint type="destinationlabel">
      <x>3</x>



More information about the QGIS-commit mailing list