diff --git a/sources/editor/graphicspart/partdynamictextfield.cpp b/sources/editor/graphicspart/partdynamictextfield.cpp
index .. 100644
--- a/sources/editor/graphicspart/partdynamictextfield.cpp
+++ b/sources/editor/graphicspart/partdynamictextfield.cpp
@@ -31,11 +31,12 @@
m_uuid(QUuid::createUuid())
{
setDefaultTextColor(Qt::black);
- setFont(QETApp::diagramTextsFont(9));
+ setFont(QETApp::dynamicTextsItemFont());
setText("_");
setTextFrom(DynamicElementTextItem::UserText);
setFlags(QGraphicsItem::ItemIsSelectable | QGraphicsItem::ItemSendsGeometryChanges | QGraphicsItem::ItemIsMovable);
+
//Option when text is displayed in multiple line
QTextOption option = document()->defaultTextOption();
option.setAlignment(Qt::AlignHCenter);
@@ -91,6 +92,7 @@
root_element.setAttribute("z", QString::number(zValue()));
root_element.setAttribute("rotation", QString::number(QET::correctAngle(rotation())));
root_element.setAttribute("font_size", font().pointSize());
+ root_element.setAttribute("dynamicitemfont", (QETApp::dynamicTextsItemFont().family()));
root_element.setAttribute("uuid", m_uuid.toString());
root_element.setAttribute("frame", m_frame? "true" : "false");
root_element.setAttribute("text_width", QString::number(m_text_width));
@@ -354,7 +356,7 @@
void PartDynamicTextField::setFontSize(int s)
{
prepareAlignment();
- setFont(QETApp::diagramTextsFont(s));
+ setFont(QETApp::dynamicTextsItemFont(s));
finishAlignment();
emit fontSizeChanged(s);
}
@@ -496,7 +498,7 @@
if (m_frame)
{
painter->save();
- painter->setFont(QETApp::diagramTextsFont(fontSize()));
+ painter->setFont(QETApp::dynamicTextsItemFont(fontSize()));
//Adjust the thickness according to the font size,
qreal w=0.3;
diff --git a/sources/editor/graphicspart/parttext.h b/sources/editor/graphicspart/parttext.h
index .. 100644
--- a/sources/editor/graphicspart/parttext.h
+++ b/sources/editor/graphicspart/parttext.h
@@ -62,7 +62,7 @@
// Size value
Q_PROPERTY(qreal size READ size WRITE setSize)
qreal size () const {return font().pointSize();}
- void setSize (qreal s) {setFont(QETApp::diagramTextsFont(s));}
+ void setSize (qreal s) {setFont(QETApp::dynamicTextsItemFont(s));}
// Real size value
Q_PROPERTY(qreal real_size READ realSize WRITE setRealSize)
qreal realSize() const {return real_font_size_;}
diff --git a/sources/qetapp.cpp b/sources/qetapp.cpp
index .. 100644
--- a/sources/qetapp.cpp
+++ b/sources/qetapp.cpp
@@ -851,11 +851,43 @@
return(diagram_texts_item_font);
}
/**
+ * @brief QETApp::dynamicTextsFont
+ * the font for to use when add a dynamic texte
+ * @param size
+ * @return
+ */
+
+
+ QFont QETApp::dynamicTextsItemFont(qreal size)
+{
+ QSettings settings;
+
+ //Font to use
+ QString dynamic_texts_item_family = settings.value("dynamicitemfont", "Sans Serif").toString();
+ qreal dynamic_texts_item_size = settings.value("dynamicitemsize", 9.0).toDouble();
+ qreal dynamic_texts_item_weight = settings.value("dynamicitemweight").toDouble();
+ QString dynamic_texts_item_style = settings.value("dynamicitemstyle", "normal").toString();
+
+ if (size != -1.0) {
+ dynamic_texts_item_size = size;
+ }
+ QFont dynamic_texts_item_font = QFont(dynamic_texts_item_family);
+ dynamic_texts_item_font.setPointSizeF(dynamic_texts_item_size);
+ dynamic_texts_item_font.setWeight(dynamic_texts_item_weight);
+ dynamic_texts_item_font.setStyleName(dynamic_texts_item_style);
+ if (dynamic_texts_item_size <= 4.0) {
+ dynamic_texts_item_font.setWeight(QFont::Light);
+ }
+ return(dynamic_texts_item_font);
+}
+/**
* @brief QETApp::foliolistTextsFont
* the font for to use in summary pages
* @param size
* @return
*/
+
+
QFont QETApp::foliolistTextsFont(qreal size)
{
QSettings settings;
diff --git a/sources/qetapp.h b/sources/qetapp.h
index .. 100644
--- a/sources/qetapp.h
+++ b/sources/qetapp.h
@@ -128,6 +128,7 @@
static QString lang_dir; ///< Directory containing localization files.
static QFont diagramTextsFont(qreal = -1.0);
static QFont diagramTextsItemFont(qreal = -1.0);
+ static QFont dynamicTextsItemFont(qreal = -1.0);
static QFont foliolistTextsFont(qreal = -1.0);
static QETDiagramEditor *diagramEditorForFile(const QString &);
static QETDiagramEditor *diagramEditorAncestorOf (const QWidget *child);
diff --git a/sources/qetgraphicsitem/dynamicelementtextitem.cpp b/sources/qetgraphicsitem/dynamicelementtextitem.cpp
index .. 100644
--- a/sources/qetgraphicsitem/dynamicelementtextitem.cpp
+++ b/sources/qetgraphicsitem/dynamicelementtextitem.cpp
@@ -39,9 +39,11 @@
m_parent_element(parent_element),
m_uuid(QUuid::createUuid())
{
- setFont(QETApp::diagramTextsFont(9));
+ setFont(QETApp::dynamicTextsItemFont());
setText(tr("Texte"));
- setParentItem(parent_element);
+ setParentItem(parent_element);
+ QSettings settings;
+ setRotation(settings.value("dynamic_rotation", 0).toInt());
connect(this, &DynamicElementTextItem::textEdited, [this](const QString &old_str, const QString &new_str)
{
if(this->m_parent_element && this->m_parent_element->diagram())
@@ -91,6 +93,7 @@
root_element.setAttribute("rotation", QString::number(QET::correctAngle(rotation())));
root_element.setAttribute("font_size", font().pointSize());
root_element.setAttribute("uuid", m_uuid.toString());
+ root_element.setAttribute("dynamicitemfont", font().family());
root_element.setAttribute("frame", m_frame? "true" : "false");
root_element.setAttribute("text_width", QString::number(m_text_width));
@@ -113,9 +116,9 @@
root_element.setAttribute("Valignment", me.valueToKey(Qt::AlignVCenter));
- QDomElement dom_text = dom_doc.createElement("text");
- dom_text.appendChild(dom_doc.createTextNode(toPlainText()));
- root_element.appendChild(dom_text);
+ QDomElement dom_text = dom_doc.createElement("text");
+ dom_text.appendChild(dom_doc.createTextNode(toPlainText()));
+ root_element.appendChild(dom_text);
//Info name
if(!m_info_name.isEmpty())
@@ -140,8 +143,8 @@
dom_color.appendChild(dom_doc.createTextNode(color().name()));
root_element.appendChild(dom_color);
}
-
- return root_element;
+
+ return root_element;
}
/**
@@ -173,7 +176,7 @@
setAlignment(Qt::Alignment(me.keyToValue(dom_elmt.attribute("Valignment").toStdString().data())) | this->alignment());
//Text
- QDomElement dom_text = dom_elmt.firstChildElement("text");
+ QDomElement dom_text = dom_elmt.firstChildElement("text");
if (!dom_text.isNull())
setText(dom_text.text());
@@ -635,7 +638,7 @@
if (m_frame)
{
painter->save();
- painter->setFont(QETApp::diagramTextsFont(fontSize()));
+ painter->setFont(QETApp::dynamicTextsItemFont(fontSize()));
//Adjust the thickness according to the font size,
qreal w=0.3;
diff --git a/sources/ui/configpage/generalconfigurationpage.cpp b/sources/ui/configpage/generalconfigurationpage.cpp
index .. 100644
--- a/sources/ui/configpage/generalconfigurationpage.cpp
+++ b/sources/ui/configpage/generalconfigurationpage.cpp
@@ -54,11 +54,18 @@
settings.value("diagramitemstyle").toString() + ")";
ui->m_font_pb->setText(fontInfos);
+ QString dynamicfontInfos = settings.value("dynamicitemfont").toString() + " " +
+ settings.value("dynamicitemsize").toString() + " (" +
+ settings.value("dynamicitemstyle").toString() + ")";
+ ui->m_dynamic_font_pb->setText(dynamicfontInfos);
+
QString foliolistfontInfos = settings.value("foliolistfont").toString() + " " +
settings.value("foliolistsize").toString() + " (" +
settings.value("folioliststyle").toString() + ")";
ui->m_folio_list_pb->setText(foliolistfontInfos);
+ ui->m_rotation->setValue(settings.value("dynamic_rotation", 0).toInt());
+
ui->m_highlight_integrated_elements->setChecked(settings.value("diagrameditor/highlight-integrated-elements", true).toBool());
ui->m_default_elements_info->setPlainText(settings.value("elementeditor/default-informations", "").toString());
@@ -117,6 +124,7 @@
settings.setValue("nomenclature/terminal-exportlist",ui->m_export_terminal->isChecked());
settings.setValue("border-columns_0",ui->m_border_0->isChecked());
settings.setValue("diagrameditor/autosave-interval", ui->m_autosave_sb->value());
+ settings.setValue("dynamic_rotation", ui->m_rotation->value());
QString path = settings.value("elements-collections/common-collection-path").toString();
if (ui->m_common_elmt_path_cb->currentIndex() == 1)
@@ -233,6 +241,29 @@
}
/**
+ * @brief GeneralConfigurationPage::m_dynamic_font_pb_clicked
+ * Apply font to config
+ */
+void GeneralConfigurationPage::on_m_dynamic_font_pb_clicked()
+{
+ bool ok;
+ QSettings settings;
+ QFont font = QFontDialog::getFont(&ok, QFont("Sans Serif", 9), this);
+ if (ok)
+ {
+ settings.setValue("dynamicitemfont", font.family());
+ settings.setValue("dynamicitemsize", font.pointSize());
+ settings.setValue("dynamicitemweight", font.weight());
+ settings.setValue("dynamicitemstyle", font.styleName());
+ QString fontInfos = settings.value("dynamicitemfont").toString() + " " +
+ settings.value("dynamicitemsize").toString() + " (" +
+ settings.value("dynamicitemstyle").toString() + ")";
+ ui->m_dynamic_font_pb->setText(fontInfos);
+ }
+}
+
+
+/**
* @brief GeneralConfigurationPage::on_m_folio_list_pb_clicked
* Apply font to summary pages
*/
@@ -282,3 +313,4 @@
}
}
}
+
diff --git a/sources/ui/configpage/generalconfigurationpage.h b/sources/ui/configpage/generalconfigurationpage.h
index .. 100644
--- a/sources/ui/configpage/generalconfigurationpage.h
+++ b/sources/ui/configpage/generalconfigurationpage.h
@@ -39,6 +39,7 @@
private slots:
void on_m_font_pb_clicked();
+ void on_m_dynamic_font_pb_clicked();
void on_m_folio_list_pb_clicked();
void on_m_common_elmt_path_cb_currentIndexChanged(int index);
void on_m_custom_elmt_path_cb_currentIndexChanged(int index);
diff --git a/sources/ui/configpage/generalconfigurationpage.ui b/sources/ui/configpage/generalconfigurationpage.ui
index .. 100644
--- a/sources/ui/configpage/generalconfigurationpage.ui
+++ b/sources/ui/configpage/generalconfigurationpage.ui
@@ -41,7 +41,7 @@
- 0
+ 1
@@ -169,7 +169,7 @@
0
20
971
- 376
+ 391
@@ -176,6 +176,13 @@
+ -
+
+
+ Rotation des textes dynamiques
+
+
+
-
@@ -237,7 +244,7 @@
- -
+
-
@@ -251,7 +258,7 @@
- -
+
-
Police des champs textes des pages sommaires
@@ -265,6 +272,37 @@
+ -
+
+
+ Police des textes dynamiques
+
+
+
+ -
+
+
+ -
+
+
+ 360
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+