Bug 471518

Summary: when selecting different tasks some of them reset their time
Product: [Applications] ktimer Reporter: gabrielz1230
Component: generalAssignee: A. Spehr <zahl>
Status: RESOLVED FIXED    
Severity: major CC: p.r.worrall
Priority: NOR    
Version First Reported In: 23.04.2   
Target Milestone: ---   
Platform: Arch Linux   
OS: Linux   
Latest Commit: Version Fixed/Implemented In:
Sentry Crash Report:

Description gabrielz1230 2023-06-27 23:21:50 UTC
SUMMARY
when selecting different tasks some of them reset their time

STEPS TO REPRODUCE
1. create 2 new tasks one with 1 hour and other with 30 minutes
2. start the countdown for the 30 minutes task and wait a bit
3. select the 1 hour task first and then select the 30 minutes task

OBSERVED RESULT
every time you select the 30 minutes task after selecting the 1 hour task the smaller task resets to 30 minutes but 
this does not happen when the 1 hour task counter is smaller than the delay of the 30 minutes task 

EXPECTED RESULT
for smaller task to not reset its countdown every time you select a bigger task

SOFTWARE/OS VERSIONS

Linux/KDE Plasma: Archlinux
(available in About System)
KDE Plasma Version: 5.27.6
KDE Frameworks Version: 5.107.0
Qt Version: 5.15.10

ADDITIONAL INFORMATION
the time of the task doesn't seem to matter this bug happens every time the counter is bigger than the delay
Comment 1 Bug Janitor Service 2023-07-26 15:43:28 UTC
A possibly relevant merge request was started @ https://invent.kde.org/utilities/ktimer/-/merge_requests/9
Comment 2 Carl Schwan 2023-10-13 20:31:12 UTC
Git commit 25425c9d5a32422c9fa83805b185fa929be42db0 by Carl Schwan, on behalf of Paul Worrall.
Committed on 08/08/2023 at 11:41.
Pushed by cullmann into branch 'master'.

Prevent timer value resets when selecting jobs on UI

When the user selects a job from the list, the slider's setMaximum
function is called after its valueChanged signal has been connected to
the job's setValue method.

setMaximum can change the slider's value to be within the new range thus
causing it to emit the valueChanged signal and so setting the job's
value to it's maximum.

This change moves the setMaximum call (and a bunch of other value
setting calls) to before the signals are connected up.

M  +8    -8    ktimer.cpp

https://invent.kde.org/utilities/ktimer/-/commit/25425c9d5a32422c9fa83805b185fa929be42db0