diff --git a/borderinset.cpp b/borderinset.cpp index 6b26f470d..e03efe19a 100644 --- a/borderinset.cpp +++ b/borderinset.cpp @@ -1,4 +1,5 @@ #include "borderinset.h" +#include "qetapp.h" /** Constructeur simple : construit une bordure de 15 colonnes de 50x500 avec @@ -6,10 +7,10 @@ @param parent QObject parent de ce BorderInset */ BorderInset::BorderInset(QObject *parent) : QObject(parent) { - nb_columns = 15; + nb_columns = qMax(3, QETApp::settings().value("diagrameditor/defaultcols", 15).toInt()); min_nb_columns = 3; - columns_width = 50.0; - columns_height = 500.0; + columns_width = QETApp::settings().value("diagrameditor/defaultcolsize", 50.0).toDouble(); + columns_height = QETApp::settings().value("diagrameditor/defaultheight", 500.0).toDouble(); min_columns_height = 80.0; inset_width = nb_columns * columns_width; inset_height = 50.0; @@ -18,6 +19,15 @@ BorderInset::BorderInset(QObject *parent) : QObject(parent) { display_columns = true; display_border = true; updateRectangles(); + + bi_author = QETApp::settings().value("diagrameditor/defaultauthor").toString(); + bi_title = QETApp::settings().value("diagrameditor/defaulttitle").toString(); + bi_folio = QETApp::settings().value("diagrameditor/defaultfolio").toString(); + bi_filename = QETApp::settings().value("diagrameditor/defaultfilename").toString(); + QString settings_date = QETApp::settings().value("diagrameditor/defaultdate").toString(); + if (settings_date == "now") bi_date = QDate::currentDate(); + else if (settings_date.isEmpty() || settings_date == "null") bi_date = QDate(); + else bi_date = QDate::fromString(settings_date, "yyyyMMdd"); } /** diff --git a/conductorproperties.cpp b/conductorproperties.cpp index 08d8e4573..f044e766e 100644 --- a/conductorproperties.cpp +++ b/conductorproperties.cpp @@ -198,6 +198,33 @@ void ConductorProperties::fromXml(QDomElement &e) { } } +/** + @param settings Parametres a ecrire + @param prefix prefix a ajouter devant les noms des parametres +*/ +void ConductorProperties::toSettings(QSettings &settings, const QString &prefix) const { + settings.setValue(prefix + "type", typeToString(type)); + settings.setValue(prefix + "text", text); + singleLineProperties.toSettings(settings, prefix); +} + +/** + @param settings Parametres a lire + @param prefix prefix a ajouter devant les noms des parametres +*/ +void ConductorProperties::fromSettings(QSettings &settings, const QString &prefix) { + QString setting_type = settings.value(prefix + "type", typeToString(Multi)).toString(); + if (setting_type == typeToString(Single)) { + type = Single; + } else if (setting_type == typeToString(Simple)) { + type = Simple; + } else { + type = Multi; + } + singleLineProperties.fromSettings(settings, prefix); + text = settings.value(prefix + "text", "_").toString(); +} + /** @param t type du conducteur */ @@ -253,3 +280,23 @@ int SingleLineProperties::operator==(const SingleLineProperties &other) const { int SingleLineProperties::operator!=(const SingleLineProperties &other) const { return(!(other == (*this))); } + +/** + @param settings Parametres a ecrire + @param prefix prefix a ajouter devant les noms des parametres +*/ +void SingleLineProperties::toSettings(QSettings &settings, const QString &prefix) const { + settings.setValue(prefix + "hasGround", hasGround); + settings.setValue(prefix + "hasNeutral", hasNeutral); + settings.setValue(prefix + "phases", phases); +} + +/** + @param settings Parametres a lire + @param prefix prefix a ajouter devant les noms des parametres +*/ +void SingleLineProperties::fromSettings(QSettings &settings, const QString &prefix) { + hasGround = settings.value(prefix + "hasGround", true).toBool(); + hasNeutral = settings.value(prefix + "hasNeutral", true).toBool(); + phases = settings.value(prefix + "phases", 1).toInt(); +} diff --git a/conductorproperties.h b/conductorproperties.h index afa29686c..758b0efa5 100644 --- a/conductorproperties.h +++ b/conductorproperties.h @@ -16,6 +16,8 @@ class SingleLineProperties { void draw(QPainter *, QET::ConductorSegmentType, const QRectF &); void toXml(QDomDocument &, QDomElement &) const; void fromXml(QDomElement &); + void toSettings(QSettings &, const QString & = QString()) const; + void fromSettings(QSettings &, const QString & = QString()); /// indique si le conducteur unifilaire doit afficher le symbole terre bool hasGround; @@ -70,6 +72,8 @@ class ConductorProperties { // methodes void toXml(QDomDocument &, QDomElement &) const; void fromXml(QDomElement &); + void toSettings(QSettings &, const QString & = QString()) const; + void fromSettings(QSettings &, const QString & = QString()); static QString typeToString(ConductorType); // operateurs diff --git a/diagram.cpp b/diagram.cpp index 95ce14b1d..fcb76847a 100644 --- a/diagram.cpp +++ b/diagram.cpp @@ -33,6 +33,9 @@ Diagram::Diagram(QObject *parent) : conductor_setter -> setPen(t); conductor_setter -> setLine(QLineF(QPointF(0.0, 0.0), QPointF(0.0, 0.0))); connect(this, SIGNAL(selectionChanged()), this, SLOT(slot_checkSelectionEmptinessChange())); + + // lit les caracteristiques des conducteurs par defaut dans la configuration + defaultConductorProperties.fromSettings(QETApp::settings(), "diagrameditor/defaultconductor"); } /** @@ -337,6 +340,8 @@ bool Diagram::fromXml(QDomDocument &document, QPointF position, bool consider_in double height = root.attribute("height").toDouble(&ok); if (ok) border_and_inset.setColumnsHeight(height); + border_and_inset.adjustInsetToColumns(); + // repere le permier element "defaultconductor" for (QDomNode node = root.firstChild() ; !node.isNull() ; node = node.nextSibling()) { QDomElement elmts = node.toElement(); diff --git a/misc/qelectrotech.sample.conf b/misc/qelectrotech.sample.conf new file mode 100644 index 000000000..840ed35df --- /dev/null +++ b/misc/qelectrotech.sample.conf @@ -0,0 +1,16 @@ +[diagrameditor] +defaultauthor= +defaultcols=15 +defaultcolsize=50.0 +defaultconductorhasGround=true +defaultconductorhasNeutral=true +defaultconductorphases=1 +defaultconductortext=_ +defaultconductortype=multi +defaultdate=null +defaultfilename= +defaultfolio= +defaultheight=500.0 +defaulttitle= + +[elementeditor]