mirror of
https://github.com/qgis/QGIS.git
synced 2025-04-15 00:04:00 -04:00
improved legend drag and drop handling, enabled 'create spatial index' button in vector props again
git-svn-id: http://svn.osgeo.org/qgis/trunk@4798 c8812cc2-4d05-0410-92ff-de0c093fc19c
This commit is contained in:
parent
fa235f96a4
commit
ef58e59567
13
qgis.dtd
13
qgis.dtd
@ -119,19 +119,16 @@ outlinecolor,outlinestyle,outlinewidth,fillcolor,fillpattern) >
|
||||
|
||||
<!ELEMENT legend (legendgroup* | legendlayer*) >
|
||||
<!ATTLIST legend open (1|0|true|false) "false"> #open or closed
|
||||
<!ELEMENT legendgroup>
|
||||
<!ELEMENT legendgroup (legendlayer*) >
|
||||
<!ATTLIST legendgroup open (1|0|true|false) "false" name CDATA> #open or closed
|
||||
<!ELEMENT legendlayer>
|
||||
<!ELEMENT legendlayer (legendsymbologyitem+, legendlayerfilegroup>
|
||||
<!ATTLIST legendlayer open (1|0|true|false) "false" checked (Qt::Checked|Qt::Unchecked|Qt::PartiallyChecked) "Qt::Checked"> #open or closed
|
||||
<!ELEMENT legendlayerfilegroup>
|
||||
<!ATTLIST legendlayerfile open (1|0|true|false) "false"> #open or closed
|
||||
<!ELEMENT legendlayerfilegroup (legendlayerfile*) >
|
||||
<!ATTLIST legendlayerfilegroup open (1|0|true|false) "false" > #open or closed
|
||||
<!ATTLIST legendlayerfilegroup hidden(1|0|true|false) "false"> #hidden or shown
|
||||
<!ELEMENT legendlayerfile>
|
||||
<!ATTLIST legendlayerfile id CDATA> #unique layer id of the associated layer
|
||||
<!ATTLIST legendlayerfile open (1|0|true|false) "false"> #open or closed
|
||||
<!ELEMENT legendsymbologygroup>
|
||||
<!ATTLIST legendsymbologygroup open (1|0|true|false) "false"> #open or closed
|
||||
<!ELEMENT legendsymbologyitem>
|
||||
<!ATTLIST legendsymbologyitem open (1|0|true|false) "false"> #open or closed
|
||||
<!ELEMENT legenpropertygroup>
|
||||
<!ATTLIST legendpropertygroup open (1|0|true|false) "false"> #open or closed
|
||||
|
||||
|
@ -234,7 +234,7 @@ void QgsLegend::mouseMoveEvent(QMouseEvent * e)
|
||||
#ifdef QGISDEBUG
|
||||
qWarning("mouseMoveEvent::NO_ACTION");
|
||||
#endif
|
||||
if(mItemBeingMovedOrigPos != getItemPos(mItemBeingMoved))
|
||||
if(origin->type() == QgsLegendItem::LEGEND_LAYER_FILE && mItemBeingMovedOrigPos != getItemPos(mItemBeingMoved))
|
||||
{
|
||||
resetToInitialPosition(mItemBeingMoved);
|
||||
}
|
||||
@ -654,7 +654,6 @@ void QgsLegend::collapseAll()
|
||||
|
||||
bool QgsLegend::writeXML( QDomNode & layer_node, QDomDocument & document )
|
||||
{
|
||||
#if 0
|
||||
QDomElement legendnode = document.createElement("legend");
|
||||
layer_node.appendChild(legendnode);
|
||||
|
||||
@ -760,12 +759,21 @@ bool QgsLegend::writeXML( QDomNode & layer_node, QDomDocument & document )
|
||||
layerfilegroupnode = document.createElement("filegroup");
|
||||
if(isItemExpanded(item))
|
||||
{
|
||||
layerfilegroupnode.setAttribute("open", "true");
|
||||
layerfilegroupnode.setAttribute("open", "true");
|
||||
}
|
||||
else
|
||||
{
|
||||
layerfilegroupnode.setAttribute("open", "false");
|
||||
layerfilegroupnode.setAttribute("open", "false");
|
||||
}
|
||||
if(isItemHidden(item))
|
||||
{
|
||||
layerfilegroupnode.setAttribute("hidden", "true");
|
||||
}
|
||||
else
|
||||
{
|
||||
layerfilegroupnode.setAttribute("hidden", "false");
|
||||
}
|
||||
|
||||
legendlayernode.appendChild(layerfilegroupnode);
|
||||
break;
|
||||
|
||||
@ -785,7 +793,6 @@ bool QgsLegend::writeXML( QDomNode & layer_node, QDomDocument & document )
|
||||
}
|
||||
currentItem = nextItem(currentItem);
|
||||
}
|
||||
#endif
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -1338,6 +1345,7 @@ QDomNode QgsLegend::nextDomNode(const QDomNode& theNode)
|
||||
|
||||
void QgsLegend::moveItem(QTreeWidgetItem* move, QTreeWidgetItem* after)
|
||||
{
|
||||
static_cast<QgsLegendItem*>(move)->storeAppearanceSettings();//store settings in the moved item and its childern
|
||||
if(move->parent())
|
||||
{
|
||||
move->parent()->takeChild(move->parent()->indexOfChild(move));
|
||||
@ -1354,6 +1362,7 @@ void QgsLegend::moveItem(QTreeWidgetItem* move, QTreeWidgetItem* after)
|
||||
{
|
||||
insertTopLevelItem(indexOfTopLevelItem(after)+1, move);
|
||||
}
|
||||
static_cast<QgsLegendItem*>(move)->restoreAppearanceSettings();//apply the settings again
|
||||
}
|
||||
|
||||
void QgsLegend::removeItem(QTreeWidgetItem* item)
|
||||
|
@ -99,3 +99,25 @@ void QgsLegendItem::removeAllChildren()
|
||||
takeChild(0);
|
||||
}
|
||||
}
|
||||
|
||||
void QgsLegendItem::storeAppearanceSettings()
|
||||
{
|
||||
mExpanded = treeWidget()->isItemExpanded(this);
|
||||
mHidden = treeWidget()->isItemHidden(this);
|
||||
//call recursively for all subitems
|
||||
for(int i = 0; i < childCount(); ++i)
|
||||
{
|
||||
static_cast<QgsLegendItem*>(child(i))->storeAppearanceSettings();
|
||||
}
|
||||
}
|
||||
|
||||
void QgsLegendItem::restoreAppearanceSettings()
|
||||
{
|
||||
treeWidget()->setItemExpanded(this, mExpanded);
|
||||
treeWidget()->setItemHidden(this, mHidden);
|
||||
//call recursively for all subitems
|
||||
for(int i = 0; i < childCount(); ++i)
|
||||
{
|
||||
static_cast<QgsLegendItem*>(child(i))->restoreAppearanceSettings();
|
||||
}
|
||||
}
|
||||
|
@ -89,9 +89,19 @@ public:
|
||||
/**Removes all the children of this item. This function is for qt-4.0.1 compatibility, where
|
||||
'takeChildren()' does not yet exist*/
|
||||
void removeAllChildren();
|
||||
/**Stores the current appearance settings (expanded, hidden). The purpose of this is that if an item is removed
|
||||
from its position and insert into another position, these settings can be restored after insertion. storeAppearanceSettings is
|
||||
also called for all childs*/
|
||||
void storeAppearanceSettings();
|
||||
/**Restore appearanc settings (expanded and hidden) e.g. after being inserted into a new place in the tree widget*/
|
||||
void restoreAppearanceSettings();
|
||||
protected:
|
||||
bool mLeafNodeFlag;
|
||||
LEGEND_ITEM_TYPE mType;
|
||||
LEGEND_ITEM_TYPE mType;
|
||||
/**Stores expanded property when storeAppearanceSettings is called*/
|
||||
bool mExpanded;
|
||||
/**Stores hidden property when storeAppearanceSettings is called*/
|
||||
bool mHidden;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
@ -353,7 +353,7 @@
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="2" >
|
||||
<widget class="QPushButton" name="indexPushButton" >
|
||||
<widget class="QPushButton" name="pbnIndex" >
|
||||
<property name="text" >
|
||||
<string>Create</string>
|
||||
</property>
|
||||
|
Loading…
x
Reference in New Issue
Block a user