[QGIS Commit] r8488 - trunk/qgis/src/app/legend

svn_qgis at osgeo.org svn_qgis at osgeo.org
Wed May 21 13:42:25 EDT 2008


Author: timlinux
Date: 2008-05-21 13:42:24 -0400 (Wed, 21 May 2008)
New Revision: 8488

Modified:
   trunk/qgis/src/app/legend/qgslegendlayer.cpp
   trunk/qgis/src/app/legend/qgslegendlayer.h
Log:
Make the top level legend item bold for each layer so that it stands out from the categories under it.

Modified: trunk/qgis/src/app/legend/qgslegendlayer.cpp
===================================================================
--- trunk/qgis/src/app/legend/qgslegendlayer.cpp	2008-05-21 17:31:00 UTC (rev 8487)
+++ trunk/qgis/src/app/legend/qgslegendlayer.cpp	2008-05-21 17:42:24 UTC (rev 8488)
@@ -50,6 +50,7 @@
   setFlags(Qt::ItemIsEditable | Qt::ItemIsUserCheckable | Qt::ItemIsEnabled | Qt::ItemIsSelectable);
   setCheckState (0, Qt::Checked);
   setText(0, name);
+  setupFont();
 }
 
 QgsLegendLayer::QgsLegendLayer(QTreeWidget* parent, QString name): QgsLegendItem(parent, name)
@@ -58,6 +59,7 @@
   setFlags(Qt::ItemIsEditable | Qt::ItemIsUserCheckable | Qt::ItemIsEnabled | Qt::ItemIsSelectable);
   setCheckState (0, Qt::Checked);
   setText(0, name);
+  setupFont();
 }
 
 QgsLegendLayer::QgsLegendLayer(QString name): QgsLegendItem()
@@ -66,6 +68,7 @@
   setFlags(Qt::ItemIsEditable | Qt::ItemIsUserCheckable | Qt::ItemIsEnabled | Qt::ItemIsSelectable);
   setCheckState (0, Qt::Checked);
   setText(0, name);
+  setupFont();
 }
 
 QgsLegendLayer::~QgsLegendLayer()
@@ -73,6 +76,12 @@
   mType=LEGEND_LAYER;
 }
 
+void QgsLegendLayer::setupFont() //private method
+{
+  QFont myFont = font(0);
+  myFont.setBold(true); //visually differentiate layer labels from the rest
+  setFont(0,myFont);
+}
 void QgsLegendLayer::setLayerTypeIcon()
 {
   QIcon myIcon(getOriginalPixmap());
@@ -205,48 +214,48 @@
 void QgsLegendLayer::updateLayerSymbologySettings(const QgsMapLayer* mapLayer)
 {
   if(mapLayer)
+  {
+    //find all layers
+    std::list<QgsMapLayer*> theMapLayers = mapLayers();
+    for(std::list<QgsMapLayer*>::iterator it = theMapLayers.begin(); it != theMapLayers.end(); ++it)
     {
-      //find all layers
-      std::list<QgsMapLayer*> theMapLayers = mapLayers();
-      for(std::list<QgsMapLayer*>::iterator it = theMapLayers.begin(); it != theMapLayers.end(); ++it)
-	{
-	  if((*it) != mapLayer)
-	    {
-	      (*it)->copySymbologySettings(*mapLayer);
-	    }
-	}
-      // source might have changed - e.g. other subset
-      setToolTip(0, mapLayer->publicSource());
+      if((*it) != mapLayer)
+      {
+        (*it)->copySymbologySettings(*mapLayer);
+      }
     }
+    // source might have changed - e.g. other subset
+    setToolTip(0, mapLayer->publicSource());
+  }
 }
 
 void QgsLegendLayer::updateCheckState()
 {
   std::list<QgsLegendLayerFile*> llfiles = legendLayerFiles();
   if(llfiles.size() < 1)
-    {
-      return;
-    }
+  {
+    return;
+  }
 
   std::list<QgsLegendLayerFile*>::iterator iter = llfiles.begin();
   Qt::CheckState theState = (*iter)->checkState(0);
   for(; iter != llfiles.end(); ++iter)
+  {
+    if(theState != (*iter)->checkState(0))
     {
-      if(theState != (*iter)->checkState(0))
-	{
-	  theState = Qt::PartiallyChecked;
-	  break;
-	}
+      theState = Qt::PartiallyChecked;
+      break;
     }
+  }
 
   if(theState != checkState(0))
-    {
-      treeWidget()->blockSignals(true);
-      setCheckState(0, theState);
-      //notify the legend that the check state has changed
-      legend()->updateCheckStates(this, theState);
-      treeWidget()->blockSignals(false);
-    }
+  {
+    treeWidget()->blockSignals(true);
+    setCheckState(0, theState);
+    //notify the legend that the check state has changed
+    legend()->updateCheckStates(this, theState);
+    treeWidget()->blockSignals(false);
+  }
 }
 
 void QgsLegendLayer::refreshSymbology(const QString& key, double widthScale)
@@ -355,8 +364,9 @@
     QPixmap pix = QPixmap::fromImage(img); // convert to pixmap
     itemList.push_back(std::make_pair(values, pix));
   }
-
-  if(renderer->needsAttributes()) //create an item for each classification field (only one for most renderers)
+  
+  //create an item for each classification field (only one for most renderers)
+  if(renderer->needsAttributes()) 
   {
     QgsAttributeList classfieldlist = renderer->classificationAttributes();
     const QgsFieldMap& fields = layer->getDataProvider()->fields();

Modified: trunk/qgis/src/app/legend/qgslegendlayer.h
===================================================================
--- trunk/qgis/src/app/legend/qgslegendlayer.h	2008-05-21 17:31:00 UTC (rev 8487)
+++ trunk/qgis/src/app/legend/qgslegendlayer.h	2008-05-21 17:42:24 UTC (rev 8488)
@@ -112,6 +112,13 @@
     void updateLayerSymbologySettings(const QgsMapLayer* mapLayer);
 
     QPixmap getOriginalPixmap() const;
+
+  private:
+    /** Helper method to make the font bold from all ctors.
+     *  Not to be confused with setFont() which is inherited 
+     *  from the QTreeWidgetItem base class.
+     */
+    void setupFont();
 };
 
 #endif



More information about the QGIS-commit mailing list