Commit Graph

52 Commits

Author SHA1 Message Date
ispyisail 84add7b3ef Preserve an all-whitespace context value through save and reload
A property value that is entirely whitespace -- reported in #973 as a
workaround (setting a title-block custom variable to a single space, the
only way to give it a value other than blank before that bug was fixed in
#989) -- did not survive a save/reload cycle. Two independent causes, both
needed for the round trip to actually work:

1. DiagramContext::toXml() called .trimmed() on every stored value before
   writing it, unconditionally. For ordinary content this only strips
   accidental leading/trailing whitespace, but for a value that IS
   whitespace it collapses the entire thing to "", indistinguishable from
   a value that was never set.

2. QDomDocument::setContent(), used to parse the project file, discards a
   text node that is entirely whitespace by default. Confirmed in
   isolation, outside any QET code: parsing "<a> </a>" with the default
   ParseOptions gives QDomElement::text() == ""; adding
   ParseOption::PreserveSpacingOnlyNodes gives " ". So even once (1) stops
   destroying the value on save, the very next load throws it away again.

Fix (1) only trims when the trimmed result isn't empty, i.e. leaves an
all-whitespace value untouched. Fix (2) adds PreserveSpacingOnlyNodes to
the one setContent() call that parses a project file
(QETProject::readProjectXml()) -- not the other ~19 call sites in the
codebase (clipboard paste, element/macro loading, translations, autonum
context), which read different, narrower documents and are not implicated
in this report.

Blast radius of (2): every place that walks a QDomNode's children already
filters on isElement() (see QET::findInDomElement()), so the extra
whitespace-only text-node siblings this keeps around are inert wherever
current code already expected only elements. The one place it isn't inert
is exactly the bug -- calling .text() on an element whose entire content
is whitespace.

Verified end-to-end, not just at one stage: a single-space title-block
variable now survives two successive --resave cycles unchanged (confirmed
byte-for-byte in the saved XML), and renders as blank space rather than
literal placeholder text or a vanished value. Re-saved all 24 shipped
examples with and without this change and diffed: 23 byte-identical, the
one that differs (schema_indus.qet) differs only in element uuids -- and
resaving it twice with the SAME unpatched binary produces that same kind
of diff, confirming it is pre-existing non-determinism in files that
predate persisted uuids, unrelated to this change. Qt 6.10.2, ctest 11/11.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-23 09:20:31 +12:00
Laurent Trinques 4044d04cc5 One year
Auto-build doxygen docs / doxygen (push) Has been cancelled
Auto-build doxygen docs / deploy (push) Has been cancelled
2026-01-16 15:24:35 +01:00
Laurent Trinques 43f0107eb1 Revert "Try Clazy fix-its"
Segfault on old Qt versions!
This reverts commit dba7caed30.
2025-02-14 16:17:58 +01:00
Laurent Trinques dba7caed30 Try Clazy fix-its
clazy is a compiler plugin which allows clang to understand Qt
semantics. You get more than 50 Qt related compiler warnings, ranging
from unneeded memory allocations to misusage of API, including fix-its
for automatic refactoring.

https://invent.kde.org/sdk/clazy
2025-02-14 15:52:23 +01:00
plc-user b8e4fca09f fix: remove empty elementInformation, but keep empty properties 2025-02-08 07:39:21 +01:00
plc-user 408481a023 some clean-up for "elementInformations" in element-file
- for some time now and for whatever reason, element-editor
  sometimes adds element-information without content –> do not
  save info-lines without any content
- sort element-information alphabetically by name in element-file
- use trimmed strings for element-information to remove leading
  and trailing whitestpace
2025-02-05 13:11:37 +01:00
plc-user 9dad6963cb minor: typos, comments, whitespace, translation 2025-02-04 13:48:35 +01:00
Laurent Trinques 77bfe84a4c One year 2025-01-04 13:37:40 +01:00
Laurent Trinques e73cf633ce 2023->2024 2024-03-29 10:09:48 +01:00
Laurent Trinques 9afef79629 Update Copyright date 2023-01-01 17:05:57 +01:00
Peter Keresztes Schmidt e9a5fded5c DiagramContextWidget: Fix verification of keys 2021-09-22 21:54:00 +02:00
joshua 11b8ef927b Revert "Merge branch 'XMLPropertiesNew'"
**Break a lot of thing.**

This reverts commit 1db1800572, reversing
changes made to 4c563821e8.
2021-03-11 19:52:50 +01:00
Martin ea364f9c4e merge 2021-02-23 17:35:55 +01:00
Laurent Trinques ef58f34c14 Update Copyright date 2021-02-20 12:13:46 +01:00
joshua 2513961cd6 Revert "Update Copyright date"
This reverts commit d04bccc384.
2021-02-06 19:00:48 +01:00
Laurent Trinques d04bccc384 Update Copyright date 2021-02-06 18:33:42 +01:00
Martin Marmsoler 9658a88c18 fix compile issues 2020-10-20 08:54:56 +02:00
Martin Marmsoler 12e301b887 replace 4 spaces by a tab 2020-10-20 08:54:56 +02:00
Martin Marmsoler f3097fc537 rebase XMLProperties_New (c0d9bf9) to master 2020-10-20 08:54:14 +02:00
Martin Marmsoler 73b394527d replace tabs by 4 spaces 2020-10-20 08:53:43 +02:00
Simon De Backer 859f6dd06d Fix deprecated QRegExp
Use QRegularExpression instead.

https://doc.qt.io/qt-5/qregularexpression.html#notes-for-qregexp-users

This function was introduced in Qt 5
2020-09-19 01:12:13 +02:00
Simon De Backer 5d92393ee7 Wrap code for better readability 2020-09-07 22:03:40 +02:00
Simon De Backer 0c00d83b27 Fix some doxygen issues 2020-08-20 21:57:35 +02:00
Simon De Backer d4ee161c07 Mod doc set style de same 2020-08-16 11:19:36 +02:00
Laurent Trinques e10ae8ce2e Update Copyright date 2020-06-15 17:42:53 +02:00
Claveau Joshua e40ba32281 Bug fix : some element informations can't be set 2020-05-15 10:26:05 +02:00
Laurent Trinques 73149973e3 Merge remote-tracking branch 'origin/QetGraphicsTableItem' 2020-04-12 18:51:38 +02:00
joshua 3492540d53 Use pugixml for parse local name of directory and element informations 2020-01-04 23:33:35 +01:00
blacksun 106903126d Fix crash
git-svn-id: svn+ssh://svn.tuxfamily.org/svnroot/qet/qet/trunk@5822 bfdf4180-ca20-0410-9c96-a3a8aa849046
2019-04-02 21:01:52 +00:00
scorpio810 3ed7a4e63b Minor : update Copyright date
git-svn-id: svn+ssh://svn.tuxfamily.org/svnroot/qet/qet/trunk@5705 bfdf4180-ca20-0410-9c96-a3a8aa849046
2019-01-13 16:56:12 +00:00
blacksun 94dc195028 Search and replace : Diagram properties can be changed (and mass changed) through the search and replace widget.
git-svn-id: svn+ssh://svn.tuxfamily.org/svnroot/qet/qet/trunk@5564 bfdf4180-ca20-0410-9c96-a3a8aa849046
2018-10-21 09:54:59 +00:00
blacksun 6e2ed873bb Dynamic element text item can display information of parent element
git-svn-id: svn+ssh://svn.tuxfamily.org/svnroot/qet/qet/trunk@5010 bfdf4180-ca20-0410-9c96-a3a8aa849046
2017-08-06 10:18:33 +00:00
blacksun 5d52605b38 Replace deprecated qSort function
git-svn-id: svn+ssh://svn.tuxfamily.org/svnroot/qet/qet/trunk@4917 bfdf4180-ca20-0410-9c96-a3a8aa849046
2017-02-16 14:10:30 +00:00
scorpio810 41659fa6fd Revert r4900
git-svn-id: svn+ssh://svn.tuxfamily.org/svnroot/qet/qet/trunk@4902 bfdf4180-ca20-0410-9c96-a3a8aa849046
2017-02-05 16:18:50 +00:00
scorpio810 6422dd096f Replace foreach function by for, please try and report problem
git-svn-id: svn+ssh://svn.tuxfamily.org/svnroot/qet/qet/trunk@4900 bfdf4180-ca20-0410-9c96-a3a8aa849046
2017-02-04 21:43:23 +00:00
scorpio810 aded80e4ae Replace QSort function has been deprecated
git-svn-id: svn+ssh://svn.tuxfamily.org/svnroot/qet/qet/trunk@4898 bfdf4180-ca20-0410-9c96-a3a8aa849046
2017-02-03 13:48:42 +00:00
scorpio810 54c85db29c Minor update Copyright year
git-svn-id: svn+ssh://svn.tuxfamily.org/svnroot/qet/qet/trunk@4860 bfdf4180-ca20-0410-9c96-a3a8aa849046
2017-01-20 10:55:49 +00:00
scorpio810 025fa64f67 Minor : update Copyright date
git-svn-id: svn+ssh://svn.tuxfamily.org/svnroot/qet/qet/trunk@4481 bfdf4180-ca20-0410-9c96-a3a8aa849046
2016-05-13 17:40:36 +00:00
scorpio810 eaff56b669 Update copyright date
git-svn-id: svn+ssh://svn.tuxfamily.org/svnroot/qet/qet/trunk@3734 bfdf4180-ca20-0410-9c96-a3a8aa849046
2015-02-20 14:56:22 +00:00
blacksun 40ecef5ff9 Minor improvement
git-svn-id: svn+ssh://svn.tuxfamily.org/svnroot/qet/qet/trunk@3543 bfdf4180-ca20-0410-9c96-a3a8aa849046
2014-12-12 13:04:16 +00:00
blacksun b361788873 Add ability to store informations for element like label, manufacturer, ref etc....
Add widget to edit it, save/load works
Informations are stored in a diagramcontext, this class was modified (new feature) to store information
but keep compatibilty with older version.  


git-svn-id: svn+ssh://svn.tuxfamily.org/svnroot/qet/qet/trunk@2850 bfdf4180-ca20-0410-9c96-a3a8aa849046
2014-02-12 17:36:35 +00:00
scorpio810 433ebc7158 Update Copyright to 2014
git-svn-id: svn+ssh://svn.tuxfamily.org/svnroot/qet/qet/trunk@2792 bfdf4180-ca20-0410-9c96-a3a8aa849046
2014-01-29 18:37:45 +00:00
scorpio810 c71ed69342 Updated Copyright 2006-2013
git-svn-id: svn+ssh://svn.tuxfamily.org/svnroot/qet/qet/trunk@2288 bfdf4180-ca20-0410-9c96-a3a8aa849046
2013-06-18 11:10:19 +00:00
xavier dd93f59b26 Improved the DiagramContext class.
git-svn-id: svn+ssh://svn.tuxfamily.org/svnroot/qet/qet/trunk@1890 bfdf4180-ca20-0410-9c96-a3a8aa849046
2012-07-01 21:54:05 +00:00
xavier 47ea8fef37 Bugfix: existing project files could end up saving application-wide default template properties.
git-svn-id: svn+ssh://svn.tuxfamily.org/svnroot/qet/qet/trunk@1889 bfdf4180-ca20-0410-9c96-a3a8aa849046
2012-07-01 21:54:03 +00:00
xavier 4a01fed0ba Reworked the DiagramContext class to sort custom variables.
git-svn-id: svn+ssh://svn.tuxfamily.org/svnroot/qet/qet/trunk@1884 bfdf4180-ca20-0410-9c96-a3a8aa849046
2012-06-29 05:21:46 +00:00
xavier a161ce0bd4 Title block properties: now warn users when they enter invalid keys.
git-svn-id: svn+ssh://svn.tuxfamily.org/svnroot/qet/qet/trunk@1780 bfdf4180-ca20-0410-9c96-a3a8aa849046
2012-05-09 17:21:46 +00:00
xavier 5ccf015280 Updated copyright notice for year 2012.
git-svn-id: svn+ssh://svn.tuxfamily.org/svnroot/qet/qet/branches/0.3@1424 bfdf4180-ca20-0410-9c96-a3a8aa849046
2012-01-01 22:51:51 +00:00
xavier bf348a42d0 Title block templates variables names now accept digits.
git-svn-id: svn+ssh://svn.tuxfamily.org/svnroot/qet/qet/branches/0.3@1294 bfdf4180-ca20-0410-9c96-a3a8aa849046
2011-06-04 12:44:17 +00:00
xavier 71abf66bfd Updated Copyright notice for 2011 year.
git-svn-id: svn+ssh://svn.tuxfamily.org/svnroot/qet/qet/branches/0.3@1183 bfdf4180-ca20-0410-9c96-a3a8aa849046
2011-03-02 00:16:40 +00:00