61 Commits

Author SHA1 Message Date
ispyisail 31ab7538a4 Scroll the diagram view to the selected search hit
Bugtracker #309: selecting a result from the Search/Replace hit list
highlights the matching element, but on a diagram too large to fit
the current view, the view itself never scrolls -- the highlighted
element can be entirely off-screen with no indication of where it
went. The reporter pinpointed the exact spot,
searchandreplacewidget.cpp:1022, and suggested repositioning the
view's scrollbars.

SearchAndReplaceWidget::on_m_tree_widget_currentItemChanged() already
calls setHighlighted()/setSelected() on the matched element, text, or
conductor when a hit is selected; it just never brings it into view.
Added a call to QGraphicsItem::ensureVisible() alongside each of the
three existing highlight/select calls, so the view scrolls the
minimum needed for the match to be visible.

Followed the same approach as JumpToElementDialog's
activateCurrentItem() (added this session for #676) rather than
computing scrollbar positions by hand as suggested: ensureVisible()
scrolls every view showing the diagram automatically, works correctly
if a folio is open in more than one window, and needed no lookup of
which QGraphicsView the widget is attached to -- this widget doesn't
currently hold one. It was the only existing precedent for this exact
"scroll to reveal a matched item" problem anywhere in the codebase.

Verified live: built and ran the app under Xvfb, zoomed into one
corner of an example diagram until it needed scrollbars, searched for
text appearing in two different elements ("Offset null", both
op-amp offset-null pins), and confirmed selecting each result
scrolled the view to a different part of the diagram, centering the
matched element's highlight circle in the visible area each time. No
new build warnings.
2026-08-10 21:19:56 +12:00
Dieter Mayer 96f6fa44ad Replace hash.keys().contains(k) with hash.contains(k) (35 call sites)
QHash/QMap::keys() allocates a list of every key on each call, then
contains() searches it linearly - an accidental O(n) plus allocation
where a direct O(1) lookup was meant. 35 occurrences across 7 files,
found while profiling project load times (context: #553/#560).

The hot one is ElementPictureFactory::getPictures(), which runs once
per element instance on project load: on the 3399 KiB example project
(191 instances, 129 cache hits) the keys() detour cost 45 ms of the
1.34 s total - measured, not estimated; the fix reproducibly shaves
~35-45 ms off that load. The remaining call sites are UI paths
(search&replace, dynamic text model, undo commands) where the waste
scales with selection/model size.

No behavior change: for QHash/QMap, keys().contains(k) and
contains(k) are equivalent by definition.

(cherry picked from commit 0a7f8f072fa68de7c01a9fc134a4bc8e16d62062)
2026-07-28 13:58:33 +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 a9632600b6 fix [diagram editor] : fix crash on search and replace widget
Qet crash when double click on an element/text/conductor in the tree
widget of the search and replace widget and the item is deleted from
diagram. (Call of Diagram::showme to a nullptr).
2025-12-01 12:23:22 +01:00
plc-user ad29893842 use "%" for string-concatenation
Qt-Docs says it's less memory-usage...
2025-05-22 21:33:32 +02: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
plc-user 0d44933432 correct more indentations / whitespace 2024-04-24 18:02:00 +02: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
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
Simon De Backer 6da9c58458 Wip Fix preprocessor on Cmake 2020-12-10 21:19:45 +01:00
Simon De Backer d15443cf93 Wip Fix preprocessor on Cmake 2020-12-10 18:49:35 +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
Claveau Joshua 380de0b4c3 Search and replace widget : minor improvement
Fix 1 : when widget is reloaded the categories is not checked, but the
child items is. Now  all category is checked when reloaded.
Fix 2 : the folio number displayed in the widget is wrong (start at 0
instead of 1)
2020-11-17 22:25:01 +01:00
Claveau Joshua bb32c30004 Search and replace widget improvement
Add a popup menu to select the elements, conductors and texts of the
current selected diagram in the tree widget.
2020-11-15 17:19:42 +01:00
Claveau Joshua af7d1df5ab Replace function by another one.
Replace function QETApp::elementInfoKeys() and
QETApp::elementInfoToVar(const QString &info) by function provided by
QETInformation.
2020-11-14 19:09:40 +01:00
Claveau Joshua 49b2e4ad0a Replace function by another one
Replace QETApp::diagramInfoKeys() by QETInformation::diagramInfoKeys()
and QETApp::diagramTranslatedInfoKey(str) by
QETInformation::translatedInfoKey(str)
2020-11-08 20:23:16 +01:00
Claveau Joshua 81efc5181b Minor replace function by another one
Replace QETApp::conductorInfoKeys() and
QETApp::conductorTranslatedInfoKey(const QString &key) by
QETInformation::conductorInfoKeys() and
QETInformation::translatedInfoKey
2020-11-08 19:44:21 +01:00
Claveau Joshua 6f60156e00 Change function QETApp::elementTranslatedInfoKey
Use the function QETInformation::translatedInfoKey(const QString &info)
instead of QETApp::elementTranslatedInfoKey(const QString &info).

The final goal is to remove all information from the QETApp and use
instea QETInformation who is dedicated to this
2020-11-08 19:16:02 +01:00
Simon De Backer 30b8205f82 Mod some qWarning add QObject::tr 2020-09-24 22:39:11 +02:00
Simon De Backer 5d92393ee7 Wrap code for better readability 2020-09-07 22:03:40 +02:00
Simon De Backer 88686b3cbf Wrap code for better readability 2020-08-20 17:45:24 +02:00
Simon De Backer d1c91a7fc2 Fix some doxygen issues 2020-08-20 17:44:59 +02:00
Simon De Backer 790cdc5229 Fix some doxygen issues (~100) 2020-08-18 20:07:55 +02:00
Simon De Backer 60a5a83320 Improve code style, Wrap code for better readability 2020-08-16 14:22:21 +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
Laurent Trinques 6b16f5b46d Add new conductors properties color and section 2020-05-31 22:33:25 +02:00
Claveau Joshua 77c9cad501 Animate search and replace widget when close with the button of the widget 2020-05-17 15:59:23 +02:00
Claveau Joshua 9525278be7 Animate show and replace widget.
this feature is totally useless and by consequent indispensable.
2020-04-23 19:52:56 +02: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 34f59f4920 Minor
git-svn-id: svn+ssh://svn.tuxfamily.org/svnroot/qet/qet/trunk@5663 bfdf4180-ca20-0410-9c96-a3a8aa849046
2018-12-26 20:57:11 +00:00
blacksun d45c070e16 Search and replace : improve the search for elements.
git-svn-id: svn+ssh://svn.tuxfamily.org/svnroot/qet/qet/trunk@5662 bfdf4180-ca20-0410-9c96-a3a8aa849046
2018-12-26 20:32:11 +00:00
blacksun 64e900206d Search and replace : We can now replace a properties text (diagram, element, conductor, diagram text) with regular expression
git-svn-id: svn+ssh://svn.tuxfamily.org/svnroot/qet/qet/trunk@5658 bfdf4180-ca20-0410-9c96-a3a8aa849046
2018-12-21 18:08:58 +00:00
blacksun 28fd6e13e4 Minor fix typo
git-svn-id: svn+ssh://svn.tuxfamily.org/svnroot/qet/qet/trunk@5650 bfdf4180-ca20-0410-9c96-a3a8aa849046
2018-12-15 18:03:03 +00:00
blacksun e1cb7e6d6c Search and replace widget, improve layout
git-svn-id: svn+ssh://svn.tuxfamily.org/svnroot/qet/qet/trunk@5649 bfdf4180-ca20-0410-9c96-a3a8aa849046
2018-12-15 17:54:20 +00:00
blacksun 7a17200cf6 Search and replace : improve the search for conductor.
Minor gui change of conductor properties widget


git-svn-id: svn+ssh://svn.tuxfamily.org/svnroot/qet/qet/trunk@5647 bfdf4180-ca20-0410-9c96-a3a8aa849046
2018-12-13 17:34:41 +00:00
blacksun 835ff082bf Improve some code and gui
git-svn-id: svn+ssh://svn.tuxfamily.org/svnroot/qet/qet/trunk@5643 bfdf4180-ca20-0410-9c96-a3a8aa849046
2018-12-09 18:37:09 +00:00
blacksun e595e16d47 Search and replace : conductors properties can now be replaced
git-svn-id: svn+ssh://svn.tuxfamily.org/svnroot/qet/qet/trunk@5641 bfdf4180-ca20-0410-9c96-a3a8aa849046
2018-12-09 11:50:07 +00:00
scorpio810 2fe25e74fa Minor : indentation
git-svn-id: svn+ssh://svn.tuxfamily.org/svnroot/qet/qet/trunk@5630 bfdf4180-ca20-0410-9c96-a3a8aa849046
2018-12-04 22:33:11 +00:00
nuri f27954e507 Correction of some french and english notions and correction of typos. Variable %machine changed in %plant.
git-svn-id: svn+ssh://svn.tuxfamily.org/svnroot/qet/qet/trunk@5629 bfdf4180-ca20-0410-9c96-a3a8aa849046
2018-12-04 19:07:14 +00:00
nuri cdfdd6f22a Correction of some french notions and correction of typos
git-svn-id: svn+ssh://svn.tuxfamily.org/svnroot/qet/qet/trunk@5628 bfdf4180-ca20-0410-9c96-a3a8aa849046
2018-12-03 22:13:16 +00:00
scorpio810 58fb59491b Revert last commits
git-svn-id: svn+ssh://svn.tuxfamily.org/svnroot/qet/qet/trunk@5624 bfdf4180-ca20-0410-9c96-a3a8aa849046
2018-12-01 12:55:05 +00:00
scorpio810 ee91337d75 Add new fild and titleblock "Function group"
git-svn-id: svn+ssh://svn.tuxfamily.org/svnroot/qet/qet/trunk@5622 bfdf4180-ca20-0410-9c96-a3a8aa849046
2018-11-30 23:53:13 +00:00