BruebachL
dd7ee3541c
[PictureLoader] Keep the download log from going quadratic ( #7766 )
...
* [PictureLoader] Keep the download log from going quadratic
A fast scrollbar sweep over the visual card database requests a picture for
every cell it paints, so one gesture can ask for thousands of downloads. The
status bar built a seven-widget log entry for each of them and answered every
completion with findChildren() over the whole, unbounded log, rebuilding
url.toString() per child: O(n) per completion, O(n^2) per burst.
Profiling a sweep on master put 47% of all cycles on the GUI thread, with
qt_qFindChildren_helper at 12.4% of the process (a quarter of that thread) and
QWidgetPrivate::reparentFocusChildren at 4.1%. LagMonitor reported stalls of
3-18 s, growing with the backlog.
Keep at most MAX_LOG_ENTRIES entries and index them by URL, so a completion
and the 1 Hz cleanup only visit the matching entries. The progress bar follows
the entries that remain: dropping a finished entry moves both counters back,
dropping a pending one only its maximum. The log is a diagnostic view, not a
queue - the downloads themselves are unaffected.
* fixup! [PictureLoader] Keep the download log from going quadratic
Make the URL index a QMultiHash and say why: a deferred retry re-queues the same URL while its first log entry is still pending, so one URL can back several live entries.
---------
Co-authored-by: Lukas Brübach <Bruebach.Lukas@bdosecurity.de>
2026-11-03 10:17:53 +01:00
BruebachL
44d5138181
[VisualDatabase] Keep the card grid scrolling on macOS ( #7764 )
...
CodeQL / Analyze (cpp) (push) Waiting to run
CodeQL / Analyze (actions) (push) Waiting to run
Build Desktop / Configure (push) Waiting to run
Build Desktop / vcpkg baseline (push) Waiting to run
Build Desktop / Debian 13 (push) Blocked by required conditions
Build Desktop / Debian 12 (push) Blocked by required conditions
Build Desktop / Fedora 44 (push) Blocked by required conditions
Build Desktop / Fedora 43 (push) Blocked by required conditions
Build Desktop / Servatrice_Debian 12 (push) Blocked by required conditions
Build Desktop / Ubuntu 24.04 (push) Blocked by required conditions
Build Desktop / Ubuntu 26.04 (push) Blocked by required conditions
Build Desktop / Arch (push) Blocked by required conditions
Build Desktop / Ubuntu 26.04 cover (push) Blocked by required conditions
Build Desktop / macOS 13 Intel (push) Blocked by required conditions
Build Desktop / macOS 14 (push) Blocked by required conditions
Build Desktop / macOS 15 (push) Blocked by required conditions
Build Desktop / macOS 26 Debug (push) Blocked by required conditions
Build Desktop / Windows 10 (push) Blocked by required conditions
Build Desktop / Prune caches (push) Waiting to run
Build Docker / Servatrice (arm) (push) Waiting to run
Build Docker / Servatrice (x86) (push) Waiting to run
Build Docker / Publish multi-platform Servatrice image (push) Blocked by required conditions
* [VisualDatabase] Keep the card grid scrolling on macOS
The view ignored the wheel whenever the vertical scroll bar was not
visible. On macOS, scroll bars are transient: once the fade-out finishes,
QScrollbarStyleAnimation hides the scroll bar widget, so isVisible() then
reports false even though the grid has more rows to scroll. Scrolling was
dead until something else brought the bar back.
Gate on the scroll bar's range instead: it says whether there is anything
to scroll, while visibility is only about presentation. An event with no
range to scroll is still ignored, so an enclosing scroll area can take it.
* Update card_database_visual_view.cpp
---------
Co-authored-by: Lukas Brübach <Bruebach.Lukas@bdosecurity.de>
2026-11-02 18:18:19 +01:00
Christian Daniel Jensen
ba7da5ef8f
Fix Essence test linker error by including generated version_string.cpp
2026-11-02 06:01:10 -07:00
Christian Daniel Jensen
fd352db2f5
Display Essence-based curve analytics without MTG color assumptions
2026-11-02 05:58:37 -07:00
Christian Daniel Jensen
a896c0392c
Display Essence-based curve analytics without MTG color assumptions
2026-11-02 05:58:34 -07:00
Christian Daniel Jensen
a1ce48651f
Display Essence-based curve analytics without MTG color assumptions
2026-11-02 05:58:31 -07:00
Christian Daniel Jensen
c3d0ccee60
Display Essence-based curve analytics without MTG color assumptions
2026-11-02 05:58:28 -07:00
Christian Daniel Jensen
781f37b2a4
Preserve readable colors for non-Essence categories in shared chart components
2026-11-02 05:57:57 -07:00
Christian Daniel Jensen
f0adc0eaa6
Avoid Qt-version-specific qMakePair helper in Essence chart ordering
2026-11-02 05:56:44 -07:00
Christian Daniel Jensen
ff660daa71
Parse generic numeric quantities in braces without adding unsupported Essence types
2026-11-02 05:56:24 -07:00
Christian Daniel Jensen
4632b1e017
Document canonical Essence types, XML4 properties, icon overrides and tests
2026-11-02 05:56:07 -07:00
Christian Daniel Jensen
13c22a9610
Make card database Essence filters honor all 15 symbols and N colorless
2026-11-02 05:55:40 -07:00
Christian Daniel Jensen
0b5569398f
Register Essence parsing tests and shared symbol headers in CMake
2026-11-02 05:54:55 -07:00
Christian Daniel Jensen
2879e3b9cb
Register Essence parsing tests and shared symbol headers in CMake
2026-11-02 05:54:52 -07:00
Christian Daniel Jensen
cc47009198
Add regression tests for all fifteen Essence symbols and native XML properties
2026-11-02 05:54:41 -07:00
Christian Daniel Jensen
9dc118137d
Update Essence statistics, filters and distribution panels for all fifteen symbols
2026-11-02 05:53:49 -07:00
Christian Daniel Jensen
5eefdf608f
Update Essence statistics, filters and distribution panels for all fifteen symbols
2026-11-02 05:53:46 -07:00
Christian Daniel Jensen
68636bca7e
Update Essence statistics, filters and distribution panels for all fifteen symbols
2026-11-02 05:53:42 -07:00
Christian Daniel Jensen
3f7a1003d1
Update Essence statistics, filters and distribution panels for all fifteen symbols
2026-11-02 05:53:40 -07:00
Christian Daniel Jensen
7fe590d54d
Update Essence statistics, filters and distribution panels for all fifteen symbols
2026-11-02 05:53:38 -07:00
Christian Daniel Jensen
bd197ecf56
Update Essence statistics, filters and distribution panels for all fifteen symbols
2026-11-02 05:53:35 -07:00
Christian Daniel Jensen
faa459ac24
Use chart-only Essence palettes and canonical Essence ordering
2026-11-02 05:53:19 -07:00
Christian Daniel Jensen
d04736d81a
Use chart-only Essence palettes and canonical Essence ordering
2026-11-02 05:53:16 -07:00
Christian Daniel Jensen
537002a1ee
Use chart-only Essence palettes and canonical Essence ordering
2026-11-02 05:53:14 -07:00
Christian Daniel Jensen
80b4243351
Use chart-only Essence palettes and canonical Essence ordering
2026-11-02 05:53:10 -07:00
Christian Daniel Jensen
f1241ae726
Provide non-canonical display palette and ordering for Essence analytics
2026-11-02 05:52:49 -07:00
Christian Daniel Jensen
bce78b4955
Bundle all fifteen Essence SVG icons into Continuumatrice Qt resources
2026-11-02 05:52:00 -07:00
Christian Daniel Jensen
7a9c7037e9
Add built-in N Essence symbol asset (colorless)
2026-11-02 05:51:48 -07:00
Christian Daniel Jensen
e31e85d607
Add built-in P Essence symbol asset
2026-11-02 05:51:46 -07:00
Christian Daniel Jensen
74abbf160c
Add built-in T Essence symbol asset
2026-11-02 05:51:42 -07:00
Christian Daniel Jensen
f4826dfc57
Add built-in V Essence symbol asset
2026-11-02 05:51:37 -07:00
Christian Daniel Jensen
e37fee65e3
Add built-in L Essence symbol asset
2026-11-02 05:51:35 -07:00
Christian Daniel Jensen
6c379c59be
Add built-in R Essence symbol asset
2026-11-02 05:51:32 -07:00
Christian Daniel Jensen
30fe809e21
Add built-in B Essence symbol asset
2026-11-02 05:51:29 -07:00
Christian Daniel Jensen
861d91d58a
Add built-in C Essence symbol asset
2026-11-02 05:51:25 -07:00
Christian Daniel Jensen
a3e6ad7b6f
Add built-in Q Essence symbol asset
2026-11-02 05:51:21 -07:00
Christian Daniel Jensen
6114995f55
Add built-in A Essence symbol asset
2026-11-02 05:51:18 -07:00
Christian Daniel Jensen
0543c1a322
Add built-in E Essence symbol asset
2026-11-02 05:51:13 -07:00
Christian Daniel Jensen
9eda877aac
Add built-in G Essence symbol asset
2026-11-02 05:51:10 -07:00
Christian Daniel Jensen
3d746e61d0
Add built-in O Essence symbol asset
2026-11-02 05:51:06 -07:00
Christian Daniel Jensen
f4acbfc833
Add built-in S Essence symbol asset
2026-11-02 05:51:02 -07:00
Christian Daniel Jensen
7ccba2cb46
Add built-in M Essence symbol asset
2026-11-02 05:50:59 -07:00
Christian Daniel Jensen
c108c4578e
Replace MTG WUBRG analytics with explicit fifteen-type Essence counting
2026-11-02 05:50:45 -07:00
Christian Daniel Jensen
8ff6f324e6
Render and filter Continuum Universes Essence symbols instead of MTG mana
2026-11-02 05:50:18 -07:00
Christian Daniel Jensen
5150238c68
Render and filter Continuum Universes Essence symbols instead of MTG mana
2026-11-02 05:50:15 -07:00
Christian Daniel Jensen
b536c1ab7c
Render and filter Continuum Universes Essence symbols instead of MTG mana
2026-11-02 05:50:10 -07:00
Christian Daniel Jensen
167d7cc431
Render and filter Continuum Universes Essence symbols instead of MTG mana
2026-11-02 05:50:07 -07:00
Christian Daniel Jensen
2bce66671f
Render and filter Continuum Universes Essence symbols instead of MTG mana
2026-11-02 05:50:04 -07:00
Christian Daniel Jensen
93fd16dc3a
Render and filter Continuum Universes Essence symbols instead of MTG mana
2026-11-02 05:50:01 -07:00
Christian Daniel Jensen
10d68be254
Render and filter Continuum Universes Essence symbols instead of MTG mana
2026-11-02 05:49:51 -07:00