mirror of
https://github.com/qelectrotech/qelectrotech-source-mirror.git
synced 2026-10-03 17:34:12 +02:00
Fix Project properties > OK marking the project modified with no edit
Pressing OK in Projet > Propriétés du projet without changing anything marked the project modified and rewrote its defaults for new folios. Besides the Page Num placeholder (fixed separately), four causes: - Title block custom fields: since #271 the dialog offers the template's variables for filling in; those left empty came back as part of the context. Drop the ones not in the stored context. - DiagramContext::remove() left the key's show flag behind, so a context with a key removed never equalled one without it. - Guides: applyConf() marked the project modified whether or not the guides changed. Compare them like every other setting. - Wire dash size and cross-reference offsets: the spin boxes cannot show the stored default (dash size 1 under a minimum of 2; offset 0 under a minimum of 40 shown as "Default"), so the clamped value came back. Keep the stored value unless the box shows something else, as #1204 did for the wire panel. Checked in the GUI (with the Page Num fix as well) on grafcet, schema_indus and Projet_vierge: OK with no edit then Ctrl+S saves the same file as Ctrl+S alone; master writes dash-size 1 -> 2, a cross-reference offset 0 -> 40, and on Projet_vierge 22 empty custom fields. New test for DiagramContext::remove() fails without the fix. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -151,8 +151,15 @@ void XRefPropertiesWidget::saveProperties(int index) {
|
||||
xrp.setPrefix("switch", ui->m_switch_prefix_le->text());
|
||||
xrp.setMasterLabel(ui->m_master_le->text());
|
||||
xrp.setSlaveLabel(ui->m_slave_le->text());
|
||||
xrp.setOffset(ui->m_offset_sb->value());
|
||||
xrp.setSlaveOffset(ui->m_slave_offset_sb->value());
|
||||
//The boxes cannot show a value below their minimum (the offset's
|
||||
//minimum is its "Default" entry, standing for the stored 0): keep
|
||||
//the stored value unless the box shows something else.
|
||||
if (ui->m_offset_sb->value() != qBound(ui->m_offset_sb->minimum(), xrp.offset(),
|
||||
ui->m_offset_sb->maximum()))
|
||||
xrp.setOffset(ui->m_offset_sb->value());
|
||||
if (ui->m_slave_offset_sb->value() != qBound(ui->m_slave_offset_sb->minimum(), xrp.slaveOffset(),
|
||||
ui->m_slave_offset_sb->maximum()))
|
||||
xrp.setSlaveOffset(ui->m_slave_offset_sb->value());
|
||||
|
||||
m_properties.insert(type, xrp);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user