Commit Graph

37 Commits

Author SHA1 Message Date
Dieter Mayer 3bc2e8e712 Make the font restoration counters safe against nested project loads
DialogWaiting pumps the event loop while the folios of a project are
built, so a second openAndAddProject() can run to completion nested
inside the first one (drop on another editor window, queued open) and
the plain reset/read counters would then report the wrong numbers.

Replace them with a RAII counting window (FontRestorationScope): the
constructor keeps the enclosing counts aside, the destructor restores
them. The nesting is strictly LIFO - the nested load completes inside
the pump of the outer one - so each load reports exactly its own
numbers, and the early-return paths of openAndAddProject() restore the
outer window automatically.

Suggested by ispyisail in the review of the reporting change.
2026-08-01 11:14:04 +02:00
Dieter Mayer 0fa2591c4f Report salvaged and unreadable font descriptions after opening a project
Until now a font description that could not be parsed only produced
console warnings most users never see, so nobody learned that their
texts silently lost their formatting (see the reports in issue #553).

Count in QETUtils::fontFromString() how many descriptions were salvaged
from a foreign or corrupt format and how many stayed unreadable, and
show a message box after opening a project when either happened:
salvaged descriptions are rewritten in the stable format on the next
save, unreadable ones fall back to the default font. Projects without
font issues open exactly as before, and non-interactive opens only log
the counters.

Verified with a Qt 5.15 build on a project carrying 52 19-field and
one 21-field description: the dialog reports 53 restored descriptions;
the same file on a Qt 6.11 build (which parses those formats natively)
shows no dialog.

See issue #553.
2026-08-01 08:49:55 +02:00
Dieter Mayer 68ffacc9e6 Salvage font descriptions written by Qt 6.11+ when parsing fails
QFont::fromString() of Qt 5.x and Qt <= 6.10 rejects the >= 19 field
descriptions QFont::toString() emits since Qt 6.11, silently leaving a
broken font at every read site. Add QETUtils::fontFromString(): try the
native parser first, and on failure re-compose the legacy 10/11 field
form from the known Qt 6.11 field layout (OpenType weight mapped back
to the legacy scale) so no font information stored in existing files is
lost. Also salvage the 21 field double-serialized descriptions left
behind by some historical builds (a complete legacy description
embedded as the family name of a second one) by taking the embedded
leading description, matching what the lenient parser of Qt 6.11+
resolves them to. All font read sites now go through the helper; on
failure the default font of the caller is left untouched instead of a
cleared family.

Verified end to end on a Qt 5.15 build: a project whose 53 font
attributes were rewritten into the 19 field Qt 6.11 format loads and
autosaves byte-identical to the original legacy file (family, sizes,
bold/italic/underline, style name all preserved), and a mixed file
containing the exact 21 field string from the issue comes back
normalized as "Caladea,9,-1,5,75,1,0,0,0,0,Bold Italic".

See issue #553.
2026-07-31 08:10:34 +02:00
Dieter Mayer 5da1fe5fc8 Write font descriptions in the stable Qt 5 10/11-field format
QFont::toString() is not stable across Qt versions: Qt 6.11 switched to
a 19-field format carrying OpenType weights, which QFont::fromString()
of Qt 5.x and Qt <= 6.10 rejects, leaving a broken font. Projects saved
by a Qt 6.11+ build were therefore unreadable by older builds.

Add QETUtils::fontToString() composing the legacy 10/11-field
description (weight mapped back to the legacy scale with the same
closest-match table Qt uses when parsing) and use it at every site that
stores a font description in a project, element, table config or
settings file. Every Qt version from 5.15 through 6.12-beta parses this
form correctly, so files stay readable by every QET build in
circulation.

See issue #553.
2026-07-30 21:45:36 +02: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
joshua f83a5b3a79 Merge branch 'terminal_strip' 2025-10-15 23:30:54 +02:00
joshua ae5e188866 Add converter for dpi to pixel font size
Add a little function used to convert if needed the size of a font set
in dpi to pixel. Because the conversion from pdi to pixel can't
be exactly identical, the text size in the diagram can be a little
different, in the other side the switch between screens with different
dpi is no more a problem.
2025-03-12 19:14:45 +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
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
luz paz 1994235bc5 Fix various typos in source documentation and comments (cont.)
Found via `codespell`
2022-12-04 20:46:32 +01:00
joshua 9cbc3a2265 Add table widget and item model for free terminal
WIP, the change made in the table widget can't be applied.
2022-03-12 19:07:49 +01:00
joshua 7d33b48b3a Merge branch 'master' into terminal_strip
* master:
  BugFix : default element collection path is wrong
  snap: Remove framework snap prompt
  Update translation and add cn chinese ts files
  Danish translation updated
  Danish translation
  Danish translation
  Add new thumbnail element
  Flatpak add --share=network
Flatpak : add --socket=cups see :
https://github.com/flathub/org.libreoffice.LibreOffice/issues/90
  Graphics item handler is bigger when overred
  Add toolbar widget for edit size of handler in diagram editor.
  Fix Multiple translation in elements
  Fix Multiple translation in elements
  Fix segfault.
  new Analog-In - Module
  cleanup and upgraded elements
  modified:   lang/qet_nl.qm 	modified:   lang/qet_nl.ts
  Add Russian translation, thanks "А.Разживин"
  little modification in hungarian language
  Fixed typo
2022-01-14 19:47:28 +01:00
joshua ae9faa2192 Add toolbar widget for edit size of handler in diagram editor.
Add a combo box in the tool bar of diagram editor
to quickly change the size of the graphics handler item.

The sarto commit :D

NOTE
only available for diagram editor, element editor will
come later.
2022-01-03 21:01:25 +01:00
joshua 2ea9f8a2c6 Revamp PhysicalTerminal class 2021-12-23 22:17:37 +01:00
joshua c744356b0f Add preprocessor to check Qt version
Use to check if Qt is 5.14 for using
QGuiApplication::setHighDpiScaleFactorRoundingPolicy
2021-12-04 19:12:11 +01:00
joshua b94ec0938b Add possibility to user to choose hdpi round policy
Add combo box in general configuration dialog to let user
choose the round policy to use with hdpi screen.
2021-12-04 14:38:41 +01:00
Laurent Trinques ef58f34c14 Update Copyright date 2021-02-20 12:13:46 +01:00
joshua 0c4f87bd76 Replace AddItemCommand class by AddGraphicsObjectCommand
The class is the same except the name and the use of QPointer to avoid
segfault with deleted QGraphicsObject.
2021-02-07 16:20:55 +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
Simon De Backer 83d802adf7 Mod Cmake first working build 2020-12-11 14:55:11 +01:00
Simon De Backer 6da9c58458 Wip Fix preprocessor on Cmake 2020-12-10 21:19:45 +01:00
Simon De Backer d0c129478e Mod Cmake en preprocessor 2020-12-10 00:08:26 +01:00
Simon De Backer 10c4c3d528 Wip Fix preprocessor on Cmake 2020-12-08 19:57:35 +01:00
Simon De Backer 8e956df8d8 Fix some doxygen issues 2020-08-18 21:28:52 +02:00
Simon De Backer d4ee161c07 Mod doc set style de same 2020-08-16 11:19:36 +02:00
Simon De Backer 90417ae509 Fix Copyright indentation 2020-08-16 09:40:14 +02:00
Simon De Backer 2cdfce18ec Mod doc to set style de same + Fix indentation code 2020-07-15 18:31:04 +02:00
Simon De Backer 251dfdf37a add documentation 2020-07-15 18:29:04 +02:00
Laurent Trinques e10ae8ce2e Update Copyright date 2020-06-15 17:42:53 +02:00
Claveau Joshua 37efa97ce7 qet graphics table item : to/from xml change
The font, alignment and margins is not saved by the table anymore but by
the model.
2020-05-08 00:08:57 +02:00
blacksun 944e527dc6 Fix fail to build for mac osx
git-svn-id: svn+ssh://svn.tuxfamily.org/svnroot/qet/qet/trunk@5830 bfdf4180-ca20-0410-9c96-a3a8aa849046
2019-04-10 18:11:24 +00:00
blacksun 4474434fbd Fix : when create multiple conductors with the free hand selection, the checking of existing potentiel don't search trought a folio report.
git-svn-id: svn+ssh://svn.tuxfamily.org/svnroot/qet/qet/trunk@5823 bfdf4180-ca20-0410-9c96-a3a8aa849046
2019-04-03 16:06:21 +00:00
blacksun 0db73abd41 Free hand selection : at the end of the selection, popup a context menu for create conductors between selected terminal
git-svn-id: svn+ssh://svn.tuxfamily.org/svnroot/qet/qet/trunk@5718 bfdf4180-ca20-0410-9c96-a3a8aa849046
2019-01-27 17:04:13 +00:00