Bug 491310

Summary: LabPlot Legend Not Displaying Correctly
Product: [Applications] LabPlot2 Reporter: Owen Wang <owenwang2007>
Component: frontendAssignee: Alexander Semke <alexander.semke>
Status: RESOLVED FIXED    
Severity: major    
Priority: NOR    
Version: 2.11.1   
Target Milestone: ---   
Platform: macOS (DMG)   
OS: macOS   
Latest Commit: Version Fixed In: 2.12
Sentry Crash Report:
Attachments: Plot with incorrect legend

Description Owen Wang 2024-08-05 16:35:01 UTC
Created attachment 172309 [details]
Plot with incorrect legend

SUMMARY
LabPlot legend has weird artifacts.

STEPS TO REPRODUCE
1. Plot a table
2. Set curve symbol
3. Add a legend

OBSERVED RESULT
See attachment.

EXPECTED RESULT
The legend should generate correctly without the weird artifacts shown in the attached image.

SOFTWARE/OS VERSIONS
Release build 2.11.1
Jul 16 2024, 03:41:55
System: macOS 14.5
KDE Frameworks: Version 5.115.0
Qt Version: 5.15.13 (built against 5.15.12)

ADDITIONAL INFORMATION
Locale: English,United States (Decimal point '.', Group separator ','
Number settings: Decimal point '.', Group separator ',', Exponential 'e', Zero digit '0', Percent '%', Positive/Negative sign '+'/'-' (Updated on restart)
Architecture: arm64-little_endian-lp64
Kernel: darwin 23.5.0
C++ Compiler: AppleClang 15.0.0.15000309
C++ Compiler Flags: -fno-operator-names -fno-exceptions -Wno-gnu-zero-variadic-macro-arguments -Wall -Wextra -Wcast-align -Wchar-subscripts -Wformat-security -Wno-long-long -Wpointer-arith -Wundef -Wnon-virtual-dtor -Woverloaded-virtual -Werror=return-type -Werror=init-self -Wvla -Wdate-time -D_GNU_SOURCE -Wall -Wextra -Wundef -Wpointer-arith -Wunreachable-code -Wunused -Wdeprecated-declarations -fno-omit-frame-pointer -fstack-protector -fexceptions -std=c++17 -O2 -Wcast-align -Wswitch-enum -fvisibility=default -pedantic -Wzero-as-null-pointer-constant
Comment 1 Owen Wang 2024-08-05 16:40:51 UTC
Just tested version 2.11.1 on Manjaro and the artifact is not appearing.
Comment 2 Owen Wang 2024-08-05 16:45:06 UTC
(In reply to Owen Wang from comment #1)
> Just tested version 2.11.1 on Manjaro and the artifact is not appearing.

Just reproduced it on Manjaro as well. It happens whenever the symbol border width is not 0 pt.
Comment 3 Alexander Semke 2024-08-05 18:24:00 UTC
Git commit 1803a1cb350bcc99e7715e0f62a0eba01b3118fe by Alexander Semke.
Committed on 05/08/2024 at 18:20.
Pushed by asemke into branch 'master'.

Properly draw the border line of the symbol in the legend.

Removed the custom code in CartesianPlotLegen.cpp, use Symbol::draw() instead.
FIXED-IN: 2.12

M  +1    -0    ChangeLog
M  +4    -48   src/backend/worksheet/plots/cartesian/CartesianPlotLegend.cpp
M  +2    -2    src/backend/worksheet/plots/cartesian/Symbol.cpp
M  +2    -2    src/backend/worksheet/plots/cartesian/Symbol.h

https://invent.kde.org/education/labplot/-/commit/1803a1cb350bcc99e7715e0f62a0eba01b3118fe
Comment 4 Alexander Semke 2024-08-05 18:25:34 UTC
(In reply to Owen Wang from comment #2)
> (In reply to Owen Wang from comment #1)
> > Just tested version 2.11.1 on Manjaro and the artifact is not appearing.
> 
> Just reproduced it on Manjaro as well. It happens whenever the symbol border
> width is not 0 pt.

Thank you reported this issue. I fixed it now and the fix will be included in the next release. If this issues is urgent for you, consider using our development version (nightly builds produced for multiple systems every day).
Comment 5 Owen Wang 2024-08-05 19:15:40 UTC
(In reply to Alexander Semke from comment #4)
> (In reply to Owen Wang from comment #2)
> > (In reply to Owen Wang from comment #1)
> > > Just tested version 2.11.1 on Manjaro and the artifact is not appearing.
> > 
> > Just reproduced it on Manjaro as well. It happens whenever the symbol border
> > width is not 0 pt.
> 
> Thank you reported this issue. I fixed it now and the fix will be included
> in the next release. If this issues is urgent for you, consider using our
> development version (nightly builds produced for multiple systems every day).

Great, thanks for the prompt response!