Commit Graph

46 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
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 d15443cf93 Wip Fix preprocessor on Cmake 2020-12-10 18:49:35 +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
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 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 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 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 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
blacksun dab22aeed1 Search and replace : Add two search options, contain text/entire word and case sensitive/insensitive
git-svn-id: svn+ssh://svn.tuxfamily.org/svnroot/qet/qet/trunk@5620 bfdf4180-ca20-0410-9c96-a3a8aa849046
2018-11-29 17:34:03 +00:00
blacksun b74c511bad Search and replace : Independent text item can be changed (and mass changed) through the search and replace widget.
git-svn-id: svn+ssh://svn.tuxfamily.org/svnroot/qet/qet/trunk@5582 bfdf4180-ca20-0410-9c96-a3a8aa849046
2018-11-10 13:32:27 +00:00
blacksun 1ead2aa0bb Search and replace : Element properties can be changed (and mass changed) through the search and replace widget.
Also improve the search for element


git-svn-id: svn+ssh://svn.tuxfamily.org/svnroot/qet/qet/trunk@5576 bfdf4180-ca20-0410-9c96-a3a8aa849046
2018-11-09 18:50:37 +00:00
blacksun 8e250bd569 Minor : search and replace widget, clear the tree widget when the current searched project is closed.
git-svn-id: svn+ssh://svn.tuxfamily.org/svnroot/qet/qet/trunk@5571 bfdf4180-ca20-0410-9c96-a3a8aa849046
2018-10-27 13:31:52 +00:00
blacksun e224a7cee6 Search and replace : improve the search for diagram
git-svn-id: svn+ssh://svn.tuxfamily.org/svnroot/qet/qet/trunk@5565 bfdf4180-ca20-0410-9c96-a3a8aa849046
2018-10-24 14:04:04 +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 0b1382490f Search and replace widget : folio are now displayed in the search field
git-svn-id: svn+ssh://svn.tuxfamily.org/svnroot/qet/qet/trunk@5548 bfdf4180-ca20-0410-9c96-a3a8aa849046
2018-10-05 07:49:07 +00:00
blacksun 1cd8912d64 Add new icons, thank Nuri.
git-svn-id: svn+ssh://svn.tuxfamily.org/svnroot/qet/qet/trunk@5539 bfdf4180-ca20-0410-9c96-a3a8aa849046
2018-09-29 15:58:29 +00:00
blacksun 6a12a008e9 Start the work on a new feature : search and replace.
This commit let user find for : texts, conductors and elements.
WIP.


git-svn-id: svn+ssh://svn.tuxfamily.org/svnroot/qet/qet/trunk@5526 bfdf4180-ca20-0410-9c96-a3a8aa849046
2018-09-25 16:05:24 +00:00