mirror of
https://github.com/qelectrotech/qelectrotech-source-mirror.git
synced 2026-10-22 22:34:13 +02:00
Merge remote-tracking branch 'upstream/master' into feature/customise-toolbar-options
# Conflicts: # tests/qttest/CMakeLists.txt
This commit is contained in:
@@ -235,7 +235,10 @@ void PartDynamicTextField::fromXml(const QDomElement &dom_elmt) {
|
||||
|
||||
m_uuid = QUuid(dom_elmt.attribute("uuid", QUuid::createUuid().toString()));
|
||||
setFrame(dom_elmt.attribute("frame", "false") == "true"? true : false);
|
||||
//The saved position is the one to keep
|
||||
m_block_alignment = true;
|
||||
setTextWidth(dom_elmt.attribute("text_width", QString::number(-1)).toDouble());
|
||||
m_block_alignment = false;
|
||||
|
||||
QMetaEnum me = DynamicElementTextItem::textFromMetaEnum();
|
||||
m_text_from = DynamicElementTextItem::TextFrom(
|
||||
@@ -431,13 +434,23 @@ bool PartDynamicTextField::frame() const
|
||||
return m_frame;
|
||||
}
|
||||
|
||||
/**
|
||||
@brief PartDynamicTextField::setTextWidth
|
||||
Set the width of this text (-1 = automatic width). The point of the text
|
||||
chosen by its alignment stays in place, as when the text changes: a
|
||||
right-aligned or centred field no longer grows to the right only, and
|
||||
undoing a width change puts it back where it was.
|
||||
@param width
|
||||
*/
|
||||
void PartDynamicTextField::setTextWidth(qreal width) {
|
||||
prepareAlignment();
|
||||
this -> document() -> setTextWidth(width);
|
||||
|
||||
//Adjust the width, to ideal width if needed
|
||||
if(width > 0 && document() -> size().width() > width)
|
||||
document() -> setTextWidth(document() -> idealWidth());
|
||||
|
||||
finishAlignment();
|
||||
m_text_width = document() -> textWidth();
|
||||
emit textWidthChanged(m_text_width);
|
||||
}
|
||||
|
||||
@@ -157,7 +157,9 @@ void DynamicTextFieldEditor::updateForm()
|
||||
m_color_kpb -> setColor(m_text_field.data() -> color());
|
||||
}
|
||||
#endif
|
||||
ui -> m_width_sb -> setValue(m_text_field.data() -> textWidth());
|
||||
//Rounded as on_m_width_sb_editingFinished() compares it;
|
||||
//setValue(int) would truncate 61.7 to 61
|
||||
ui -> m_width_sb -> setValue(qRound(m_text_field.data() -> textWidth()));
|
||||
ui -> m_font_pb -> setText(m_text_field -> font().family());
|
||||
|
||||
switch (m_text_field.data() -> textFrom()) {
|
||||
@@ -363,7 +365,9 @@ void DynamicTextFieldEditor::on_m_width_sb_editingFinished()
|
||||
qreal width = (qreal)ui -> m_width_sb -> value();
|
||||
|
||||
for (int i = 0; i < m_parts.length(); i++) {
|
||||
if(width != m_parts[i] -> textWidth()) {
|
||||
//The box shows whole pixels: a width fitted to the text is not
|
||||
//rounded just by leaving the box.
|
||||
if(ui -> m_width_sb -> value() != qRound(m_parts[i] -> textWidth())) {
|
||||
QPropertyUndoCommand *undo = new QPropertyUndoCommand(m_parts[i], "textWidth", m_parts[i] -> textWidth(), width);
|
||||
undo -> setText(tr("Modifier la largeur d'un texte"));
|
||||
undoStack().push(undo);
|
||||
|
||||
@@ -101,11 +101,17 @@
|
||||
</item>
|
||||
<item row="4" column="1">
|
||||
<widget class="QSpinBox" name="m_width_sb">
|
||||
<property name="specialValueText">
|
||||
<string>Auto</string>
|
||||
</property>
|
||||
<property name="suffix">
|
||||
<string>px</string>
|
||||
</property>
|
||||
<property name="minimum">
|
||||
<number>-1</number>
|
||||
</property>
|
||||
<property name="maximum">
|
||||
<number>500</number>
|
||||
<number>10000</number>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
|
||||
Reference in New Issue
Block a user