mirror of
https://github.com/qelectrotech/qelectrotech-source-mirror.git
synced 2025-12-17 12:40:35 +01:00
Introduced project-wide properties, i.e. key/value pairs defined at the project scope available in all child diagrams.
git-svn-id: svn+ssh://svn.tuxfamily.org/svnroot/qet/qet/trunk@1892 bfdf4180-ca20-0410-9c96-a3a8aa849046
This commit is contained in:
@@ -417,6 +417,11 @@ QDomDocument QETProject::toXml() {
|
||||
project_root.appendChild(titleblocktemplates_elmt);
|
||||
}
|
||||
|
||||
// project-wide properties
|
||||
QDomElement project_properties = xml_doc.createElement("properties");
|
||||
writeProjectPropertiesXml(project_properties);
|
||||
project_root.appendChild(project_properties);
|
||||
|
||||
// proprietes pour les nouveaux schemas
|
||||
QDomElement new_diagrams_properties = xml_doc.createElement("newdiagrams");
|
||||
writeDefaultPropertiesXml(new_diagrams_properties);
|
||||
@@ -900,6 +905,9 @@ void QETProject::readProjectXml() {
|
||||
state_ = ProjectParsingFailed;
|
||||
}
|
||||
|
||||
// load the project-wide properties
|
||||
readProjectPropertiesXml();
|
||||
|
||||
// charge les proprietes par defaut pour les nouveaux schemas
|
||||
readDefaultPropertiesXml();
|
||||
|
||||
@@ -979,6 +987,22 @@ void QETProject::readElementsCollectionXml() {
|
||||
connect(collection_, SIGNAL(written()), this, SLOT(componentWritten()));
|
||||
}
|
||||
|
||||
/**
|
||||
Load project properties from the XML description of the project
|
||||
*/
|
||||
void QETProject::readProjectPropertiesXml() {
|
||||
foreach (QDomElement e, QET::findInDomElement(document_root_.documentElement(), "properties")) {
|
||||
project_properties_.fromXml(e);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
Export project properties under the \a xml_element XML element.
|
||||
*/
|
||||
void QETProject::writeProjectPropertiesXml(QDomElement &xml_element) {
|
||||
project_properties_.toXml(xml_element);
|
||||
}
|
||||
|
||||
/**
|
||||
Charge les proprietes par defaut des nouveaux schemas depuis la description
|
||||
XML du projet :
|
||||
@@ -1139,6 +1163,21 @@ bool QETProject::diagramsWereModified() {
|
||||
return(!(diagrams_[0] -> undoStack().isClean()));
|
||||
}
|
||||
|
||||
/**
|
||||
@return the project-wide properties made available to child diagrams.
|
||||
*/
|
||||
DiagramContext QETProject::projectProperties() {
|
||||
return(project_properties_);
|
||||
}
|
||||
|
||||
/**
|
||||
Use \a context as project-wide properties made available to child diagrams.
|
||||
*/
|
||||
void QETProject::setProjectProperties(const DiagramContext &context) {
|
||||
project_properties_ = context;
|
||||
updateDiagramsFolioData();
|
||||
}
|
||||
|
||||
/**
|
||||
Cette methode sert a reperer un projet vide, c-a-d un projet identique a ce
|
||||
que l'on obtient en faisant Fichier > Nouveau.
|
||||
@@ -1166,7 +1205,7 @@ bool QETProject::projectWasModified() {
|
||||
void QETProject::updateDiagramsFolioData() {
|
||||
int total_folio = diagrams_.count();
|
||||
for (int i = 0 ; i < total_folio ; ++ i) {
|
||||
diagrams_[i] -> border_and_titleblock.setFolioData(i + 1, total_folio);
|
||||
diagrams_[i] -> border_and_titleblock.setFolioData(i + 1, total_folio, project_properties_);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user