Skip to content

Commit

Permalink
Make the top level legend item bold for each layer so that it stands …
Browse files Browse the repository at this point in the history
…out from the categories under it.

git-svn-id: http://svn.osgeo.org/qgis/trunk@8488 c8812cc2-4d05-0410-92ff-de0c093fc19c
  • Loading branch information
timlinux committed May 21, 2008
1 parent 97874aa commit da00e13
Show file tree
Hide file tree
Showing 2 changed files with 45 additions and 28 deletions.
66 changes: 38 additions & 28 deletions src/app/legend/qgslegendlayer.cpp
Expand Up @@ -50,6 +50,7 @@ QgsLegendLayer::QgsLegendLayer(QTreeWidgetItem* parent,QString name)
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)
Expand All @@ -58,6 +59,7 @@ QgsLegendLayer::QgsLegendLayer(QTreeWidget* parent, QString name): QgsLegendItem
setFlags(Qt::ItemIsEditable | Qt::ItemIsUserCheckable | Qt::ItemIsEnabled | Qt::ItemIsSelectable);
setCheckState (0, Qt::Checked);
setText(0, name);
setupFont();
}

QgsLegendLayer::QgsLegendLayer(QString name): QgsLegendItem()
Expand All @@ -66,13 +68,20 @@ QgsLegendLayer::QgsLegendLayer(QString name): QgsLegendItem()
setFlags(Qt::ItemIsEditable | Qt::ItemIsUserCheckable | Qt::ItemIsEnabled | Qt::ItemIsSelectable);
setCheckState (0, Qt::Checked);
setText(0, name);
setupFont();
}

QgsLegendLayer::~QgsLegendLayer()
{
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());
Expand Down Expand Up @@ -205,48 +214,48 @@ std::list<QgsLegendLayerFile*> QgsLegendLayer::legendLayerFiles()
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)
Expand Down Expand Up @@ -355,8 +364,9 @@ void QgsLegendLayer::vectorLayerSymbology(const QgsVectorLayer* layer, double wi
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();
Expand Down
7 changes: 7 additions & 0 deletions src/app/legend/qgslegendlayer.h
Expand Up @@ -112,6 +112,13 @@ class QgsLegendLayer : public QgsLegendItem
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

0 comments on commit da00e13

Please sign in to comment.