mirror of
https://github.com/qgis/QGIS.git
synced 2025-02-25 00:58:06 -05:00
added code for writing legend settings with writeEntry()
git-svn-id: http://svn.osgeo.org/qgis/trunk@4071 c8812cc2-4d05-0410-92ff-de0c093fc19c
This commit is contained in:
parent
eea90676b6
commit
8e1cb57102
@ -39,6 +39,7 @@
|
||||
#include "qgsmapcanvas.h"
|
||||
#include "qgsmaplayer.h"
|
||||
#include "qgsmaplayerregistry.h"
|
||||
#include "qgsproject.h"
|
||||
#include "qgsrasterlayerproperties.h"
|
||||
#include <iostream>
|
||||
#include <qlayout.h>
|
||||
@ -829,3 +830,95 @@ bool QgsLegend::readXML(QDomNode& legendnode)
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
void QgsLegend::saveToProject()
|
||||
{
|
||||
int lgroupidx=0;
|
||||
int llayeridx=0;
|
||||
QString groupstring; //string which have to be prepended if an element is into a group
|
||||
|
||||
QListViewItemIterator it(this);
|
||||
while(it.current())
|
||||
{
|
||||
QgsLegendItem *item = dynamic_cast<QgsLegendItem*>(it.current());
|
||||
if(item)
|
||||
{
|
||||
switch(item->type())
|
||||
{
|
||||
case QgsLegendItem::LEGEND_GROUP:
|
||||
++lgroupidx;
|
||||
groupstring = "/LegendGroup"+QString::number(lgroupidx);
|
||||
QgsProject::instance()->writeEntry("Legend","/LegendGroup"+QString::number(lgroupidx)+"/Name",item->text(0));
|
||||
if(item->isOpen())
|
||||
{
|
||||
QgsProject::instance()->writeEntry("Legend","/LegendGroup"+QString::number(lgroupidx)+"/Open",true);
|
||||
}
|
||||
else
|
||||
{
|
||||
QgsProject::instance()->writeEntry("Legend","/LegendGroup"+QString::number(lgroupidx)+"/Open",true);
|
||||
}
|
||||
break;
|
||||
|
||||
|
||||
case QgsLegendItem::LEGEND_LAYER:
|
||||
++llayeridx;
|
||||
if(item->parent()==0)//legend layer is not in a group
|
||||
{
|
||||
groupstring="";
|
||||
}
|
||||
QgsProject::instance()->writeEntry("Legend",groupstring+"/LegendLayer"+QString::number(llayeridx)+"/Name",item->text(0));
|
||||
if(item->isOpen())
|
||||
{
|
||||
QgsProject::instance()->writeEntry("Legend",groupstring+"/LegendLayer"+QString::number(llayeridx)+"/Open",true);
|
||||
}
|
||||
else
|
||||
{
|
||||
QgsProject::instance()->writeEntry("Legend",groupstring+"/LegendLayer"+QString::number(llayeridx)+"/Open",false);
|
||||
}
|
||||
break;
|
||||
|
||||
case QgsLegendItem::LEGEND_PROPERTY_GROUP:
|
||||
if(item->isOpen())
|
||||
{
|
||||
QgsProject::instance()->writeEntry("Legend",groupstring+"/LegendLayer"+QString::number(llayeridx)+"/LegendPropertyGroup/Open", true);
|
||||
}
|
||||
else
|
||||
{
|
||||
QgsProject::instance()->writeEntry("Legend",groupstring+"/LegendLayer"+QString::number(llayeridx)+"/LegendPropertyGroup/Open", false);
|
||||
}
|
||||
break;
|
||||
|
||||
case QgsLegendItem::LEGEND_SYMBOL_GROUP:
|
||||
if(item->isOpen())
|
||||
{
|
||||
QgsProject::instance()->writeEntry("Legend",groupstring+"/LegendLayer"+QString::number(llayeridx)+"/LegendSymbolGroup/Open", true);
|
||||
}
|
||||
else
|
||||
{
|
||||
QgsProject::instance()->writeEntry("Legend",groupstring+"/LegendLayer"+QString::number(llayeridx)+"/LegendSymbolGroup/Open", false);
|
||||
}
|
||||
break;
|
||||
|
||||
case QgsLegendItem::LEGEND_LAYER_FILE_GROUP:
|
||||
if(item->isOpen())
|
||||
{
|
||||
QgsProject::instance()->writeEntry("Legend",groupstring+"/LegendLayer"+QString::number(llayeridx)+"/LegendLayerFileGroup/Open", true);
|
||||
}
|
||||
else
|
||||
{
|
||||
QgsProject::instance()->writeEntry("Legend",groupstring+"/LegendLayer"+QString::number(llayeridx)+"/LegendLayerFileGroup/Open", false);
|
||||
}
|
||||
break;
|
||||
|
||||
default: //do nothing for the leaf nodes
|
||||
break;
|
||||
}
|
||||
}
|
||||
++it;
|
||||
}
|
||||
}
|
||||
|
||||
void QgsLegend::restoreFromProject()
|
||||
{
|
||||
|
||||
}
|
||||
|
@ -101,9 +101,15 @@ class QgsLegend : public QListView
|
||||
/**Removes a checkbox from mCheckBoxes. Does not delete the objects*/
|
||||
void unregisterCheckBox(QListViewItem* item);
|
||||
|
||||
/**Writes the content of the legend using the key system of QgsProject*/
|
||||
void saveToProject();
|
||||
|
||||
/**Writes the content of the legend to a project file*/
|
||||
bool writeXML(QDomNode & layer_node, QDomDocument & document);
|
||||
|
||||
/**Restores the legend from a project file using the key system of QgsProject*/
|
||||
void restoreFromProject();
|
||||
|
||||
/**Restores the legend from a project file*/
|
||||
bool readXML(QDomNode& legendnode);
|
||||
|
||||
|
@ -1295,6 +1295,7 @@ bool QgsProject::write()
|
||||
if(theLegend)
|
||||
{
|
||||
theLegend->writeXML(qgisNode, *doc);
|
||||
//theLegend->saveToProject();
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user